{"version":3,"file":"663.min.js?t=1764691092835","mappings":"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","sources":["webpack://@hero-digital/masonite/./src/components/modules/Tabs/Tabs.js","webpack://@hero-digital/masonite/./src/components/modules/CardCarousel/CardCarousel.js"],"sourcesContent":["import { actionOnClickOutside } from 'utilities/utilities'\nimport Services from 'services'\n\n/**\n * Module that controls the Tabs component\n */\nexport default class Tabs {\n\tstatic SELECTORS = {\n\t\tCOMPONENT: '[data-cmp-is=\"tabs\"]',\n\t\tTAB: '[data-cmp-tabs=\"tab\"]',\n\t\tCONTENT: '[data-cmp-tabs=\"content\"]',\n\t\tLINE: '[data-cmp-tabs=\"line\"]',\n\t\tTABS_CONTAINER: '[data-cmp-tabs=\"tabs-container\"]',\n\t\tTABS_SELECT: '[data-cmp-hook=\"mod-tabs-select\"]',\n\t\tTABS_SELECT_TOGGLE: '[data-cmp-hook=\"mod-tabs-select-toggle\"]',\n\t\tTABS_SELECT_LIST: '[data-cmp-hook=\"mod-tabs-select-list\"]',\n\t\tTABS_SELECT_LINK: '[data-cmp-hook=\"mod-tabs-select-link\"]'\n\t}\n\n\tstatic CLASSES = {\n\t\tCONTENT_ACTIVE: 'mod-tabs__content--active',\n\t\tTAB_ACTIVE: 'mod-tabs__tab--active',\n\t\tSELECT_ACTIVE: 'mod-tabs-select--active',\n\t\tENABLE_SELECT: 'mod-tabs--enable-select'\n\t}\n\n\tstatic THEMES = {\n\t\tLIGHT: 'theme-light',\n\t\tDARK: 'theme-dark'\n\t}\n\n\tstatic EVENTS = {\n\t\tTAB_CLICK: 'tab click event',\n\t\tSWITCH_TAB: 'switch tab event'\n\t}\n\n\tconstructor(element) {\n\t\tthis.element = element\n\t\tthis.id = element?.id || ''\n\t\tthis.services = Services.getInstance()\n\n\t\tthis.EventEmitterService = this.services.EventEmitterService\n\t\tthis.BreakpointListener = this.services.BreakpointListener\n\n\t\tthis.cacheDom()\n\t\tthis.attachEvents()\n\t\tthis.initializeComponent()\n\t}\n\n\t/**\n\t * Cache the DOM references needed for the component\n\t */\n\tcacheDom() {\n\t\tthis.tabsContainer = this.element.querySelector(\n\t\t\tTabs.SELECTORS.TABS_CONTAINER\n\t\t)\n\t\tthis.tabs = this.element.querySelectorAll(Tabs.SELECTORS.TAB)\n\t\tthis.contents = this.element.querySelectorAll(Tabs.SELECTORS.CONTENT)\n\t\tthis.line = this.element.querySelector(Tabs.SELECTORS.LINE)\n\n\t\tthis.tabsSelect = this.element.querySelector(Tabs.SELECTORS.TABS_SELECT)\n\t\tif (this.tabsSelect) {\n\t\t\tthis.tabsSelectToggleBtn = this.tabsSelect.querySelector(\n\t\t\t\tTabs.SELECTORS.TABS_SELECT_TOGGLE\n\t\t\t)\n\t\t\tthis.tabsSelectList = this.tabsSelect.querySelector(\n\t\t\t\tTabs.SELECTORS.TABS_SELECT_LIST\n\t\t\t)\n\t\t\tthis.tabsSelectLinks = this.tabsSelect.querySelectorAll(\n\t\t\t\tTabs.SELECTORS.TABS_SELECT_LINK\n\t\t\t)\n\t\t}\n\t}\n\n\t/**\n\t * Destroy the component and clean up event listeners\n\t */\n\tdestroy() {\n\t\tthis.detachEvents()\n\t}\n\n\t/**\n\t * Animate the underline line under the active tab\n\t */\n\tanimateLine = (activeTab) => {\n\t\tif (!activeTab) return\n\n\t\t// Use requestAnimationFrame to ensure the DOM has updated\n\t\trequestAnimationFrame(() => {\n\t\t\tconst tabRect = activeTab.getBoundingClientRect()\n\t\t\tconst containerRect = this.tabsContainer.getBoundingClientRect()\n\n\t\t\t// Calculate left relative to the tabs container\n\t\t\tconst left = tabRect.left - containerRect.left\n\t\t\tconst width = tabRect.width\n\n\t\t\t// Apply styles\n\t\t\tthis.line.style.left = `${left}px`\n\t\t\tthis.line.style.width = `${width}px`\n\t\t\tthis.line.style.display = 'block'\n\t\t})\n\t}\n\n\t/**\n\t * Switch to a specific tab\n\t */\n\tswitchTab(id, isInternal = false) {\n\t\tconst tabElement = Array.from(this.tabs).find((tab) => tab.id === id)\n\t\tconst contentElement = Array.from(this.contents).find(\n\t\t\t(content) => content.id === `${id}-content`\n\t\t)\n\n\t\tif (!tabElement || !contentElement) return\n\n\t\t// Update active classes\n\t\tthis.tabs.forEach((tab) => tab.classList.remove(Tabs.CLASSES.TAB_ACTIVE))\n\t\tthis.contents.forEach((content) =>\n\t\t\tcontent.classList.remove(Tabs.CLASSES.CONTENT_ACTIVE)\n\t\t)\n\n\t\ttabElement.classList.add(Tabs.CLASSES.TAB_ACTIVE)\n\t\tcontentElement.classList.add(Tabs.CLASSES.CONTENT_ACTIVE)\n\n\t\tthis.animateLine(tabElement)\n\n\t\t// Update dropdown toggle button text\n\t\tif (this.tabsSelectToggleBtn) {\n\t\t\tconst activeTitle = tabElement\n\t\t\t\t.querySelector('.mod-tabs__tab-title')\n\t\t\t\t.textContent.trim()\n\t\t\tthis.tabsSelectToggleBtn.textContent = activeTitle\n\t\t}\n\n\t\t// Emit switch tab event only if it's not an internal call\n\t\tif (!isInternal) {\n\t\t\tthis.EventEmitterService.emit(Tabs.EVENTS.SWITCH_TAB, {\n\t\t\t\ttabsId: this.id,\n\t\t\t\ttabId: id\n\t\t\t})\n\t\t}\n\n\t\t// for removing the old active state and applying to newly active tab\n\t\tif (this.tabsSelectLinks) {\n\t\t\t// remove old\n\t\t\tthis.tabsSelectLinks.forEach(link =>\n\t\t\t\tlink.classList.remove('mod-tabs-select__link--active')\n\t\t\t)\n\t\t\t// add to the newly active one\n\t\t\tconst selector = `#${id}`\n\t\t\tconst activeLink = Array.from(this.tabsSelectLinks).find(link =>\n\t\t\t\tlink.getAttribute('href') === selector\n\t\t\t)\n\t\t\tif (activeLink) {\n\t\t\t\tactiveLink.classList.add('mod-tabs-select__link--active')\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Scroll to a deep link within the tab content\n\t */\n\tdeepLink(tab, id) {\n\t\tthis.switchTab(tab)\n\t\tconst anchorElement = document.getElementById(id)\n\t\tif (anchorElement) {\n\t\t\tanchorElement.scrollIntoView({\n\t\t\t\tbehavior: 'smooth'\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Handle Tab button clicks\n\t */\n\tonTabClick = (event) => {\n\t\tconst tabId = event.currentTarget.id\n\t\tif (tabId) {\n\t\t\tthis.emitTabClickEvent()\n\t\t\tthis.switchTab(tabId)\n\t\t}\n\t}\n\n\t/**\n\t * Emit 'Tab Click' event\n\t */\n\temitTabClickEvent = () => {\n\t\tthis.EventEmitterService.emit(Tabs.EVENTS.TAB_CLICK)\n\t}\n\n\t/**\n\t * Set the theme class for the component\n\t * @param {String} theme - Theme class to set\n\t */\n\tsetTheme(theme) {\n\t\tconst themeClasses = Object.values(Tabs.THEMES)\n\t\tif (themeClasses.includes(theme)) {\n\t\t\t// Remove existing theme classes\n\t\t\tthis.element.classList.remove(...themeClasses)\n\t\t\tthis.tabs.forEach((tab) => tab.classList.remove(...themeClasses))\n\t\t\tthis.contents.forEach((content) =>\n\t\t\t\tcontent.classList.remove(...themeClasses)\n\t\t\t)\n\n\t\t\t// Add new theme class\n\t\t\tthis.element.classList.add(theme)\n\t\t\tthis.tabs.forEach((tab) => tab.classList.add(theme))\n\t\t\tthis.contents.forEach((content) => content.classList.add(theme))\n\t\t}\n\t}\n\n\t/**\n\t * Initialize the Tabs component\n\t */\n\tinitializeComponent() {\n\t\t// Handle initial breakpoint\n\t\tthis.handleBreakpointChange(this.BreakpointListener.queryMatch)\n\n\t\tconst activeId = window.location.hash ? window.location.hash.substring(1) : null\n\n\t\t// Respect any tab already rendered as active\n\t\tconst preActiveTab = Array.from(this.tabs).find(tab =>\n\t\t\ttab.classList.contains(Tabs.CLASSES.TAB_ACTIVE)\n\t\t)\n\t\tif (!activeId && preActiveTab) {\n\t\t\tthis.switchTab(preActiveTab.id)\n\t\t\treturn\n\t\t}\n\n\t\tif (activeId && this.tabsContainer.querySelector(`#${activeId}`)) {\n\t\t\tthis.switchTab(activeId)\n\t\t} else if (activeId) {\n\t\t\tfor (const tab of this.tabs) {\n\t\t\t\tif (tab.querySelector(`#${activeId}`)) {\n\t\t\t\t\tthis.switchTab(tab.id)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.tabs.length > 0) {\n\t\t\tthis.switchTab(this.tabs[0].id)\n\t\t}\n\t}\n\n\t/**\n\t * Handle breakpoint changes to adjust display\n\t * @param {Object} breakpoints - Current breakpoint matches\n\t */\n\thandleBreakpointChange = (breakpoints) => {\n\t\tconst isBelowMediumLarge = !breakpoints.MEDIUM_LARGE // true if screen width <996px\n\n\t\tif (isBelowMediumLarge) {\n\t\t\tthis.element.classList.add(Tabs.CLASSES.ENABLE_SELECT)\n\t\t} else {\n\t\t\tthis.element.classList.remove(Tabs.CLASSES.ENABLE_SELECT)\n\t\t}\n\n\t\t// Update the underline line position\n\t\tthis.updateUnderlinePosition()\n\t}\n\n\t/**\n\t * Toggle the dropdown select visibility\n\t */\n\ttoggleDropdown = () => {\n\t\tif (this.tabsSelect.classList.contains(Tabs.CLASSES.SELECT_ACTIVE)) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown()\n\t\t}\n\t}\n\n\t/**\n\t * Open the dropdown select\n\t */\n\topenDropdown = () => {\n\t\tthis.tabsSelect.classList.add(Tabs.CLASSES.SELECT_ACTIVE)\n\t\tthis.setAriaAttributesOpen(this.tabsSelectToggleBtn, this.tabsSelectList)\n\t\t// Focus the first dropdown link\n\t\tif (this.tabsSelectLinks && this.tabsSelectLinks.length > 0) {\n\t\t\tthis.tabsSelectLinks[0].focus()\n\t\t}\n\n\t\t// Close dropdown when clicking outside\n\t\tactionOnClickOutside(this.tabsSelect, this.closeDropdown)\n\t}\n\n\t/**\n\t * Close the dropdown select\n\t */\n\tcloseDropdown = () => {\n\t\tthis.tabsSelect.classList.remove(Tabs.CLASSES.SELECT_ACTIVE)\n\t\tthis.setAriaAttributesClosed(\n\t\t\tthis.tabsSelectToggleBtn,\n\t\t\tthis.tabsSelectList\n\t\t)\n\t}\n\n\t/**\n\t * Set ARIA attributes when the dropdown is open\n\t * @param {HTMLElement} toggleBtn - The dropdown toggle button\n\t * @param {HTMLElement} list - The dropdown list\n\t */\n\tsetAriaAttributesOpen(toggleBtn, list) {\n\t\t// Refactored: New method for setting ARIA attributes when open\n\t\ttoggleBtn.setAttribute('aria-expanded', 'true')\n\t\tlist.setAttribute('aria-hidden', 'false')\n\t}\n\n\t/**\n\t * Set ARIA attributes when the dropdown is closed\n\t * @param {HTMLElement} toggleBtn - The dropdown toggle button\n\t * @param {HTMLElement} list - The dropdown list\n\t */\n\tsetAriaAttributesClosed(toggleBtn, list) {\n\t\t// Refactored: New method for setting ARIA attributes when closed\n\t\ttoggleBtn.setAttribute('aria-expanded', 'false')\n\t\tlist.setAttribute('aria-hidden', 'true')\n\t}\n\n\t/**\n\t * Update the underline line position based on the active tab\n\t */\n\tupdateUnderlinePosition = () => {\n\t\tconst activeTab = this.element.querySelector(\n\t\t\t`.${Tabs.CLASSES.TAB_ACTIVE}`\n\t\t)\n\t\tthis.animateLine(activeTab)\n\t}\n\n\tonWindowResize = () => {\n\t\tconst activeTab = this.element.querySelector(\n\t\t\t`.${Tabs.CLASSES.TAB_ACTIVE}`\n\t\t)\n\t\tthis.animateLine(activeTab)\n\t}\n\n\t/**\n\t * Attach component event listeners\n\t */\n\tattachEvents() {\n\t\twindow.addEventListener('resize', this.onWindowResize)\n\t\t// Listen to breakpoint changes\n\t\tthis.BreakpointListener.addListener(this.handleBreakpointChange)\n\n\t\t// Add event listeners to tab buttons\n\t\tthis.tabs.forEach((tabElement) => {\n\t\t\ttabElement.addEventListener('click', this.onTabClick)\n\t\t})\n\n\t\t// Add event listener to dropdown toggle button\n\t\tif (this.tabsSelectToggleBtn) {\n\t\t\tthis.tabsSelectToggleBtn.addEventListener('click', this.toggleDropdown)\n\t\t}\n\n\t\t// Add event listeners to dropdown links\n\t\tif (this.tabsSelectLinks && this.tabsSelectLinks.length > 0) {\n\t\t\tthis.tabsSelectLinks.forEach((link) => {\n\t\t\t\tlink.addEventListener('click', (event) => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tconst href = link.getAttribute('href')\n\t\t\t\t\tconst tabId = href.replace('#', '')\n\t\t\t\t\tthis.switchTab(tabId)\n\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\t// Listen to switch tab events\n\t\tthis.EventEmitterService.on(Tabs.EVENTS.SWITCH_TAB, this.onSwitchTab)\n\t}\n\n\t/**\n\t * Detach component event listeners\n\t */\n\tdetachEvents() {\n\t\t// Remove breakpoint listener\n\t\tthis.BreakpointListener.removeListener(this.handleBreakpointChange)\n\n\t\t// Remove event listeners from tab buttons\n\t\tthis.tabs.forEach((tabElement) => {\n\t\t\ttabElement.removeEventListener('click', this.onTabClick)\n\t\t})\n\n\t\t// Remove event listener from dropdown toggle button\n\t\tif (this.tabsSelectToggleBtn) {\n\t\t\tthis.tabsSelectToggleBtn.removeEventListener(\n\t\t\t\t'click',\n\t\t\t\tthis.toggleDropdown\n\t\t\t)\n\t\t}\n\n\t\t// Remove event listeners from dropdown links\n\t\tif (this.tabsSelectLinks && this.tabsSelectLinks.length > 0) {\n\t\t\tthis.tabsSelectLinks.forEach((link) => {\n\t\t\t\tlink.removeEventListener('click', (event) => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tconst href = link.getAttribute('href')\n\t\t\t\t\tconst tabId = href.replace('#', '')\n\t\t\t\t\tthis.switchTab(tabId)\n\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\t// Remove EventEmitterService listeners\n\t\tthis.EventEmitterService.off(Tabs.EVENTS.SWITCH_TAB, this.onSwitchTab)\n\t\twindow.removeEventListener('resize', this.onWindowResize)\n\t}\n\n\t/**\n\t * Handle switch tab events emitted by other components\n\t * @param {Object} payload - Event payload containing tabsId and tabId\n\t */\n\tonSwitchTab = ({ tabsId, tabId }) => {\n\t\tif (this.id !== tabsId) {\n\t\t\treturn\n\t\t}\n\t\tthis.switchTab(tabId, true, true) // Pass 'true' to indicate an internal call\n\t}\n}\n","// core version + navigation, pagination modules:\nimport Swiper, { A11y, Navigation } from 'swiper'\n\nimport Services from 'services'\nimport Tabs from '../Tabs/Tabs'\n\n// Card Carousel Carousel Module:\nexport default class CardCarousel {\n\tstatic SELECTORS = {\n\t\tCOMPONENT: '[data-cmp-is=\"card-carousel\"]',\n\t\tCAROUSEL: '[data-cmp-card-carousel=\"carousel\"]',\n\t\tCONTROL_PREVIOUS: '[data-cmp-card-carousel-control=\"btn-previous\"]',\n\t\tCONTROL_NEXT: '[data-cmp-card-carousel-control=\"btn-next\"]',\n\t\tPAGINATION: '[data-cmp-card-carousel=\"pagination\"]',\n\t\tPAGINATION_BULLET: '[data-cmp-hook=\"pagination-bullet\"]'\n\t}\n\n\tstatic CLASSES = {\n\t\tPAGINATION_BULLET: 'mod-card-carousel__pagination-bullet',\n\t\tPAGINATION_BULLET_ACTIVE: 'mod-card-carousel__pagination-bullet--active',\n\t\tGOTO_PREVIOUS: 'goto-prev',\n\t\tGOTO_NEXT: 'goto-next',\n\t\tSLIDE_IN_TRANSIT: 'slide-in-transit'\n\t}\n\n\tstatic VALUES = {}\n\n\tconstructor(element) {\n\t\tthis.element = element // ref to component element\n\t\tthis.id = element?.id || '' // ref to component id\n\t\tthis.services = Services.getInstance()\n\n\t\tthis.EventEmitterService = this.services.EventEmitterService\n\n\t\tthis.cacheDom()\n\t\tthis.attachEvents()\n\t\tthis.createCardCarousel()\n\t\tthis.createPagination()\n\t}\n\n\t/**\n\t * Cache the dom refs needed for the component\n\t */\n\tcacheDom() {\n\t\tthis.cardCarouselEl = this.element.querySelector(\n\t\t\tCardCarousel.SELECTORS.CAROUSEL\n\t\t)\n\t\tthis.controlNext = this.element.querySelector(\n\t\t\tCardCarousel.SELECTORS.CONTROL_NEXT\n\t\t)\n\t\tthis.controlPrev = this.element.querySelector(\n\t\t\tCardCarousel.SELECTORS.CONTROL_PREVIOUS\n\t\t)\n\t\tthis.pagination = this.element.querySelector(\n\t\t\tCardCarousel.SELECTORS.PAGINATION\n\t\t)\n\t\t/* this.paginationBullets = this.element.querySelectorAll(\n CardCarousel.SELECTORS.PAGINATION_BULLET\n ) */\n\t}\n\n\t/**\n\t * Attach component event listeners\n\t */\n\tattachEvents() {\n\t\tthis.carouselUpdateListener()\n\t}\n\n\t/**\n\t * Detach component event listeners\n\t */\n\tdetachEvents() {\n\t\tthis.EventEmitterService.off(Tabs.EVENTS.TAB_CLICK)\n\t}\n\n\t/**\n\t * Destroy the carousel instance and remove event listeners\n\t */\n\tdestroy() {\n\t\tthis.detachEvents()\n\t\tthis.cardCarouselEl.destroy()\n\t}\n\n\t/**\n\t * Carousel Udpdate Event Listener\n\t */\n\tcarouselUpdateListener() {\n\t\t// add listener for a change in the Card Carousel\n\t\tthis.EventEmitterService.on(Tabs.EVENTS.TAB_CLICK, () => {\n\t\t\t// update Swiper\n\t\t\tthis.cardCarousel.updateSize()\n\t\t})\n\t}\n\n\t/**\n\t * Create the card carousel instance and add the navigation and pagination\n\t */\n\tcreateCardCarousel() {\n\t\tconst _ = this\n\n\t\tthis.cardCarousel = new Swiper(_.cardCarouselEl, {\n\t\t\tcenteredSlides: false,\n\t\t\tbreakpoints: {\n\t\t\t\t// when window width is >= 320px\n\t\t\t\t320: {\n\t\t\t\t\tallowTouchMove: true,\n\t\t\t\t\tslidesPerView: 3,\n\t\t\t\t\tcenteredSlides: true,\n\t\t\t\t\tspaceBetween: 20\n\t\t\t\t},\n\t\t\t\t// when window width is >= 768px\n\t\t\t\t768: {\n\t\t\t\t\tallowTouchMove: true,\n\t\t\t\t\tslidesPerView: 3,\n\t\t\t\t\tspaceBetween: 32,\n\t\t\t\t\tcenteredSlides: true\n\t\t\t\t},\n\t\t\t\t996: {\n\t\t\t\t\tallowTouchMove: false,\n\t\t\t\t\tslidesPerView: 3,\n\t\t\t\t\tspaceBetween: 32,\n\t\t\t\t\tcenteredSlides: true\n\t\t\t\t}\n\t\t\t},\n\t\t\tlazy: true,\n\t\t\tloop: false,\n\n\t\t\tnavigation: {\n\t\t\t\tnextEl: _.controlNext,\n\t\t\t\tprevEl: _.controlPrev\n\t\t\t},\n\t\t\ta11y: {\n\t\t\t\tprevSlideMessage: _.controlPrev.getAttribute('aria-label'),\n\t\t\t\tnextSlideMessage: _.controlNext.getAttribute('aria-label')\n\t\t\t},\n\t\t\tnoSwiping: true,\n\t\t\tobserver: true,\n\t\t\ton: {\n\t\t\t\tslideChangeTransitionStart: (swiper) => {\n\t\t\t\t\tconst { activeIndex } = swiper\n\t\t\t\t\tconst el = _.cardCarouselEl\n\t\t\t\t\tel.classList.remove(\n\t\t\t\t\t\tCardCarousel.CLASSES.GOTO_PREVIOUS,\n\t\t\t\t\t\tCardCarousel.CLASSES.GOTO_NEXT\n\t\t\t\t\t)\n\n\t\t\t\t\tel.classList.add(CardCarousel.CLASSES.SLIDE_IN_TRANSIT)\n\n\t\t\t\t\tthis.paginationBullets.forEach((bullet, index) => {\n\t\t\t\t\t\tif (index === activeIndex) {\n\t\t\t\t\t\t\tbullet.classList.add(\n\t\t\t\t\t\t\t\tCardCarousel.CLASSES.PAGINATION_BULLET_ACTIVE\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbullet.classList.remove(\n\t\t\t\t\t\t\t\tCardCarousel.CLASSES.PAGINATION_BULLET_ACTIVE\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tslideChangeTransitionEnd: (_swiper) => {\n\t\t\t\t\tconst el = _.cardCarouselEl\n\n\t\t\t\t\tel.classList.remove(CardCarousel.CLASSES.SLIDE_IN_TRANSIT)\n\t\t\t\t},\n\t\t\t\tslideNextTransitionStart: (_swiper) => {\n\t\t\t\t\tconst el = _.cardCarouselEl\n\t\t\t\t\tel.classList.remove(CardCarousel.CLASSES.GOTO_PREVIOUS)\n\t\t\t\t\tel.classList.add(CardCarousel.CLASSES.GOTO_NEXT)\n\t\t\t\t},\n\t\t\t\tslidePrevTransitionStart: (_swiper) => {\n\t\t\t\t\tconst el = _.cardCarouselEl\n\t\t\t\t\tel.classList.remove(CardCarousel.CLASSES.GOTO_NEXT)\n\t\t\t\t\tel.classList.add(CardCarousel.CLASSES.GOTO_PREVIOUS)\n\t\t\t\t},\n\t\t\t\tsnapGridLengthChange: function () {\n\t\t\t\t\tif (this.snapGrid.length !== this.slidesGrid.length) {\n\t\t\t\t\t\tthis.snapGrid = this.slidesGrid.slice(0)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\trewind: false,\n\t\t\tscrollbar: false,\n\t\t\tspeed: 1000,\n\t\t\twatchSlidesProgress: true,\n\t\t\twatchSlidesVisibility: true,\n\t\t\tmodules: [A11y, Navigation]\n\t\t})\n\t}\n\n\t/**\n\t * Create the pagination for the card carousel\n\t */\n\tcreatePagination() {\n\t\tthis.paginationBullets = []\n\n\t\tif (this.cardCarousel?.slides?.length > 0) {\n\t\t\t// Create a bullet for each slide\n\t\t\tthis.cardCarousel.slides.forEach((_slide) => {\n\t\t\t\tconst bullet = document.createElement('span')\n\t\t\t\tbullet.classList.add(CardCarousel.CLASSES.PAGINATION_BULLET)\n\n\t\t\t\tthis.paginationBullets.push(bullet)\n\t\t\t\tthis.pagination.appendChild(bullet)\n\t\t\t})\n\n\t\t\t// Set the first bullet to active\n\t\t\tthis.paginationBullets[0].classList.add(\n\t\t\t\tCardCarousel.CLASSES.PAGINATION_BULLET_ACTIVE\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["Tabs","constructor","element","_defineProperty","activeTab","requestAnimationFrame","tabRect","getBoundingClientRect","containerRect","this","tabsContainer","left","width","line","style","concat","display","event","tabId","currentTarget","id","emitTabClickEvent","switchTab","EventEmitterService","emit","EVENTS","TAB_CLICK","breakpoints","MEDIUM_LARGE","classList","remove","CLASSES","ENABLE_SELECT","add","updateUnderlinePosition","tabsSelect","contains","SELECT_ACTIVE","closeDropdown","openDropdown","setAriaAttributesOpen","tabsSelectToggleBtn","tabsSelectList","tabsSelectLinks","length","focus","actionOnClickOutside","setAriaAttributesClosed","querySelector","TAB_ACTIVE","animateLine","_ref","tabsId","services","Services","getInstance","BreakpointListener","cacheDom","attachEvents","initializeComponent","SELECTORS","TABS_CONTAINER","tabs","querySelectorAll","TAB","contents","CONTENT","LINE","TABS_SELECT","TABS_SELECT_TOGGLE","TABS_SELECT_LIST","TABS_SELECT_LINK","destroy","detachEvents","isInternal","arguments","undefined","tabElement","Array","from","find","tab","contentElement","content","forEach","CONTENT_ACTIVE","activeTitle","textContent","trim","SWITCH_TAB","link","selector","activeLink","getAttribute","deepLink","anchorElement","document","getElementById","scrollIntoView","behavior","setTheme","theme","themeClasses","Object","values","THEMES","includes","handleBreakpointChange","queryMatch","activeId","window","location","hash","substring","preActiveTab","toggleBtn","list","setAttribute","addEventListener","onWindowResize","addListener","onTabClick","toggleDropdown","preventDefault","replace","on","onSwitchTab","removeListener","removeEventListener","off","COMPONENT","LIGHT","DARK","CardCarousel","createCardCarousel","createPagination","cardCarouselEl","CAROUSEL","controlNext","CONTROL_NEXT","controlPrev","CONTROL_PREVIOUS","pagination","PAGINATION","carouselUpdateListener","cardCarousel","updateSize","_","Swiper","centeredSlides","allowTouchMove","slidesPerView","spaceBetween","lazy","loop","navigation","nextEl","prevEl","a11y","prevSlideMessage","nextSlideMessage","noSwiping","observer","slideChangeTransitionStart","swiper","activeIndex","el","GOTO_PREVIOUS","GOTO_NEXT","SLIDE_IN_TRANSIT","paginationBullets","bullet","index","PAGINATION_BULLET_ACTIVE","slideChangeTransitionEnd","_swiper","slideNextTransitionStart","slidePrevTransitionStart","snapGridLengthChange","snapGrid","slidesGrid","slice","rewind","scrollbar","speed","watchSlidesProgress","watchSlidesVisibility","modules","A11y","Navigation","_this$cardCarousel","slides","_slide","createElement","PAGINATION_BULLET","push","appendChild"],"sourceRoot":""}