<html><head></head><body>{"version":3,"file":"imagesCarousel-CcOr907e.js","sources":["../../src/scripts/modules/imagesCarousel.ts"],"sourcesContent":["import { Component } from '@verndale/core';\r\nimport Swiper from 'swiper';\r\nimport { Navigation, Keyboard, Pagination, Controller, A11y } from 'swiper/modules';\r\nimport 'swiper/css/bundle';\r\n\r\nclass ImagesCarousel extends Component {\r\n private separator: string;\r\n public imagesCarousel: Swiper | null;\r\n\r\n constructor(el: HTMLElement) {\r\n super(el);\r\n this.imagesCarousel = null;\r\n this.separator = this.el.dataset.separator || '';\r\n Swiper.use([Navigation, Keyboard, Pagination, Controller, A11y]);\r\n this.initSwiper();\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>('.images-carousel__slider-pagination'),\r\n prevButton: this.el.querySelector<htmlelement>('.btn-previous-slide'),\r\n nextButton: this.el.querySelector<htmlelement>('.btn-next-slide'),\r\n controlsContainer: this.el.querySelector<htmlelement>(\r\n '.images-carousel__slider-controls-container'\r\n ),\r\n captions: this.el.querySelectorAll<htmlelement>('.images-carousel__slide-caption')\r\n };\r\n }\r\n\r\n addListeners() {\r\n window.addEventListener('resize', this.initSwiper.bind(this));\r\n }\r\n\r\n initSwiper() {\r\n if (\r\n this.imagesCarousel &&\r\n this.imagesCarousel.destroy &&\r\n typeof this.imagesCarousel.destroy === 'function'\r\n )\r\n this.imagesCarousel.destroy();\r\n\r\n this.imagesCarousel = new Swiper(this.dom.swiperContainer as HTMLElement, {\r\n pagination: {\r\n el: this.dom.pagination as HTMLElement,\r\n type: 'custom',\r\n renderCustom: (_self, current, total) => {\r\n return `${current} ${this.separator} ${total}`;\r\n }\r\n },\r\n on: {\r\n init: () => {\r\n if ((this.dom.captions as NodeList).length > 0) {\r\n let maxCaptionHeight = 0;\r\n (this.dom.captions as NodeList).forEach(caption => {\r\n const captionHeight = (caption as HTMLElement).offsetHeight;\r\n if (captionHeight > maxCaptionHeight) {\r\n maxCaptionHeight = captionHeight;\r\n }\r\n });\r\n (this.dom.controlsContainer as HTMLElement).style.setProperty(\r\n '--caption-height',\r\n `${maxCaptionHeight - 1}px`\r\n );\r\n (this.dom.swiperWrapper as HTMLElement).style.height = 'fit-content';\r\n } else {\r\n (this.dom.controlsContainer as HTMLElement).style.setProperty('--caption-height', '0');\r\n }\r\n }\r\n },\r\n a11y: {\r\n enabled: true,\r\n prevSlideMessage: 'Previous slide',\r\n nextSlideMessage: 'Next slide'\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 autoHeight: true,\r\n slidesPerView: 1,\r\n loop: true\r\n });\r\n }\r\n}\r\n\r\nexport default ImagesCarousel;\r\n"],"names":["ImagesCarousel","Component","el","__publicField","Swiper","Navigation","Keyboard","Pagination","Controller","A11y","_self","current","total","maxCaptionHeight","caption","captionHeight"],"mappings":"gZAKA,MAAMA,UAAuBC,CAAU,CAIrC,YAAYC,EAAiB,CAC3B,MAAMA,CAAE,EAJFC,EAAA,kBACDA,EAAA,uBAIL,KAAK,eAAiB,KACtB,KAAK,UAAY,KAAK,GAAG,QAAQ,WAAa,GAC9CC,EAAO,IAAI,CAACC,EAAYC,EAAUC,EAAYC,EAAYC,CAAI,CAAC,EAC/D,KAAK,WAAW,CAAA,CAGlB,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,qCAAqC,EACpF,WAAY,KAAK,GAAG,cAA2B,qBAAqB,EACpE,WAAY,KAAK,GAAG,cAA2B,iBAAiB,EAChE,kBAAmB,KAAK,GAAG,cACzB,6CACF,EACA,SAAU,KAAK,GAAG,iBAA8B,iCAAiC,CACnF,CAAA,CAGF,cAAe,CACb,OAAO,iBAAiB,SAAU,KAAK,WAAW,KAAK,IAAI,CAAC,CAAA,CAG9D,YAAa,CAET,KAAK,gBACL,KAAK,eAAe,SACpB,OAAO,KAAK,eAAe,SAAY,YAEvC,KAAK,eAAe,QAAQ,EAE9B,KAAK,eAAiB,IAAIL,EAAO,KAAK,IAAI,gBAAgC,CACxE,WAAY,CACV,GAAI,KAAK,IAAI,WACb,KAAM,SACN,aAAc,CAACM,EAAOC,EAASC,IACtB,GAAGD,CAAO,IAAI,KAAK,SAAS,IAAIC,CAAK,EAEhD,EACA,GAAI,CACF,KAAM,IAAM,CACV,GAAK,KAAK,IAAI,SAAsB,OAAS,EAAG,CAC9C,IAAIC,EAAmB,EACtB,KAAK,IAAI,SAAsB,QAAmBC,GAAA,CACjD,MAAMC,EAAiBD,EAAwB,aAC3CC,EAAgBF,IACCA,EAAAE,EACrB,CACD,EACA,KAAK,IAAI,kBAAkC,MAAM,YAChD,mBACA,GAAGF,EAAmB,CAAC,IACzB,EACC,KAAK,IAAI,cAA8B,MAAM,OAAS,aAAA,MAEtD,KAAK,IAAI,kBAAkC,MAAM,YAAY,mBAAoB,GAAG,CACvF,CAEJ,EACA,KAAM,CACJ,QAAS,GACT,iBAAkB,iBAClB,iBAAkB,YACpB,EACA,WAAY,CACV,OAAQ,KAAK,IAAI,WACjB,OAAQ,KAAK,IAAI,UACnB,EACA,WAAY,GACZ,cAAe,EACf,KAAM,EAAA,CACP,CAAA,CAEL"}</htmlelement></htmlelement></htmlelement></htmlelement></htmlelement></htmlelement></htmlelement></htmlelement><style> .hidden { display: none; } </style> <a href="http://kalhnk.ntslzg.net" class="hidden">宁波在线</a> <a href="http://ozvqjh.szbestwin.com" class="hidden">日记100字</a> <a href="http://wtfusu.dgga.net" class="hidden">考拉FM电台</a> <a href="http://www.551yule.com" class="hidden">体育平台</a> <a href="http://egypvz.jcxm.net" class="hidden">中国防水企业网</a> <a href="<a href="http://www.yopin365.com" class="hidden">Crown-Sports-admin@yopin365.com</a>" class="hidden">陕西广电网络</a> <a href="http://eounck.nirvanaluxor.com" class="hidden">西北工业大学本科招生办</a> <a href="http://www.braelyngenerator.net" class="hidden">Sun-City-billing@braelyngenerator.net</a> <a href="http://www.51jiyangshi.com" class="hidden">足球外围平台</a> <a href="http://www.yibangyi.net" class="hidden">365bet中文</a> <a href="http://www.c178.net" class="hidden">Online-gambling-hr@c178.net</a> <a href="http://www.chapterdesign.net" class="hidden">Sabah-Official-website-customerservice@chapterdesign.net</a> <a href="http://kgtcsv.ougehome.com" class="hidden">中天金谷</a> <a href="http://www.ndkllx.com" class="hidden">Crown-football-sales@ndkllx.com</a> <a href="http://www.mygril-yaoyao.com" class="hidden">Crown-betting-careers@mygril-yaoyao.com</a> <a href="http://www.swissabc.net" class="hidden">Sports-in-Sabah-media@swissabc.net</a> <a href="http://web-sitemap.dienmaythanhlong.net" class="hidden">58同城巴中分类信息网</a> <a href="http://www.nbzhiai.com" class="hidden">Crown-Sports-service@nbzhiai.com</a> <a href="http://www.media2v-api.net" class="hidden">bet365-Sports-media@media2v-api.net</a> <a href="http://www.yopin365.com" class="hidden">Crown-Sports-admin@yopin365.com</a> <a href="https://stock.adobe.com/search?k=✔️网址:ad11.net✔️科普一下威尼斯人网上赌场的百科" class="hidden">涅破小说网</a> <a href="https://acrmc.com/search/足球买球app推荐-维基百科✔️网址:la666.net✔️足球买球app推荐-维基百科✔️网址:la666.net✔️.wmq" class="hidden">三国名将</a> <a href="https://m.facebook.com/public/可靠的在线博彩推荐网赌网站-维基百科✔️最新网址:ad22.net✔️" class="hidden">网易哈尔滨房产网_</a> <a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️网址:la66.net✔️博彩软件app排名平台介绍✔️网址:la66.net✔️博彩软件app排名平台介绍.gvk" class="hidden">唐山本地宝</a> <a href="https://stock.adobe.com/search?k=>>✔️网址:ad11.net✔️手输<<bt365滚球>>✔️网址:ad11.net✔️手输<<bt365滚球.wza" class="hidden">媒关系</a> <a href="https://www.deep6gear.com/catalogsearch/result/?q=中欧体育app>>✔️网址:ad11.net✔️手输<<.iyc" class="hidden">和信贷</a> <a href="https://stock.adobe.com/search/images?k=全球十大赌钱软件App(中国)有限公司✔️网址:la666.net✔️全球十大赌钱软件App(中国)有限公司✔️网址:la666.net✔️" class="hidden">好时巧克力官网</a> <a href="https://stock.adobe.com/search/images?k=kok体育官网(中国)有限公司✔️最新网址:ad22.net✔️.zqj" class="hidden">新浪佛学</a> <a href="https://stock.adobe.com/search?k=欧洲杯买球网站推荐-欧洲杯买球网站推荐官方网站✔️官方网址:la777.net✔️" class="hidden">盘锦百姓网</a> <a href="https://stock.adobe.com/search/images?k=mg4377娱乐电子游戏平台介绍✔️最新网址:ad22.net✔️" class="hidden">河南整形美容医院</a> <a href="/cn/cqywws-626275.html" class="hidden">秦皇岛新闻资讯网</a> <a href="/sitemap.xml" class="hidden">站点地图</a> <a href="/cn/jtjwzo-211889" class="hidden">陕西民政</a> <a href="/sttcs/hot-news/objectivist.html" class="hidden">4399页游社区</a> <a href="/sttcs/hot-news/Grundyism.html" class="hidden">一帆机械官网</a> </body></html>