{"version":3,"file":"zoomv.4154.min.js?t=42228c48ee5b6e34e803","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/components/PricingCardStandard/PricingCardStandard.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 PricingCardStandard {\r\n constructor(el) {\r\n this.el = el\r\n this.pricingCardContainer = this.el.querySelector('.fdn-pricingcard-standard-wrapper-container')\r\n this.pricingCards = this.el.querySelectorAll('.fdn-pricingcard-standard-wrapper-container .fdn-pricingcard-standard-wrapper-container-card')\r\n this.noOfPricingCard = 0\r\n this.singlePricingCardWidth = 0\r\n this.singlePricingCardHeight = 0\r\n this.pricingCardWrapperPosition = this.el.querySelector('.fdn-pricingcard-standard-wrapper-container-card-position')\r\n this.wrapperPosition = this.el.getAttribute('data-wrapper-position')\r\n this.pricingCardPerRow = this.el.getAttribute('data-card-per-row')\r\n this.showPlanDetails = this.el.querySelector('.fdn-pricingcard-standard-wrapper-cta-container > button')\r\n this.pricingCardFeatures = this.el.querySelectorAll('.fdn-pricingcard-standard-wrapper-container-card .fdn-pricingcard-standard-wrapper-container-card--features')\r\n this.pricingCardPriceBlock = this.el.querySelectorAll('.fdn-pricingcard-standard-wrapper-container-card--price')\r\n const mobileQuery = window?.matchMedia('(max-width: 767px)')\r\n this.isMobile = mobileQuery?.matches\r\n\r\n this.wrapperPosition = this.el.getAttribute('data-wrapper-position')\r\n this.aicContentHeight = 0\r\n this.expandedCardHeight = 0\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.setInitialCardHeight()\r\n if (!this.isMobile) this.setInitialCardWidth()\r\n if (this.pricingCardWrapperPosition) {\r\n if (this.isMobile) {\r\n this.setMobilePricingCarWrapperPosition();\r\n } else {\r\n this.setPricingCardWrapperPosition();\r\n }\r\n }\r\n this.expand()\r\n }\r\n addListeners() {\r\n window.addEventListener('resize', this.debounce(() => {\r\n let mobileQuery = window?.matchMedia('(max-width: 767px)')\r\n if (mobileQuery?.matches) {\r\n setTimeout(() => {\r\n this.setMobileInitialCardHeight()\r\n if (this.pricingCardWrapperPosition) {\r\n this.setMobilePricingCarWrapperPosition()\r\n }\r\n }, 200)\r\n } else {\r\n this.setInitialCardHeight()\r\n this.setInitialCardWidth()\r\n if (this.pricingCardWrapperPosition) {\r\n this.setPricingCardWrapperPosition()\r\n }\r\n }\r\n this.setPriceBlockHeight()\r\n }, 200))\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 PricingCardStandard(updatedElement);\r\n }\r\n })\r\n .catch(err => {\r\n\r\n });\r\n }\r\n debounce(func, wait) {\r\n let timeout;\r\n return function (...args) {\r\n const context = this;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => func.apply(context, args), wait);\r\n };\r\n }\r\n setInitialCardWidth() {\r\n this.pricingCards.forEach((card) => {\r\n card.style.width = `calc(100% / ${this.pricingCardPerRow})`\r\n });\r\n }\r\n setInitialCardHeight() {\r\n let highestHeight = 0\r\n let highestScrollHeight = 0\r\n let highestFeatureHeight = 0\r\n if (!this.showPlanDetails.classList.contains('is-active')) {\r\n this.pricingCards.forEach((card) => {\r\n // Get the current card's height\r\n let cardHeight = card.offsetHeight\r\n let featureHeight = card.querySelector('.fdn-pricingcard-standard-wrapper-container-card--features').scrollHeight\r\n let cardScrollHeight = featureHeight + cardHeight\r\n\r\n // Update the highest height if the current card's height is greater\r\n if (cardHeight > highestHeight) {\r\n highestHeight = cardHeight\r\n }\r\n if (cardScrollHeight > highestScrollHeight) {\r\n highestScrollHeight = cardScrollHeight\r\n }\r\n if (featureHeight > highestFeatureHeight) {\r\n highestFeatureHeight = featureHeight\r\n }\r\n })\r\n // Apply the highest height to all pricing cards\r\n let count = 0\r\n let singlePricingCardWidth = 0\r\n this.pricingCards.forEach((card) => {\r\n card.style.minHeight = ``\r\n card.setAttribute(\"data-height\", highestHeight)\r\n card.setAttribute(\"data-scrollHeight\", highestScrollHeight)\r\n card.setAttribute(\"data-featuresHeight\", highestFeatureHeight)\r\n card.style.minHeight = `${highestHeight}px`\r\n count++\r\n singlePricingCardWidth = card.offsetWidth\r\n })\r\n this.noOfPricingCard = count\r\n this.singlePricingCardWidth = singlePricingCardWidth\r\n } else {\r\n this.pricingCardFeatures.forEach((element) => {\r\n element.style.height = 'fit-content'\r\n element.style.height = element.offsetHeight + 'px'\r\n element.parentElement.setAttribute('data-featuresHeight', element.offsetHeight)\r\n })\r\n }\r\n this.setPriceBlockHeight()\r\n }\r\n setPriceBlockHeight() {\r\n const pricingCardDivs = this.pricingCardPriceBlock;\r\n pricingCardDivs.forEach(div => {\r\n div.style.minHeight = '';\r\n })\r\n if (pricingCardDivs.length) {\r\n let maxHeight = 0\r\n pricingCardDivs.forEach(div => {\r\n const divHeight = div.offsetHeight\r\n if (divHeight > maxHeight) {\r\n maxHeight = divHeight\r\n }\r\n })\r\n pricingCardDivs.forEach(div => {\r\n div.style.minHeight = maxHeight + 'px';\r\n })\r\n }\r\n }\r\n setMobileInitialCardHeight() {\r\n let highestHeight = 0\r\n let highestScrollHeight = 0\r\n let highestFeatureHeight = 0\r\n if (!this.showPlanDetails.classList.contains('is-active')) {\r\n this.pricingCards.forEach((card) => {\r\n card.removeAttribute(\"data-height\");\r\n card.removeAttribute(\"data-scrollHeight\");\r\n card.removeAttribute(\"data-featuresHeight\");\r\n card.style.minHeight = \"auto\";\r\n card.style.width = '100%'\r\n });\r\n this.pricingCards.forEach((card) => {\r\n // Get the current card's height\r\n let cardHeight = card.offsetHeight\r\n let featureHeight = card.querySelector('.fdn-pricingcard-standard-wrapper-container-card--features').scrollHeight\r\n let cardScrollHeight = featureHeight + cardHeight\r\n\r\n // Update the highest height if the current card's height is greater\r\n if (cardHeight > highestHeight) {\r\n highestHeight = cardHeight\r\n }\r\n if (cardScrollHeight > highestScrollHeight) {\r\n highestScrollHeight = cardScrollHeight\r\n }\r\n if (featureHeight > highestFeatureHeight) {\r\n highestFeatureHeight = featureHeight\r\n }\r\n })\r\n // Apply the highest height to all pricing cards\r\n let count = 0\r\n let singlePricingCardWidth = 0\r\n this.pricingCards.forEach((card) => {\r\n card.style.minHeight = ''\r\n card.setAttribute(\"data-height\", highestHeight)\r\n card.setAttribute(\"data-scrollHeight\", highestScrollHeight)\r\n card.setAttribute(\"data-featuresHeight\", highestFeatureHeight)\r\n //card.style.minHeight = `${highestHeight}px`\r\n count++\r\n singlePricingCardWidth = card.offsetWidth\r\n })\r\n this.noOfPricingCard = count\r\n this.singlePricingCardWidth = singlePricingCardWidth\r\n } else {\r\n this.pricingCards.forEach((card) => {\r\n let cardHeight = parseInt(card.getAttribute('data-height'))\r\n let featureHeight = card.querySelector('.fdn-pricingcard-standard-wrapper-container-card--features').offsetHeight\r\n let cardScrollHeight = parseInt(featureHeight + cardHeight)\r\n if (cardScrollHeight > highestScrollHeight) {\r\n highestScrollHeight = cardScrollHeight\r\n }\r\n })\r\n this.pricingCards.forEach((card) => {\r\n card.setAttribute(\"data-scrollHeight\", highestScrollHeight)\r\n })\r\n }\r\n }\r\n expand() {\r\n this.showPlanDetails.addEventListener('click', (e) => {\r\n let cardGap = parseInt(this.wrapperPosition * 20)\r\n let marginValue = 10\r\n let aicContentHeight = 0;\r\n if (this.pricingCardWrapperPosition) {\r\n aicContentHeight = this.pricingCardWrapperPosition.querySelector('.fdn-pricingcard-standard-wrapper-container-card-position-content').offsetHeight\r\n }\r\n let mobileQuery = window?.matchMedia('(max-width: 767px)')\r\n\r\n if (!this.showPlanDetails.classList.contains('is-active')) {\r\n this.showPlanDetails.classList.add('is-active')\r\n } else {\r\n this.showPlanDetails.classList.remove('is-active')\r\n }\r\n\r\n let singlePricingCardHeight = 0\r\n this.pricingCards.forEach((card) => {\r\n if (!this.showPlanDetails.classList.contains('is-active')) {\r\n singlePricingCardHeight = card.getAttribute('data-height')\r\n } else {\r\n singlePricingCardHeight = card.getAttribute('data-scrollheight')\r\n }\r\n })\r\n this.singlePricingCardHeight = singlePricingCardHeight\r\n\r\n if (this.pricingCardWrapperPosition) {\r\n if (mobileQuery?.matches && this.showPlanDetails.classList.contains('is-active')) {\r\n this.pricingCardWrapperPosition.style.height = `${this.expandedCardHeight + cardGap + (aicContentHeight + marginValue)}px`\r\n } else if (mobileQuery?.matches && !this.showPlanDetails.classList.contains('is-active')) {\r\n this.pricingCardWrapperPosition.style.height = `${(this.wrapperPosition * this.singlePricingCardHeight) + (this.wrapperPosition * 20) + (aicContentHeight + marginValue)}px`\r\n } else {\r\n this.pricingCardWrapperPosition.style.height = 'calc(100% + 20px)'\r\n }\r\n }\r\n\r\n this.pricingCardFeatures.forEach((element) => {\r\n let cardElement = element.parentElement\r\n if (!element.classList.contains('is-active')) {\r\n element.classList.add('is-active')\r\n let cardScrollHeight = cardElement.getAttribute('data-scrollHeight')\r\n let featuresHeight = cardElement.getAttribute('data-featuresHeight')\r\n cardElement.style.minHeight = `${cardScrollHeight}px`\r\n element.style.cssText = `opacity: 1;visibility: visible;height:${featuresHeight}px;overflow:hidden;transition: 0.5s all ease-in`\r\n } else {\r\n element.classList.remove('is-active')\r\n let cardDefaultHeight = cardElement.getAttribute('data-height')\r\n cardElement.style.minHeight = `${cardDefaultHeight}px`\r\n element.style.cssText = `opacity: 0;visibility: hidden;height:0;overflow:hidden;transition: 0.5s all ease-in`\r\n }\r\n });\r\n });\r\n }\r\n setPricingCardWrapperPosition() {\r\n if (!this.pricingCardWrapperPosition) {\r\n return\r\n }\r\n let singlePricingCardWidth = 0\r\n let gridSpace = 20\r\n let marginValue = 10\r\n let i = 1\r\n let noOfcard = this.pricingCards.length\r\n this.setInitialCardWidth()\r\n\r\n this.pricingCards.forEach((card) => {\r\n singlePricingCardWidth = card.offsetWidth\r\n let targetCard = parseInt(noOfcard - this.wrapperPosition)\r\n if (i === targetCard) {\r\n card.style.marginBottom = '0'\r\n }\r\n i++\r\n })\r\n\r\n this.singlePricingCardWidth = singlePricingCardWidth\r\n this.pricingCardWrapperPosition.style.width = `${(this.wrapperPosition * this.singlePricingCardWidth) + (this.wrapperPosition * gridSpace)}px`\r\n this.pricingCardWrapperPosition.style.height = 'calc(100% + 20px)'\r\n\r\n const content = this.pricingCardWrapperPosition.querySelector('.fdn-pricingcard-standard-wrapper-container-card-position-content')\r\n if (!content) {\r\n return\r\n }\r\n const aicContentHeight = content.offsetHeight\r\n this.pricingCardContainer.style.paddingTop = `${aicContentHeight + marginValue}px`\r\n }\r\n setInitialCardHeight() {\r\n let highestHeight = 0\r\n let highestScrollHeight = 0\r\n let highestFeatureHeight = 0\r\n if (!this.showPlanDetails) {\r\n return\r\n }\r\n if (!this.showPlanDetails.classList.contains('is-active')) {\r\n this.pricingCards.forEach((card) => {\r\n const featuresElement = card.querySelector('.fdn-pricingcard-standard-wrapper-container-card--features')\r\n if (!featuresElement) {\r\n return\r\n }\r\n let cardHeight = card.offsetHeight\r\n let featureHeight = featuresElement.scrollHeight\r\n let cardScrollHeight = featureHeight + cardHeight\r\n\r\n if (cardHeight > highestHeight) highestHeight = cardHeight\r\n if (cardScrollHeight > highestScrollHeight) highestScrollHeight = cardScrollHeight\r\n if (featureHeight > highestFeatureHeight) highestFeatureHeight = featureHeight\r\n })\r\n\r\n this.pricingCards.forEach((card) => {\r\n card.style.minHeight = ''\r\n card.setAttribute('data-height', highestHeight)\r\n card.setAttribute('data-scrollHeight', highestScrollHeight)\r\n card.setAttribute('data-featuresHeight', highestFeatureHeight)\r\n card.style.minHeight = `${highestHeight}px`\r\n })\r\n } else {\r\n this.pricingCardFeatures.forEach((element) => {\r\n element.style.height = 'fit-content'\r\n element.style.height = `${element.offsetHeight}px`\r\n element.parentElement.setAttribute('data-featuresHeight', element.offsetHeight)\r\n })\r\n }\r\n this.setPriceBlockHeight()\r\n }\r\n setMobilePricingCarWrapperPosition() {\r\n let singlePricingCardHeight = 0\r\n let gridSpace = 20\r\n let marginValue = 10\r\n let noOfcard = this.pricingCards.length\r\n let i = 1;\r\n let aicContentHeight = this.pricingCardWrapperPosition.querySelector('.fdn-pricingcard-standard-wrapper-container-card-position-content').offsetHeight\r\n\r\n this.pricingCards.forEach((card) => {\r\n card.style.width = '100%'\r\n this.expandedCardHeight = parseInt(this.wrapperPosition * card.getAttribute('data-scrollheight'))\r\n if (!this.showPlanDetails.classList.contains('is-active')) {\r\n singlePricingCardHeight = card.getAttribute('data-height')\r\n } else {\r\n singlePricingCardHeight = card.getAttribute('data-scrollheight')\r\n }\r\n\r\n let targetCard = parseInt(noOfcard - (this.wrapperPosition))\r\n this.pricingCardContainer.style.paddingTop = 0\r\n if (i == targetCard) {\r\n card.style.marginBottom = `${aicContentHeight + marginValue}px`\r\n } else if (targetCard == 0) {\r\n this.pricingCardContainer.style.paddingTop = `${aicContentHeight + marginValue}px`\r\n }\r\n i++;\r\n })\r\n\r\n this.singlePricingCardHeight = singlePricingCardHeight\r\n this.pricingCardWrapperPosition.style.width = 'calc(100% + 20px)'\r\n this.pricingCardWrapperPosition.style.height = `${(this.wrapperPosition * this.singlePricingCardHeight) + (this.wrapperPosition * gridSpace) + (aicContentHeight + marginValue)}px`\r\n }\r\n}\r\n\r\nexport default PricingCardStandard\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":["PricingCardStandard","el","_window","_classCallCheck","this","pricingCardContainer","querySelector","pricingCards","querySelectorAll","noOfPricingCard","singlePricingCardWidth","singlePricingCardHeight","pricingCardWrapperPosition","wrapperPosition","getAttribute","pricingCardPerRow","showPlanDetails","pricingCardFeatures","pricingCardPriceBlock","mobileQuery","window","matchMedia","isMobile","matches","aicContentHeight","expandedCardHeight","apiUrl","dataset","apiEndpoint","initCountryCurrencyFilter","onCountryChange","handleOnchangeCountry","bind","onCurrencyChange","init","addListeners","key","value","setInitialCardHeight","setInitialCardWidth","setMobilePricingCarWrapperPosition","setPricingCardWrapperPosition","expand","_this","addEventListener","debounce","_window2","setTimeout","setMobileInitialCardHeight","setPriceBlockHeight","selectedCountryCode","context","divId","id","fetch","concat","method","credentials","mode","headers","then","response","text","data","pricingCardBasic","document","_temp$querySelector","outerHTML","callPricingAPI","temp","createElement","innerHTML","newDivId","updatedElement","err","func","wait","timeout","_len","arguments","length","args","Array","_key","clearTimeout","apply","_this2","forEach","card","style","width","highestHeight","highestScrollHeight","highestFeatureHeight","classList","contains","element","height","offsetHeight","parentElement","setAttribute","featuresElement","cardHeight","featureHeight","scrollHeight","cardScrollHeight","minHeight","pricingCardDivs","div","maxHeight","divHeight","parseInt","removeAttribute","count","offsetWidth","_this3","e","_window3","cardGap","remove","add","cardElement","cardDefaultHeight","cssText","featuresHeight","_this4","i","noOfcard","targetCard","marginBottom","content","paddingTop","_this5","instance","_el$dataset","_el$dataset2","options","undefined","iscurrencyfilter","isCurrencyfilter","ensureCurrencyFilterFlag","ddEl","dropDownElement","Dropdown","onChange","code","listenCurrencyChange","getSelectedCountryCode"],"sourceRoot":""}