{"version":3,"file":"tridion-form.min.js","sources":["tridion-form.min.js"],"sourcesContent":["\"use strict\";\n\n(function () {\n var tridionForms = document.querySelectorAll('.tridion_form form');\n var validate = function validate(field) {\n var fieldOuter = field.closest('.field.hs-form-field:not(.is-hidden)');\n var hasValidation = fieldOuter === null || fieldOuter === void 0 ? void 0 : fieldOuter.querySelector('[data-validation]');\n if (!hasValidation) return;\n var value = field.value,\n alertMandatory = fieldOuter.querySelector('[data-validation=\"mandatory\"]'),\n alertPhone = fieldOuter.querySelector('[data-validation=\"phone\"]'),\n alertEmail = fieldOuter.querySelector('[data-validation=\"email\"]'),\n isEmpty = value == null || value === '',\n isPhone = new RegExp('^[0-9+().\\\\-x]*$').test(value),\n isEmail = new RegExp('^[^\\\\s@]+@[^\\\\s@]+\\\\.[^\\\\s@]*$').test(value);\n alertMandatory && alertMandatory.classList.toggle('is-hidden', true);\n alertPhone && alertPhone.classList.toggle('is-hidden', true);\n alertEmail && alertEmail.classList.toggle('is-hidden', true);\n field.classList.toggle('invalid', false);\n if (alertMandatory && isEmpty) {\n alertMandatory.classList.toggle('is-hidden', !isEmpty);\n field.classList.toggle('invalid', isEmpty);\n } else {\n if (alertPhone && !isPhone) {\n alertPhone.classList.toggle('is-hidden', isPhone);\n field.classList.toggle('invalid', !isPhone);\n }\n if (alertEmail && !isEmail) {\n alertEmail.classList.toggle('is-hidden', isEmail);\n field.classList.toggle('invalid', !isEmail);\n }\n }\n };\n var initForm = function initForm(form) {\n var fields = form.querySelectorAll('input.hs-input:not(.hs-field-ready):not([type=\"hidden\"]):not([type=\"checkbox\"]):not([type=\"radio\"]), select.hs-input:not(.hs-field-ready), textarea.hs-input:not(.hs-field-ready)');\n fields && fields.forEach(function (field) {\n var fieldOuter = field.closest('.field.hs-form-field');\n var fieldLabel = fieldOuter.querySelector(':scope > label span');\n if (fieldLabel === null) return;\n if (fieldLabel.innerText === '') {\n var placeholderText = field.getAttribute('placeholder');\n var selectText = field.querySelector('option[disabled]');\n fieldLabel.innerText = placeholderText || (selectText === null || selectText === void 0 ? void 0 : selectText.innerText);\n }\n field.onblur = function () {\n fieldOuter.classList.remove('focused');\n !field.value && fieldOuter.classList.remove('active');\n validate(field);\n };\n field.onfocus = function () {\n return fieldOuter.classList.add('active', 'focused');\n };\n if (fieldOuter.classList.contains('hs-fieldtype-select')) {\n field.onchange = function () {\n setTimeout(function () {\n return initLabels(form);\n }, 400);\n validate(field);\n };\n }\n field.classList.add('hs-field-ready');\n !!field.value && fieldOuter.classList.add('active');\n });\n var validateForm = function validateForm(form, e) {\n fields && fields.forEach(function (field) {\n validate(field);\n });\n var invalidFields = form.querySelectorAll('input.invalid, select.invalid, textarea.invalid');\n if (invalidFields.length) e.preventDefault();\n };\n var submitButton = form.querySelector('[type=\"submit\"]');\n submitButton && submitButton.addEventListener('click', function (e) {\n return validateForm(form, e);\n });\n };\n var submitForm = function submitForm(form) {\n var formdata = new FormData(form);\n var params = new URLSearchParams(formdata);\n var path = form.action;\n var opts = {\n method: 'POST',\n body: params\n };\n var wrapper = document.querySelector('.tridion_form__wrapper > div');\n wrapper.innerHTML = \"