{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/modules/article-listing.js","webpack://@verndale/toolkit/./src/js/modules/article-read-more.js"],"names":[],"mappings":"iLAKA,SAAW,CAAC,KAAY,IAAU,CAAC,EAEnC,MAAM,SAAe,KAAU,CAC7B,eAAgB,CACd,KAAK,IAAM,CACT,SAAU,KAAK,GAAG,iBAAiB,OAAO,EAC1C,aAAc,KAAK,GAAG,cAAc,uBAAuB,EAC3D,iBAAkB,KAAK,GAAG,cAAc,SAAS,EACjD,cAAe,KAAK,GAAG,iBAAiB,eAAe,EACvD,kBAAmB,KAAK,GAAG,cAAc,oBAAoB,EAC7D,kBAAmB,KAAK,GAAG,cAAc,qBAAqB,EAC9D,kBAAmB,KAAK,GAAG,cAAc,qBAAqB,EAC9D,2BAA4B,KAAK,GAAG,cAClC,8BACF,CACF,EAEA,KAAK,QAAU,KAAK,GAAG,QAAQ,8BAA8B,EAE7D,KAAK,YAAc,SAAS,KAAK,GAAG,QAAQ,YAAa,EAAE,EAC3D,KAAK,gBAAkB,SAAS,KAAK,GAAG,QAAQ,gBAAiB,EAAE,EACnE,KAAK,SAAW,KAAK,GAAG,UAAU,SAAS,wBAAwB,EAE/D,KAAK,UACP,MAAK,SAAW,GAAI,KAAS,CAC3B,MAAO,KAAK,IAAI,SAChB,YAAa,KAAK,IAAI,aACtB,YAAa,KAAK,YAClB,QAAS,KAAK,GACd,eAAgB,KAAK,eACvB,CAAC,GAGC,KAAK,IAAI,cAAc,OAAS,GAClC,KAAK,IAAI,4BAA4B,UAAU,IAC7C,uCACF,EAEF,KAAK,WAAW,CAClB,CAEA,cAAe,CACb,KAAS,UACP,KAAK,IAAI,aAAa,iBAAiB,QAAS,IAC9C,KAAK,SAAS,eAAe,CAC/B,CAEJ,CAEA,YAAa,CACX,KAAM,CAAE,UAAW,KAAK,IAAI,cAE5B,GAAI,GAAgB,EAEpB,KAAS,QACP,EAAgB,GAAU,EAAI,EAAI,EAElC,EAAgB,GAAU,EAAI,EAAI,EAGpC,KAAK,OAAS,GAAI,MAAO,KAAK,IAAI,iBAAkB,CAClD,KAAM,GACN,OAAQ,GACR,UAAW,aACX,cAAe,EACf,aAAc,GACd,cAAe,GACf,QAAS,EAAS,EAClB,aAAc,GACd,YAAa,EACV,aAAqB,CACpB,QAAS,GACT,cAAe,EAAS,EAAI,EAAI,EAChC,aAAc,CAChB,GACC,uBAA+B,CAC9B,QAAS,GACT,gBACA,aAAc,CAChB,CACF,EACA,WAAY,CACV,GAAI,KAAK,IAAI,kBACb,KAAM,UACR,EACA,WAAY,CACV,OAAQ,KAAK,IAAI,kBACjB,OAAQ,KAAK,IAAI,iBACnB,EACA,oBAAqB,EACvB,CAAC,CACH,CACF,CAEA,UAAe,C,qBCjGf,MAAM,CAAO,CACX,YAAY,CACV,QACA,cACA,cACA,UACA,iBAAiB,MAChB,CACD,KAAK,IAAM,CACT,SAAU,EACV,aAAc,CAChB,EACA,KAAK,GAAK,EACV,KAAK,YAAc,EACnB,KAAK,MAAQ,GAAkB,EAE/B,KAAK,eAAe,EAAI,CAC1B,CAEA,eAAe,EAAY,GAAO,CAChC,EACE,KAAK,KAAK,KAAK,KAAK,EAEpB,MAAK,OAAS,KAAK,YACnB,KAAK,KAAK,KAAK,KAAK,EAExB,CAEA,KAAK,EAAO,CACV,GAAa,KAAK,IAAI,SAAS,OAC7B,KAAK,IAAI,aAAa,MAAM,QAAU,OAEtC,KAAK,IAAI,aAAa,MAAM,eAAe,SAAS,EAGtD,KAAK,IAAI,SAAS,QAAQ,CAAC,EAAM,IAAW,EAAK,OAAS,GAAS,CAAM,CAC3E,CACF,CAEA,IAAe,C","file":"scripts/583.95d1bb8ab2f9295fd6e2.js","sourcesContent":["import { Component } from '@verndale/core';\nimport Swiper, { Navigation, Pagination } from 'swiper';\nimport { BREAKPOINTS } from '../utils';\nimport ReadMore from './article-read-more';\n\nSwiper.use([Navigation, Pagination]);\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $listing: this.el.querySelectorAll('.card'),\n $readMoreBtn: this.el.querySelector('.article-listing__cta'),\n $swiperContainer: this.el.querySelector('.swiper'),\n $swiperSlides: this.el.querySelectorAll('.swiper-slide'),\n $swiperPagination: this.el.querySelector('.swiper-pagination'),\n $swiperNextButton: this.el.querySelector('.swiper-button-next'),\n $swiperPrevButton: this.el.querySelector('.swiper-button-prev'),\n $swiperPaginationContainer: this.el.querySelector(\n '.article-listing__pagination'\n )\n };\n\n this.isSmall = this.el.closest('.dual-column-container__main');\n\n this.maxArticles = parseInt(this.el.dataset.maxArticles, 10);\n this.initialArticles = parseInt(this.el.dataset.initialArticles, 10);\n this.hasVideo = this.el.classList.contains('article-listing--video');\n\n if (this.hasVideo) {\n this.readMore = new ReadMore({\n items: this.dom.$listing,\n readMoreBtn: this.dom.$readMoreBtn,\n maxArticles: this.maxArticles,\n element: this.el,\n itemsFirstTime: this.initialArticles\n });\n }\n\n if (this.dom.$swiperSlides.length < 2)\n this.dom.$swiperPaginationContainer?.classList.add(\n 'article-listing__pagination--disabled'\n );\n\n this.initSwiper();\n }\n\n addListeners() {\n if (this.hasVideo) {\n this.dom.$readMoreBtn.addEventListener('click', () =>\n this.readMore.handleReadMore()\n );\n }\n }\n\n initSwiper() {\n const { length } = this.dom.$swiperSlides;\n\n let slidesPerView = 0;\n\n if (this.isSmall) {\n slidesPerView = length >= 2 ? 2 : length;\n } else {\n slidesPerView = length >= 4 ? 4 : length;\n }\n\n this.swiper = new Swiper(this.dom.$swiperContainer, {\n a11y: true,\n rewind: true,\n direction: 'horizontal',\n slidesPerView: 1,\n spaceBetween: 32,\n watchOverflow: true,\n enabled: length > 1,\n roundLengths: false,\n breakpoints: {\n [BREAKPOINTS.TABLET]: {\n enabled: false,\n slidesPerView: length > 1 ? 2 : length,\n spaceBetween: 0\n },\n [BREAKPOINTS.TABLET_LANDSCAPE]: {\n enabled: false,\n slidesPerView,\n spaceBetween: 0\n }\n },\n pagination: {\n el: this.dom.$swiperPagination,\n type: 'fraction'\n },\n navigation: {\n nextEl: this.dom.$swiperNextButton,\n prevEl: this.dom.$swiperPrevButton\n },\n watchSlidesProgress: true\n });\n }\n}\n\nexport default Module;\n","// @ts-check\n\nclass Module {\n constructor({\n items,\n readMoreBtn,\n maxArticles,\n element,\n itemsFirstTime = null\n }) {\n this.dom = {\n $listing: items,\n $readMoreBtn: readMoreBtn\n };\n this.el = element;\n this.maxArticles = maxArticles;\n this.total = itemsFirstTime ?? maxArticles;\n\n this.handleReadMore(true);\n }\n\n handleReadMore(firstTime = false) {\n if (firstTime) {\n this.hide(this.total);\n } else {\n this.total += this.maxArticles;\n this.hide(this.total);\n }\n }\n\n hide(total) {\n if (total >= this.dom.$listing.length) {\n this.dom.$readMoreBtn.style.display = 'none';\n } else {\n this.dom.$readMoreBtn.style.removeProperty('display');\n }\n\n this.dom.$listing.forEach((item, index) => (item.hidden = index >= total));\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}