{"version":3,"file":"zoomv.8951.min.js?t=a37b69e3e558515a0e68","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/components/PricingCardUni/PricingCardUni.js"],"sourcesContent":["import { callPricingAPI } from '../../../js/utilities/pricing'\r\nimport { default as Dropdown } from '../../foundation/Dropdown/Dropdown'\r\n\r\nclass PricingCardUni {\r\n constructor(el) {\r\n this.el = el;\r\n this.pricingCards = [...this.el.querySelectorAll('.fdn-pricingcard-uni-wrapper-container-card')];\r\n this.displayFeatures = this.el.querySelector('.fdn-pricingcard-uni-wrapper-container--display-features');\r\n this.uniWrapper = this.el.querySelector('.fdn-pricingcard-uni-wrapper-container')\r\n\r\n this.apiUrl = this.el.dataset.apiEndpoint\r\n let divId = this.el.dataset.id\r\n if(divId) {\r\n this.dropdownEl = this.el.querySelector(`#country-${divId}`)\r\n if(this.dropdownEl){\r\n const dropdown = new Dropdown(this.dropdownEl);\r\n dropdown.onChange((result) => this.handleOnchangeCountry(result, this))\r\n }\r\n }\r\n this.init();\r\n this.addListeners();\r\n }\r\n\r\n init() {\r\n this.el.setAttribute('data-card-per-row', this.pricingCards.length)\r\n this.uniWrapper.setAttribute('data-height', this.uniWrapper.offsetHeight)\r\n this.pricingCards.forEach((card, index) => {\r\n const button = card.querySelector('.plan-details')\r\n button.addEventListener('click', () => {\r\n button.classList.toggle('active')\r\n this.toggleCard(card, index)\r\n });\r\n });\r\n }\r\n addListeners() {\r\n this.resizeTimeout = null;\r\n window.addEventListener('resize', () => {\r\n clearTimeout(this.resizeTimeout); // Clear the previous timeout\r\n this.resizeTimeout = setTimeout(this.reseCardsOnResize, 200); // Call resetCards after 200ms of no resize\r\n });\r\n }\r\n handleOnchangeCountry(selectedCountryCode, context) {\r\n // Define fetch options\r\n const fetchOpts = {\r\n method: 'GET',\r\n credentials: 'include',\r\n mode: 'cors',\r\n headers: {\r\n 'Content-Type': 'text/html; charset=utf-8'\r\n }\r\n };\r\n \r\n // Cache DOM elements\r\n const resultContainer = context.el.querySelector(\".module-product-inquiry--country-list\");\r\n if (!resultContainer) return; // Early return if the result container is not found\r\n \r\n let apiUrl=this.el.dataset.apiEndpoint\r\n let divId=context.el.dataset.id\r\n \r\n // Make the fetch request\r\n fetch(`${apiUrl}location=${selectedCountryCode}`, fetchOpts)\r\n .then(response => response.text())\r\n .then(data => {\r\n // Remove old pricing card if it exists\r\n const pricingCardBasic = document.querySelector(`div[data-id='${divId}']`)\r\n if (pricingCardBasic) {\r\n pricingCardBasic.outerHTML = data;\r\n callPricingAPI();\r\n const temp = document.createElement('div');\r\n temp.innerHTML = data;\r\n const newDivId = temp.querySelector('div[data-id]')?.getAttribute('data-id');\r\n const updatedElement = newDivId ? document.querySelector(`div[data-id='${newDivId}']`) : null;\r\n if (updatedElement) new PricingCardUni(updatedElement);\r\n }\r\n })\r\n .catch(err => {\r\n });\r\n }\r\n reseCardsOnResize = () => {\r\n this.resetCards();\r\n const buttons = this.el.querySelectorAll('.plan-details')\r\n const parentWrapper = this.el.querySelector('.fdn-pricingcard-uni-wrapper-container')\r\n parentWrapper.style.minHeight = ''\r\n parentWrapper.style.minHeight = this.uniWrapper.offsetHeight\r\n this.uniWrapper.setAttribute(\"data-height\",this.uniWrapper.offsetHeight)\r\n buttons.forEach(button => {\r\n button.classList.remove('active');\r\n });\r\n }\r\n toggleCard(card, index) {\r\n const mobileQuery = window?.matchMedia('(max-width: 767px)')\r\n const isMobile = mobileQuery?.matches\r\n if(isMobile) {\r\n this.expandDefaultFeatures(card);\r\n } else {\r\n const parentWrapper = card.parentElement;\r\n const isWrapperActive = parentWrapper.classList.contains('wrapper-active');\r\n\r\n if (isWrapperActive) {\r\n this.resetCards();\r\n parentWrapper.style.minHeight = `${parentWrapper.getAttribute('data-height')}px`;\r\n } else {\r\n this.activateCard(card, index);\r\n }\r\n }\r\n }\r\n expandDefaultFeatures(card) {\r\n const planFeatures = card.querySelector('.fdn-pricingcard-uni-wrapper-container-card--features')\r\n planFeatures.classList.toggle('active')\r\n const isCardActive = planFeatures.classList.contains('active')\r\n if(isCardActive) {\r\n planFeatures.style.height = `${planFeatures.scrollHeight}px`\r\n } else {\r\n planFeatures.style.height = 0;\r\n }\r\n \r\n }\r\n resetCards = () => {\r\n this.pricingCards.forEach(card => {\r\n card.style.transform = 'translateX(0%)'\r\n })\r\n this.displayFeatures.classList.remove('active')\r\n setTimeout(() => {\r\n this.pricingCards.forEach(card => {\r\n card.classList.remove('in-active', 'active')\r\n })\r\n this.el.querySelector('.wrapper-active')?.classList.remove('wrapper-active')\r\n }, 250)\r\n }\r\n\r\n activateCard(card, index) {\r\n this.pricingCards.forEach((innerCard, innerIndex) => {\r\n if (innerIndex === index) {\r\n innerCard.classList.add('active')\r\n innerCard.style.transform = `translateX(-${innerIndex * 100}%)`\r\n this.updateFeatures(innerCard);\r\n } else {\r\n innerCard.classList.add('in-active')\r\n innerCard.classList.remove('active')\r\n }\r\n });\r\n\r\n card.parentElement.classList.add('wrapper-active');\r\n card.parentElement.style.minHeight = `${this.displayFeatures.scrollHeight + 20}px`;\r\n }\r\n\r\n updateFeatures(card) {\r\n const planFeatures = card.querySelector('.fdn-pricingcard-uni-wrapper-container-card--features')\r\n this.displayFeatures.innerHTML = planFeatures.innerHTML\r\n this.displayFeatures.classList.add('active')\r\n const cardWidth = card.offsetWidth\r\n const borderWidth = 2\r\n if(this.uniWrapper.offsetWidth != parseInt(cardWidth + borderWidth)) {\r\n this.displayFeatures.style.width = `calc(100% - ${cardWidth}px)`\r\n } else {\r\n this.displayFeatures.style.width = `calc(100% - ${cardWidth / 2}px)`\r\n }\r\n }\r\n}\r\n\r\nexport default PricingCardUni;\r\n"],"names":["PricingCardUni","el","_this","_classCallCheck","_defineProperty","resetCards","buttons","querySelectorAll","parentWrapper","querySelector","style","minHeight","uniWrapper","offsetHeight","setAttribute","forEach","button","classList","remove","pricingCards","card","transform","displayFeatures","setTimeout","_this$el$querySelecto","this","_toConsumableArray","apiUrl","dataset","apiEndpoint","divId","id","dropdownEl","concat","Dropdown","onChange","result","handleOnchangeCountry","init","addListeners","key","value","_this2","length","index","addEventListener","toggle","toggleCard","_this3","resizeTimeout","window","clearTimeout","reseCardsOnResize","selectedCountryCode","context","fetch","method","credentials","mode","headers","then","response","text","data","pricingCardBasic","document","_temp$querySelector","outerHTML","callPricingAPI","temp","createElement","innerHTML","newDivId","getAttribute","updatedElement","err","_window","mobileQuery","matchMedia","matches","expandDefaultFeatures","parentElement","contains","activateCard","planFeatures","isCardActive","height","scrollHeight","_this4","innerCard","innerIndex","add","updateFeatures","cardWidth","offsetWidth","parseInt","width"],"sourceRoot":""}