{"version":3,"file":"zoomv.723.min.js?t=5caef4bf8c6e835ab993","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/foundation/Forms/Forms.js"],"sourcesContent":["function getDomMap(form) {\r\n return {\r\n $form: form,\r\n $status: form.querySelector('.Form__Status'),\r\n $body: form.querySelector('.Form__MainBody'),\r\n $submit: form.querySelector('.FormSubmitButton'),\r\n $submitWrapper: form.querySelector('.submitbuttonelementblock')\r\n }\r\n}\r\n\r\nfunction arrayBufferToHexString(buffer) {\r\n const byteArray = new Uint8Array(buffer);\r\n const hexCodes = [...byteArray].map(value => value.toString(16).padStart(2, '0'));\r\n return hexCodes.join('');\r\n}\r\n// Function to generate SHA-256 hash\r\nasync function sha256(message) {\r\n const encoder = new TextEncoder();\r\n const data = encoder.encode(message);\r\n\r\n try {\r\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\r\n const hashHex = arrayBufferToHexString(hashBuffer);\r\n return hashHex\r\n } catch (error) {\r\n console.error('Error generating SHA-256 hash:', error);\r\n return null;\r\n }\r\n}\r\nfunction setCookie(cookieName, value, days, domain) {\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\r\nasync function getFormData($form) {\r\n const formType = $form.querySelector('.form-type')\r\n const numberOfInputs = $form.querySelectorAll('input[type=text]:not(.FormHidden__Input):not(.FormHidden):not(.ohnohoney)').length\r\n const numberOfSelects = $form.querySelectorAll('select').length\r\n const numberOfTextArea = $form.querySelectorAll('textarea').length\r\n const emailValue = await sha256($form.querySelector('.FormTextbox__Input-email')?.value)\r\n const countryValue = $form.querySelector('.FormTextbox__Input-country')?.value\r\n const stateValue = $form.querySelector('.FormTextbox__Input-state')?.value\r\n const employeeCountValue = $form.querySelector('.FormTextbox__Input-employee-count')?.value\r\n const formInterestValue = $form.querySelector('.FormTextbox__Input-form-interest')?.value\r\n const natureOfEnquiry = $form.querySelector('select[data-field-name=\"nature_of_inquiry\"]')?.value || ''\r\n const areaOfInterest = $form.querySelector('input[name=\"mh_area_of_Interest\"]')?.value || ''\r\n\r\n submitFormEventData = {\r\n event: 'form.submit',\r\n eventCategory: 'forms',\r\n eventAction: 'form submit',\r\n eventLabel: formType?.value,\r\n formType: formType?.value, // contact sales, request demo, white paper\r\n formFields: numberOfInputs + numberOfSelects + numberOfTextArea,\r\n hashEmail: emailValue,\r\n formCountry: countryValue,\r\n formState: stateValue,\r\n formEmployeeCount: employeeCountValue,\r\n formInterest: formInterestValue\r\n }\r\n let noeValue = ''\r\n if (natureOfEnquiry && natureOfEnquiry !== '') {\r\n submitFormEventData['formInquiry'] = natureOfEnquiry\r\n if (natureOfEnquiry == \"Account / Billing Support\") {\r\n noeValue = 2\r\n }\r\n else if (natureOfEnquiry == \"Technical Support\") {\r\n noeValue = 3\r\n }\r\n }\r\n var domain = location.hostname.split('.').reverse()[1] + '.' + location.hostname.split('.').reverse()[0]\r\n setCookie(\"NatureOfEnquiry\", noeValue, 365, domain)\r\n if (areaOfInterest && areaOfInterest !== '') {\r\n submitFormEventData['formProducts'] = areaOfInterest\r\n }\r\n}\r\n\r\nlet submitFormEventData = {}\r\nlet formSuccesfullySubmitted = false\r\n\r\nfunction submitSuccessAnalytics(form) {\r\n console.log('form success')\r\n const { $form } = getDomMap(form)\r\n if (!formSuccesfullySubmitted) {\r\n\r\n //submit analytics\r\n window.dataLayer.push(submitFormEventData)\r\n formSuccesfullySubmitted = true\r\n $form.reset()\r\n submitFormEventData = {}\r\n } else {\r\n $form.reset()\r\n submitFormEventData = {}\r\n }\r\n}\r\n\r\nfunction handleSuccess(form) {\r\n const { $form, $body, $status, $submitWrapper, $submit } = getDomMap(form)\r\n const successMessage = $status.innerHTML\r\n const newSuccessMessage = document.createElement('span')\r\n newSuccessMessage.innerHTML = successMessage\r\n newSuccessMessage.classList.add('fake-success-message')\r\n\r\n\r\n\r\n requestAnimationFrame(() => {\r\n $body.removeAttribute('style')\r\n $status.style.display = 'none'\r\n $submitWrapper.appendChild(newSuccessMessage)\r\n })\r\n\r\n function handleClick() {\r\n $status.removeAttribute('style')\r\n if (newSuccessMessage) newSuccessMessage.remove()\r\n $submit.removeEventListener('click', handleClick)\r\n }\r\n\r\n $submit.addEventListener('click', handleClick)\r\n}\r\n\r\nfunction handleError(form) {\r\n const { $form } = getDomMap(form)\r\n const y = $form.getBoundingClientRect().top + window.scrollY - 50\r\n $form.classList.remove('ValidationFail')\r\n\r\n window.scroll({\r\n top: y,\r\n behavior: 'smooth'\r\n })\r\n const errorFields = $form.querySelectorAll('.ValidationFail')\r\n let errorLabels = ''\r\n errorFields.forEach((field) => {\r\n errorLabels = errorLabels + field.querySelector('label').textContent.trim().toLowerCase().replace(' *', '').replace('*', '').replace(/ /g, '_') + \"|\"\r\n })\r\n // removing last character\r\n if (errorLabels !== '') {\r\n errorLabels = errorLabels.slice(0, -1)\r\n }\r\n\r\n const formType = $form.querySelector('.form-type')\r\n\r\n const eventData = {\r\n event: 'form.error',\r\n eventCategory: 'forms',\r\n eventAction: 'form error',\r\n eventLabel: (formType?.value || 'undefined') + ':' + errorLabels, // contact sales, request demo, white paper\r\n formType: (formType?.value || 'undefined')\r\n };\r\n window.dataLayer.push(eventData);\r\n}\r\n\r\nfunction isInViewport(form) {\r\n // Get the bounding client rectangle position in the viewport\r\n var bounding = form.getBoundingClientRect();\r\n\r\n // Checking part. Here the code checks if it's *fully* visible\r\n // Edit this part if you just want a partial visibility\r\n // console.log('window inner height: ', window.innerHeight, ' form top position: ', bounding.top, ' form bottom position: ', bounding.bottom)\r\n if (\r\n bounding.top < window.innerHeight && bounding.bottom >= 0\r\n ) {\r\n // console.log('In the viewport! :)');\r\n return true;\r\n } else {\r\n // console.log('Not in the viewport. :(');\r\n return false;\r\n }\r\n}\r\n// only want to send Analytics once\r\nlet formAnalyticsSent = false\r\n\r\nfunction handleFormInView(form) {\r\n const formType = form.querySelector('.form-type')\r\n const numberOfInputs = form.querySelectorAll('input[type=text]:not(.FormHidden__Input):not(.FormHidden):not(.ohnohoney)').length\r\n const numberOfSelects = form.querySelectorAll('select').length\r\n const numberOfTextArea = form.querySelectorAll('textarea').length\r\n\r\n const eventData = {\r\n event: 'form.view',\r\n eventCategory: 'forms',\r\n eventAction: 'form view',\r\n eventLabel: formType?.value, // contact sales, request demo, white paper\r\n formType: formType?.value,\r\n formFields: numberOfInputs + numberOfSelects + numberOfTextArea\r\n };\r\n window.dataLayer.push(eventData);\r\n formAnalyticsSent = true\r\n}\r\n\r\nfunction submitGdprConsent(form) {\r\n const emailValue = form.querySelector('.FormTextbox__Input-email')?.value\r\n const gdprConsentRadioButtons = document.querySelectorAll('input[type=\"radio\"].gdpr_post_opt_in_status')\r\n let selectedGdprConsentValue = null\r\n\r\n gdprConsentRadioButtons.forEach((radio) => {\r\n if (radio.checked) {\r\n selectedGdprConsentValue = radio.value\r\n }\r\n })\r\n\r\n if (selectedGdprConsentValue) {\r\n fetch('https://zoom.us/opt_gdprcall/v2', {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n email: emailValue,\r\n source: 'haas',\r\n opt: selectedGdprConsentValue\r\n })\r\n })\r\n .then((response) => {\r\n if (!response.ok) {\r\n throw new Error('Network error.')\r\n }\r\n return response.json()\r\n })\r\n .then((data) => { console.log('Success:', data) })\r\n .catch((error) => { console.error('Error:', error) })\r\n }\r\n}\r\n\r\n// Form Component\r\nclass Form {\r\n constructor(el) {\r\n this.el = el\r\n this.domMap = {\r\n $form: this.el.querySelector('form'),\r\n $statusMessage: this.el.querySelector('.Form__Status__Message'),\r\n $inputs: el.querySelectorAll('input[type=text]:not(.FormHidden__Input):not(.FormHidden):not(.ohnohoney)'),\r\n $selects: el.querySelectorAll('select'),\r\n $selectMultiple: el.querySelectorAll('select[multiple]'),\r\n $textAreas: el.querySelectorAll('textarea'),\r\n $submitButton: el.querySelector('.FormSubmitButton'),\r\n $formwithFloatinglabel: el.querySelectorAll('.floatingLabel input'),\r\n $inputNumber: el.querySelectorAll('input[type=number]:not(.FormHidden__Input):not(.FormHidden):not(.ohnohoney)'),\r\n $inputURL: el.querySelectorAll('input[type=url]:not(.FormHidden__Input):not(.FormHidden):not(.ohnohoney)'),\r\n $chatBotSelector: el.querySelectorAll('.fdn-form_technical-support-container .chatBotSelector'),\r\n $salesProductHiddenField: el.querySelector('input[name=\"mh_sales_product\"][type=\"hidden\"]'),\r\n $latamCountryHiddenField: el.querySelector('input[name=\"mh_latam_country\"][type=\"hidden\"]'),\r\n $elmployeeCountElement: el.querySelector('.FormTextbox__Input-employee-count'),\r\n $bannerSection: this.el.querySelectorAll('.fdn-form_technical-support-container')\r\n }\r\n this.notSalesOnlyProduct = 0;\r\n this.employeeCountRange = 0;\r\n this.natureOfEnquiryValue = false;\r\n this.isLatamCountry = false;\r\n\r\n this.addObservers()\r\n this.updateUtmParameters()\r\n this.updateMarketingHiddenField()\r\n this.addListeners()\r\n this.checkFormPositionOnLoad()\r\n this.addLocationBusinessLogic()\r\n this.addContactSalesConditionalLogic()\r\n this.updateJapaneseCountryByDefault()\r\n this.bannerClickEvent()\r\n setTimeout(this.updateClientId, 3000)\r\n // Reset form after page reload\r\n if (this.el.querySelector(\".EPiServerForms:has(.FormStep[data-f-stepindex='1'])\")) {\r\n this.observeSubmitButtonPosition()\r\n setTimeout(() => { \r\n this.resetForm()\r\n this.resetCtaElement()\r\n }, 500)\r\n }\r\n this.handlePricingCardMove()\r\n }\r\n\r\n updateJapaneseCountryByDefault() {\r\n try {\r\n const dropdown = document.querySelector('.FormTextbox__Input-country')\r\n if (window.location.href.includes(\"/ja/\") && dropdown) {\r\n dropdown.value = \"JP\"\r\n function dispatchChangeEvent() {\r\n const event = new Event('change', { bubbles: true })\r\n dropdown.dispatchEvent(event)\r\n }\r\n dispatchChangeEvent()\r\n\r\n }\r\n }\r\n catch (error) {\r\n console.error('Error while updating default country', error)\r\n } \r\n }\r\n\r\n resetCtaElement() {\r\n const ctaSections = this.el.querySelectorAll(\".fdn-form_technical-support-container\")\r\n if (ctaSections.length > 0) {\r\n ctaSections.forEach(ctaSection => {\r\n ctaSection.classList.add(\"hide\")\r\n ctaSection.style.display = \"none\"\r\n });\r\n }\r\n }\r\n observeSubmitButtonPosition() {\r\n const button = document.querySelector('.FormStep[data-f-stepindex=\"1\"] button[type=\"submit\"]')\r\n\r\n // Create a ResizeObserver to observe size/position changes\r\n const observer = new ResizeObserver(() => {\r\n const currentTop = button.getBoundingClientRect().top\r\n \r\n // Trigger your function\r\n this.setMultistepformBackButtonPosition()\r\n });\r\n\r\n // Observe the parent container or document\r\n const parentDiv = document.querySelector('.Form__MainBody')\r\n observer.observe(parentDiv)\r\n }\r\n resetForm() {\r\n const formid = this.el.querySelector(\".EPiServerForms\")\r\n if (formid.id) {\r\n sessionStorage.removeItem(formid.id)\r\n }\r\n this.el.querySelectorAll('input[type=\"text\"], input[type=\"number\"], select').forEach(field => {\r\n if (field.type === 'checkbox' || field.type === 'radio') {\r\n field.checked = false\r\n } else {\r\n field.value = ''\r\n }\r\n });\r\n this.resetPOI()\r\n this.handlePOI(false)\r\n this.handleNOI()\r\n }\r\n\r\n resetPOI() {\r\n const $multipleSelection = this.el.querySelectorAll('.multiSelectDropdown')\r\n if ($multipleSelection.length > 0) {\r\n // Loop through each element in the NodeList\r\n $multipleSelection.forEach((dropdown) => {\r\n // Loop through each option inside the current dropdown\r\n for (let i = 0; i < dropdown.options.length; i++) {\r\n dropdown.options[i].selected = false; // Deselect all options\r\n }\r\n // Scroll to the top of the dropdown after 100ms\r\n setTimeout(() => {\r\n dropdown.scrollTo({ top: 0, behavior: 'smooth' })\r\n }, 100)\r\n \r\n // Find the previous sibling element (assuming it's the .option-container)\r\n const optionContainer = dropdown.previousElementSibling;\r\n \r\n // Check if the previous sibling is indeed .option-container\r\n if (optionContainer && optionContainer.classList.contains('option-container')) {\r\n optionContainer.innerHTML = \"\"; \r\n dropdown.closest('.multi-select-wrapper').classList.remove('has-elements')\r\n }\r\n })\r\n document.querySelector('input[name=\"mh_area_of_Interest\"]').value = \"\"\r\n }\r\n }\r\n updateMarketingHiddenField() {\r\n try {\r\n const cookies = document.cookie.split('; ');\r\n var gaMarketId = this.el.querySelector('input[name=\"ga_marketing_id\"]')\r\n var mhMarketId = this.el.querySelector('input[name=\"mh_marketing_id\"]')\r\n for (let cookie of cookies) {\r\n const [key, value] = cookie.split('=');\r\n if (key === '_zm_visitor_guid') {\r\n if (gaMarketId) {\r\n gaMarketId.value = decodeURIComponent(value);\r\n }\r\n if (mhMarketId) {\r\n mhMarketId.value = decodeURIComponent(value);\r\n }\r\n\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Error for marketing_id.', error)\r\n }\r\n }\r\n\r\n checkFormPositionOnLoad() {\r\n const { $form } = this.domMap\r\n if (!formAnalyticsSent) {\r\n if (isInViewport($form)) {\r\n handleFormInView($form)\r\n }\r\n }\r\n }\r\n addListeners() {\r\n const { $form, $selects, $selectMultiple, $inputs, $textAreas, $submitButton, $formwithFloatinglabel, $inputNumber, $inputURL, $chatBotSelector } = this.domMap\r\n\r\n // Remove placeholders if floating label was triggered.\r\n if ($formwithFloatinglabel) {\r\n $formwithFloatinglabel.forEach((input) => {\r\n input.removeAttribute(\"placeholder\");\r\n })\r\n }\r\n\r\n window.addEventListener('scroll', function (event) {\r\n if (!formAnalyticsSent) {\r\n if (isInViewport($form)) {\r\n handleFormInView($form)\r\n }\r\n }\r\n }, false);\r\n\r\n\r\n $inputNumber.forEach((inputNumber) => {\r\n if (inputNumber.value != \"\") {\r\n inputNumber.parentElement.classList.add('focus');\r\n }\r\n inputNumber.addEventListener('focus', (event) => { this.focusFields(event) })\r\n })\r\n\r\n $inputURL.forEach((inputURL) => {\r\n if (inputURL.value != \"\") {\r\n inputURL.parentElement.classList.add('focus');\r\n }\r\n inputURL.addEventListener('focus', (event) => { this.focusFields(event) })\r\n })\r\n\r\n $inputs.forEach((input) => {\r\n if (input.value != \"\") {\r\n input.parentElement.classList.add('focus');\r\n }\r\n input.addEventListener('blur', (event) => { this.submitAbandonedFields(event, $form, input) })\r\n input.addEventListener('focus', (event) => { this.focusFields(event) })\r\n })\r\n $selects.forEach((select) => {\r\n select.addEventListener('blur', (event) => { this.submitAbandonedFields(event, $form, select) })\r\n select.addEventListener('focus', (event) => { this.focusFields(event) })\r\n })\r\n $textAreas.forEach((textArea) => {\r\n textArea.addEventListener('blur', (event) => { this.submitAbandonedFields(event, $form, textArea) })\r\n textArea.addEventListener('focus', (event) => { this.focusFields(event) })\r\n })\r\n\r\n $selectMultiple.forEach((selectMultiple) => {\r\n selectMultiple.classList.add('multiSelectDropdown')\r\n\r\n const multiSelectWithoutCtrl = (elemSelector) => {\r\n let options = selectMultiple.querySelectorAll(elemSelector + ' option')\r\n\r\n options.forEach(function (element) {\r\n element.addEventListener('mousedown', function (e) {\r\n e.preventDefault()\r\n element.parentElement.focus();\r\n if (element.hasAttribute('selected')) {\r\n element.removeAttribute('selected')\r\n } else {\r\n element.setAttribute('selected', '')\r\n }\r\n return false\r\n }, false)\r\n })\r\n }\r\n\r\n multiSelectWithoutCtrl('.multiSelectDropdown')\r\n });\r\n\r\n if($chatBotSelector){\r\n $chatBotSelector.forEach((chatBot) => {\r\n chatBot.addEventListener('click', function (event) {\r\n event.preventDefault()\r\n const openChatButton = document.querySelector('[aria-label=\"Open chat\"]')\r\n const chatWithBotButton = document.querySelector('[title=\"Chat with bot\"]')\r\n\r\n if (openChatButton) {\r\n openChatButton.click()\r\n } else if (chatWithBotButton) {\r\n chatWithBotButton.click()\r\n }\r\n })\r\n })\r\n }\r\n\r\n $submitButton.addEventListener('click', (event) => { getFormData($form) })\r\n // form success event\r\n if (typeof $$epiforms !== 'undefined') {\r\n $$epiforms(document).ready(function myfunction() {\r\n try {\r\n const isGdprApplicable = $form.querySelectorAll('input[type=\"radio\"].gdpr_post_opt_in_status').length > 0\r\n if (isGdprApplicable) {\r\n $$epiforms('.EPiServerForms').on(\r\n 'formsStartSubmitting',\r\n function (event) {\r\n submitGdprConsent($form, function () {\r\n console.log('GDPR consent processing completed.')\r\n })\r\n }\r\n )\r\n }\r\n } catch (error) {\r\n console.error('Error in GDPR check.', error)\r\n }\r\n\r\n // console.log('listen to event');\r\n $$epiforms(\".EPiServerForms\").on(\"formsSubmitted\", function (event, param1, param2) {\r\n const currentStep = document.querySelector(\"span.Form__NavigationBar__ProgressBar__CurrentStep\")\r\n const stepCount = document.querySelector(\"span.Form__NavigationBar__ProgressBar__StepsCount\")\r\n if (stepCount && currentStep) {\r\n if (stepCount?.textContent === currentStep?.textContent) {\r\n submitSuccessAnalytics($form)\r\n }\r\n } else {\r\n submitSuccessAnalytics($form)\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (typeof $$epiforms !== 'undefined') {\r\n const self = this;\r\n $$epiforms(document).ready(function myfunction() {\r\n $$epiforms(\".EPiServerForms\").on(\"formsNavigationNextStep\", function () {\r\n self.multistepNextStepEvent();\r\n });\r\n $$epiforms(\".EPiServerForms\").on(\"formsNavigationPrevStep\", function () {\r\n self.multistepPreviousStepEvent();\r\n });\r\n });\r\n }\r\n window.addEventListener('resize', this.handlePricingCardMove)\r\n }\r\n\r\n focusFields(event) {\r\n event.target.parentElement.classList.add('focus');\r\n }\r\n submitAbandonedFields(event, form, field) {\r\n if (event.target.value == '') {\r\n event.target.parentElement.classList.remove('focus');\r\n }\r\n const formType = form.querySelector('.form-type')\r\n const numberOfInputs = form.querySelectorAll('input[type=text]:not(.FormHidden__Input):not(.FormHidden):not(.ohnohoney)').length\r\n const numberOfSelects = form.querySelectorAll('select').length\r\n const numberOfTextArea = form.querySelectorAll('textarea').length\r\n\r\n let fieldLabel = '';\r\n const isDesktop = !(/Mobi|Android/i.test(navigator.userAgent))\r\n if (field && field.hasAttribute('multiple') == true && isDesktop) {\r\n fieldLabel = field.parentElement.previousElementSibling.textContent.trim().toLowerCase().replace(' *', '').replace('*', '').replace(/ /g, '_')\r\n } else {\r\n fieldLabel = field.previousElementSibling.textContent.trim().toLowerCase().replace(' *', '').replace('*', '').replace(/ /g, '_')\r\n }\r\n let hasValue = ''\r\n if (!field.value && field.value === '') {\r\n hasValue = 'empty'\r\n } else {\r\n hasValue = 'has value'\r\n }\r\n const eventData = {\r\n event: 'form.fieldAbandoned',\r\n eventCategory: 'forms',\r\n eventAction: 'form field abandoned',\r\n eventLabel: fieldLabel + '|' + hasValue,\r\n formType: formType?.value, // contact sales, request demo, white paper\r\n formFields: numberOfInputs + numberOfSelects + numberOfTextArea\r\n };\r\n window.dataLayer.push(eventData)\r\n }\r\n\r\n updateClientId() {\r\n let cookie = {}\r\n document.cookie.split(';').forEach(function (el) {\r\n let splitCookie = el.split('=')\r\n let key = splitCookie[0].trim()\r\n let value = splitCookie[1]\r\n cookie[key] = value\r\n })\r\n\r\n let element = document.querySelector('.ga-client-id')\r\n if (element) {\r\n element.value = cookie['_ga'].substring(6)\r\n }\r\n }\r\n\r\n addObservers() {\r\n const { $form, $statusMessage, $bannerSection } = this.domMap\r\n const observerOptions = { attributes: true }\r\n\r\n const formObserver = new MutationObserver(this.formCallback)\r\n formObserver.observe($form, observerOptions)\r\n const statusObserver = new MutationObserver(this.statusCallback)\r\n statusObserver.observe($statusMessage, observerOptions)\r\n if ($bannerSection.length > 0) {\r\n $bannerSection.forEach((bannerSec) => {\r\n const bannerObserver = new MutationObserver(this.bannerCallback)\r\n bannerObserver.observe(bannerSec, observerOptions)\r\n })\r\n }\r\n }\r\n\r\n bannerCallback(mutationsList) {\r\n const $status = mutationsList[0].target\r\n const formType = document.querySelector('.form-type')\r\n var i = 0;\r\n for (let mutation of mutationsList) {\r\n if (mutation.type === 'attributes') {\r\n if (mutation.attributeName === 'class') {\r\n if (!$status.classList.contains('hide') && (i == 0)) {\r\n var eventLabelVal = ($status.getAttribute('data-event-label')) ? $status.getAttribute('data-event-label') + ' - impression' : 'support - impression'\r\n const eventData = {\r\n event: 'form.interaction',\r\n eventCategory: 'forms',\r\n eventAction: 'banner',\r\n eventLabel: (eventLabelVal) ? eventLabelVal.split(\"\\n\")[0] : \"support\",\r\n formType: formType?.value\r\n };\r\n window.dataLayer.push(eventData)\r\n i++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n statusCallback = (mutationsList) => {\r\n const $status = mutationsList[0].target\r\n const $form = $status.closest('form')\r\n for (let mutation of mutationsList) {\r\n if (mutation.type === 'attributes') {\r\n if (mutation.attributeName === 'class') {\r\n if ($status.classList.contains('Form__Success__Message')) {\r\n handleSuccess($form)\r\n }\r\n if ($status.classList.contains('Form__Warning__Message')) {\r\n handleError($form)\r\n try {\r\n const selectElement = document.querySelector('.FormTextbox__Input-country')\r\n if (selectElement) {\r\n selectElement.dispatchEvent(new Event('change'));\r\n }\r\n this.handleWarningMessage(true)\r\n if (!this.el.querySelector('.FormStep[data-f-stepindex=\"1\"]')) {\r\n this.resetPOI()\r\n this.resetCtaElement()\r\n this.handlePOI(false)\r\n }\r\n this.handleNoiAfterWarningMessage()\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n handleNoiAfterWarningMessage() {\r\n const technical_support_banner = this.el.querySelector('div[data-field-name=\"technical_support\"]')\r\n const billing_support_banner = this.el.querySelector('div[data-field-name=\"billing_support\"]')\r\n if (technical_support_banner && technical_support_banner) {\r\n this.el.querySelector(\"[data-field-name='nature_of_inquiry']\").addEventListener('change', (event) => {\r\n const selectedValue = event.target.value;\r\n if (selectedValue == 'Account / Billing Support') {\r\n billing_support_banner.style.display = 'block'\r\n } else if (selectedValue == 'Technical Support') {\r\n technical_support_banner.style.display = 'block'\r\n } else if (selectedValue == 'Sales') {\r\n this.handlePOI(true)\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleWarningMessage(visibility) {\r\n const checkWarningMessage = document.querySelector('.Form__Warning__Message')\r\n if (checkWarningMessage && visibility) {\r\n checkWarningMessage.style.display = \"block\"\r\n } else {\r\n checkWarningMessage.style.display = \"none\"\r\n }\r\n }\r\n\r\n formCallback = (mutationsList) => {\r\n const $form = mutationsList[0].target\r\n for (let mutation of mutationsList) {\r\n if (mutation.type === 'attributes') {\r\n if (mutation.attributeName === 'class') {\r\n if ($form.classList.contains('ValidationFail')) {\r\n handleError($form)\r\n try {\r\n this.handleWarningMessage(false)\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n updateUtmParameters() {\r\n const queryString = window.location.search\r\n const params = new URLSearchParams(queryString)\r\n params.forEach((val, key) => {\r\n if (key === 'zcid') {\r\n key = 'utm_zcid'\r\n }\r\n let formField = document.querySelector('[name=\"ga_' + key + '\"]')\r\n if (formField) {\r\n if (formField.value.length == 0) {\r\n formField.value = val\r\n }\r\n }\r\n })\r\n }\r\n\r\n addLocationBusinessLogic() {\r\n let isCascading = document.querySelector(\".selectionelementwithcodeblock\")\r\n if (!isCascading) {\r\n const { $form, $selects } = this.domMap;\r\n const stateElement = $form.querySelector('.FormTextbox__Input-state');\r\n const countryElement = $form.querySelector('.FormTextbox__Input-country');\r\n\r\n if (stateElement !== null && countryElement !== null) {\r\n this.setAllState($form);\r\n $selects.forEach((select) => {\r\n if (select.getAttribute(\"class\") === \"FormTextbox__Input-country\") {\r\n select.addEventListener('change', (event) => { this.addCountryListener($form) })\r\n }\r\n });\r\n }\r\n }\r\n this.initValidationContext()\r\n }\r\n\r\n async multistepNextStepEvent() {\r\n const { $form } = this.domMap\r\n const btnNext = $form.querySelector('.Form__NavigationBar .btnNext')?.textContent;\r\n const formType = $form.querySelector('.form-type')\r\n const emailValue = $form.querySelector('.FormTextbox__Input-email')?.value\r\n const countryValue = $form.querySelector('.FormTextbox__Input-country')?.value\r\n const employeeCountValue = $form.querySelector('.FormTextbox__Input-employee-count')?.value\r\n const natureOfEnquiry = $form.querySelector('select[data-field-name=\"nature_of_inquiry\"]')?.value || ''\r\n const areaOfInterest = $form.querySelector('input[name=\"mh_area_of_Interest\"]')?.value || ''\r\n const formTitle = $form.querySelector('.Form__Title')?.textContent || ''\r\n const currentStep = 1\r\n const errorElements = $form.querySelectorAll('.FormStep[data-f-stepindex=\"1\"] .Form__Element__ValidationError')\r\n\r\n if ((emailValue) && (employeeCountValue) && (countryValue) && (natureOfEnquiry)) {\r\n const btnText = (btnNext) ? btnNext : \"continue\"\r\n const eventData = {\r\n event: 'form.interaction',\r\n eventCategory: 'forms',\r\n eventAction: formTitle + ' - ' + currentStep + ' - ' + btnText,\r\n eventLabel: formType?.value,\r\n formType: formType?.value,\r\n hashEmail: await sha256(emailValue),\r\n formCountry: countryValue,\r\n formInquiry: natureOfEnquiry,\r\n formEmployeeCount: employeeCountValue,\r\n formProducts: areaOfInterest\r\n }\r\n window.dataLayer.push(eventData)\r\n\r\n const nextStepCount = currentStep + 1\r\n const eventDataNextStep = {\r\n event: 'form.interaction',\r\n eventCategory: 'forms',\r\n eventAction: formTitle + ' - ' + nextStepCount + ' - step view',\r\n eventLabel: formType?.value,\r\n formType: formType?.value\r\n };\r\n window.dataLayer.push(eventDataNextStep)\r\n }\r\n\r\n const countryCodePrevious = $form.querySelector('input[name=\"mh_country_code_previous\"]')?.value\r\n if (countryCodePrevious != countryValue) {\r\n const selectElement = $form.querySelector('.FormTextbox__Input-country');\r\n selectElement.dispatchEvent(new Event('change'));\r\n }\r\n\r\n if (errorElements) {\r\n errorElements.forEach(function (element) {\r\n element.style.display = 'none';\r\n });\r\n }\r\n }\r\n\r\n multistepPreviousStepEvent() {\r\n const { $form } = this.domMap\r\n const countryValue = $form.querySelector('.FormTextbox__Input-country')?.value\r\n var countryCodePrevious = document.querySelector('input[name=\"mh_country_code_previous\"]')\r\n if (countryCodePrevious) {\r\n countryCodePrevious.value = countryValue;\r\n }\r\n const formType = $form.querySelector('.form-type')\r\n const formTitle = $form.querySelector('.Form__Title')?.textContent || ''\r\n const currentStep = 2\r\n const eventData = {\r\n event: 'form.interaction',\r\n eventCategory: 'forms',\r\n eventAction: formTitle + ' - ' + currentStep + ' - back',\r\n eventLabel: formType?.value,\r\n formType: formType?.value\r\n }\r\n window.dataLayer.push(eventData)\r\n }\r\n\r\n bannerClickEvent() {\r\n const { $bannerSection } = this.domMap\r\n $bannerSection.forEach((bannerSec) => {\r\n const anchorLink = bannerSec.querySelector('a')\r\n const button = bannerSec.querySelector('button')\r\n const fieldName = bannerSec.getAttribute('data-field-name')\r\n const formType = document.querySelector('.form-type')\r\n var eventLabelPrefix = 'support'\r\n if (anchorLink) {\r\n anchorLink.addEventListener('click', function (event) {\r\n var eventLabelVal = (bannerSec.getAttribute('data-event-label')) ? bannerSec.getAttribute('data-event-label') + ' - ' + event.target.innerText : 'support - ' + event.target.innerText\r\n const eventData = {\r\n event: 'form.interaction',\r\n eventCategory: 'forms',\r\n eventAction: 'banner',\r\n eventLabel: (eventLabelVal) ? eventLabelVal.split(\"\\n\")[0] : \"support\",\r\n formType: formType?.value\r\n };\r\n window.dataLayer.push(eventData)\r\n })\r\n }\r\n if (button) {\r\n button.addEventListener('click', function (event) {\r\n var eventLabelVal = (bannerSec.getAttribute('data-event-label')) ? bannerSec.getAttribute('data-event-label') + ' - ' + event.target.innerText : 'support - ' + event.target.innerText\r\n const eventData = {\r\n event: 'form.interaction',\r\n eventCategory: 'forms',\r\n eventAction: 'banner',\r\n eventLabel: (eventLabelVal) ? eventLabelVal.split(\"\\n\")[0] : \"support\",\r\n formType: formType?.value\r\n };\r\n window.dataLayer.push(eventData)\r\n })\r\n }\r\n })\r\n }\r\n\r\n handleNOI() {\r\n const technical_support_banner = this.el.querySelector('div[data-field-name=\"technical_support\"]')\r\n const billing_support_banner = this.el.querySelector('div[data-field-name=\"billing_support\"]')\r\n\r\n const { $salesProductHiddenField, $latamCountryHiddenField, $elmployeeCountElement } = this.domMap\r\n\r\n if ($salesProductHiddenField && $latamCountryHiddenField) {\r\n // Nature of inquiry on change\r\n this.el.querySelector(\"[data-field-name='nature_of_inquiry']\").addEventListener('change', (event) => {\r\n const selectedValue = event.target.value;\r\n if (selectedValue == 'Account / Billing Support') {\r\n billing_support_banner.style.display = 'block'\r\n \r\n } else if(selectedValue == 'Technical Support') {\r\n technical_support_banner.style.display = 'block'\r\n }\r\n });\r\n }\r\n }\r\n handlePOI($sales = true) {\r\n // Find the select element with the specific data-field-name attribute\r\n const selectBox = this.el.querySelector('select[data-field-name=\"area_of\"]')\r\n\r\n // If the select element is found, look for the parent with the class .FormSelection\r\n if (selectBox) {\r\n const parentFormSelection = selectBox.closest('.FormSelection')\r\n\r\n // If the parent with the .FormSelection class is found, add the hide class\r\n if (parentFormSelection && $sales) {\r\n parentFormSelection.classList.remove('hide')\r\n parentFormSelection.style.display = \"block\"\r\n }\r\n else {\r\n parentFormSelection.classList.add('hide')\r\n parentFormSelection.style.display = \"none\"\r\n }\r\n }\r\n }\r\n addContactSalesConditionalLogic() {\r\n const { $salesProductHiddenField, $latamCountryHiddenField, $elmployeeCountElement } = this.domMap\r\n\r\n if ($salesProductHiddenField && $latamCountryHiddenField) {\r\n // Nature of inquiry on change\r\n this.el.querySelector(\"[data-field-name='nature_of_inquiry']\").addEventListener('change', (event) => {\r\n const selectedValue = event.target.value;\r\n if (selectedValue == 'Sales') {\r\n this.natureOfEnquiryValue = true\r\n this.handleSCL()\r\n this.handlePOI(this.natureOfEnquiryValue)\r\n //document.querySelector('.Form__NavigationBar .btnNext').textContent = document.querySelector(\".multistep_continue\").value\r\n } else {\r\n this.natureOfEnquiryValue = false\r\n this.handleSCL()\r\n this.handlePOI(this.natureOfEnquiryValue)\r\n this.resetPOI();\r\n document.querySelector('input[name=\"mh_area_of_Interest\"]').value = \"\"\r\n document.querySelector('.Form__NavigationBar .btnNext').textContent = document.querySelector(\".multistep_continue_anyway\")?.value\r\n }\r\n });\r\n\r\n // AOI/POI On change event\r\n this.el.querySelectorAll('.multiSelectDropdown').forEach(dropdown => {\r\n dropdown.addEventListener('click', (event) => this.handlePOIDropdownChange(event, $salesProductHiddenField))\r\n });\r\n\r\n // POI Close button event listner\r\n document.addEventListener('preCloseClick', (event) => {\r\n // Handle the custom event\r\n let hiddenFieldValue = $salesProductHiddenField.value\r\n let hiddenValuesArray = hiddenFieldValue.split(',').map(item => item.trim())\r\n const multiSelectDropdown = this.el.querySelector('.multiSelectDropdown')\r\n const selectedValues = Array.from(multiSelectDropdown.selectedOptions).map(option => option.value)\r\n let allEmpty = selectedValues.every(value => value === \"\")\r\n if (selectedValues.length > 0 && !allEmpty) {\r\n this.notSalesOnlyProduct = this.arraysHaveNoCommonValues(selectedValues, hiddenValuesArray)\r\n } else {\r\n this.notSalesOnlyProduct = false\r\n }\r\n this.handleSCL()\r\n });\r\n\r\n\r\n // Employee count\r\n $elmployeeCountElement.addEventListener('change', (event) => {\r\n // Get the selected value\r\n const selectedValue = event.target.value\r\n // You can now use the selected value as needed\r\n this.employeeCountRange = this.getEmployeeCountEnumVal(selectedValue)\r\n // get the range\r\n this.handleSCL()\r\n })\r\n\r\n // validate a LATAM country\r\n const countryElement = this.el.querySelector('.FormTextbox__Input-country')\r\n let hiddenFieldValue = $latamCountryHiddenField.value\r\n let countryCodes = hiddenFieldValue.split(',').map(item => item.trim())\r\n countryElement.addEventListener('change', (event) => {\r\n const selectedValue = event.target.value\r\n if (countryCodes.includes(selectedValue)) {\r\n this.isLatamCountry = true\r\n this.handleSCL()\r\n } else {\r\n this.isLatamCountry = false\r\n this.handleSCL()\r\n }\r\n });\r\n }\r\n }\r\n\r\n setMultistepformBackButtonPosition () {\r\n const backButtonWrapper = this.el.querySelector('.Form__NavigationBar')\r\n const section = document.querySelector('.FormStep[data-f-stepindex=\"1\"]')\r\n if (section && !section.classList.contains('hide')) {\r\n // Select the button whose position you want to find\r\n const targetButton = this.el.querySelector('.FormStep[data-f-stepindex=\"1\"] button[type=\"submit\"]');\r\n\r\n // Select the parent .EPiServerForms div\r\n const parentDiv = this.el.querySelector('.Form__MainBody');\r\n\r\n // Get the position of the button relative to the viewport\r\n const buttonRect = targetButton.getBoundingClientRect();\r\n\r\n // Get the position of the parent div relative to the viewport\r\n const parentRect = parentDiv.getBoundingClientRect();\r\n\r\n // Calculate the button's position relative to the parent div\r\n const relativeTop = buttonRect.top - parentRect.top;\r\n backButtonWrapper.style.top = `${relativeTop + 15}px`\r\n } else {\r\n backButtonWrapper.style.top = 'auto'\r\n }\r\n }\r\n handlePOIDropdownChange(event, $salesProductHiddenField) {\r\n const selectElement = event.currentTarget;\r\n if (selectElement.tagName === 'SELECT' && selectElement.multiple) {\r\n // Get the hidden field value and split it into an array\r\n const hiddenFieldValue = $salesProductHiddenField.value\r\n const hiddenValuesArray = hiddenFieldValue.split(',').map(item => item.trim())\r\n\r\n // Get the currently selected options\r\n const selectedOptions = Array.from(selectElement.selectedOptions).map(option => option.value)\r\n let allEmpty = selectedOptions.every(value => value === \"\")\r\n if (selectedOptions.length > 0 && !allEmpty) {\r\n this.notSalesOnlyProduct = this.arraysHaveNoCommonValues(selectedOptions, hiddenValuesArray)\r\n } else {\r\n this.notSalesOnlyProduct = false\r\n }\r\n this.handleSCL()\r\n }\r\n }\r\n\r\n handleSCL() {\r\n let ctaBlock = this.el.querySelector('.ctaelementblock div[data-field-name=\"fast_track_your_zoom_purchase\"]')\r\n\r\n if (this.natureOfEnquiryValue && this.notSalesOnlyProduct && this.employeeCountRange > 0 && this.employeeCountRange <= 3) {\r\n if (this.isLatamCountry) {\r\n ctaBlock.classList.remove('__isNotHavingLatamCountry')\r\n ctaBlock.classList.add('__isHavingLatamCountry')\r\n ctaBlock.setAttribute(\"data-event-label\", \"forced pnp\")\r\n this.el.querySelector('.Form__NavigationBar').style.display = 'none'\r\n } else {\r\n ctaBlock.classList.remove('__isHavingLatamCountry')\r\n ctaBlock.classList.add('__isNotHavingLatamCountry')\r\n ctaBlock.setAttribute(\"data-event-label\", \"optional pnp\")\r\n this.el.querySelector('.Form__NavigationBar').style.display = 'flex'\r\n }\r\n ctaBlock.classList.remove(\"hide\")\r\n ctaBlock.style.display = 'block'\r\n document.querySelector('.Form__NavigationBar .btnNext').textContent = document.querySelector(\".multistep_continue_anyway\").value\r\n } else {\r\n this.el.querySelector('.Form__NavigationBar').style.display = 'flex'\r\n ctaBlock.classList.add(\"hide\")\r\n ctaBlock.style.display = 'none'\r\n var natureOfEnquiry = this.el.querySelector(\"[data-field-name='nature_of_inquiry']\")?.value\r\n if (natureOfEnquiry && (natureOfEnquiry == \"Sales\")) {\r\n document.querySelector('.Form__NavigationBar .btnNext').textContent = document.querySelector(\".multistep_continue\").value\r\n }\r\n }\r\n this.handleContinueAnywayStep()\r\n }\r\n\r\n handleContinueAnywayStep() {\r\n const removeButton = this.el.querySelector('input[name=\"mh_remove_next_btn\"][type=\"hidden\"]')\r\n const navigationBar = this.el.querySelector('.Form__NavigationBar')\r\n const natureOfEnquiry = this.el.querySelector(\"[data-field-name='nature_of_inquiry']\")?.value\r\n if (removeButton && (removeButton.value == '1')) {\r\n if (navigationBar && (natureOfEnquiry != \"Sales\")) {\r\n navigationBar.style.display = 'none'\r\n }\r\n }\r\n }\r\n\r\n getEmployeeCountEnumVal(employeeCountValue) {\r\n const employeeCountEnum = {\r\n \"Just Me\": 1,\r\n \"2-10\": 2,\r\n \"11-50\": 3\r\n };\r\n return employeeCountEnum[employeeCountValue] || ''\r\n }\r\n\r\n arraysHaveNoCommonValues(a, b) {\r\n return a.filter(value => b.includes(value)).length === 0\r\n }\r\n\r\n setAllState($form) {\r\n const stateElement = $form.querySelector('.FormTextbox__Input-state');\r\n this.data = {\r\n allState: JSON.parse(stateElement.getAttribute(\"data-all-state\")),\r\n visibleCountryFor: JSON.parse(stateElement.getAttribute(\"data-visible-state\"))\r\n }\r\n\r\n //remove extra attributes\r\n stateElement.removeAttribute(\"data-all-state\");\r\n //stateElement.removeAttribute(\"data-visible-state\");\r\n }\r\n\r\n addCountryListener($form) {\r\n this.setDefaultStateElement($form);\r\n const { allState, visibleCountryFor } = this.data;\r\n const countryElement = $form.querySelector('.FormTextbox__Input-country');\r\n const selectedItem = countryElement.options[countryElement.selectedIndex];\r\n const selectedId = selectedItem.getAttribute(\"data-id\");\r\n const stateElement = $form.querySelector('.FormTextbox__Input-state');\r\n const selectedCountryValue = selectedItem.getAttribute(\"value\");\r\n\r\n let isFillState = (visibleCountryFor.length > 0 && visibleCountryFor.indexOf(selectedItem.getAttribute(\"value\")) !== -1) || (visibleCountryFor.length === 0);\r\n\r\n if (isFillState) {\r\n allState.forEach((stateItems) => {\r\n if (stateItems.country === selectedId) {\r\n stateItems.states.forEach((state) => {\r\n let option = document.createElement(\"option\");\r\n option.value = state.caption;\r\n option.text = state.value;\r\n stateElement.appendChild(option);\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n if (stateElement.parentElement) {\r\n stateElement.parentElement.classList.remove('d-flex');\r\n stateElement.parentElement.style.display = \"none\";\r\n }\r\n }\r\n\r\n stateElement.selectedIndex = 0;\r\n this.showHideZipField(selectedCountryValue)\r\n }\r\n\r\n setDefaultStateElement($form) {\r\n const stateElement = $form.querySelector('.FormTextbox__Input-state')\r\n if (stateElement) {\r\n let selectFirstElement = stateElement.options[0]\r\n var defaultOption = document.createElement(\"option\")\r\n defaultOption.value = \"\"\r\n defaultOption.text = (selectFirstElement && selectFirstElement.text && selectFirstElement.text.trim() !== \"\") ? selectFirstElement.text : \" -- Select an option -- \"\r\n defaultOption.disabled = \"disabled\"\r\n stateElement.innerHTML = \"\"\r\n stateElement.appendChild(defaultOption);\r\n stateElement.parentElement.style.display = \"block\"\r\n stateElement.parentElement.classList.add('d-flex')\r\n stateElement.selectedIndex = 0\r\n }\r\n }\r\n\r\n\r\n initValidationContext() {\r\n const { $form } = this.domMap\r\n if ($form) {\r\n this.validationContext =\r\n {\r\n formId: $form.getAttribute('id'),\r\n removedValidationElements: []\r\n }\r\n }\r\n }\r\n\r\n showHideZipField(selectedCountryValue) {\r\n try {\r\n if (selectedCountryValue === undefined || selectedCountryValue == '') {\r\n return\r\n }\r\n const { $form } = this.domMap\r\n if ($form) {\r\n let zipField = $form.querySelector('input[data-field-name=\"zip\"]')\r\n if (zipField) {\r\n let zipElementName = zipField.getAttribute('name')\r\n let zipContainer = zipField.parentNode\r\n if (zipContainer) {\r\n zipContainer.style.display = \"none\"\r\n }\r\n const countryRequiredZipCode = [\"US\", \"CA\", \"DE\", \"PH\", \"KR\", \"SA\", \"JP\"]\r\n if (countryRequiredZipCode.indexOf(selectedCountryValue) !== -1){\r\n this.setValidation(zipElementName)\r\n if (zipContainer) {\r\n zipContainer.style.display = \"block\"\r\n zipField.value = ''\r\n }\r\n }\r\n else {\r\n this.removeValidation(zipElementName)\r\n zipField.value = '#notapplicable#'\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n\r\n removeValidation(elementName) {\r\n if (elementName === undefined || elementName == '') {\r\n return\r\n }\r\n const { formId, removedValidationElements } = this.validationContext\r\n let formContext = epi.EPiServer.Forms[formId]\r\n if (formContext) {\r\n epi.EPiServer.Forms[formId].ValidationInfo = formContext.ValidationInfo.filter(item => {\r\n if (item.targetElementName === elementName) {\r\n removedValidationElements.push(item)\r\n return false\r\n }\r\n return true\r\n });\r\n }\r\n }\r\n\r\n setValidation(elementName) {\r\n if (elementName === undefined || elementName == '') {\r\n return\r\n }\r\n const { formId, removedValidationElements } = this.validationContext\r\n let removedValidationElement = removedValidationElements.filter(item => item.targetElementName == elementName)\r\n if (removedValidationElement && (removedValidationElement.length > 0)) {\r\n epi.EPiServer.Forms[formId].ValidationInfo.push(removedValidationElement[0])\r\n }\r\n }\r\n\r\n // New Pricing API\r\n handlePricingCardMove = () => {\r\n const heroContent = this.el.querySelector('.fdn-form__content')\r\n const heroContainer = this.el\r\n const pricingCardWrapper = this.el.querySelector(\r\n '.fdn-pricingcard-uni-wrapper'\r\n )\r\n\r\n if (heroContent && heroContainer && pricingCardWrapper) {\r\n // Get current viewport width\r\n const viewportWidth = window.innerWidth\r\n\r\n if (viewportWidth >= 768 && viewportWidth < 1220) {\r\n // Move the pricing card wrapper as the last element of hero__container\r\n if (heroContainer.lastElementChild !== pricingCardWrapper) {\r\n heroContainer.appendChild(pricingCardWrapper)\r\n // Add the class __hasPricingCard to heroContainer\r\n heroContainer.classList.add('__hasPricingCard')\r\n }\r\n } else {\r\n // Move the pricing card wrapper back inside the hero__content\r\n if (!heroContent.contains(pricingCardWrapper)) {\r\n heroContent.appendChild(pricingCardWrapper)\r\n // Remove the class __hasPricingCard from heroContainer\r\n heroContainer.classList.remove('__hasPricingCard')\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default Form\r\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","_createForOfIteratorHelper","Array","isArray","_unsupportedIterableToArray","_n","F","_defineProperties","_toPropertyKey","key","_defineProperty","toPrimitive","String","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_arrayLikeToArray","toString","from","test","getDomMap","form","$form","$status","querySelector","$body","$submit","$submitWrapper","sha256","_x","_sha","_callee2","message","encoder","data","hashBuffer","hashHex","_context2","TextEncoder","encode","crypto","subtle","digest","Uint8Array","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","map","padStart","join","t0","console","error","setCookie","cookieName","days","domain","expires","date","Date","setTime","getTime","toUTCString","obj","_i","_Object$entries","entries","_Object$entries$_i","item","replace","JSON","stringify","document","cookie","_getFormData","_callee3","_$form$querySelector11","_$form$querySelector12","_$form$querySelector13","_$form$querySelector14","_$form$querySelector15","_$form$querySelector16","_$form$querySelector17","formType","numberOfInputs","numberOfSelects","numberOfTextArea","emailValue","countryValue","stateValue","employeeCountValue","formInterestValue","natureOfEnquiry","areaOfInterest","noeValue","_context3","querySelectorAll","submitFormEventData","event","eventCategory","eventAction","eventLabel","formFields","hashEmail","formCountry","formState","formEmployeeCount","formInterest","location","hostname","split","formSuccesfullySubmitted","submitSuccessAnalytics","log","window","dataLayer","handleSuccess","_getDomMap2","successMessage","innerHTML","newSuccessMessage","createElement","classList","add","requestAnimationFrame","removeAttribute","style","display","appendChild","addEventListener","handleClick","remove","removeEventListener","handleError","getBoundingClientRect","top","scrollY","scroll","behavior","errorFields","errorLabels","field","textContent","trim","toLowerCase","eventData","isInViewport","bounding","innerHeight","bottom","formAnalyticsSent","handleFormInView","Form","el","_this","_classCallCheck","mutationsList","_step","target","closest","_iterator","mutation","attributeName","contains","selectElement","dispatchEvent","Event","handleWarningMessage","resetPOI","resetCtaElement","handlePOI","handleNoiAfterWarningMessage","err","_step2","_iterator2","heroContent","heroContainer","pricingCardWrapper","viewportWidth","innerWidth","lastElementChild","this","domMap","$statusMessage","$inputs","$selects","$selectMultiple","$textAreas","$submitButton","$formwithFloatinglabel","$inputNumber","$inputURL","$chatBotSelector","$salesProductHiddenField","$latamCountryHiddenField","$elmployeeCountElement","$bannerSection","notSalesOnlyProduct","employeeCountRange","natureOfEnquiryValue","isLatamCountry","addObservers","updateUtmParameters","updateMarketingHiddenField","addListeners","checkFormPositionOnLoad","addLocationBusinessLogic","addContactSalesConditionalLogic","updateJapaneseCountryByDefault","bannerClickEvent","setTimeout","updateClientId","observeSubmitButtonPosition","resetForm","handlePricingCardMove","dropdown","href","includes","bubbles","ctaSections","ctaSection","_this2","button","observer","ResizeObserver","setMultistepformBackButtonPosition","parentDiv","observe","formid","id","sessionStorage","removeItem","checked","handleNOI","$multipleSelection","options","selected","scrollTo","optionContainer","previousElementSibling","_step3","cookies","gaMarketId","mhMarketId","_iterator3","_cookie$split2","decodeURIComponent","_this3","_this$domMap","input","inputNumber","parentElement","focusFields","inputURL","submitAbandonedFields","select","textArea","selectMultiple","elemSelector","element","preventDefault","focus","hasAttribute","setAttribute","chatBot","openChatButton","chatWithBotButton","click","_x2","getFormData","$$epiforms","ready","on","_form$querySelector","gdprConsentRadioButtons","selectedGdprConsentValue","radio","fetch","headers","body","email","source","opt","response","ok","json","param1","param2","currentStep","stepCount","self","multistepNextStepEvent","multistepPreviousStepEvent","isDesktop","navigator","userAgent","splitCookie","substring","_this4","_this$domMap2","observerOptions","attributes","MutationObserver","formCallback","statusCallback","bannerSec","bannerCallback","_step4","_iterator4","eventLabelVal","getAttribute","_this5","technical_support_banner","billing_support_banner","selectedValue","visibility","checkWarningMessage","queryString","search","URLSearchParams","val","formField","_this6","_this$domMap3","stateElement","countryElement","setAllState","addCountryListener","initValidationContext","_multistepNextStepEvent","_callee","_$form$querySelector","_$form$querySelector2","_$form$querySelector3","_$form$querySelector4","_$form$querySelector5","_$form$querySelector6","_$form$querySelector7","_$form$querySelector8","btnNext","formTitle","errorElements","btnText","eventDataNextStep","_context","t1","t2","t3","t4","t5","t6","t7","formInquiry","formProducts","_$form$querySelector9","_$form$querySelector10","countryCodePrevious","anchorLink","innerText","_this$domMap4","$sales","undefined","selectBox","parentFormSelection","_this7","_this$domMap5","_document$querySelect","handleSCL","handlePOIDropdownChange","hiddenValuesArray","multiSelectDropdown","selectedValues","selectedOptions","option","allEmpty","every","arraysHaveNoCommonValues","getEmployeeCountEnumVal","countryCodes","backButtonWrapper","section","targetButton","buttonRect","parentRect","relativeTop","concat","currentTarget","tagName","multiple","ctaBlock","_this$el$querySelecto","handleContinueAnywayStep","_this$el$querySelecto2","removeButton","navigationBar","b","filter","allState","parse","visibleCountryFor","setDefaultStateElement","_this$data","selectedItem","selectedIndex","selectedId","selectedCountryValue","indexOf","stateItems","country","states","state","caption","text","showHideZipField","selectFirstElement","defaultOption","disabled","validationContext","formId","removedValidationElements","zipField","zipElementName","zipContainer","parentNode","setValidation","removeValidation","elementName","_this$validationConte","formContext","epi","EPiServer","Forms","ValidationInfo","targetElementName","_this$validationConte2","removedValidationElement"],"sourceRoot":""}