{"version":3,"file":"attractions-B-4-m1o4.js","sources":["../../src/scripts/modules/attractions.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport { splide } from '../helpers/splide';\nimport { ConditionalDisplay } from '../helpers/global';\nimport Splide from '@splidejs/splide';\n\nclass Attractions extends Component {\n private splide: Splide | null = null;\n\n constructor(el: HTMLElement) {\n super(el);\n this.createSplide();\n\n setTimeout(() => {\n this.componentHeight();\n this.splide?.Components.Controller?.go('<');\n\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.splide?.Components.Controller?.go('<');\n observer.disconnect();\n }\n });\n });\n\n observer.observe(this.el);\n }, 100);\n }\n\n setupDefaults() {\n this.dom = {\n slides: this.el.querySelectorAll('.splide__slide'),\n splide: this.el.querySelector('.splide'),\n img: this.el.querySelectorAll('img')\n };\n\n if (ConditionalDisplay(this.el.id)) {\n this.el.style.display = 'none';\n return;\n }\n }\n\n addListeners() {\n window.addEventListener('resize', () => {\n this.componentHeight();\n });\n\n (this.dom.img as NodeListOf).forEach(img => {\n img.addEventListener('load', () => {\n this.componentHeight();\n });\n });\n }\n\n createSplide() {\n const splideOptions = {\n perPage: 1,\n breakpoints: {\n 768: {\n perPage: 1,\n padding: {\n left: 0,\n right: '15%'\n }\n },\n 1280: {\n perPage: 2,\n padding: {\n left: 0,\n right: '30%'\n }\n }\n }\n };\n\n if ((this.dom.slides as NodeList)?.length > 0) {\n this.splide = splide(this.el.querySelector('.splide') as HTMLElement, splideOptions);\n } else {\n this.el.style.display = 'none';\n this.el.dataset.noData = 'true';\n }\n\n this.componentHeight();\n }\n\n componentHeight() {\n const cards = this.el.querySelectorAll('.v-attraction-card__wrapper');\n const tallestCard = Math.max(\n ...Array.from(cards).map(card => {\n const cardCont = card.querySelector('.v-attraction-card__cont');\n return cardCont?.clientHeight || 0;\n })\n );\n\n this.el.querySelectorAll('.v-attraction-card__wrapper').forEach(attraction => {\n const topPos = attraction.querySelector('.v-attraction-card__top-pos');\n (topPos as HTMLElement).style.height = `${tallestCard}px`;\n });\n }\n}\n\nexport default Attractions;\n"],"names":["Attractions","Component","el","__publicField","_b","_a","observer","entries","entry","ConditionalDisplay","img","splideOptions","splide","cards","tallestCard","card","cardCont","attraction","topPos"],"mappings":"+RAKA,MAAMA,UAAoBC,CAAU,CAGlC,YAAYC,EAAiB,CAC3B,MAAMA,CAAE,EAHFC,EAAA,cAAwB,MAI9B,KAAK,aAAa,EAElB,WAAW,IAAM,SACf,KAAK,gBAAgB,GACrBC,GAAAC,EAAA,KAAK,SAAL,YAAAA,EAAa,WAAW,aAAxB,MAAAD,EAAoC,GAAG,KAEjC,MAAAE,EAAW,IAAI,qBAAgCC,GAAA,CACnDA,EAAQ,QAAiBC,GAAA,SACnBA,EAAM,kBACRJ,GAAAC,EAAA,KAAK,SAAL,YAAAA,EAAa,WAAW,aAAxB,MAAAD,EAAoC,GAAG,KACvCE,EAAS,WAAW,EACtB,CACD,CAAA,CACF,EAEQA,EAAA,QAAQ,KAAK,EAAE,GACvB,GAAG,CACR,CAEA,eAAgB,CAOd,GANA,KAAK,IAAM,CACT,OAAQ,KAAK,GAAG,iBAAiB,gBAAgB,EACjD,OAAQ,KAAK,GAAG,cAA2B,SAAS,EACpD,IAAK,KAAK,GAAG,iBAAiB,KAAK,CAAA,EAGjCG,EAAmB,KAAK,GAAG,EAAE,EAAG,CAC7B,KAAA,GAAG,MAAM,QAAU,OACxB,MACF,CACF,CAEA,cAAe,CACN,OAAA,iBAAiB,SAAU,IAAM,CACtC,KAAK,gBAAgB,CAAA,CACtB,EAEA,KAAK,IAAI,IAAqC,QAAeC,GAAA,CACxDA,EAAA,iBAAiB,OAAQ,IAAM,CACjC,KAAK,gBAAgB,CAAA,CACtB,CAAA,CACF,CACH,CAEA,cAAe,OACb,MAAMC,EAAgB,CACpB,QAAS,EACT,YAAa,CACX,IAAK,CACH,QAAS,EACT,QAAS,CACP,KAAM,EACN,MAAO,KACT,CACF,EACA,KAAM,CACJ,QAAS,EACT,QAAS,CACP,KAAM,EACN,MAAO,KACT,CACF,CACF,CAAA,IAGGN,EAAA,KAAK,IAAI,SAAT,YAAAA,EAA8B,QAAS,EAC1C,KAAK,OAASO,EAAO,KAAK,GAAG,cAAc,SAAS,EAAkBD,CAAa,GAE9E,KAAA,GAAG,MAAM,QAAU,OACnB,KAAA,GAAG,QAAQ,OAAS,QAG3B,KAAK,gBAAgB,CACvB,CAEA,iBAAkB,CAChB,MAAME,EAAQ,KAAK,GAAG,iBAAiB,6BAA6B,EAC9DC,EAAc,KAAK,IACvB,GAAG,MAAM,KAAKD,CAAK,EAAE,IAAYE,GAAA,CACzB,MAAAC,EAAWD,EAAK,cAAc,0BAA0B,EAC9D,OAAOC,GAAA,YAAAA,EAAU,eAAgB,CAAA,CAClC,CAAA,EAGH,KAAK,GAAG,iBAAiB,6BAA6B,EAAE,QAAsBC,GAAA,CACtE,MAAAC,EAASD,EAAW,cAAc,6BAA6B,EACpEC,EAAuB,MAAM,OAAS,GAAGJ,CAAW,IAAA,CACtD,CACH,CACF"}