{"version":3,"file":"scripts/7027.js","mappings":"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","sources":["webpack://wwwroot/./src/scripts/contactFormVersion2.js"],"sourcesContent":["/* global $$epiforms */\r\n\r\nconst contactUsPage = document.querySelector(\".adm-div-c33-form-page\");\r\nconst contactUsForm = contactUsPage.querySelector(\".adm-div-c33-form\");\r\nconst allFormSelections = contactUsForm?.querySelectorAll(\".FormSelection\");\r\nconst allFormInputs = contactUsForm?.querySelectorAll(\".FormTextbox\");\r\nconst allFormErrorSpans = contactUsForm?.querySelectorAll(\".Form__Element__ValidationError\");\r\nconst formSubmitBtn = contactUsForm?.querySelector(\".FormSubmitButton\");\r\nconst formTextareaWrapper = contactUsForm?.querySelector(\".FormTextbox--Textarea\");\r\nconst formStatusSection = contactUsForm?.querySelector(\".Form__Status\");\r\nvar submitErrorMessage = contactUsForm?.getAttribute(\"data-submit-error\");\r\nconst submitBtnAriaLabel = contactUsForm?.getAttribute(\"data-form-aria-submit\");\r\nconst firstDropdownDefault = document.querySelector(\"input#MQ1\")?.value?.trim() || getMQFromParams(1);\r\nconst secondDropdownDefault = document.querySelector(\"input#MQ2\")?.value?.trim() || getMQFromParams(2);\r\ncontactUsForm.removeAttribute(\"data-form-aria-submit\");\r\ncontactUsForm.removeAttribute(\"data-recaptcha-validation\");\r\nlet formSubmissionErrorTag;\r\nlet dataLayerObj = {};\r\n\r\nsetupDropdowns();\r\nsetupInputs();\r\nreplaceErrorSpanTag();\r\naddCharCounterToTextarea();\r\naddAriaLabelToElements();\r\nsetupLeadSourceDescription();\r\naddFunctionsToNativeEpiformEvents();\r\n\r\nfunction setupDropdowns() {\r\n for (const selectionWrapper of allFormSelections) {\r\n const selectTag = selectionWrapper.querySelector(\"select\");\r\n\r\n if (firstDropdownDefault) {\r\n setupSecondDropdown(selectionWrapper, selectTag);\r\n selectOptionByValue(selectTag, firstDropdownDefault)\r\n }\r\n\r\n selectTag.addEventListener(\"change\", () => removeErrorOnInput(selectionWrapper));\r\n selectTag.addEventListener(\"focusout\", () => removeRedOutlinePriority());\r\n }\r\n}\r\n\r\nfunction setupInputs() {\r\n for (const inputWrapper of allFormInputs) {\r\n const inputTag = inputWrapper.querySelector(\"input, textarea\");\r\n\r\n inputTag.addEventListener(\"input\", () => removeErrorOnInput(inputWrapper));\r\n inputTag.addEventListener(\"focusout\", () => removeRedOutlinePriority());\r\n }\r\n}\r\n\r\nfunction replaceErrorSpanTag() {\r\n for (const errorSpanTag of allFormErrorSpans) {\r\n errorSpanTag.parentElement?.insertBefore(errorSpanTag, errorSpanTag.parentElement?.firstElementChild?.nextElementSibling);\r\n }\r\n}\r\n\r\nfunction addCharCounterToTextarea() {\r\n const textareaTag = formTextareaWrapper?.querySelector(\"textarea\");\r\n const counterTag = document.createElement(\"SPAN\");\r\n counterTag.innerText = \"(0/1500)\";\r\n counterTag.classList.add(\"textarea-counter\");\r\n formTextareaWrapper?.appendChild(counterTag);\r\n textareaTag?.setAttribute(\"maxlength\", \"1500\")\r\n formTextareaWrapper?.addEventListener(\"input\", () => {\r\n const charCount = textareaTag.value.length;\r\n if (charCount <= 1500) {\r\n counterTag.innerText = `(${charCount}/1500)`;\r\n } else {\r\n const editedText = textareaTag.value.slice(0, 1500);\r\n textareaTag.value = editedText;\r\n }\r\n })\r\n}\r\n\r\nfunction addAriaLabelToElements() {\r\n formSubmitBtn.setAttribute(\"aria-label\", submitBtnAriaLabel);\r\n formSubmitBtn.setAttribute(\"title\", submitBtnAriaLabel);\r\n}\r\n\r\nfunction setupLeadSourceDescription() {\r\n const hiddenField = formSubmitBtn.previousElementSibling;\r\n const sourceDescription = getSourceDescription();\r\n const fullNewValue = hiddenField?.getAttribute(\"value\") + \"-\" + sourceDescription;\r\n hiddenField.setAttribute(\"value\", fullNewValue);\r\n}\r\n\r\nfunction getSourceDescription() {\r\n const [currentPageUrl, currentPageValidUtmParams] = getValidUtmParamsString(document.URL);\r\n const [referrerPageUrl, referrerPageValidUtmParams] = getValidUtmParamsString(document.referrer);\r\n\r\n switch (true) {\r\n case (currentPageValidUtmParams?.length > 0): {\r\n return currentPageUrl + currentPageValidUtmParams;\r\n }\r\n case (referrerPageUrl?.length > 0): {\r\n return referrerPageUrl + referrerPageValidUtmParams;\r\n }\r\n default: {\r\n return currentPageUrl;\r\n }\r\n }\r\n}\r\n\r\nfunction getValidUtmParamsString(fullUrlString) {\r\n if (!fullUrlString) {\r\n return [null, null];\r\n }\r\n\r\n const validUtmParamsKeys = new Set([\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_content\", \"utm_term\", \"utm_adgroup\", \"utm_experiment\"]);\r\n const urlObj = new URL(fullUrlString);\r\n const pageBaseUrl = `${urlObj.origin}${urlObj.pathname}`;\r\n const urlParams = urlObj.searchParams;\r\n const validUtmParamsArray = [];\r\n\r\n urlParams.forEach((value, key) => {\r\n if (validUtmParamsKeys.has(key)) {\r\n validUtmParamsArray.push(`${key}=${value}`);\r\n }\r\n });\r\n\r\n const validUtmParamsString = validUtmParamsArray.length > 0 ? `?${validUtmParamsArray.join(\"&\")}` : \"\";\r\n\r\n return [pageBaseUrl, validUtmParamsString];\r\n}\r\n\r\nfunction addFunctionsToNativeEpiformEvents() {\r\n if (typeof $$epiforms !== 'undefined') {\r\n $$epiforms(document).ready(() => {\r\n $$epiforms(\".EPiServerForms\").on(\"formsStepValidating\", () => {\r\n handleReadonlyMode();\r\n contactUsForm.classList.add(\"adm-form-red-outline-priority\");\r\n });\r\n\r\n $$epiforms(\".EPiServerForms\").on(\"formsStartSubmitting\", () => {\r\n setupDataLayerObj();\r\n });\r\n\r\n $$epiforms(\".EPiServerForms\").on(\"formsSubmitted\", (e) => {\r\n formSubmissionErrorTag?.remove();\r\n if (!e.isSuccess) {\r\n submitErrorMessage = sliceAfterWord(e.returnedResult?.message, \"Reason: \")\r\n showErrorMessage();\r\n } else {\r\n pushDataLayer();\r\n }\r\n setTimeout(() => {\r\n window.scroll({ top: 0, behavior: \"smooth\" });\r\n }, 200);\r\n\r\n });\r\n\r\n $$epiforms(\".EPiServerForms\").on(\"formsSubmittedError\", () => {\r\n showErrorMessage();\r\n });\r\n });\r\n }\r\n}\r\n\r\nfunction getMQFromParams(MQNumber) {\r\n if (!window.location.search) {\r\n return null;\r\n }\r\n\r\n const params = new URL(document.URL).searchParams;\r\n const utmMQ1 = params.get(\"utm_mq1\")?.replaceAll(\"_\", \" \").trim();\r\n const utmMQ2 = params.get(\"utm_mq2\")?.replaceAll(\"_\", \" \").trim();\r\n\r\n if (MQNumber === 1 && utmMQ1) {\r\n return utmMQ1;\r\n }\r\n\r\n if (MQNumber === 2 && utmMQ1 && utmMQ2) {\r\n return utmMQ2;\r\n }\r\n}\r\n\r\nfunction setupSecondDropdown(selectionWrapper, selectTag) {\r\n const selectTitle = selectTag?.getAttribute(\"title\")?.trim()?.toLowerCase();\r\n const mq1 = firstDropdownDefault?.toLowerCase();\r\n\r\n if (selectTitle === mq1) {\r\n selectionWrapper.classList.remove(\"hide\");\r\n\r\n if (secondDropdownDefault) {\r\n selectOptionByValue(selectTag, secondDropdownDefault)\r\n }\r\n }\r\n}\r\n\r\nfunction selectOptionByValue(selectTag, chosenValue) {\r\n const chosenValueForComparison = chosenValue?.trim().toLowerCase().replaceAll(\" and \", \" & \");\r\n\r\n for (const option of selectTag?.options ?? []) {\r\n const optionForComparision = option.value?.trim().toLowerCase().replaceAll(\" and \", \" & \");\r\n\r\n if (optionForComparision === chosenValueForComparison) {\r\n selectTag.value = option.value;\r\n selectTag.dispatchEvent(new Event('change'));\r\n break;\r\n }\r\n }\r\n}\r\n\r\nfunction removeErrorOnInput(fieldWrapper) {\r\n const validationMessage = fieldWrapper.querySelector(\".Form__Element__ValidationError\");\r\n if (fieldWrapper.classList.contains(\"ValidationFail\")) {\r\n fieldWrapper.classList.remove(\"ValidationFail\");\r\n validationMessage.style.display = \"none\";\r\n }\r\n}\r\n\r\nfunction removeRedOutlinePriority() {\r\n if (contactUsForm.classList.contains(\"adm-form-red-outline-priority\")) {\r\n contactUsForm.classList.remove(\"adm-form-red-outline-priority\");\r\n }\r\n}\r\n\r\nasync function handleReadonlyMode() {\r\n const response = await fetch(window.location.origin + '/FormsPage/GetDatabaseReadonly/');\r\n const readonlyBoolean = await response.json();\r\n if (readonlyBoolean) {\r\n contactUsPage.classList.add(\"adm-c33-form-maintenance-mode\");\r\n }\r\n}\r\n\r\nfunction showErrorMessage() {\r\n formSubmissionErrorTag = document.createElement(\"SPAN\");\r\n formSubmissionErrorTag.innerText = submitErrorMessage;\r\n formSubmissionErrorTag.classList.add(\"adm-c33-custom-error-message\");\r\n formStatusSection.appendChild(formSubmissionErrorTag)\r\n}\r\n\r\nfunction setupDataLayerObj() {\r\n const allVisibleSelects = contactUsForm.querySelectorAll(\".FormSelection:not(.hide) select\");\r\n const allInputElements = contactUsForm.querySelectorAll(\".FormTextbox input\");\r\n const colectedData = [];\r\n\r\n colectedData.push(['event', 'contactusformsuccess']);\r\n colectedData.push(['email_address', allInputElements[2]?.value?.toLowerCase()]);\r\n colectedData.push(['phone_number', allInputElements[3]?.value?.toLowerCase()]);\r\n colectedData.push(['industry_primary_selected', allVisibleSelects[0]?.value?.toLowerCase()]);\r\n\r\n if (allVisibleSelects.length > 2) {\r\n colectedData.push(['industry_sub_selected', allVisibleSelects[1]?.value?.toLowerCase()]);\r\n }\r\n\r\n dataLayerObj = {};\r\n for (const data of colectedData) {\r\n if (data[1]) {\r\n dataLayerObj[data[0]] = data[1];\r\n }\r\n }\r\n}\r\n\r\nfunction sliceAfterWord(str, word) {\r\n let index = str.indexOf(word);\r\n return index !== -1 ? str.slice(index + word.length) : str;\r\n}\r\n\r\nfunction pushDataLayer() {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(dataLayerObj);\r\n}"],"names":["contactUsPage","document","querySelector","contactUsForm","allFormSelections","querySelectorAll","allFormInputs","allFormErrorSpans","formSubmitBtn","formTextareaWrapper","formStatusSection","submitErrorMessage","getAttribute","submitBtnAriaLabel","firstDropdownDefault","value","trim","getMQFromParams","secondDropdownDefault","formSubmissionErrorTag","removeAttribute","dataLayerObj","getValidUtmParamsString","fullUrlString","validUtmParamsKeys","Set","urlObj","URL","pageBaseUrl","origin","pathname","urlParams","searchParams","validUtmParamsArray","forEach","key","has","push","length","join","MQNumber","window","location","search","params","utmMQ1","get","replaceAll","utmMQ2","setupSecondDropdown","selectionWrapper","selectTag","selectTitle","toLowerCase","mq1","classList","remove","selectOptionByValue","chosenValue","chosenValueForComparison","option","options","optionForComparision","dispatchEvent","Event","removeErrorOnInput","fieldWrapper","validationMessage","contains","style","display","removeRedOutlinePriority","showErrorMessage","createElement","innerText","add","appendChild","addEventListener","setupDropdowns","inputWrapper","inputTag","setupInputs","errorSpanTag","parentElement","insertBefore","firstElementChild","nextElementSibling","replaceErrorSpanTag","textareaTag","counterTag","setAttribute","charCount","editedText","slice","addCharCounterToTextarea","hiddenField","previousElementSibling","sourceDescription","currentPageUrl","currentPageValidUtmParams","referrerPageUrl","referrerPageValidUtmParams","referrer","getSourceDescription","fullNewValue","setupLeadSourceDescription","$$epiforms","ready","on","async","response","fetch","json","handleReadonlyMode","allVisibleSelects","allInputElements","colectedData","data","setupDataLayerObj","e","isSuccess","dataLayer","str","word","index","indexOf","sliceAfterWord","returnedResult","message","setTimeout","scroll","top","behavior"],"sourceRoot":""}