{"version":3,"file":"zoomv.4182.min.js?t=80157c95fe234e35662b","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/js/utilities/block-visibility.js","webpack://@hero-digital/zoom/./src/js/utilities/common-pricing-component.js","webpack://@hero-digital/zoom/./src/js/utilities/currency-filter.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/common-ui-location-mapping","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/contentTitleMap.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-cta.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-blog.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-smb-roi.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-navigation.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-navigation-vfive.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-footer.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-product-nav.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-non-profit.js","webpack://@hero-digital/zoom/./src/js/utilities/data-layer.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-filter.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-search.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-tab.js","webpack://@hero-digital/zoom/./src/js/utilities/sync-status-helper.js"],"sourcesContent":["function BlockVisibilityService(response) {\r\n // User identity role\r\n this.UserIdentityRole = {\r\n DefaultText: \"\",\r\n DefaultValue: \"\",\r\n AnonymousText: \"Anonymous\",\r\n AnonymousValue: \"97af72b4-4108-4885-b753-f02a39956839\",\r\n AuthorizedFreeText: \"Authorized Free\",\r\n AuthorizedFreeValue: \"e833b0a4-49b2-4a65-8270-598b5650186f\",\r\n AuthorizedPaidText: \"Authorized Paid\",\r\n AuthorizedPaidValue: \"be0a4727-2dc2-47cf-aa36-55e9b69bb501\",\r\n AuthorizedText: \"Authorized\",\r\n AuthorizedValue: \"82c0350d-4c26-4b95-8feb-330fef53cda3\"\r\n }\r\n\r\n this.userStatusKey = \"userStatus\"\r\n this.currencyKey = \"currency\"\r\n this.accountPlanTypeKey =\"accountPlanType\"\r\n this.accPubCalendarKey=\"__accPubCalendar\"\r\n this.elementVisibleForAttribute = \"data-user-for\"\r\n this.restrictAccessCssClass = \"authorized-access\"\r\n \r\n this.userStatusCookie = \"authorized-access\"\r\n this.publicCalendarCookieKey = \"public-calendar-access\"\r\n this.currencyCookie = \"_zm_currency\"\r\n\r\n this.user = response || {}\r\n this.elementVisibleForRoles = []\r\n this.paidUserPlanType= [\"1098\",\"1096\",\"42\",\"43\",\"119\",\"120\",\"12030\",\"12025\",\"12024\",\"12023\",\"12022\",\"12021\",\"12020\",\"12019\",\"12018\",\"12017\",\"12016\",\"12015\",\"12014\",\"12013\",\"12012\",\"12011\",\"12010\",\"12009\",\"12008\",\"12007\",\"12006\",\"12005\",\"12004\",\"12003\",\"12002\",\"12001\"];\r\n this.domain = location.hostname.split('.').reverse()[1] + '.' + location.hostname.split('.').reverse()[0]\r\n \r\n this._int()\r\n}\r\n\r\nBlockVisibilityService.prototype._int = function () {\r\n this._processUserRole()\r\n this._displayAuthorizedElements()\r\n this._removeUnauthorizedElements()\r\n}\r\n\r\nBlockVisibilityService.prototype._processUserRole = function () {\r\n let visibleRole = \"\"\r\n const userStatus=this.user[this.userStatusKey]\r\n if (userStatus === \"authenticated\") {\r\n visibleRole=this._getAuthenticatedUserRole()\r\n this.elementVisibleForRoles.push(this.UserIdentityRole.AuthorizedValue)\r\n this._displayAuthorizedJoinElement()\r\n } else if (userStatus == \"unauthenticated\") {\r\n visibleRole=this.UserIdentityRole.AnonymousValue\r\n }\r\n\r\n if (visibleRole) { \r\n this.elementVisibleForRoles.push(visibleRole)\r\n this._setCookie(this.userStatusCookie, visibleRole, 365, this.domain)\r\n }\r\n}\r\n\r\nBlockVisibilityService.prototype._getAuthenticatedUserRole = function () {\r\n let visibleRole=this.UserIdentityRole.AuthorizedFreeValue\r\n const currentAccountPlan=`${this.user[this.accountPlanTypeKey]}`\r\n if(currentAccountPlan!==\"undefined\" && currentAccountPlan !== null){\r\n const isPaidUser = this.paidUserPlanType.includes(currentAccountPlan)\r\n visibleRole = isPaidUser ? this.UserIdentityRole.AuthorizedPaidValue : visibleRole\r\n const currency=this.user[this.currencyKey]\r\n if(currency && isPaidUser){\r\n this._setCookie(this.currencyCookie, currency, 365, this.domain)\r\n let currencyButton = document.querySelector(\r\n '[data-template=\"js-currency-content\"]'\r\n )\r\n currencyButton.setAttribute('disabled', '')\r\n let lowerAbbreviation = currency.toLowerCase()\r\n let userCurrency= allCurrencyList.find(currency => currency.currencyAbbreviation.toLowerCase() === lowerAbbreviation)\r\n currencyButton.innerHTML = `${userCurrency.displayName} ${userCurrency.currencySymbol}`\r\n currencyButton.innerHTML +=''\r\n }\r\n }\r\n return visibleRole;\r\n}\r\n\r\nBlockVisibilityService.prototype._displayAuthorizedJoinElement = function () {\r\n const accountPubCalendarKey = `${this.user[this.accPubCalendarKey]}`\r\n let isShowCalendar = false\r\n if (accountPubCalendarKey !== \"undefined\" && accountPubCalendarKey !== null) {\r\n isShowCalendar = accountPubCalendarKey === \"true\"\r\n if (isShowCalendar) {\r\n const joinElement = document.querySelector(isShowCalendar ? '.resources-nav__dropdown-joinrestricted' : '.resources-nav__join')\r\n if (joinElement) {\r\n joinElement.parentElement.classList.remove(this.restrictAccessCssClass)\r\n joinElement.parentElement.removeAttribute(this.elementVisibleForAttribute)\r\n }\r\n }\r\n }\r\n\r\n let joinElementToRemove = document.querySelector(isShowCalendar ? '.resources-nav__join' : '.resources-nav__dropdown-joinrestricted')\r\n if (joinElementToRemove) {\r\n joinElementToRemove.parentElement.remove()\r\n }\r\n\r\n this._setCookie(this.publicCalendarCookieKey, isShowCalendar ? \"1\" : \"0\", 365, this.domain)\r\n}\r\n\r\nBlockVisibilityService.prototype._displayAuthorizedElements = function () {\r\n if(this.elementVisibleForRoles.length===0) return\r\n let authorizedElementsSelectors = this.elementVisibleForRoles.map(userIdRole => `[${this.elementVisibleForAttribute}=\"${userIdRole}\"]`).join(\",\")\r\n \r\n const elementsToDisplay = document.querySelectorAll(authorizedElementsSelectors)\r\n elementsToDisplay.forEach(function (element) {\r\n element.classList.remove(this.restrictAccessCssClass)\r\n element.removeAttribute(this.elementVisibleForAttribute)\r\n }, this)\r\n\r\n this._setUserProfile()\r\n}\r\n\r\nBlockVisibilityService.prototype._removeUnauthorizedElements = function () {\r\n if(this.elementVisibleForRoles.length===0) return\r\n const unAuthorizedElementSelector = `[${this.elementVisibleForAttribute}]:not([${this.elementVisibleForAttribute}=\"\"])`\r\n\r\n const elementsWithDataUserState = document.querySelectorAll(unAuthorizedElementSelector);\r\n elementsWithDataUserState.forEach(element => {\r\n element.remove()\r\n })\r\n}\r\n\r\nBlockVisibilityService.prototype._setCookie = function(cookieName, value, days, domain) {\r\n try{\r\n var expires = \"\"\r\n if (days) {\r\n var date = new Date()\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000))\r\n expires = \"; expires=\" + date.toUTCString()\r\n }\r\n if (typeof value === 'object') {\r\n // because of Safari bug handling JSON in cookies commas need to be stripped out\r\n let obj = {}\r\n for (const [key, item] of Object.entries(value)) {\r\n if (typeof item == 'string') obj[key] = item.replace(/,/,'U+0002C')\r\n else obj[key] = item\r\n }\r\n // turn value into JSON\r\n value = JSON.stringify(obj)\r\n }\r\n // create cookie\r\n document.cookie = cookieName + \"=\" + (value || \"\") + expires + \"; path=/;secure;samesite=none;domain=.\" + domain \r\n }\r\n catch(err){\r\n console.log('Block visibility service: set cookie error:', err)\r\n }\r\n} \r\n \r\nBlockVisibilityService.prototype._setUserProfile = function () {\r\n const firstName = this.user?.firstName?.trim();\r\n const lastName = this.user?.lastName?.trim();\r\n const fullName = [firstName, lastName].filter(Boolean).join(' ') || '';\r\n const container = document.querySelector('li.zdcm-main-nav__list-item .zdcm-profile-picture')?.closest('li.zdcm-main-nav__list-item')\r\nconst f = firstName?.trim()?.[0] || '';\r\nconst l = lastName?.trim()?.[0] || '';\r\n if (container && fullName != '') {\r\n const firstItem = container.querySelector('.zdcm-megamenu ul li')\r\n const link = firstItem?.querySelector('a')\r\n const hidden = link?.querySelector('.visually-hidden')\r\n\r\n if (link && hidden) {\r\n // Clear existing link content except the hidden element\r\n [...link.childNodes].forEach(node => {\r\n if (node !== hidden) node.remove();\r\n });\r\n\r\n link.className ='zdcm-user-identity zdcm-resources-nav__dropdown-link';\r\n // Create new spans\r\n const initialsSpan = document.createElement('span');\r\n initialsSpan.className = 'zdcm-user-initials';\r\n initialsSpan.textContent = f+l;\r\n\r\n const nameSpan = document.createElement('span');\r\n nameSpan.className = 'zdcm-user-name';\r\n nameSpan.textContent = fullName;\r\n\r\n // Inject new spans before the hidden element\r\n link.insertBefore(initialsSpan, hidden);\r\n link.insertBefore(nameSpan, hidden);\r\n\r\n hidden.textContent = fullName;\r\n }\r\n document.querySelector('.zdcm-profile-picture').textContent = (f + l).toUpperCase();\r\n }\r\n // const pic = container.querySelector('.zdcm-profile-picture');\r\n // const url = `https://images.zoom.us${this.user.picUrl}`\r\n\r\n // const img = new Image()\r\n // img.onload = () => (pic.style.backgroundImage = `url('${url}')`)\r\n // img.src = url\r\n }\r\n\r\nexport { BlockVisibilityService }\r\n","import { callPricingAPI } from './pricing';\r\nimport { initCountryCurrencyFilter } from './currency-filter';\r\n\r\nfunction handleOnCurrencyChange(selectedCountryCode, context) {\r\n const {el}=context;\r\n const apiUrl = el?context.el.dataset.apiEndpoint:context.getAttribute(\"data-api-endpoint\");;\r\n const divId = el?el.dataset?.id:context.getAttribute(\"data-id\");\r\n\r\n if (!apiUrl || !divId) return;\r\n\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 fetch(`${apiUrl}location=${selectedCountryCode}`, fetchOpts)\r\n .then(response => response.text())\r\n .then(data => {\r\n const pricingCardBasic = document.querySelector(`div[data-id='${divId}']`);\r\n if (pricingCardBasic) {\r\n pricingCardBasic.outerHTML = data;\r\n callPricingAPI();\r\n\r\n // Re-initialize the component (if needed)\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) {\r\n // Call this same initializer again\r\n initSinglePricingComponent(updatedElement);\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n console.error(\"Pricing update failed\", err);\r\n });\r\n}\r\n\r\nfunction initSinglePricingComponent(el) {\r\n initCountryCurrencyFilter(el, {\r\n onCountryChange: handleOnCurrencyChange,\r\n onCurrencyChange: handleOnCurrencyChange\r\n });\r\n}\r\n\r\nexport function initializePricingComponents() {\r\n const components = document.querySelectorAll('[data-class=\"js-pricing-component\"]');\r\n components.forEach(initSinglePricingComponent);\r\n}\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","export function checkUiLocation(element) {\r\n const locationMapping = [\r\n { selector: '.hero__cta', location: 'Hero Banner' },\r\n { selector: '.audience-hero__cta', location: 'Audience Hero Banner' },\r\n { selector: '.module-video-expander__cta', location: 'Video Expander Hero Banner' },\r\n { selector: '.event-hero__cta', location: 'Event Hero Banner' },\r\n { selector: '.product-category-hero__cta', location: 'Product Category Hero Banner' },\r\n { selector: '.fdn-image-card, .fdn-image-card__main-container', location: 'Image Card' },\r\n { selector: '.fdn-video-card, .fdn-video-card__main-container', location: 'Video Card' },\r\n { selector: '.fdn-blog-card', location: 'Blog Card' },\r\n { selector: '.fdn-image-cta', location: 'Image CTA' },\r\n { selector: '.fdn-box-card', location: 'Box Card' },\r\n { selector: '.fdn-event-card', location: 'Event Card' },\r\n { selector: '.fdn-text-card', location: 'Text Card' },\r\n { selector: '.fdn-static-card', location: 'Static Card' },\r\n { selector: '.fdn-stat-card', location: 'Statistics Card' },\r\n { selector: '.testimonial-carousel', location: 'Carousel Card' },\r\n { selector: '.fdn-basic-cta__btn-container', location: 'Sticky Footer cta' },\r\n { selector: '#zoomfornonprofits', location: 'nonprofits discount program' },\r\n { selector: '.fdn-copy-block', location: 'Copy Block' },\r\n { selector: '.fdn-ebook-quote__container', location: 'Ebook Quote' },\r\n { selector: '.fdn-pricing-card__main-container', location: 'Pricing Card' },\r\n { selector: '.fdn-alert-banner', location: 'Alert Banner' },\r\n { selector: '.fdn-form__description', location: 'Form CTA' },\r\n { selector: '.fdn-resource-link', location: 'Resource Link Group' },\r\n { selector: '.cta-container ', location: 'Cta Container' },\r\n { selector: '.fdn-pricingcard-uni-wrapper-container', location: 'Hero Pricing Card' },\r\n { selector: '.fdn-zdcm-pricing-cards', location: 'Pricing Card' },\r\n { selector: '.fdn-zdcm-feature-accordion', location: 'Feature Accordian Tab' },\r\n { selector: '.fdn-resource-block', location: 'Resource Card Block' },\r\n { selector: '.zdcm-top-title-wrapper', location: 'Title Section Block' }\r\n ]\r\n\r\n for (const { selector, location } of locationMapping) {\r\n if (element.closest(selector)) {\r\n return location\r\n }\r\n }\r\n\r\n //SELECTION OF COMPONENT OUTER CONTAINER\r\n const moduleColumns = element.closest('.module-columns')\r\n if (moduleColumns) {\r\n const iconBlock = moduleColumns.querySelectorAll('.fdn-icon-block')\r\n if (iconBlock) {\r\n return 'Icon Block Section'\r\n }\r\n }\r\n\r\n return ''\r\n}\r\n","export const contentTitleMap = [\r\n {\r\n blockClass: 'zdcm-top-title-wrapper',\r\n titleSelector: '.module-columns-title'\r\n },\r\n {\r\n blockClass: 'fdn-copy-block',\r\n titleSelector: '.fdn-copy-block__title'\r\n },\r\n {\r\n blockClass: 'fdn-basic-cta',\r\n titleSelector: '.fdn-basic-cta__header'\r\n },\r\n {\r\n blockClass: 'hero__content',\r\n titleSelector: '.hero__title'\r\n }\r\n];\r\n","import { checkUiLocation } from './common-ui-location-mapping'\r\nimport { contentTitleMap } from './contentTitleMap';\r\n\r\nfunction DataLayerCta() {\r\n this.buttonCta = Array.from(document.querySelectorAll(\r\n 'a.fdn-button, .fdn-resource-link li a, .fdn-image-card, .fdn-video-card a, .fdn-box-card a, .fdn-blog-card a, .fdn-alert-banner'\r\n )).filter(el => !el.closest('header'));\r\n}\r\n\r\nDataLayerCta.prototype._init = function () {\r\n this._trackLinkClicks()\r\n}\r\n\r\nDataLayerCta.prototype._trackLinkClicks = function () {\r\n this.buttonCta.forEach((link) =>\r\n link.addEventListener('click', (e) => this._handleLinkClick(e))\r\n )\r\n}\r\n\r\nDataLayerCta.prototype._isInExcludedSection = function (element) {\r\n const excludedSelectors = [\r\n '.bandwidth-calculator',\r\n '.fdn-zdcm-pricing-cards'\r\n ]\r\n return excludedSelectors.some(selector => {\r\n const section = document.querySelector(selector)\r\n return section && section.contains(element)\r\n })\r\n}\r\n\r\nDataLayerCta.prototype._handleLinkClick = function (e) {\r\n e.stopPropagation()\r\n let linkElement = e.target.closest('a')\r\n if (!linkElement || !Array.from(this.buttonCta).includes(linkElement)) return\r\n\r\n const pricingCard = linkElement.closest('.fdn-zdcm-pricing-card')\r\n if (pricingCard) {\r\n e.preventDefault()\r\n\r\n const productElem = pricingCard.querySelector('.fdn-zdcm-plan')\r\n const product = productElem?.innerText?.replace(/\\s+/g, ' ').trim() || 'Unknown Plan'\r\n const linkText = linkElement.innerText.split('\\n')[0].trim()\r\n const linkUrl = linkElement.href\r\n const uiLocation = checkUiLocation(linkElement)\r\n const contentTitle = this._getContentTitle(linkElement)\r\n\r\n const formattedLinkText = `${product} - ${linkText}`\r\n\r\n const eventData = {\r\n event: 'linkClick',\r\n linkText: formattedLinkText,\r\n linkUrl: linkUrl,\r\n uiLocation: uiLocation,\r\n contentTitle: contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n\r\n setTimeout(() => {\r\n window.location.href = linkUrl\r\n }, 200)\r\n\r\n return\r\n }\r\n\r\n if (this._isInExcludedSection(linkElement)) return\r\n\r\n let linkText = this._getVisibleText(linkElement)\r\n let linkUrl = linkElement.href\r\n let uiLocation = checkUiLocation(linkElement)\r\n const extensionRegex = /\\.(doc|txt|zip|exe|pdf|ppt|mp3|mp4)/i\r\n const isDownload = extensionRegex.test(linkUrl)\r\n\r\n if (isDownload) {\r\n this._handleDownloadEvent(linkElement, linkText, linkUrl, uiLocation)\r\n } else {\r\n this._handleLinkClickEvent(linkElement, linkText, linkUrl, uiLocation)\r\n }\r\n}\r\n\r\nDataLayerCta.prototype._handleDownloadEvent = function (linkElement, linkText, linkUrl, uiLocation) {\r\n const extensionRegex = /\\.(doc|txt|zip|exe|pdf|ppt|mp3|mp4)/i\r\n const match = linkUrl.match(extensionRegex)\r\n const contentTitle = this._getContentTitle(linkElement) || ''\r\n\r\n if (match) {\r\n let eventData = {\r\n event: 'fileDownload',\r\n linkUrl: linkUrl,\r\n linkText: linkText,\r\n uiLocation: uiLocation,\r\n fileExtension: match[1]?.toLowerCase(),\r\n contentTitle: contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n }\r\n}\r\n\r\nDataLayerCta.prototype._handleLinkClickEvent = function (linkElement, linkText, linkUrl, uiLocation) {\r\n const contentTitle = this._getContentTitle(linkElement)\r\n \r\n const eventData = {\r\n event: 'linkClick',\r\n linkText: linkText,\r\n linkUrl: linkUrl,\r\n uiLocation: uiLocation,\r\n contentTitle: contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n}\r\n\r\nDataLayerCta.prototype._getContentTitle = function (element) {\r\n const pricingCard = element.closest('.fdn-zdcm-pricing-card');\r\n if (pricingCard) {\r\n let parent = pricingCard.parentElement;\r\n while (parent) {\r\n const titleWrapper = parent.querySelector('.zdcm-top-title-wrapper .module-columns-title');\r\n if (titleWrapper && titleWrapper.innerText.trim()) {\r\n return titleWrapper.innerText.trim();\r\n }\r\n parent = parent.parentElement;\r\n }\r\n }\r\n\r\n let parent = element;\r\n while (parent) {\r\n for (const { blockClass, titleSelector } of contentTitleMap) {\r\n if (parent.classList?.contains(blockClass)) {\r\n const titleEl = parent.querySelector(titleSelector);\r\n if (titleEl && titleEl.innerText.trim()) {\r\n return titleEl.innerText.trim()\r\n }\r\n }\r\n }\r\n parent = parent.parentElement\r\n }\r\n\r\n const globalModuleTitle = document.querySelector('.zdcm-top-title-wrapper .module-columns-title');\r\n if (globalModuleTitle?.innerText.trim()) {\r\n return globalModuleTitle.innerText.trim()\r\n }\r\n\r\n const heading = element.closest('h1, h2, h3, h4');\r\n if (heading?.innerText.trim()) {\r\n return heading.innerText.trim()\r\n }\r\n\r\n parent = element.parentElement;\r\n while (parent) {\r\n const found = parent.querySelector('h1, h2, h3, h4');\r\n if (found?.innerText.trim()) {\r\n return found.innerText.trim()\r\n }\r\n parent = parent.parentElement\r\n }\r\n\r\n return ''\r\n}\r\n\r\nDataLayerCta.prototype._getVisibleText = function (element) {\r\n const buttonElement = element.querySelector('[class*=\"fdn-button\"], .fdn-resource-link__title')\r\n\r\n if (buttonElement) {\r\n return buttonElement.innerText.trim()\r\n }\r\n\r\n const textElements = element.querySelectorAll('span, h3, p')\r\n for (const el of textElements) {\r\n if (el.innerText.trim() && !el.classList.contains('visually-hidden')) {\r\n return el.innerText.trim()\r\n }\r\n }\r\n\r\n let visibleText = ''\r\n element.childNodes.forEach((node) => {\r\n if (node.nodeType === Node.TEXT_NODE) {\r\n const parent = node.parentElement\r\n if (parent && !parent.classList.contains('visually-hidden')) {\r\n visibleText += node.textContent.trim() + ' '\r\n }\r\n }\r\n })\r\n\r\n return visibleText.trim()\r\n}\r\n\r\nexport { DataLayerCta } \r\n","function DataLayerBlog() {\r\n}\r\nDataLayerBlog.prototype._init = function () {\r\n this._FormEvents()\r\n}\r\n\r\nDataLayerBlog.prototype._FormEvents = function () {\r\n this._blogFormSubmitted()\r\n this._blogFormError()\r\n}\r\n\r\nDataLayerBlog.prototype._blogFormSubmitted = function () {\r\n if (typeof $$epiforms !== 'undefined') {\r\n $$epiforms(document).ready(function myfunction() {\r\n $$epiforms(\"main.debug-blog .EPiServerForms\").on(\"formsSubmitted\",\r\n function (event, param1, param2) {\r\n let eventData = {\r\n event : 'blogsubscribe.submit',\r\n eventCategory: 'blog',\r\n eventAction: 'blog subscription submit',\r\n eventLabel: 'submit',\r\n formType: ' blog subscribe'\r\n }\r\n window.dataLayer.push(eventData)\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerBlog.prototype._blogFormError = function () {\r\n if (typeof $$epiforms !== 'undefined') {\r\n $$epiforms(document).ready(function myfunction() {\r\n $$epiforms(\"main.debug-blog .EPiServerForms\").on(\"formsStepValidating\",\r\n function (event) {\r\n if (!event.isValid) {\r\n let eventLabelName = document.querySelector('input[data-field-name=\"email\"]')?.parentNode.classList.contains(\"ValidationFail\") ? \"email\" : \"\";\r\n if (!document.querySelector(\".newsletter-signup__checkbox-wrap input\")?.checked) {\r\n eventLabelName = eventLabelName ? `${eventLabelName},checkbox` : \"checkbox\";\r\n }\r\n window.dataLayer.push({\r\n event: 'blogsubscribe.error',\r\n eventCategory: 'blog',\r\n eventAction: 'blog subscription error',\r\n eventLabel: eventLabelName,\r\n formType: ' blog subscribe'\r\n });\r\n }\r\n });\r\n });\r\n }\r\n}\r\nexport { DataLayerBlog }\r\n","function DataLayerSmbRoiCalculator() {\r\n this.container = document.querySelector('.bandwidth-calculator');\r\n if (!this.container) return; \r\n \r\n this.slider = this.container.querySelector('#rangeSlider');\r\n this.sliderInput = this.container.querySelector('#webinarParticipantsValue');\r\n this.appCards = this.container.querySelectorAll('.bandwidth-calculator__manualTabs-card');\r\n \r\n this.viewPlansButton = this.container.querySelector('a[title=\"View Plans\"]');\r\n this.contactSalesButton = Array.from(this.container.querySelectorAll('a')).find(\r\n (a) => a.textContent.trim().toLowerCase() === 'contact sales'\r\n );\r\n \r\n this.interactionCaptured = false;\r\n this._onFirstInteraction = this._onFirstInteraction.bind(this);\r\n }\r\n \r\n DataLayerSmbRoiCalculator.prototype._init = function () {\r\n if (!this.container) return;\r\n this._trackFirstInteraction();\r\n this._trackCtaClicks();\r\n };\r\n \r\n DataLayerSmbRoiCalculator.prototype._trackFirstInteraction = function () {\r\n const interactiveElements = [\r\n ...this.appCards,\r\n this.slider,\r\n this.sliderInput,\r\n this.viewPlansButton,\r\n this.contactSalesButton\r\n ].filter(Boolean);\r\n \r\n interactiveElements.forEach((el) => {\r\n el.addEventListener('click', this._onFirstInteraction, { once: true });\r\n });\r\n };\r\n \r\n DataLayerSmbRoiCalculator.prototype._onFirstInteraction = function (e) {\r\n if (this.interactionCaptured) return;\r\n this.interactionCaptured = true;\r\n \r\n let uiLocation = e.target.closest('.bandwidth-calculator__manualTabs-card') ? 'app click' :\r\n e.target === this.slider ? 'employee count slider' :\r\n e.target === this.sliderInput ? 'employee count input' :\r\n e.target === this.viewPlansButton ? 'view plans cta' :\r\n e.target === this.contactSalesButton ? 'contact sales cta' :\r\n 'unknown';\r\n \r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'roiCalculatorInteraction',\r\n roiCalculatorInteraction: 'smb roi calculator',\r\n roiCalculatorSelection: 'interaction start',\r\n uiLocation: uiLocation\r\n });\r\n };\r\n \r\n DataLayerSmbRoiCalculator.prototype._trackCtaClicks = function () {\r\n const handleClick = (e, label) => {\r\n const employeeCount = this.sliderInput?.value || '';\r\n const selectedApps = Array.from(this.appCards)\r\n .filter(card => card.classList.contains('selected'))\r\n .map(card => {\r\n const category = card.querySelector('p')?.textContent?.trim()?.toLowerCase() || 'unknown';\r\n const name = card.querySelector('h4')?.textContent?.trim()?.toLowerCase() || 'unnamed';\r\n return `${category} - ${name}`;\r\n });\r\n \r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'roiCalculatorInteraction',\r\n roiCalculatorInteraction: 'smb roi calculator',\r\n roiCalculatorSelection: label,\r\n employeeCount: employeeCount,\r\n numAppsSelected: selectedApps.length,\r\n appsSelectedArray: selectedApps\r\n });\r\n };\r\n \r\n if (this.viewPlansButton) {\r\n this.viewPlansButton.addEventListener('click', (e) => handleClick(e, 'view plans'));\r\n }\r\n \r\n if (this.contactSalesButton) {\r\n this.contactSalesButton.addEventListener('click', (e) => handleClick(e, 'contact sales'));\r\n }\r\n };\r\n \r\n export { DataLayerSmbRoiCalculator };\r\n","function DataLayerNavigation() { \r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) {\r\n return;\r\n }\r\n\r\n let eventData = { event: eventName };\r\n // Ensure undefined values are correctly passed\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n })\r\n window.dataLayer.push(eventData);\r\n }\r\n }\r\n}\r\nDataLayerNavigation.prototype._init = function () {\r\n try {\r\n this._logoIntraction()\n this._logoIntractionForShortHeader()\r\n this._menuWithExpand()\r\n this._menuWithoutExpand()\r\n this._logoTracking()\r\n this._universalDesktopMenu()\r\n this._universalMobileMenu()\r\n this._resourceMenu()\r\n this._mobileSignUp()\r\n this._mobilePricingEvent()\r\n this._zoomProductAndContactSaleButton()\r\n this._trackClickEvents()\r\n }\r\n catch (e) { }\r\n}\r\n\r\nDataLayerNavigation.prototype._getUiLocation = function () {\r\n const parentCategory = document.querySelector('ul.main-nav__list li.active button')?.innerText;\r\n let uiLocation = \"universal nav\";\r\n if (parentCategory) {\r\n uiLocation = \"universal nav - \" + parentCategory.toLowerCase() + \" menu\";\r\n }\r\n return uiLocation;\r\n}\r\n\r\nDataLayerNavigation.prototype._getUiLocationMobile = function() {\r\n const parentCategory = document.querySelector('ul.mobile-menu__list.is-accordion li.mobile-menu__list-item.is-active button')?.innerText;\r\n let uiLocation = \"universal nav\";\r\n if (parentCategory) {\r\n uiLocation = \"universal nav - \" + parentCategory.toLowerCase() + \" menu\";\r\n }\r\n return uiLocation;\r\n}\r\nDataLayerNavigation.prototype._categoryState = function(event, linkText) {\r\n const getLinkType = event.currentTarget.getAttribute(\"aria-expanded\") || event.target.getAttribute(\"aria-expanded\") || \"\";\r\n if (getLinkType && (getLinkType == \"false\")) {\r\n var updateVal = linkText + \" - collapse\";\r\n } else if (getLinkType && (getLinkType == \"true\")) {\r\n var updateVal = linkText + \" - expand\";\r\n }\r\n return updateVal.toLowerCase();\r\n}\r\n\r\n\r\nDataLayerNavigation.prototype._logoIntraction = function () {\r\n document.querySelector(\".main-nav__logo\")?.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': 'zoom logo',\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n}\n\nDataLayerNavigation.prototype._logoIntractionForShortHeader = function () {\n document.querySelector(\"nav.fdn-simple-header a\")?.addEventListener('click', function (event) {\n const href = event.currentTarget.href || event.target.href || undefined;\n window.dataLayer.push({\n 'event': 'navClick',\n 'linkText': 'zoom logo',\n 'linkUrl': href,\n 'uiLocation': 'universal nav'\n })\n })\n}\r\n\r\nDataLayerNavigation.prototype._menuWithoutExpand = function () {\r\n document.querySelectorAll(\".main-nav__list-item a.main-nav__link\").forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\n if (linkText) {\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._menuWithExpand = function () {\r\n document.querySelectorAll(\".main-nav__list-item button, .mobile-menu__list-item button\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n window.dataLayer.push({\r\n 'event': 'linkClick',\r\n 'linkText': this._categoryState(event, linkText),\r\n 'linkUrl': undefined,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._logoTracking = function () {\r\n document.querySelectorAll(\".nav-title-logo\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.closest('a')?.getAttribute(\"href\");\r\n const linkText = event.currentTarget.getAttribute(\"title\") || event.target.getAttribute(\"title\") || '';\r\n const isDesktop = event.currentTarget.closest('div.megamenu-products--subtitle');\r\n const isMobileBanner = event.currentTarget.closest('div.mobile-megamenu-products--subtitle');\r\n const isMobile = event.currentTarget.closest('[class^=\"mobile-megamenu\"]');\r\n\r\n var uiLocation = isMobile ? this._getUiLocationMobile() : this._getUiLocation()\r\n if (isDesktop || isMobileBanner) {\r\n uiLocation = uiLocation + ' - ' + linkText.toLowerCase() + ' banner'\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href || undefined,\r\n 'uiLocation': uiLocation.toLowerCase()\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._universalDesktopMenu = function () {\r\n document.querySelectorAll(\"div.megamenu__column-title a.fdn-button, div.megamenu__list-item-heading a, div.apps-ecosystem a, div.megamenu-products--megamenu__list-item-heading-description a,li.action-bar-primary a, li.action-bar-secondary a\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n // const linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n const getClosestClass = event.currentTarget.closest('div.megamenu-products--megamenu__list-item-heading-description');\r\n const isMobile = event.currentTarget.closest('[class^=\"mobile-megamenu\"]');\r\n const parentCategory = document.querySelector('ul.main-nav__list li.active button')?.innerText;\r\n var uiLocation = isMobile ? this._getUiLocationMobile() : this._getUiLocation()\r\n if (getClosestClass) {\r\n uiLocation = uiLocation + ' - zoom ai companion banner'\r\n }\r\n\r\n\r\n // Extract only the visible text (excluding )\r\n let linkText = [...link.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \");\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText?.trim()?.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': uiLocation.toLowerCase()\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._universalMobileMenu = function () {\r\n document.querySelectorAll(\"div.mobile-megamenu__list-item-heading a, div.mobile-megamenu-products--megamenu__list-item-heading-description a,div.mobile-megamenu__actionBar ul li a\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n // const linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n const getClosestClass = event.currentTarget.closest('div.mobile-megamenu-products--megamenu__list-item-heading-description');\r\n var uiLocation = this._getUiLocationMobile()\r\n if (getClosestClass) {\r\n uiLocation = uiLocation + ' - zoom ai companion banner'\r\n }\r\n\r\n\r\n // Extract only the visible text (excluding )\r\n let linkText = [...link.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \");\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText?.trim()?.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': uiLocation.toLowerCase()\r\n })\r\n })\r\n })\r\n\r\n document.querySelector('.main-nav__hamburger-trigger')?.addEventListener('click', function (event) {\r\n let attrVal = event.currentTarget.getAttribute(\"aria-expanded\") || event.target.getAttribute(\"aria-expanded\") || \"\"\r\n let isOpen = attrVal === \"true\";\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: isOpen ? \"expand\" : \"close\",\r\n linkUrl: undefined,\r\n uiLocation: \"universal nav mobile\"\r\n })\r\n }.bind(this));\r\n\r\n document.querySelectorAll('.mobile-menu__secondary-nav .mobile-menu__list-item a:not(.resources-nav-search)').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n let childNodesArray = Array.from(cta.childNodes);\r\n let linkText = childNodesArray?.length > 1 ? childNodesArray\r\n .filter(node => node.nodeType === Node.TEXT_NODE) // Get only text nodes\r\n .map(node => node.textContent.trim()) // Extract the text and remove any extra spaces\r\n .join(' ') : cta.innerText?.trim();\r\n\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText?.toLowerCase() || \"\",\r\n linkUrl: cta.href || undefined,\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this));\r\n })\r\n\r\n document.querySelector('.megamenu__column__businessService .megamenu__head .megamenu__column-title a')?.addEventListener(\"click\", function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const cta = event.currentTarget?.innerText || event.target?.innerText;\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: cta.toLowerCase() || undefined,\r\n linkUrl: href,\r\n uiLocation: \"universal nav - business services menu\"\r\n })\r\n }.bind(this));\r\n\r\n document.querySelector('.mobile-megamenu__column__businessService .mobile-megamenu__head .mobile-megamenu__column-title a')?.addEventListener(\"click\", function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const cta = event.currentTarget?.innerText || event.target?.innerText;\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: cta.toLowerCase() || undefined,\r\n linkUrl: href,\r\n uiLocation: \"universal nav - business services menu\"\r\n })\r\n }.bind(this))\r\n}\r\n\r\nDataLayerNavigation.prototype._resourceMenu = function () {\r\n document.querySelectorAll(\".resources-nav__dropdown-link:not([href*='download']):not([href*='join']):not([href*='webmeeting'])\").forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n\r\n let cta = event.target.closest('.resources-nav__dropdown-list-item').querySelector('a');\n\n let linkText = ([...cta.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\n\r\n const href = cta.href || undefined;\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - product selector menu'\r\n })\r\n })\r\n })\r\n\r\n document.querySelectorAll(\"button.resources-nav-product-menu\").forEach(link => {\r\n link.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = this._categoryState(event, \"product selector menu\");\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n\r\n document.querySelector(\"button.resources-nav-account-option\")?.addEventListener('click', function (event) {\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': 'my account',\r\n 'linkUrl': \"#\",\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n\r\n document.querySelectorAll('li.resources-nav__list-item.nav__list-item-webapp > a').forEach(menuLink => {\r\n menuLink.addEventListener(\"click\", function (event) {\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: menuLink.innerText?.trim().toLowerCase() || \"\",\r\n linkUrl: menuLink.href || undefined,\r\n uiLocation: \"universal nav - product selector menu\"\r\n })\r\n }.bind(this))\r\n })\r\n\r\n document.querySelectorAll('.resources-nav-search').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n this.DataLayerHelper.pushEvent(\"searchInteraction\", {\r\n searchInteraction: 'search bar clicked',\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this))\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._mobileSignUp = function () {\r\n document.querySelectorAll('.mobile-menu__buttons-container a').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n let childNodesArray = Array.from(cta.childNodes);\r\n let linkText = childNodesArray?.length > 1 ? childNodesArray\r\n .filter(node => node.nodeType === Node.TEXT_NODE) // Get only text nodes\r\n .map(node => node.textContent.trim()) // Extract the text and remove any extra spaces\r\n .join(' ') : cta.innerText?.trim();\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText?.toLowerCase() || \"\",\r\n linkUrl: cta.href || undefined,\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this))\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._mobilePricingEvent = function () {\r\n document.querySelectorAll('.resources-nav__list-item.pricing a').forEach(cta => {\r\n cta.addEventListener(\"click\", function (event) {\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: cta?.innerText?.toLowerCase() || \"\",\r\n linkUrl: cta.href || undefined,\r\n uiLocation: \"universal nav\"\r\n })\r\n }.bind(this))\r\n })\r\n}\r\n\r\nDataLayerNavigation.prototype._zoomProductAndContactSaleButton = function () {\r\n document.querySelectorAll(\"li.resources-nav__list-item.nav__list-item-webapp .resources-nav__dropdown-list-webapprestricted .fdn-button\").forEach(button => {\r\n button.addEventListener(\"click\", function (event) {\r\n if (!event) return\n let linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n const linkUrl = event.currentTarget?.href || undefined\r\n let uiLocation = \"universal nav - product selector menu\"\r\n // Push event data to the data layer\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText,\r\n linkUrl: linkUrl,\r\n uiLocation: uiLocation\r\n });\r\n }.bind(this));\r\n });\r\n}\r\n\r\nDataLayerNavigation.prototype._trackClickEvents = function (event) {\r\n document.addEventListener(\"click\", this._trackNavigationEvents.bind(this));\r\n}\r\n\r\nDataLayerNavigation.prototype._trackNavigationEvents = function (event) {\r\n this._trackSolutionsMenuClick(event)\r\n this._trackResourcesMenuClick(event)\r\n this._trackNavLinksClick(event)\r\n}\r\n// Track clicks in the Solutions menu\r\nDataLayerNavigation.prototype._trackSolutionsMenuClick = function (event) {\r\n let solutionsAnchor = event.target.closest(\"section.megamenu-solutions[aria-label='Solutions'] .megamenu__head a\");\r\n\r\n if (solutionsAnchor) {\r\n let childNodesArray = Array.from(solutionsAnchor.childNodes);\r\n let linkText = childNodesArray\r\n .filter(node => node.nodeType === Node.TEXT_NODE) // Get only text nodes\r\n .map(node => node.textContent.trim()) // Extract the text and remove any extra spaces\r\n .join(' ');\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: linkText?.toLowerCase() || \"\",\r\n linkUrl: solutionsAnchor.href || undefined,\r\n uiLocation: \"universal nav - solutions menu\"\r\n })\r\n }\r\n}\r\n// Track clicks in the Resources menu\r\nDataLayerNavigation.prototype._trackResourcesMenuClick = function (event) {\r\n let resourcesMenuLink = event.target.closest(\".megamenu__highlight-item-cta\");\r\n let mobileResourcesMenuLink = event.target.closest(\".mobile-megamenu__highlight-item-heading a\")\r\n if (mobileResourcesMenuLink)\r\n resourcesMenuLink = mobileResourcesMenuLink\r\n\r\n if (resourcesMenuLink) {\r\n try {\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: resourcesMenuLink.innerText?.trim().toLowerCase() || \"\",\r\n linkUrl: resourcesMenuLink.href || undefined,\r\n uiLocation: \"universal nav - resources menu\"\r\n })\r\n } catch (e) {\r\n }\r\n }\r\n}\r\n// Universal Navigation Menu\r\nDataLayerNavigation.prototype._trackNavLinksClick = function (event) {\r\n\n let link = event.target.closest(\r \".main-nav__right .resources-nav__list-item:not(.pricing) > a:not(.resources-nav-search), \" +\r \".main-nav__right .resources-nav__list-item:not(.pricing) > button.resources-nav__dropdownrestricted, \" +\r \".main-nav__right .resources-nav__list-item:not(.pricing) .resources-nav__dropdown-listrestricted .resources-nav__dropdown-link[href*='download']\"\r );\r\n\r\n let dropdown = link?.closest(\".resources-nav__dropdownrestricted\");\r\n\r\n if (!link) {\r\n return;\r\n }\r\n try {\n let linkText = ([...link.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase(),\r\n linkUrl = link.href || undefined,\r\n uiLocation = link.matches(\".resources-nav__dropdown-listrestricted .resources-nav__dropdown-link[href*='download']\")\r\n ? \"universal nav - meet\"\r\n : \"universal nav\";\r\n\r\n if (dropdown) {\r\n let isOpen = dropdown.getAttribute(\"aria-expanded\") === \"true\";\r\n let action = `${linkText} - ${isOpen ? \"expand\" : \"collapse\"}`;\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: action,\r\n linkUrl: undefined,\r\n uiLocation\r\n })\r\n } else {\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText,\r\n linkUrl,\r\n uiLocation\r\n })\r\n }\r\n } catch (e) {\r\n }\r\n}\r\n\r\nexport { DataLayerNavigation }\r\n","function DataLayerNavigationVfive() {\r\n this.universalNavMobileLocation = 'universal nav mobile'\r\n this.universalNavDesktopLocation = 'universal nav'\r\n this.navClickEventName = 'navClick'\r\n this.searchIntractionEvent = 'searchInteraction'\r\n this.searchBarClickIntraction = 'search bar clicked'\r\n\r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) return;\r\n let eventData = { event: eventName };\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n });\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(eventData);\r\n }\r\n };\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._init = function () {\r\n try {\r\n this._mobileHamburgerClick(this.navClickEventName, this.universalNavMobileLocation);\r\n this._searchClickIntraction(this.searchIntractionEvent, this.searchBarClickIntraction, this.universalNavMobileLocation);\r\n this._mobileFooterMenuItems(this.navClickEventName, this.universalNavMobileLocation);\r\n this._waffleMenu(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._waffleButtons(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._waffleViewAll(this.navClickEventName)\r\n this._zoomLogoEvent()\r\n this._singleLinkNavEvent()\r\n this._universalNavigationMenu()\r\n this._userProfile(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._userAccountDetail(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._pricingEvent(this.navClickEventName, this.universalNavDesktopLocation)\r\n this._productMenuTabsClicks()\r\n this._productMenuTabsLearnMoreClicks()\r\n this._downloadCenterClicks()\r\n this._DeveloperAppCenterClicks()\r\n this._trackAllUniversalNavHubPageClicks()\r\n this._trackAllUniversalNavMenuClicks()\r\n this._searchClicks()\r\n this._trackMeetExpandCollapse()\r\n this._trackMeetDropdownLinks()\r\n this._trackMobileNavLinkClicks()\r\n this._trackMobileNavBackClicks()\r\n this._applicationDownloadCenterClicks(this.navClickEventName, this.universalNavMobileLocation)\r\n this._productAppMobileClicks(this.navClickEventName, this.universalNavMobileLocation)\r\n this._moblieSignUpClicks(this.navClickEventName, this.universalNavMobileLocation)\r\n this._productsTabItemToggle()\r\n }\r\n catch (e) { }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._productsTabItemToggle = function () {\r\n const links = document.querySelectorAll(\"#accordion-content-products .zdcm-megamenu__workplace__column > ul > li.zdcm-megamenu__list-item-heading--disabled\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (event.currentTarget.getAttribute(\"aria-expanded\") == \"true\") {\r\n linkText = linkText.toLowerCase() + \" - expand\"\r\n } else {\r\n linkText = linkText.toLowerCase() + \" - collapse\"\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - products menu'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n//Mobile Menu Tracking\r\nDataLayerNavigationVfive.prototype._applicationDownloadCenterClicks = function (navClickEventName, universalNavMobileLocation) {\r\n const links = document.querySelectorAll(\".zdcm-mobile-menu .zdcm-mobile-menu__footer .zdcm-download-wrapper .zdcm-mobile-download-card a, .zdcm-main-nav .zdcm-download-wrapper .zdcm-mobile-download-card a, .zdcm-mobile-menu .zdcm-tablet-menu__footer .zdcm-download-wrapper .zdcm-mobile-download-card a,.zdcm-tablet-menu__itmes .zdcm-mobile-download-card a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-mobile-donwload-content-title\")?.innerText?.split('\\n')[0].trim() ?? '';\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._productAppMobileClicks = function (navClickEventName, universalNavMobileLocation) {\r\n const links = document.querySelectorAll(\".zdcm-mobile-menu .zdcm-mobile-menu__footer .zdcm-mobile-level-2-items .zdcm-mobile-download-card > a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-mobile-donwload-content-item\")?.textContent.trim() ?? '';\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._moblieSignUpClicks = function (navClickEventName, universalNavMobileLocation) { \r\n const links = document.querySelectorAll(\".zdcm-mobile-menu .zdcm-mobile-menu__footer .zdcm-footer-cta-wrapper, .zdcm-mobile-profile-actions-cta, .zdcm-mobile-menu .zdcm-tablet-menu__footer .zdcm-footer-cta-wrapper,.zdcm-hub-mobile-menu-static-items ul > li > a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = link.querySelector(\"span.visually-hidden\")?.textContent.trim() ?? '';\r\n if (!linkText || linkText == \"\") {\r\n var linkText = event.currentTarget.innerText;\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._pricingEvent = function (navClickEventName, universalNavDesktopLocation) {\r\n const links = document.querySelectorAll('li.zdcm-mobile-menu__list-item a.zdcm-mobile-menu__link');\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavDesktopLocation\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\n\r\nDataLayerNavigationVfive.prototype._userProfile = function (navClickEventName, universalNavDesktopLocation) {\r\n var userInfoClick = document.querySelector('button.zdcm-user-info');\r\n\r\n if (userInfoClick != null) {\r\n userInfoClick.addEventListener('click', () => {\r\n\r\n let eventData = {\r\n event: navClickEventName,\r\n linkText: 'my account',\r\n linkUrl: undefined,\r\n uiLocation: universalNavDesktopLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._userAccountDetail = function (navClickEventName, universalNavDesktopLocation) {\r\n const links = document.querySelectorAll('li.zdcm-resources-nav__dropdown-list-item a');\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.getAttribute(\"Title\")\r\n if (linkText == \"\" || linkText == null) {\r\n var downloadCenter = event.currentTarget.querySelector(\".zdcm-donwload-content-title\")\r\n if (downloadCenter != null) {\r\n linkText = downloadCenter.innerText;\r\n }\r\n else {\r\n linkText = \"my account\";\r\n }\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavDesktopLocation + ' - my account'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._waffleMenu = function (navClickEventName, universalNavDesktopLocation) {\r\n var waffleMenuClick = document.querySelector('li.zdcm-item-waffle button.zdcm-waffle-menu');\r\n\r\n if (waffleMenuClick != null) {\r\n waffleMenuClick.addEventListener('click', () => {\r\n var linkText = (waffleMenuClick.ariaExpanded == \"true\") ? \"product selector menu - expand\" : \"product selector menu - close\";\r\n\r\n let eventData = {\r\n event: navClickEventName,\r\n linkText: linkText,\r\n uiLocation: universalNavDesktopLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._waffleViewAll = function (navClickEventName) {\r\n var waffleViewAllClick = document.querySelector('span.zdcm-waffle-title-cta a');\r\n\r\n if (waffleViewAllClick != null) {\r\n waffleViewAllClick.addEventListener('click', (event) => {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - product selector menu'\r\n })\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\nDataLayerNavigationVfive.prototype._waffleButtons = function (navClickEventName, universalNavDesktopLocation) {\r\n const links = document.querySelectorAll('li.zdcm-item-waffle div.zdcm-megamenu.zdcm-megamenu-fit > div > a, li.zdcm-item-waffle div.zdcm-megamenu.zdcm-megamenu-fit > div > div > a');\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n var textContent = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n linkText = textContent ? textContent : linkText.toLowerCase();\r\n }\r\n window.dataLayer.push({\r\n 'event': navClickEventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavDesktopLocation + ' - product selector menu'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\n\r\nDataLayerNavigationVfive.prototype._mobileHamburgerClick = function (navClickEventName, universalNavMobileLocation) {\r\n var mobileHamburger = document.querySelector('li.zdcm-mobile-hamburger button.zdcm-main-nav__hamburger-trigger');\r\n\r\n if (mobileHamburger != null) {\r\n mobileHamburger.addEventListener('click', () => {\r\n var linkText = (mobileHamburger.ariaExpanded == \"true\") ? \"expand\" : \"close\";\r\n\r\n let eventData = {\r\n event: navClickEventName,\r\n linkText: linkText,\r\n uiLocation: universalNavMobileLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._searchClickIntraction = function (searchIntractionEvent, searchBarClickIntraction, universalNavMobileLocation) {\r\n const observer = new MutationObserver(() => {\r\n const searchBoxClick = document.querySelector('#standaloneSearchboxMobile .magic-box-input input');\r\n if (searchBoxClick) {\r\n searchBoxClick.addEventListener('click', () => {\r\n const eventData = {\r\n event: searchIntractionEvent,\r\n searchInteraction: searchBarClickIntraction,\r\n uiLocation: universalNavMobileLocation\r\n };\r\n window.dataLayer.push(eventData);\r\n });\r\n observer.disconnect(); // Stop observing once it's bound\r\n }\r\n });\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._mobileFooterMenuItems = function (navClickEventName, universalNavMobileLocation) {\r\n const links = document.querySelectorAll(\"div.zdcm-mobile-footer-menu-items ul li a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n var eventName = navClickEventName;\r\n if (href && href.includes('tel:')) {\r\n eventName = \"phoneClick\";\r\n }\r\n if (linkText) {\r\n linkText = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n }\r\n if (eventName != \"phoneClick\") {\r\n window.dataLayer.push({\r\n 'event': eventName,\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': universalNavMobileLocation\r\n })\r\n }\r\n })\r\n })\r\n }\r\n}\r\n\r\n/** Zoom Logo Event **/\r\nDataLayerNavigationVfive.prototype._zoomLogoEvent = function() {\r\n document.querySelector(\".zdcm-main-nav__left .zdcm-main-nav__logo\")?.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': 'zoom logo',\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n });\r\n}\r\n\r\n\r\nDataLayerNavigationVfive.prototype._singleLinkNavEvent = function () {\r\n const links = document.querySelectorAll(\".zdcm-main-nav__list-item > a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n var textContent = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n linkText = textContent ? textContent : linkText.toLowerCase();\r\n }\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText,\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\n/** Universal Navigation Menu **/\r\nDataLayerNavigationVfive.prototype._universalNavigationMenu = function () {\r\n const links = document.querySelectorAll(\".zdcm-main-nav__left .zdcm-main-nav__megamenu-trigger\");\r\n if (links.length > 0) {\r\n links.forEach(function (item) {\r\n item?.addEventListener('click', function (event) {\r\n const clickedItem = event.currentTarget;\r\n const labelText = clickedItem.textContent.trim().toLowerCase();\r\n const href = clickedItem.href || undefined;\r\n const parentLi = clickedItem.closest('li');\r\n\r\n setTimeout(function () {\r\n const isExpanded = parentLi && parentLi.classList.contains('zdcm-active');\r\n const linkText = `${labelText} - ${isExpanded ? 'expand' : 'collapse'}`;\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'linkClick',\r\n linkText: linkText,\r\n linkUrl: href,\r\n uiLocation: 'universal nav'\r\n });\r\n }, 50); // let class update apply\r\n });\r\n });\r\n }\r\n}\r\n\r\n/** Universal Navigation menu - Product menu Ends **/\r\n\r\nDataLayerNavigationVfive.prototype._productMenuTabsClicks = function (){\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab, .zdcm-mobile-menu__main-nav #accordion-content-products .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab, .zdcm-mobile-menu__content-panel .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".fdn-tabs__title\")?.textContent.trim() ?? '';\r\n if (!href) {\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - products menu'\r\n });\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._productMenuTabsLearnMoreClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-wrapper .fdn-tabs__tablist .fdn-tabs__tab a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n var linkText = event.currentTarget?.offsetParent?.getAttribute(\"title\")?.toLowerCase() || \"\"\r\n if (href) {\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText + ' - learn more',\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - products menu'\r\n });\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._downloadCenterClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-action-wrapper .zdcm-items-right .zdcm-megamenu-products-download-card:not(.zdcm-megamenu-products-support) a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-donwload-content-title\")?.textContent.trim() ?? '';\r\n\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._DeveloperAppCenterClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-products-action-wrapper .zdcm-megamenu-products-action:not(.zdcm-items-right) .zdcm-megamenu-products-download-card a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\".zdcm-donwload-content-title\")?.textContent.trim() ?? '';\r\n\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackAllUniversalNavMenuClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-megamenu-products-wrapper .zdcm-megamenu-products-categories .zdcm-megamenu__workplace__column .zdcm-megamenu__list-item a, nav.zdcm-mobile-menu .zdcm-accordion-content .zdcm-megamenu-products-wrapper .zdcm-megamenu-products-categories .zdcm-megamenu__workplace__column .zdcm-megamenu__list-item a,.zdcm-mobile-menu__content-panel .zdcm-megamenu-products-wrapper .zdcm-megamenu-products-categories .zdcm-megamenu__workplace__column .zdcm-megamenu__list-item a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = link.querySelector(\"span.visually-hidden\")?.textContent.trim() ?? '';\r\n const menuName = event.target.closest('.zdcm-megamenu')?.getAttribute(\"aria-label\")?.toLowerCase();\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - ' + menuName + ' menu'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\n//Function for hub page new Navigation\r\nDataLayerNavigationVfive.prototype._trackAllUniversalNavHubPageClicks = function () {\r\n const links = document.querySelectorAll(\"nav.zdcm-main-nav .zdcm-main-nav__left .zdcm-main-nav__list-item .zdcm-megamenu-fit .zdcm-main-nav__dropdown-list-item a\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const href = event.currentTarget.href || event.target.href || undefined;\r\n const linkText = event.currentTarget.innerText || '';\r\n\r\n window.dataLayer.push({\r\n 'event': 'navClick',\r\n 'linkText': linkText.toLowerCase(),\r\n 'linkUrl': href,\r\n 'uiLocation': 'universal nav - ' + linkText.toLowerCase() + ' menu'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\n/** Universal Nav Menu - Search **/\r\nDataLayerNavigationVfive.prototype._searchClicks = function () {\r\n const links = document.querySelectorAll(\"#coveoSearchHeader\");\r\n if (links.length > 0) {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n const isExpanded = link.getAttribute('aria-expanded') === 'true';\r\n\r\n window.dataLayer.push({\r\n 'event': 'searchInteraction',\r\n 'searchInteraction': isExpanded ? 'search bar clicked' : 'clear search',\r\n 'uiLocation': 'universal nav'\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMeetExpandCollapse = function () {\r\n let meetButtons = document.querySelectorAll('.zdcm-item-meet > .zdcm-main-nav__megamenu-trigger')\r\n if (meetButtons.length > 0) {\r\n meetButtons.forEach((button, index) => {\r\n let previousState = button.getAttribute('aria-expanded')\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.attributeName === 'aria-expanded') {\r\n const newState = button.getAttribute('aria-expanded')\r\n if (newState !== previousState) {\r\n previousState = newState\r\n const nextState = newState === 'true' ? 'expand' : 'collapse'\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText: `Meet - ${nextState}`,\r\n linkUrl: undefined,\r\n uiLocation: 'universal nav'\r\n })\r\n }\r\n }\r\n })\r\n })\r\n observer.observe(button, { attributes: true })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMeetDropdownLinks = function () {\r\n const dropdownLinks = document.querySelectorAll('.zdcm-item-meet .zdcm-main-nav__dropdown-link');\r\n if (dropdownLinks.length > 0) {\r\n dropdownLinks.forEach((link) => {\r\n link.addEventListener('click', () => {\r\n const linkText = link.innerText?.split('\\n')[0].trim()\r\n const linkUrl = link.href\r\n\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText: linkText,\r\n linkUrl: linkUrl,\r\n uiLocation: 'universal nav - meet'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMobileNavLinkClicks = function () {\r\n // Track accordion buttons (Products, AI, Solutions)\r\n const accordionButtons = document.querySelectorAll('.zdcm-mobile-menu__accordion.js-accordion-trigger')\r\n if (accordionButtons.length > 0) {\r\n accordionButtons.forEach((btn) => {\r\n btn.addEventListener('click', () => {\r\n const ariaExpand = btn?.getAttribute(\"aria-expanded\");\r\n const sectionName = btn?.textContent?.trim().toLowerCase();\r\n var linkText = sectionName;\r\n if (ariaExpand == 'true') {\r\n linkText = linkText + \" - expand\"\r\n } else {\r\n linkText = linkText + \" - collapse\"\r\n }\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: linkText,\r\n linkUrl: undefined,\r\n uiLocation: 'universal nav mobile'\r\n })\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerNavigationVfive.prototype._trackMobileNavBackClicks = function () {\r\n const accordionButtons = document.querySelectorAll('.zdcm-mobile-menu__accordion.js-accordion-trigger');\r\n accordionButtons.forEach((btn) => {\r\n btn.addEventListener('click', () => {\r\n const sectionName = btn.closest('li')?.getAttribute('data-content')?.trim() || btn.textContent.trim();\r\n setTimeout(() => {\r\n const backBtn = document.querySelector('.zdcm-mobile-back');\r\n if (backBtn) {\r\n backBtn.removeEventListener('click', backBtn._dlHandler);\r\n const handler = () => {\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: sectionName.toLowerCase() + ' - collapse',\r\n linkUrl: undefined,\r\n uiLocation: 'universal nav mobile',\r\n })\r\n }\r\n\r\n backBtn._dlHandler = handler;\r\n backBtn.addEventListener('click', handler);\r\n }\r\n }, 300)\r\n });\r\n });\r\n};\r\n\r\n\r\nexport { DataLayerNavigationVfive }\r\n","function DataLayerFooter() {\r\n this.footer = document.querySelector('.footer-content');\r\n\r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) return;\r\n let eventData = { event: eventName }\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n });\r\n\r\n window.dataLayer = window.dataLayer || []\r\n window.dataLayer.push(eventData)\r\n }\r\n };\r\n}\r\n\r\nDataLayerFooter.prototype._init = function () {\r\n if (this.footer) {\r\n this._trackFooterLinks()\r\n this._trackSocialLinks()\r\n this._trackLegalLinks()\r\n this._trackCurrencyDropdown()\r\n this._trackLanguageDropdown()\r\n this._trackFooterDesktopDownloadCenter()\r\n this._trackFooterMobileDownloadLinks()\r\n this._trackMobileCurrencyLanguageDropdowns()\r\n this._trackMobilePrimaryDropdownToggles()\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackFooterLinks = function () {\r\n this.footer.querySelectorAll('.zdcm-module-footer-nav__link').forEach(link => {\r\n link.addEventListener('click', (e) => {\r\n const href = link.href || undefined\r\n\r\n if (href && href.startsWith('tel:')) {\r\n return;\r\n }\r\n\r\n const linkLabel = [...link.childNodes]\r\n .filter(n => n.nodeType === Node.TEXT_NODE)\r\n .map(n => n.textContent.trim())\r\n .join(\" \").toLowerCase();\r\n\r\n const section = link.closest('section')\r\n const sectionHeader = section?.querySelector('.zdcm-module-footer-nav__title')?.getAttribute('Title')?.toLowerCase();\r\n\r\n const linkText = sectionHeader && linkLabel ? `${sectionHeader} - ${linkLabel}` : linkLabel;\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText,\r\n linkUrl: href,\r\n uiLocation: \"universal footer\"\r\n });\r\n });\r\n });\r\n\r\n this.footer.querySelectorAll('.zdcm-module-footer-nav__title').forEach(mainLink => {\r\n if (window.innerWidth > 1024) {\r\n mainLink.addEventListener('click', (e) => {\r\n const href = mainLink.href || undefined;\r\n const linkText = mainLink.innerText?.split('\\n')[0].trim()\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText,\r\n linkUrl: href,\r\n uiLocation: \"universal footer\"\r\n });\r\n });\r\n }\r\n });\r\n};\r\n\r\nDataLayerFooter.prototype._trackSocialLinks = function () {\r\n this.footer.querySelectorAll('ul.social__list li.social__item a.social__link').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const platform = link.title?.trim().toLowerCase() || '';\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: platform,\r\n linkUrl: link.href,\r\n uiLocation: \"universal footer\"\r\n })\r\n })\r\n })\r\n}\r\n\r\nDataLayerFooter.prototype._trackLegalLinks = function () {\r\n this.footer.querySelectorAll('div.utility-nav ul.utility-nav__list li.utility-nav__item a').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const text = link.innerText?.trim().toLowerCase() || '';\r\n\r\n this.DataLayerHelper.pushEvent(\"navClick\", {\r\n linkText: text,\r\n linkUrl: link.href || \"\",\r\n uiLocation: \"universal footer\"\r\n });\r\n });\r\n });\r\n}\r\n\r\nDataLayerFooter.prototype._trackCurrencyDropdown = function () {\r\n const currencyBtn = this.footer.querySelector('[data-template=\"js-currency-content\"]');\r\n\r\n if (currencyBtn) {\r\n let isExpanded = false\r\n currencyBtn.addEventListener('click', () => {\r\n // Toggle our own flag on click\r\n isExpanded = !isExpanded;\r\n const state = isExpanded ? 'expand' : 'collapse'\r\n\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `currency - ${state}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Add selection listeners only when expanding\r\n if (isExpanded) {\r\n const currencyButtons = document.querySelectorAll('#js-currency-content .zdcm-module-footer-dropdown__link');\r\n currencyButtons.forEach(button => {\r\n if (!button.hasAttribute('data-dl-bound')) {\r\n button.setAttribute('data-dl-bound', 'true')\r\n button.addEventListener('click', () => {\r\n const label = button.textContent.trim().toLowerCase();\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `currency - ${label}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Collapse the dropdown after selection\r\n isExpanded = false;\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `currency - collapse`,\r\n uiLocation: 'universal footer'\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackLanguageDropdown = function () {\r\n const languageBtn = this.footer.querySelector('[data-template=\"js-language-content\"]');\r\n\r\n if (languageBtn) {\r\n let isExpanded = false;\r\n languageBtn.addEventListener('click', () => {\r\n isExpanded = !isExpanded;\r\n const state = isExpanded ? 'expand' : 'collapse';\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `language - ${state}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Only attach listeners when expanding\r\n if (isExpanded) {\r\n const languageLinks = document.querySelectorAll('#js-language-content .zdcm-module-footer-dropdown__link');\r\n\r\n languageLinks.forEach(link => {\r\n if (!link.hasAttribute('data-dl-bound')) {\r\n link.setAttribute('data-dl-bound', 'true');\r\n\r\n link.addEventListener('click', () => {\r\n const label = link.textContent.trim().toLowerCase();\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `language - ${label}`,\r\n uiLocation: 'universal footer'\r\n });\r\n\r\n // Auto-collapse after selection\r\n isExpanded = false;\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText: `language - collapse`,\r\n uiLocation: 'universal footer'\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackFooterDesktopDownloadCenter = function () {\r\n const downloadLink = document.querySelector('.zdcm-module-footer-nav__getApp-desktop a.link-app-desktop');\r\n\r\n if (downloadLink) {\r\n downloadLink.addEventListener('click', () => {\r\n const linkText = downloadLink.querySelector('.zdcm-module-footer-nav-downloadText')?.textContent.trim() || 'Download Center';\r\n const linkUrl = downloadLink.getAttribute('href');\r\n\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText,\r\n linkUrl,\r\n uiLocation: 'universal footer',\r\n });\r\n });\r\n }\r\n};\r\n\r\n\r\nDataLayerFooter.prototype._trackFooterMobileDownloadLinks = function () {\r\n const downloadLinks = document.querySelectorAll('.zdcm-module-footer-nav__getApp a.link-app');\r\n\r\n if (downloadLinks.length > 0) {\r\n downloadLinks.forEach(link => {\r\n link.addEventListener('click', () => {\r\n const linkText = link.querySelector('.zdcm-module-footer-nav-downloadText')?.textContent.trim() || 'Download App';\r\n const linkUrl = link.getAttribute('href');\r\n\r\n this.DataLayerHelper.pushEvent('navClick', {\r\n linkText,\r\n linkUrl,\r\n uiLocation: 'universal footer - mobile',\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackMobileCurrencyLanguageDropdowns = function () {\r\n // Helper to push events consistently\r\n const pushDL = (linkText) => {\r\n this.DataLayerHelper.pushEvent('linkClick', {\r\n linkText,\r\n uiLocation: 'universal footer - mobile',\r\n });\r\n };\r\n\r\n // --- LANGUAGE DROPDOWN ---\r\n const languageContainer = document.querySelector('#js-language-mobile-content');\r\n const languageBtn = this.footer.querySelector('[data-template=\"js-language-mobile-content\"]');\r\n if (languageBtn && languageContainer) {\r\n let langExpanded = false;\r\n\r\n languageBtn.addEventListener('click', () => {\r\n langExpanded = !langExpanded;\r\n pushDL(`language - ${langExpanded ? 'expand' : 'collapse'}`);\r\n });\r\n\r\n const langLinks = languageContainer.querySelectorAll('.zdcm-module-footer-dropdown__link');\r\n langLinks.forEach(link => {\r\n if (!link.hasAttribute('data-dl-bound')) {\r\n link.setAttribute('data-dl-bound', 'true');\r\n link.addEventListener('click', () => {\r\n const label = link.textContent.trim().toLowerCase();\r\n pushDL(`language - ${label}`);\r\n langExpanded = false;\r\n pushDL(`language - collapse`);\r\n });\r\n }\r\n });\r\n }\r\n\r\n // --- CURRENCY DROPDOWN ---\r\n const currencyContainer = document.querySelector('#js-currency-mobile-content');\r\n const currencyBtn = this.footer.querySelector('[data-template=\"js-currency-mobile-content\"]');\r\n if (currencyBtn && currencyContainer) {\r\n let curExpanded = false;\r\n\r\n currencyBtn.addEventListener('click', () => {\r\n curExpanded = !curExpanded;\r\n pushDL(`currency - ${curExpanded ? 'expand' : 'collapse'}`);\r\n });\r\n\r\n const curButtons = currencyContainer.querySelectorAll('.zdcm-module-footer-dropdown__link');\r\n curButtons.forEach(button => {\r\n if (!button.hasAttribute('data-dl-bound')) {\r\n button.setAttribute('data-dl-bound', 'true');\r\n button.addEventListener('click', () => {\r\n const label = button.textContent.trim().toLowerCase();\r\n pushDL(`currency - ${label}`);\r\n curExpanded = false;\r\n pushDL(`currency - collapse`);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nDataLayerFooter.prototype._trackMobilePrimaryDropdownToggles = function () {\r\n function waitForFooterLinks(selector, callback) {\r\n const interval = setInterval(() => {\r\n const elements = document.querySelectorAll(selector);\r\n if (elements.length > 0) {\r\n clearInterval(interval);\r\n callback(elements);\r\n }\r\n }, 100); // check every 100ms\r\n }\r\n\r\n waitForFooterLinks(\".zdcm-module-footer-top__primary .zdcm-module-footer-nav section > a\", (links) => {\r\n links.forEach(link => {\r\n link.addEventListener('click', function (event) {\r\n var linkText = event.currentTarget.innerText || event.target.innerText || '';\r\n if (linkText) {\r\n var textContent = ([...event.currentTarget.childNodes]\r\n .filter(node => node.nodeType === Node.TEXT_NODE)\r\n .map(node => node.textContent.trim())\r\n .join(\" \")).trim()?.toLowerCase()\r\n linkText = textContent ? textContent : linkText.toLowerCase();\r\n }\r\n if (event.currentTarget.classList.contains('active') == true) {\r\n linkText = linkText + \" - expand\"\r\n } else {\r\n linkText = linkText + \" - collapse\"\r\n }\r\n window.dataLayer = window.dataLayer || [];\r\n if (window.innerWidth <= 1024) {\r\n window.dataLayer.push({\r\n event: 'linkClick',\r\n linkText: linkText,\r\n uiLocation: 'universal footer - mobile'\r\n });\r\n }\r\n });\r\n });\r\n });\r\n}\r\nexport { DataLayerFooter }\r\n","function DataLayerProductNavMenu() {\r\n this.menu = document.querySelector('.zdcm-hub-page-mobile-menu');\r\n\r\n this.DataLayerHelper = {\r\n pushEvent: function (eventName, data = {}) {\r\n if (!eventName) return;\r\n let eventData = { event: eventName };\r\n Object.keys(data).forEach(key => {\r\n eventData[key] = (data[key] === \"\") ? undefined : data[key];\r\n });\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(eventData);\r\n }\r\n };\r\n}\r\n\r\nDataLayerProductNavMenu.prototype._init = function () {\r\n if (this.menu) {\r\n this._trackTeamChatMobileMenu();\r\n this._trackProductNavExpandCollapse();\r\n }\r\n //this._trackDesktopTeamChatFeaturesUseCases();\r\n};\r\n\r\nDataLayerProductNavMenu.prototype._trackTeamChatMobileMenu = function () {\r\n document.querySelectorAll('.zdcm-hub-accordion-panel a').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const parentSection = link.closest('.zdcm-hub-mobile-menu-items')?.querySelector('button')?.innerText?.trim().toLowerCase();\r\n const itemText = link.innerText?.trim().toLowerCase();\r\n const linkText = `${parentSection} - ${itemText}`;\r\n const uiLocation = 'product nav - team chat';\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n });\r\n });\r\n};\r\n\r\nDataLayerProductNavMenu.prototype._trackProductNavExpandCollapse = function () {\r\n const uiLocation = 'product nav - team chat';\r\n document.querySelectorAll('.zdcm-hub-menu-open').forEach(button => {\r\n let previousState = button.getAttribute('aria-expanded') === 'true';\r\n button.addEventListener('click', function () {\r\n setTimeout(() => {\r\n const currentState = button.getAttribute('aria-expanded') === 'true';\r\n const action = currentState ? 'expand' : 'collapse';\r\n const linkText = `team chat - ${action}`;\r\n previousState = currentState;\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n }, 50);\r\n });\r\n });\r\n\r\n // Track \"Features\" and \"Use Cases\" Accordion Toggles\r\n document.querySelectorAll('.zdcm-hub-accordion').forEach(button => {\r\n if (!button.hasAttribute('data-dl-bound')) {\r\n button.setAttribute('data-dl-bound', 'true');\r\n button.addEventListener('click', function () {\r\n setTimeout(() => {\r\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\r\n const action = isExpanded ? 'expand' : 'collapse';\r\n const section = button.innerText?.trim().toLowerCase();\r\n const linkText = `${section} - ${action}`;\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n }, 50)\r\n });\r\n }\r\n });\r\n};\r\n\r\n\r\nDataLayerProductNavMenu.prototype._trackDesktopTeamChatFeaturesUseCases = function () {\r\n const uiLocation = 'product nav - desktop/tablet';\r\n\r\n // Team Chat Direct Link\r\n const teamChatLink = document.querySelector('.zdcm-main-nav__link[href*=\"/products/team-chat\"]');\r\n if (teamChatLink) {\r\n teamChatLink.addEventListener('click', () => {\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: 'team chat',\r\n uiLocation: uiLocation\r\n });\r\n });\r\n }\r\n\r\n // Features Dropdown Links\r\n document.querySelectorAll('.zdcm-megamenu[aria-label=\"Features\"] .zdcm-main-nav__dropdown-link').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const itemText = link.textContent.trim().toLowerCase();\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: `features - ${itemText}`,\r\n uiLocation: uiLocation\r\n });\r\n });\r\n });\r\n\r\n // Use Cases Dropdown Links\r\n document.querySelectorAll('.zdcm-megamenu[aria-label=\"Use Cases\"] .zdcm-main-nav__dropdown-link').forEach(link => {\r\n link.addEventListener('click', () => {\r\n const itemText = link.textContent.trim().toLowerCase();\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: `use cases - ${itemText}`,\r\n uiLocation: uiLocation\r\n });\r\n });\r\n });\r\n\r\n document.querySelectorAll('.zdcm-main-nav__megamenu-trigger').forEach(button => {\r\n const label = button.innerText.trim().toLowerCase()\r\n if (label === 'features' || label === 'use cases') {\r\n button.addEventListener('click', function () {\r\n setTimeout(() => {\r\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\r\n const action = isExpanded ? 'expand' : 'collapse';\r\n const linkText = `${label} - ${action}`;\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: linkText,\r\n uiLocation: uiLocation\r\n });\r\n }, 50)\r\n });\r\n }\r\n });\r\n\r\n // Pricing link tracking (desktop + tablet)\r\n const pricingLink = document.querySelector('.zdcm-main-nav__link[href*=\"/pricing\"]');\r\n if (pricingLink) {\r\n pricingLink.addEventListener('click', () => {\r\n window.dataLayer.push({\r\n event: 'navClick',\r\n linkText: 'pricing',\r\n uiLocation: 'product nav - desktop'\r\n });\r\n });\r\n }\r\n\r\n};\r\n\r\n\r\nexport { DataLayerProductNavMenu };\r\n","function DataLayerZoomForNonProfit() {\r\n}\r\n\r\nDataLayerZoomForNonProfit.prototype = {\r\n _init: function () {\r\n this.zoomForNonProfit = document.querySelector(`#zoomfornonprofits`)\r\n this.uiLocation = 'nonprofits discount program'\r\n this.contentTitle = this.getContentTitle()\r\n\r\n if (!this.zoomForNonProfit) return\r\n window.extraPageLoadFields = { pageVersion: this.uiLocation }\r\n\r\n this.addCtaLinkClickListener()\r\n this.addShowMoreButtonClickListener()\r\n this.addFAQClickListener()\r\n },\r\n\r\n getContentTitle: function () {\r\n return this.zoomForNonProfit.querySelector('h3')?.innerText?.trim()?.toLowerCase()\r\n },\r\n\r\n addCtaLinkClickListener: function () {\r\n const ctaElements = document.querySelectorAll('#zoomfornonprofits div.fdn-copy-block__sub-title a')\r\n ctaElements.forEach((link) => {\r\n link.addEventListener('click', (event) => this.handleLinkClick(event, link))\r\n })\r\n },\r\n\r\n handleLinkClick: function (event, link) {\r\n const linkUrl = link.href?.toLowerCase() || undefined\r\n const linkText = link.innerText?.trim()?.toLowerCase() || undefined\r\n\r\n const eventData = {\r\n event: 'linkClick',\r\n linkUrl: linkUrl,\r\n linkText: linkText,\r\n uiLocation: this.uiLocation,\r\n contentTitle: this.contentTitle\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n },\r\n\r\n addShowMoreButtonClickListener: function () {\r\n const showMoreHideButton = document.querySelector('[data-cmp-is=\"pricingcard-standard\"] button.show-more')\r\n if (showMoreHideButton) {\r\n showMoreHideButton.addEventListener('click', (event) => this.handleShowMoreButtonClick(event))\r\n }\r\n },\r\n\r\n handleShowMoreButtonClick: function (event) {\r\n let linkText = event.target?.innerHTML?.trim()?.toLowerCase()\r\n \r\n window.dataLayer.push({\r\n event: 'linkClick',\r\n linkText: linkText,\r\n linkUrl: undefined,\r\n uiLocation: this.uiLocation,\r\n contentTitle: this.contentTitle\r\n })\r\n },\r\n\r\n addFAQClickListener: function () {\r\n const faqButton = document.querySelectorAll('button.accordion__item-button')\r\n faqButton.forEach((link) => {\r\n link.addEventListener('click', (event) => this.handleFaqButtonClick(event))\r\n })\r\n },\r\n\r\n handleFaqButtonClick: function (event) {\r\n const buttonElement = event.target.closest('button')\r\n if (buttonElement) {\r\n const isExpanded = buttonElement.getAttribute('aria-expanded') === 'true'\r\n const faqInteraction = buttonElement.textContent?.trim()?.toLowerCase()\r\n\r\n window.dataLayer.push({\r\n event: 'faqInteraction',\r\n faqInteraction: faqInteraction,\r\n faqSelection: isExpanded ? \"expand\" : \"collapse\",\r\n uiLocation: \"zoom for nonprofits\"\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport { DataLayerZoomForNonProfit }\r\n","import { DataLayerSearch } from './datalayer/data-layer-search'\r\nimport { DataLayerTab } from './datalayer/data-layer-tab'\r\nimport { DataLayerCta } from './datalayer/data-layer-cta' \r\nimport { DataLayerFilter } from './datalayer/data-layer-filter'\r\nimport { DataLayerBlog } from './datalayer/data-layer-blog'\r\nimport { DataLayerSmbRoiCalculator } from './datalayer/data-layer-smb-roi'\r\nimport { DataLayerNavigation } from './datalayer/data-layer-navigation'\r\nimport { DataLayerNavigationVfive } from './datalayer/data-layer-navigation-vfive'\r\nimport { DataLayerFooter } from './datalayer/data-layer-footer'\r\nimport { DataLayerProductNavMenu } from './datalayer/data-layer-product-nav'\r\nimport { DataLayerZoomForNonProfit } from './datalayer/data-layer-non-profit'\r\n\r\nfunction DataLayerTracking() {\r\n this.footerUiLocation = 'Footer Nav'\r\n this.headerUiLocation = 'Universal Nav'\r\n this.bodyUiLocation = 'Body Content'\r\n this.dataLayerSearch = new DataLayerSearch()\r\n this.dataLayerTab = new DataLayerTab() \r\n this.dataLayerCta = new DataLayerCta() \r\n this.dataLayerFilter = new DataLayerFilter()\r\n this.DataLayerBlog = new DataLayerBlog()\r\n this.dataLayerSmbRoi = new DataLayerSmbRoiCalculator();\r\n this.DataLayerNavigation = new DataLayerNavigation();\r\n this.DataLayerProductNavMenu = new DataLayerProductNavMenu()\r\n this.DataLayerNavigationVfive = new DataLayerNavigationVfive();\r\n this.DataLayerFooter = new DataLayerFooter()\r\n this.DataLayerZoomForNonProfit = new DataLayerZoomForNonProfit()\r\n}\r\nDataLayerTracking.prototype._init = function () {\r\n this._phoneNumberClick()\r\n this.dataLayerSearch._init()\r\n const currentURL = window.location.href;\r\n if (currentURL.includes('.com/en/')) {\r\n var hubPageSelector = document.querySelector(\".zdcm-hub-navigation\")\r\n if (hubPageSelector) {\r\n window.extraPageLoadFields = { experimentVariant: \"global nav july 2025\", pageVersion: \"product hub july 2025\" }\r\n }\r\n this.DataLayerNavigationVfive._init()\r\n }\r\n this.dataLayerTab._init() \r\n this.dataLayerCta._init() \r\n this.dataLayerFilter._init()\r\n this.DataLayerBlog._init()\r\n this.dataLayerSmbRoi._init()\r\n this.DataLayerNavigation._init()\r\n this.DataLayerProductNavMenu._init()\r\n this.DataLayerFooter._init()\r\n this.DataLayerZoomForNonProfit._init()\r\n}\r\nDataLayerTracking.prototype._phoneNumberClick = function () {\r\n try {\r\n document.querySelectorAll('a[href^=\"tel:\"]').forEach(link => {\r\n let trackingLocation = this.bodyUiLocation\r\n if ((link.closest(\"footer\")) && (link.closest(\"footer\") != null)) {\r\n trackingLocation = this.footerUiLocation \r\n } else if ((link.closest(\"header\")) && (link.closest(\"header\") != null)) {\r\n trackingLocation = this.headerUiLocation\r\n }\r\n link.addEventListener(\"click\", function (e) {\r\n let eventData = {\r\n event: 'phoneClick',\r\n linkUrl: e?.target?.href || \"\",\r\n linkText: e?.target?.innerText.split('\\n')[0].trim() || \"\",\r\n uiLocation: trackingLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n })\r\n },this)\r\n }\r\n catch (e) { }\r\n}\r\n\r\nexport { DataLayerTracking }\r\n","function DataLayerFilter() {\r\n this.filterInteractionEvent = 'filterInteraction';\r\n this.filterAppliedInteraction = 'filter applied';\r\n this.apiEndpoint = document.querySelector('#q')?.closest('.grid-landing-page')?.getAttribute('data-api-endpoint');\r\n this.uiLocation = this.apiEndpoint ? this.apiEndpoint.split('/')[2] : 'grid landing page';\r\n this.filterInputs = document.querySelectorAll('input[type=\"checkbox\"], input[type=\"radio\"], select');\r\n this._handleFilterChange = this._handleFilterChange.bind(this);\r\n}\r\n\r\nDataLayerFilter.prototype._init = function () {\r\n this._trackFilterInteractions();\r\n};\r\n\r\nDataLayerFilter.prototype._trackFilterInteractions = function () {\r\n this.filterInputs.forEach(filter => {\r\n if (!filter.hasEventListener) {\r\n filter.addEventListener('change', (event) => {\r\n if (event.target.checked || event.target.tagName === 'SELECT') {\r\n setTimeout(() => {\r\n this._handleFilterChange()\r\n }, 50)\r\n }\r\n });\r\n filter.hasEventListener = true;\r\n }\r\n });\r\n};\r\n\r\nDataLayerFilter.prototype._handleFilterChange = function () {\r\n let filtersApplied = this._getAppliedFilters();\r\n\r\n if (!filtersApplied || Object.keys(filtersApplied).length === 0) {\r\n return;\r\n }\r\n\r\n // Filter out unnecessary keys like \"sort\" and \"ot-group-id-C000X\"\r\n const validFilterKeys = Object.keys(filtersApplied).filter(\r\n key => !key.startsWith(\"ot-group-id\") && key !== \"sort\"\r\n );\r\n\r\n // Extract all selected values from relevant filters\r\n let selectedFilters = [];\r\n validFilterKeys.forEach(key => {\r\n selectedFilters = selectedFilters.concat(filtersApplied[key]);\r\n });\r\n\r\n // Remove duplicates if the same filter is clicked multiple times\r\n selectedFilters = [...new Set(selectedFilters)];\r\n\r\n if (selectedFilters.length === 0) {\r\n return;\r\n }\r\n\r\n window.dataLayer.push({\r\n event: this.filterInteractionEvent,\r\n filterInteraction: this.filterAppliedInteraction,\r\n filtersUsed: selectedFilters, \r\n uiLocation: this.uiLocation\r\n });\r\n};\r\n\r\nDataLayerFilter.prototype._getAppliedFilters = function () {\r\n const appliedFilters = {};\r\n document.querySelectorAll('input[type=\"checkbox\"]:checked, input[type=\"radio\"]:checked').forEach(input => {\r\n const filterType = input.name || 'unknown';\r\n if (!appliedFilters[filterType]) appliedFilters[filterType] = [];\r\n appliedFilters[filterType].push(input.value);\r\n });\r\n\r\n document.querySelectorAll('select').forEach(select => {\r\n if (select.value) {\r\n const filterType = select.name || 'unknown';\r\n if (!appliedFilters[filterType]) appliedFilters[filterType] = [];\r\n appliedFilters[filterType].push(select.value);\r\n }\r\n });\r\n\r\n return appliedFilters;\r\n};\r\n\r\nexport { DataLayerFilter };\r\n","function DataLayerSearch() {\n this.searchIntractionEvent = 'searchInteraction'\n this.searchValueEvent = 'search'\n this.searchBarClickIntraction = 'search bar clicked'\n this.clearSearchIntraction = 'clear search'\n this.coveoSearchLabel = 'coveo search'\n this.searchBox = document.querySelector('#q')\n this.apiEndpoint = document.querySelector('#q')?.closest('.grid-landing-page')?.getAttribute('data-api-endpoint')\n this.clearSearch = document.querySelector('.grid-landing-page__text-input__search-icon--close')\n this.resultCount = 0\n this.uiLocation = (this.apiEndpoint) ? this.apiEndpoint.split('/')[2] : 'grid landing page'\n this.coveoSearchBox = document.querySelector('.FlyoutButton')\n this.coveoSearchInput = document.querySelector('.magic-box-input input')\n this.coveoClearSearch = document.querySelector('.magic-box-icon')\n this.coveoSearchIcon = document.querySelector('.CoveoSearchButton')\n this.coveoSearchPageInput = document.querySelector('main .magic-box-input input')\n this.coveoPageClearSearch = document.querySelector('main .magic-box-icon')\n this.coveoPageSearchIcon = document.querySelector('main .CoveoSearchButton')\r\n}\r\nDataLayerSearch.prototype._init = function () {\n this._searchClick()\r\n}\n\nDataLayerSearch.prototype._updateDataLayerWithCardCount = function (resultCount) {\r if (resultCount && !isNaN(resultCount)) {\r this.resultCount = parseInt(resultCount)\r }\n if (this.searchBox.value) {\n let eventData = {\n event: this.searchValueEvent,\r\n searchTermUsed: this.searchBox.value,\r\n numResults: this.resultCount,\r\n uiLocation: this.uiLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n }\r}\n\nDataLayerSearch.prototype._searchClickIntraction = function (searchBoxClick, searchBarClickIntraction, uiLocation) {\n if (searchBoxClick != null) {\n searchBoxClick.addEventListener('click', () => {\n let eventData = {\r\n event: this.searchIntractionEvent,\r\n searchInteraction: searchBarClickIntraction,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n })\n }\r\n}\n\nDataLayerSearch.prototype._searchValueIntraction = function (searchElementClick, searchTerm, uiLocation) {\n if (searchElementClick != null) {\n searchElementClick.addEventListener('click', () => {\n let eventData = {\r\n event: this.searchValueEvent,\r\n searchTermUsed: searchTerm?.value,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n })\n }\r\n}\n\nDataLayerSearch.prototype._searchValueIntractionByPressEnter = function (searchElementClick, searchTerm, uiLocation) {\n if (searchElementClick != null) {\n searchElementClick.addEventListener('keydown', (e) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n let eventData = {\r\n event: this.searchValueEvent,\r\n searchTermUsed: searchTerm?.value,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n }\n })\n }\r\n}\nDataLayerSearch.prototype._searchClick = function () {\r\n try {\n \n this._searchClickIntraction(this.searchBox,this.searchBarClickIntraction,this.uiLocation)\n\n this._searchClickIntraction(this.clearSearch,this.clearSearchIntraction,this.uiLocation)\n\n this._searchClickIntraction(this.coveoSearchBox,this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoSearchInput,this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoSearchPageInput, this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchValueIntractionByPressEnter(this.coveoSearchInput, this.coveoSearchInput, this.coveoSearchLabel)\n\n this._searchValueIntractionByPressEnter(this.coveoSearchPageInput, this.coveoSearchPageInput, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoClearSearch,this.clearSearchIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoPageClearSearch,this.clearSearchIntraction, this.coveoSearchLabel)\n\n this._searchValueIntraction(this.coveoSearchIcon,this.coveoSearchInput, this.coveoSearchLabel)\n\n this._searchValueIntraction(this.coveoPageSearchIcon, this.coveoSearchPageInput, this.coveoSearchLabel)\n\n document.addEventListener(\"click\", function (e) {\n const target = e.target.closest(\".magic-box-suggestion\");\n if (target) {\n let eventData = {\r\n event: 'search',\r\n searchTermUsed: target.getAttribute('aria-label'),\r\n uiLocation: 'coveo search'\r\n }\r\n window.dataLayer.push(eventData)\n }\n });\r\n }\r\n catch (e) { }\r\n}\r\nexport { DataLayerSearch }\r\n","function DataLayerTab() {\r\n this.horizontalTabUiLocation = 'Horizontal Tab'\r\n this.pillTabUiLocation = 'Tabbed Pill'\r\n this.tabbedCarouselUiLocation = 'Tabbed Carousel'\r\n this.horizontalTabClickButton = document.querySelectorAll('.fdn-tabs__tab')\r\n this.pillTabClickButton = document.querySelectorAll('.fdn-tabbed-pills__pill')\r\n this.carouselTabClickButton = document.querySelectorAll('.tabbed-carousel__tab')\r\n}\r\n\r\nDataLayerTab.prototype._init = function () {\r\n this._TabClick()\r\n}\r\n\r\nDataLayerTab.prototype._TabClick = function () {\r\n this._horizontalTabClick(this.horizontalTabClickButton, this.horizontalTabUiLocation)\r\n this._pillTabClick(this.pillTabClickButton, this.pillTabUiLocation)\r\n this._carouselTabClick(this.carouselTabClickButton, this.tabbedCarouselUiLocation)\r\n}\r\n\r\nDataLayerTab.prototype._horizontalTabClick = function (tabs, horizontalTabUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.fdn-tabs.fdn-tabs--product')\r\n if (tabContainer != null) {\r\n let horizontalTabTitle = tabContainer?.querySelector('.fdn-tabs__headline')?.textContent?.trim() || ''\r\n let targetButton = e.target.closest('.fdn-tabs__tab')\r\n let tabTextValue = targetButton.querySelector('.fdn-tabs__title')?.textContent.trim() || ''\r\n let linkText = horizontalTabTitle ? `${horizontalTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: horizontalTabUiLocation\r\n }\r\n\r\n window.dataLayer.push(eventData)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerTab.prototype._pillTabClick = function (tabs, pillTabUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.fdn-tabbed-pills__content')\r\n let pillTabTitle = tabContainer?.querySelector('.fdn-tabbed-pills__title')?.textContent?.trim() || ''\r\n let tabTextValue = Array.from(e.target.childNodes)\r\n .filter(node => node.nodeType === Node.TEXT_NODE || (node.nodeType === Node.ELEMENT_NODE && !node.classList.contains('visually-hidden')))\r\n .map(node => node.textContent.trim())\r\n .join(' ').trim() || ''\r\n\r\n let linkText = pillTabTitle ? `${pillTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: pillTabUiLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n })\r\n })\r\n }\r\n}\r\n\r\nDataLayerTab.prototype._carouselTabClick = function (tabs, tabbedCarouselUiLocation) {\r\n if (tabs) {\r\n tabs.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n let tabContainer = e.target.closest('.wrapper')\r\n let carouselTabTitle = tabContainer?.querySelector('.module-columns-title')?.textContent?.trim() || ''\r\n let tabTextValue = Array.from(e.target.childNodes)\r\n .filter(node => node.nodeType === Node.TEXT_NODE || (node.nodeType === Node.ELEMENT_NODE && !node.classList.contains('tabbed-carousel__tab-description')))\r\n .map(node => node.textContent.trim())\r\n .join(' ').trim() || ''\r\n\r\n let linkText = carouselTabTitle ? `${carouselTabTitle} - ${tabTextValue}` : tabTextValue\r\n\r\n let eventData = {\r\n event: 'contentClick',\r\n linkText: linkText,\r\n uiLocation: tabbedCarouselUiLocation\r\n }\r\n \r\n window.dataLayer.push(eventData)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport { DataLayerTab }\r\n","\r\nconst domainMap = {\r\n \"int.zoom.com\": \"https://dev-integration.zoomdev.us\",\r\n \"int.zoomdev.us\": \"https://dev-integration.zoomdev.us\",\r\n \"localhost\": \"https://dev-integration.zoomdev.us\",\r\n \"stage.zoom.com\": \"https://zoom.us\",\r\n \"www.zoom.com\": \"https://zoom.us\"\r\n};\r\n\r\nfunction isChromeUserAgent() {\r\n const userAgent = navigator.userAgent;\r\n return ![\r\n \"Chrome\", \"Chromium\", \"CriOS\", \"Edg\", \"Brave\", \"OPR\", \"SamsungBrowser\", \"Vivaldi\"\r\n ].some(browserId => userAgent.includes(browserId));\r\n}\r\n\r\nfunction removeUrlExtraParams(paramsToRemove) {\r\n let url = new URL(window.location);\r\n let searchParams = new URLSearchParams(url.search);\r\n\r\n paramsToRemove.forEach(param => {\r\n searchParams.delete(param);\r\n });\r\n\r\n url.search = searchParams.toString();\r\n history.pushState({}, document.title, url.toString());\r\n}\r\n\r\nfunction getCookie(name) {\r\n\tvar nameEQ = name + \"=\";\r\n\tvar ca = document.cookie.split(';');\r\n\t// see if value is JSON\r\n\tlet isJSON = function isJson(str) {\r\n\t\ttry {\r\n\t\t\tJSON.parse(str);\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t};\r\n\tfor (var i = 0; i < ca.length; i++) {\r\n\t\tvar c = ca[i];\r\n\t\twhile (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n\t\tif (c.indexOf(nameEQ) == 0) {\r\n\t\t\tlet content = c.substring(nameEQ.length, c.length);\r\n\t\t\tif (isJSON(content)) {\r\n\t\t\t\tcontent = JSON.parse(content);\r\n\t\t\t\t// replace commas\r\n\t\t\t\tfor (const [key, item] of Object.entries(content)) {\r\n\t\t\t\t\tif (typeof item == 'string') content[key] = item.replace('U+0002C',',')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn content;\r\n\t\t}\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nfunction isThirdPartyCookieDisabled(timeoutMs = 3000) {\r\n return new Promise((resolve) => {\r\n const iframe = document.createElement('iframe');\r\n const targetOrigin = getCurrentDomain(true);\r\n let resolved = false;\r\n\r\n iframe.style.display = 'none';\r\n iframe.src = `${targetOrigin}/third_party_cookie_check.html`;\r\n\r\n const timeout = setTimeout(() => {\r\n if (!resolved) {\r\n resolved = true;\r\n iframe.remove();\r\n resolve(true);\r\n }\r\n }, timeoutMs);\r\n\r\n iframe.onload = () => {\r\n try {\r\n iframe.contentWindow.postMessage({ type: 'checkCookies' }, targetOrigin);\r\n } catch (e) {\r\n clearTimeout(timeout);\r\n resolved = true;\r\n iframe.remove();\r\n resolve(true);\r\n }\r\n };\r\n\r\n function handleMessage(event) {\r\n if (\r\n event.origin === targetOrigin &&\r\n event.source === iframe.contentWindow &&\r\n event.data.type === 'cookieStatus'\r\n ) {\r\n clearTimeout(timeout);\r\n resolved = true;\r\n window.removeEventListener('message', handleMessage);\r\n iframe.remove();\r\n resolve(!event.data.status);\r\n }\r\n }\r\n\r\n window.addEventListener('message', handleMessage);\r\n document.body.appendChild(iframe);\r\n });\r\n}\r\n\r\nfunction getCurrentDomain() {\r\n const hostname = window.location.hostname;\r\n return domainMap[hostname] || \"https://zoom.us\";\r\n}\r\n\r\nfunction deleteCookie(cookieName) {\r\n // Delete cookie at root path\r\n document.cookie = `${cookieName}=; Max-Age=-99999999; path=/;`;\r\n\r\n // Delete cookie at each sub-path\r\n const pathParts = location.pathname.split(\"/\");\r\n\r\n for (let i = 0; i < pathParts.length; i++) {\r\n const path = pathParts.slice(0, i + 1).join(\"/\");\r\n document.cookie = `${cookieName}=; Max-Age=-99999999; path=${path};`;\r\n }\r\n\r\n // Delete cookie on all domain variations\r\n const hostname = location.hostname;\r\n const domainParts = hostname.split(\".\");\r\n\r\n if (domainParts.length > 1) {\r\n for (let i = 0; i < domainParts.length - 1; i++) {\r\n const domain = domainParts.slice(-i - 1).join(\".\");\r\n document.cookie = `${cookieName}=; Max-Age=-99999999; path=/; domain=.${domain};`;\r\n }\r\n }\r\n}\r\n\r\nfunction setSecureCookie(cookieName, cookieValue, domain) {\r\n try {\r\n const expirationDate = new Date();\r\n expirationDate.setTime(expirationDate.getTime() + 60 * 60 * 1000); // 1 hour\r\n\r\n const expiresAttribute = `; expires=${expirationDate.toUTCString()}`;\r\n\r\n let valueToStore;\r\n\r\n if (typeof cookieValue === \"object\") {\r\n const escapedObject = {};\r\n\r\n for (const [key, value] of Object.entries(cookieValue)) {\r\n // Replace a single comma in strings with U+0002C\r\n escapedObject[key] = (typeof value === \"string\") ? value.replace(/,/, \"U+0002C\") : value;\r\n }\r\n\r\n valueToStore = JSON.stringify(escapedObject);\r\n } else {\r\n valueToStore = cookieValue || \"\";\r\n }\r\n\r\n document.cookie = `${cookieName}=${valueToStore}${expiresAttribute}; path=/; secure; samesite=none; domain=.${domain}`;\r\n } catch (error) {\r\n console.log(\"Error setting cookie:\", error);\r\n }\r\n}\r\n\r\nfunction setSecureCookieWithExpiry(cookieName, cookieValue, expiryDays, domain) {\r\n try {\r\n let expiresAttribute = \"\";\r\n\r\n if (expiryDays) {\r\n const expirationDate = new Date();\r\n expirationDate.setTime(\r\n expirationDate.getTime() + expiryDays * 24 * 60 * 60 * 1000\r\n );\r\n expiresAttribute = `; expires=${expirationDate.toUTCString()}`;\r\n }\r\n\r\n let valueToStore;\r\n\r\n if (typeof cookieValue === \"object\") {\r\n const escapedObject = {};\r\n\r\n for (const [key, value] of Object.entries(cookieValue)) {\r\n escapedObject[key] = (typeof value === \"string\") ? value.replace(/,/, \"U+0002C\") : value;\r\n }\r\n\r\n valueToStore = JSON.stringify(escapedObject);\r\n } else {\r\n valueToStore = cookieValue || \"\";\r\n }\r\n\r\n document.cookie = `${cookieName}=${valueToStore}${expiresAttribute}; path=/; secure; samesite=none; domain=.${domain}`;\r\n } catch (error) {\r\n console.log(\"Error setting cookie:\", error);\r\n }\r\n}\r\n\r\nfunction syncStatus(queryString) {\r\n let newUrl = \"\";\r\n const syncStatusElement = document.getElementById(\"sync-status\");\r\n\r\n if (syncStatusElement && syncStatusElement.value && syncStatusElement.value.trim() !== '') {\r\n let adjustedQuery = queryString;\r\n //If query starts with '?', replace with '&'\r\n if (adjustedQuery.startsWith(\"?\")) {\r\n adjustedQuery = \"&\" + adjustedQuery.substring(1);\r\n }\r\n const urlWithoutQuery = window.location.origin + window.location.pathname;\r\n newUrl = syncStatusElement.value + urlWithoutQuery+adjustedQuery;\r\n window.location.href = newUrl\r\n }\r\n}\r\n\r\nvar authorized = false;\r\n\r\nexport async function handleCmsGuidFlow() {\r\n const thirdPartyCookiesDisabled = await isThirdPartyCookieDisabled();\r\n// if (thirdPartyCookiesDisabled || isChromeUserAgent()) {\r\n// const urlParams = new URLSearchParams(window.location.search);\r\n// const cmsGuidFromUrl = urlParams.get(\"cms_guid\");\r\n// const fromParam = urlParams.get(\"from\");\r\n\r\n// // Remove params from URL\r\n// removeUrlExtraParams([\"cms_guid\", \"from\"]);\r\n\r\n// const cmsGuidCookie = getCookie(\"_zm_cms_guid\");\r\n\r\n// if (cmsGuidFromUrl === \"false\" && fromParam === \"logout\") {\r\n// // Clear cookie and set authorized to false\r\n// deleteCookie(\"_zm_cms_guid\");\r\n// authorized = false;\r\n\r\n// } else if (cmsGuidCookie === undefined) {\r\n// if (cmsGuidFromUrl === \"false\") {\r\n// setSecureCookie(\"_zm_cms_guid\", \"false\", \"zoom.com\");\r\n\r\n// } else if (cmsGuidFromUrl !== null) {\r\n// setSecureCookieWithExpiry(\"_zm_cms_guid\", cmsGuidFromUrl, 1, \"zoom.com\");\r\n\r\n// } else {\r\n// syncStatus(window.location.search);\r\n// }\r\n\r\n// } else if (cmsGuidCookie === \"false\") {\r\n// authorized = false;\r\n// }\r\n\r\n// return true;\r\n\r\n// } else {\r\n// return false;\r\n// }\r\n\r\n\r\n // Remove params from URL\r\n removeUrlExtraParams([\"cms_guid\", \"from\"]);\r\n if (thirdPartyCookiesDisabled) {\r\n const cmsGuidCookie = getCookie(\"_zm_cms_guid\")\r\n if (cmsGuidCookie === \"\" || cmsGuidCookie === null )\r\n {\r\n syncStatus(window.location.search)\r\n }\r\n \r\n }\r\n\r\n return thirdPartyCookiesDisabled;\r\n}\r\n\r\n\r\n"],"names":["BlockVisibilityService","response","this","UserIdentityRole","DefaultText","DefaultValue","AnonymousText","AnonymousValue","AuthorizedFreeText","AuthorizedFreeValue","AuthorizedPaidText","AuthorizedPaidValue","AuthorizedText","AuthorizedValue","userStatusKey","currencyKey","accountPlanTypeKey","accPubCalendarKey","elementVisibleForAttribute","restrictAccessCssClass","userStatusCookie","publicCalendarCookieKey","currencyCookie","user","elementVisibleForRoles","paidUserPlanType","domain","location","hostname","split","reverse","_int","prototype","_processUserRole","_displayAuthorizedElements","_removeUnauthorizedElements","visibleRole","userStatus","_getAuthenticatedUserRole","push","_displayAuthorizedJoinElement","_setCookie","currentAccountPlan","concat","isPaidUser","includes","currency","currencyButton","document","querySelector","setAttribute","lowerAbbreviation","toLowerCase","userCurrency","allCurrencyList","find","currencyAbbreviation","innerHTML","displayName","currencySymbol","accountPubCalendarKey","isShowCalendar","joinElement","parentElement","classList","remove","removeAttribute","joinElementToRemove","_this","length","authorizedElementsSelectors","map","userIdRole","join","querySelectorAll","forEach","element","_setUserProfile","unAuthorizedElementSelector","cookieName","value","days","expires","date","Date","setTime","getTime","toUTCString","_typeof","obj","_i","_Object$entries","Object","entries","_Object$entries$_i","key","item","replace","JSON","stringify","cookie","err","console","log","_this$user","_this$user2","_document$querySelect","_firstName$trim","_lastName$trim","firstName","trim","lastName","fullName","filter","Boolean","container","closest","f","l","firstItem","link","hidden","childNodes","node","className","initialsSpan","createElement","textContent","nameSpan","insertBefore","toUpperCase","handleOnCurrencyChange","selectedCountryCode","context","_el$dataset","el","apiUrl","dataset","apiEndpoint","getAttribute","divId","id","fetch","method","credentials","mode","headers","then","text","data","pricingCardBasic","_temp$querySelector","outerHTML","callPricingAPI","temp","newDivId","updatedElement","initSinglePricingComponent","error","initCountryCurrencyFilter","onCountryChange","onCurrencyChange","initializePricingComponents","instance","_el$dataset2","options","arguments","undefined","iscurrencyfilter","isCurrencyfilter","ensureCurrencyFilterFlag","ddEl","dropDownElement","Dropdown","onChange","code","listenCurrencyChange","getSelectedCountryCode","checkUiLocation","locationMapping","selector","moduleColumns","contentTitleMap","blockClass","titleSelector","DataLayerCta","buttonCta","Array","from","_init","_trackLinkClicks","addEventListener","e","_handleLinkClick","_isInExcludedSection","some","section","contains","stopPropagation","linkElement","target","pricingCard","_productElem$innerTex","preventDefault","productElem","product","innerText","linkText","linkUrl","href","uiLocation","contentTitle","_getContentTitle","eventData","event","window","dataLayer","setTimeout","_getVisibleText","test","_handleDownloadEvent","_handleLinkClickEvent","match","_match$","fileExtension","parent","titleWrapper","_step","_iterator","_createForOfIteratorHelper","s","n","done","_parent$classList","_step$value","titleEl","globalModuleTitle","heading","found","buttonElement","_step2","_iterator2","visibleText","nodeType","Node","TEXT_NODE","DataLayerBlog","DataLayerSmbRoiCalculator","slider","sliderInput","appCards","viewPlansButton","contactSalesButton","a","interactionCaptured","_onFirstInteraction","bind","DataLayerNavigation","DataLayerHelper","pushEvent","eventName","keys","DataLayerNavigationVfive","universalNavMobileLocation","universalNavDesktopLocation","navClickEventName","searchIntractionEvent","searchBarClickIntraction","DataLayerFooter","footer","DataLayerProductNavMenu","menu","DataLayerZoomForNonProfit","DataLayerTracking","footerUiLocation","headerUiLocation","bodyUiLocation","dataLayerSearch","DataLayerSearch","dataLayerTab","DataLayerTab","dataLayerCta","dataLayerFilter","DataLayerFilter","dataLayerSmbRoi","_FormEvents","_blogFormSubmitted","_blogFormError","$$epiforms","ready","on","param1","param2","eventCategory","eventAction","eventLabel","formType","isValid","_document$querySelect2","eventLabelName","parentNode","checked","_trackFirstInteraction","_trackCtaClicks","once","roiCalculatorInteraction","roiCalculatorSelection","_this2","handleClick","label","_this2$sliderInput","employeeCount","selectedApps","card","_card$querySelector","_card$querySelector2","category","name","numAppsSelected","appsSelectedArray","_logoIntraction","_logoIntractionForShortHeader","_menuWithExpand","_menuWithoutExpand","_logoTracking","_universalDesktopMenu","_universalMobileMenu","_resourceMenu","_mobileSignUp","_mobilePricingEvent","_zoomProductAndContactSaleButton","_trackClickEvents","_getUiLocation","parentCategory","_getUiLocationMobile","_categoryState","getLinkType","currentTarget","updateVal","_document$querySelect3","_document$querySelect4","_filter$map$join$trim","_toConsumableArray","_event$currentTarget$","isDesktop","isMobileBanner","_this3","_document$querySelect5","_linkText$trim","getClosestClass","isMobile","_document$querySelect6","_document$querySelect7","_document$querySelect8","_this4","_linkText$trim2","isOpen","cta","_cta$innerText","childNodesArray","_event$currentTarget","_event$target","_event$currentTarget2","_event$target2","_document$querySelect9","_this5","_filter$map$join$trim2","menuLink","_menuLink$innerText","searchInteraction","_this6","_cta$innerText2","_this7","_cta$innerText3","_this8","button","_filter$map$join$trim3","_event$currentTarget3","_trackNavigationEvents","_trackSolutionsMenuClick","_trackResourcesMenuClick","_trackNavLinksClick","solutionsAnchor","resourcesMenuLink","mobileResourcesMenuLink","_resourcesMenuLink$in","dropdown","_filter$map$join$trim4","matches","action","_mobileHamburgerClick","_searchClickIntraction","_mobileFooterMenuItems","_waffleMenu","_waffleButtons","_waffleViewAll","_zoomLogoEvent","_singleLinkNavEvent","_universalNavigationMenu","_userProfile","_userAccountDetail","_pricingEvent","_productMenuTabsClicks","_productMenuTabsLearnMoreClicks","_downloadCenterClicks","_DeveloperAppCenterClicks","_trackAllUniversalNavHubPageClicks","_trackAllUniversalNavMenuClicks","_searchClicks","_trackMeetExpandCollapse","_trackMeetDropdownLinks","_trackMobileNavLinkClicks","_trackMobileNavBackClicks","_applicationDownloadCenterClicks","_productAppMobileClicks","_moblieSignUpClicks","_productsTabItemToggle","links","_link$querySelector$i","_link$querySelector","_link$querySelector$t","_link$querySelector2","_link$querySelector$t2","_link$querySelector3","userInfoClick","downloadCenter","waffleMenuClick","ariaExpanded","waffleViewAllClick","mobileHamburger","observer","MutationObserver","searchBoxClick","disconnect","observe","body","childList","subtree","_filter$map$join$trim5","clickedItem","labelText","parentLi","isExpanded","_link$querySelector$t3","_link$querySelector4","offsetParent","_link$querySelector$t4","_link$querySelector5","_link$querySelector$t5","_link$querySelector6","_link$querySelector$t6","_link$querySelector7","_event$target$closest","menuName","meetButtons","index","previousState","mutations","mutation","attributeName","newState","nextState","attributes","dropdownLinks","_link$innerText","accordionButtons","btn","_btn$textContent","ariaExpand","_btn$closest","sectionName","backBtn","removeEventListener","_dlHandler","handler","_trackFooterLinks","_trackSocialLinks","_trackLegalLinks","_trackCurrencyDropdown","_trackLanguageDropdown","_trackFooterDesktopDownloadCenter","_trackFooterMobileDownloadLinks","_trackMobileCurrencyLanguageDropdowns","_trackMobilePrimaryDropdownToggles","_section$querySelecto","startsWith","linkLabel","sectionHeader","mainLink","innerWidth","_mainLink$innerText","_link$title","platform","title","currencyBtn","state","hasAttribute","languageBtn","downloadLink","_downloadLink$querySe","downloadLinks","pushDL","languageContainer","langExpanded","currencyContainer","curExpanded","callback","interval","setInterval","elements","clearInterval","_trackTeamChatMobileMenu","_trackProductNavExpandCollapse","_link$closest","parentSection","itemText","currentState","_button$innerText","_trackDesktopTeamChatFeaturesUseCases","teamChatLink","pricingLink","zoomForNonProfit","getContentTitle","extraPageLoadFields","pageVersion","addCtaLinkClickListener","addShowMoreButtonClickListener","addFAQClickListener","_this$zoomForNonProfi","handleLinkClick","_link$href","showMoreHideButton","handleShowMoreButtonClick","handleFaqButtonClick","_buttonElement$textCo","faqInteraction","faqSelection","_phoneNumberClick","experimentVariant","trackingLocation","_e$target","_e$target2","filterInteractionEvent","filterAppliedInteraction","filterInputs","_handleFilterChange","_trackFilterInteractions","hasEventListener","tagName","filtersApplied","_getAppliedFilters","validFilterKeys","selectedFilters","Set","filterInteraction","filtersUsed","appliedFilters","input","filterType","select","searchValueEvent","clearSearchIntraction","coveoSearchLabel","searchBox","clearSearch","resultCount","coveoSearchBox","coveoSearchInput","coveoClearSearch","coveoSearchIcon","coveoSearchPageInput","coveoPageClearSearch","coveoPageSearchIcon","_searchClick","_updateDataLayerWithCardCount","isNaN","parseInt","searchTermUsed","numResults","_searchValueIntraction","searchElementClick","searchTerm","_searchValueIntractionByPressEnter","keyCode","horizontalTabUiLocation","pillTabUiLocation","tabbedCarouselUiLocation","horizontalTabClickButton","pillTabClickButton","carouselTabClickButton","_TabClick","_horizontalTabClick","_pillTabClick","_carouselTabClick","tabs","tabContainer","_tabContainer$querySe","_targetButton$querySe","horizontalTabTitle","tabTextValue","_tabContainer$querySe2","pillTabTitle","ELEMENT_NODE","_tabContainer$querySe3","carouselTabTitle","_regeneratorRuntime","t","r","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","callInvokeWithMethodAndArg","Error","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","_arrayLikeToArray","domainMap","removeUrlExtraParams","paramsToRemove","url","URL","searchParams","URLSearchParams","search","param","toString","history","pushState","getCookie","nameEQ","ca","isJSON","str","parse","substring","indexOf","content","isArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","isThirdPartyCookieDisabled","timeoutMs","iframe","targetOrigin","resolved","style","display","src","timeout","onload","contentWindow","postMessage","clearTimeout","handleMessage","origin","source","status","appendChild","syncStatus","queryString","newUrl","syncStatusElement","getElementById","adjustedQuery","urlWithoutQuery","pathname","handleCmsGuidFlow","_handleCmsGuidFlow","apply","_callee","thirdPartyCookiesDisabled","cmsGuidCookie","_context","_next","_throw"],"sourceRoot":""}