{"version":3,"file":"826.min.js?t=1743173738202","mappings":"2KAOe,MAAMA,EACpBC,iBAAmB,CAClBC,SAAU,sBACVC,mBAAoB,2CACpBC,aAAc,qCACdC,aAAc,sCAGfJ,eAAiB,CAChBK,kBAAmB,sCACnBC,yBAA0B,8CAC1BC,kBAAmB,uCACnBC,cAAe,mCACfC,iBAAkB,wDAGnBC,WAAAA,CAAYC,GACXC,KAAKD,QAAUA,EACfC,KAAKC,SAAW,KAEhBD,KAAKE,WACLF,KAAKG,yBACN,CAKAD,QAAAA,GACCF,KAAKI,WAAaJ,KAAKD,QAAQM,cAAclB,EAAYmB,UAAUjB,UACnEW,KAAKO,kBAAoBP,KAAKD,QAAQM,cAAclB,EAAYmB,UAAUhB,oBAC1EU,KAAKQ,YAAcR,KAAKD,QAAQM,cAAclB,EAAYmB,UAAUf,cACpES,KAAKS,YAAcT,KAAKD,QAAQM,cAAclB,EAAYmB,UAAUd,aACrE,CAKAW,uBAAAA,GACCH,KAAKU,WAAaC,OAAOC,WAAW,sBACpCZ,KAAKa,uBAAuBb,KAAKU,YACjCV,KAAKU,WAAWI,iBAAiB,SAAUd,KAAKa,uBAAuBE,KAAKf,MAC7E,CAKAa,sBAAAA,CAAuBG,GAClBA,EAAMC,QAEJjB,KAAKC,UACTD,KAAKkB,kBAIFlB,KAAKC,UACRD,KAAKmB,kBAENnB,KAAKoB,eAEP,CAKAF,cAAAA,GACC,MAAMG,EAAS,CACdC,WAAY,CACXC,GAAIvB,KAAKO,kBACTiB,KAAM,UACNC,YAAatC,EAAYuC,QAAQjC,kBACjCkC,kBAAmBxC,EAAYuC,QAAQhC,yBACvCkC,WAAW,GAEZC,WAAY,CACXC,OAAQ9B,KAAKQ,YACbuB,OAAQ/B,KAAKS,aAEduB,KAAM,CACLC,iBAAkBjC,KAAKS,aAAayB,aAAa,eAAiB,iBAClEC,iBAAkBnC,KAAKQ,aAAa0B,aAAa,eAAiB,cAEnEE,eAAe,EACfC,QAAS,CAACC,EAAAA,GAAMC,EAAAA,GAAYC,EAAAA,KAIW,SAApCxC,KAAKD,QAAQ0C,QAAQC,aACxBrB,EAAOsB,OAAS,OAChBtB,EAAOuB,WAAa,CAAEC,WAAW,GACjCxB,EAAOyB,YAAa,EACpBzB,EAAOgB,QAAQU,KAAKC,EAAAA,KAGrBhD,KAAKC,SAAW,IAAIgD,EAAAA,GAAOjD,KAAKI,WAAYiB,GAC5CrB,KAAKkD,cACN,CAKA/B,eAAAA,GACKnB,KAAKC,WACRD,KAAKC,SAASkD,SAAQ,GAAM,GAC5BnD,KAAKC,SAAW,KAElB,CAKAmB,YAAAA,GACKpB,KAAKQ,aACRR,KAAKQ,YAAY4C,UAAUC,IAAIlE,EAAYuC,QAAQ9B,eAEhDI,KAAKS,aACRT,KAAKS,YAAY2C,UAAUC,IAAIlE,EAAYuC,QAAQ9B,eAEhDI,KAAKO,mBACRP,KAAKO,kBAAkB6C,UAAUC,IAAIlE,EAAYuC,QAAQ/B,kBAE3D,CAKAuD,YAAAA,GACKlD,KAAKQ,aACRR,KAAKQ,YAAY4C,UAAUE,OAAOnE,EAAYuC,QAAQ9B,eAEnDI,KAAKS,aACRT,KAAKS,YAAY2C,UAAUE,OAAOnE,EAAYuC,QAAQ9B,eAEnDI,KAAKO,mBACRP,KAAKO,kBAAkB6C,UAAUE,OAAOnE,EAAYuC,QAAQ/B,kBAE9D,E","sources":["webpack://@hero-digital/masonite/./src/components/modules/CarouselAlt/CarouselAlt.js"],"sourcesContent":["// Core Swiper + navigation, pagination, and effect fade modules\nimport Swiper, { A11y, Navigation, Pagination, EffectFade } from 'swiper';\n\n\n/**\n * Carousel Component Class\n */\nexport default class CarouselAlt {\n\tstatic SELECTORS = {\n\t\tCAROUSEL: '[data-carousel-alt]',\n\t\tCONTROL_PAGINATION: '[data-carousel-alt-control=\"pagination\"]',\n\t\tCONTROL_NEXT: '[data-carousel-alt-control=\"next\"]',\n\t\tCONTROL_PREV: '[data-carousel-alt-control=\"prev\"]',\n\t};\n\n\tstatic CLASSES = {\n\t\tPAGINATION_BULLET: 'mod-carousel-alt__pagination-bullet',\n\t\tPAGINATION_BULLET_ACTIVE: 'mod-carousel-alt__pagination-bullet--active',\n\t\tPAGINATION_HIDDEN: 'mod-carousel-alt__pagination--hidden',\n\t\tBUTTON_HIDDEN: 'mod-carousel-alt__button--hidden',\n\t\tDISPLAY_OVERFLOW: 'mod-carousel-alt__slides-container--display-overflow',\n\t};\n\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.carousel = null;\n\n\t\tthis.cacheDom();\n\t\tthis.setupMediaQueryListener();\n\t}\n\n\t/**\n\t * Cache DOM elements\n\t */\n\tcacheDom() {\n\t\tthis.carouselEl = this.element.querySelector(CarouselAlt.SELECTORS.CAROUSEL);\n\t\tthis.controlPagination = this.element.querySelector(CarouselAlt.SELECTORS.CONTROL_PAGINATION);\n\t\tthis.controlNext = this.element.querySelector(CarouselAlt.SELECTORS.CONTROL_NEXT);\n\t\tthis.controlPrev = this.element.querySelector(CarouselAlt.SELECTORS.CONTROL_PREV);\n\t}\n\n\t/**\n\t * Setup media query listener to handle breakpoints\n\t */\n\tsetupMediaQueryListener() {\n\t\tthis.mediaQuery = window.matchMedia('(max-width: 767px)');\n\t\tthis.handleMediaQueryChange(this.mediaQuery); // Initialize based on current screen size\n\t\tthis.mediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n\t}\n\n\t/**\n\t * Handle media query changes\n\t */\n\thandleMediaQueryChange(event) {\n\t\tif (event.matches) {\n\t\t\t// Screen size is 767px or below\n\t\t\tif (!this.carousel) {\n\t\t\t\tthis.createCarousel();\n\t\t\t}\n\t\t} else {\n\t\t\t// Screen size is 768px or above\n\t\t\tif (this.carousel) {\n\t\t\t\tthis.destroyCarousel();\n\t\t\t}\n\t\t\tthis.hideControls();\n\t\t}\n\t}\n\n\t/**\n\t * Create the carousel instance and add the navigation and pagination\n\t */\n\tcreateCarousel() {\n\t\tconst config = {\n\t\t\tpagination: {\n\t\t\t\tel: this.controlPagination,\n\t\t\t\ttype: 'bullets',\n\t\t\t\tbulletClass: CarouselAlt.CLASSES.PAGINATION_BULLET,\n\t\t\t\tbulletActiveClass: CarouselAlt.CLASSES.PAGINATION_BULLET_ACTIVE,\n\t\t\t\tclickable: true, // Pagination is clickable\n\t\t\t},\n\t\t\tnavigation: {\n\t\t\t\tnextEl: this.controlNext,\n\t\t\t\tprevEl: this.controlPrev,\n\t\t\t},\n\t\t\ta11y: {\n\t\t\t\tprevSlideMessage: this.controlPrev?.getAttribute('aria-label') || 'Previous slide',\n\t\t\t\tnextSlideMessage: this.controlNext?.getAttribute('aria-label') || 'Next slide',\n\t\t\t},\n\t\t\tsimulateTouch: true,\n\t\t\tmodules: [A11y, Navigation, Pagination],\n\t\t};\n\n\t\t// If the element has additional settings via data attributes, you can handle them here\n\t\tif (this.element.dataset.transition === 'fade') {\n\t\t\tconfig.effect = 'fade';\n\t\t\tconfig.fadeEffect = { crossFade: true };\n\t\t\tconfig.autoHeight = true;\n\t\t\tconfig.modules.push(EffectFade);\n\t\t}\n\n\t\tthis.carousel = new Swiper(this.carouselEl, config);\n\t\tthis.showControls();\n\t}\n\n\t/**\n\t * Destroy the carousel instance and remove event listeners\n\t */\n\tdestroyCarousel() {\n\t\tif (this.carousel) {\n\t\t\tthis.carousel.destroy(true, true); // Clean up all DOM changes\n\t\t\tthis.carousel = null;\n\t\t}\n\t}\n\n\t/**\n\t * Hide navigation controls (arrows and pagination)\n\t */\n\thideControls() {\n\t\tif (this.controlNext) {\n\t\t\tthis.controlNext.classList.add(CarouselAlt.CLASSES.BUTTON_HIDDEN);\n\t\t}\n\t\tif (this.controlPrev) {\n\t\t\tthis.controlPrev.classList.add(CarouselAlt.CLASSES.BUTTON_HIDDEN);\n\t\t}\n\t\tif (this.controlPagination) {\n\t\t\tthis.controlPagination.classList.add(CarouselAlt.CLASSES.PAGINATION_HIDDEN);\n\t\t}\n\t}\n\n\t/**\n\t * Show navigation controls (arrows and pagination)\n\t */\n\tshowControls() {\n\t\tif (this.controlNext) {\n\t\t\tthis.controlNext.classList.remove(CarouselAlt.CLASSES.BUTTON_HIDDEN);\n\t\t}\n\t\tif (this.controlPrev) {\n\t\t\tthis.controlPrev.classList.remove(CarouselAlt.CLASSES.BUTTON_HIDDEN);\n\t\t}\n\t\tif (this.controlPagination) {\n\t\t\tthis.controlPagination.classList.remove(CarouselAlt.CLASSES.PAGINATION_HIDDEN);\n\t\t}\n\t}\n}\n"],"names":["CarouselAlt","static","CAROUSEL","CONTROL_PAGINATION","CONTROL_NEXT","CONTROL_PREV","PAGINATION_BULLET","PAGINATION_BULLET_ACTIVE","PAGINATION_HIDDEN","BUTTON_HIDDEN","DISPLAY_OVERFLOW","constructor","element","this","carousel","cacheDom","setupMediaQueryListener","carouselEl","querySelector","SELECTORS","controlPagination","controlNext","controlPrev","mediaQuery","window","matchMedia","handleMediaQueryChange","addEventListener","bind","event","matches","createCarousel","destroyCarousel","hideControls","config","pagination","el","type","bulletClass","CLASSES","bulletActiveClass","clickable","navigation","nextEl","prevEl","a11y","prevSlideMessage","getAttribute","nextSlideMessage","simulateTouch","modules","A11y","Navigation","Pagination","dataset","transition","effect","fadeEffect","crossFade","autoHeight","push","EffectFade","Swiper","showControls","destroy","classList","add","remove"],"sourceRoot":""}