{"version":3,"file":"zoomv.8951.min.js?t=edf7faea5093459ad5ae","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/components/PricingCardUni/PricingCardUni.js","webpack://@hero-digital/zoom/./src/js/utilities/currency-filter.js"],"sourcesContent":["import { callPricingAPI } from '../../../js/utilities/pricing'\r\nimport {initCountryCurrencyFilter} from '../../../js/utilities/currency-filter'\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 initCountryCurrencyFilter(this,{onCountryChange:this.handleOnchangeCountry.bind(this),onCurrencyChange:this.handleOnchangeCountry.bind(this)})\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 if(button){\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 }\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 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","import { ensureCurrencyFilterFlag, listenCurrencyChange } from \"./utilities\";\r\nimport { default as Dropdown } from '../../components/foundation/Dropdown/Dropdown'\r\n\r\nexport function initCountryCurrencyFilter(instance, options = {}) {\r\n const { el } = instance;\r\n const { \r\n onCountryChange, \r\n onCurrencyChange \r\n } = options;\r\n\r\n const iscurrencyfilter = el?el.dataset?.isCurrencyfilter:instance.getAttribute(\"data-is-currencyfilter\");\r\n const divId = el?el.dataset?.id:instance.getAttribute(\"data-id\");\r\n\r\n if(iscurrencyfilter) ensureCurrencyFilterFlag(iscurrencyfilter);\r\n const ddEl = divId &&el? el.querySelector(`#country-${divId}`):instance.querySelector(`#country-${divId}`);\r\n if (ddEl) {\r\n instance.dropDownElement = new Dropdown(ddEl);\r\n instance.dropDownElement.onChange(code =>\r\n onCountryChange && onCountryChange(code, instance)\r\n );\r\n }\r\n\r\n listenCurrencyChange(() => {\r\n const code = instance.dropDownElement\r\n ? instance.dropDownElement.getSelectedCountryCode()\r\n : \"\";\r\n onCurrencyChange && onCurrencyChange(code, instance);\r\n });\r\n}\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","initCountryCurrencyFilter","onCountryChange","handleOnchangeCountry","bind","onCurrencyChange","init","addListeners","key","value","_this2","length","index","addEventListener","toggle","toggleCard","_this3","resizeTimeout","window","clearTimeout","reseCardsOnResize","selectedCountryCode","context","divId","id","fetch","concat","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","instance","_el$dataset","_el$dataset2","options","arguments","undefined","iscurrencyfilter","isCurrencyfilter","ensureCurrencyFilterFlag","ddEl","dropDownElement","Dropdown","onChange","code","listenCurrencyChange","getSelectedCountryCode"],"sourceRoot":""}