{"version":3,"file":"jwsdw-contactUs.js","sources":["../../../../../../../temp/ngAnnotate/assets/jwsdw-contactUs.js"],"sourcesContent":["'use strict';\r\n(function (window, document, $) {\r\n var $formElement = $('#jwsdw-contactUs-form'),\r\n $dropdownElement = $('#jwsdw-contactUs-question'),\r\n $allData = $('#jwsdw-contact-allData'),\r\n $options = $('.jwsdw-contactUs-deleteData'),\r\n $checkboxWhatsapp = $('#jwsdw-contact-whatsapp'),\r\n $checkboxSMS = $('#jwsdw-contact-sms'),\r\n $phone = $('#jwsdw-contactUs-phone'),\r\n xhr;\r\n\r\n $.validator.setDefaults({\r\n 'rules': {\r\n 'email': {\r\n 'invalidvalue': true,\r\n 'customemail': true\r\n },\r\n 'allData': {\r\n 'requiredCheckboxGroup': $options\r\n }\r\n }\r\n });\r\n\r\n // initialize form validation\r\n $formElement.validate();\r\n\r\n $formElement.on('submit', function(e) {\r\n var $form = this,\r\n $contactUsForm = $(this),\r\n $captcha = $contactUsForm.find('.g-recaptcha'),\r\n $submitButton = $contactUsForm.find('.jws-buttonYellow');\r\n\r\n e.preventDefault();\r\n\r\n // only submit form if frontend validation is successful and no other call is executed\r\n if (!$contactUsForm.valid() || (xhr && xhr.readyState !== 4)) {\r\n return;\r\n }\r\n\r\n if (window.jwsdwRecaptchaSettings.captchaDisabled === false) {\r\n if (!window.grecaptcha || window.jwsdwUtil.captcha.getResponse($captcha.attr('id')).length !== 0) {\r\n return;\r\n }\r\n window.jwsdwUtil.captcha.execute($captcha.attr('id')).then(submitFormHandler);\r\n } else {\r\n submitFormHandler();\r\n }\r\n\r\n /**\r\n * Method generate settings object for ajax requests\r\n * @param {String|object} form selector element to pass to jQuery\r\n * @returns {Object} ajax paremeters\r\n */\r\n function asURLEncoded(form) {\r\n form = $(form);\r\n return {\r\n 'contentType': 'application/x-www-form-urlencoded; charset=UTF-8',\r\n 'type': form.attr('method'),\r\n 'url': form.attr('action'),\r\n 'data': form.serialize(),\r\n 'dataType': 'json'\r\n };\r\n }\r\n\r\n /**\r\n * @description Method to trigger submit again when form is valid\r\n * @returns {void}\r\n */\r\n function submitFormHandler() {\r\n var $err = $contactUsForm.find('.jwsdw-contactUs-error'),\r\n $message = $contactUsForm.find('.jwsdw-contactUs-success');\r\n\r\n if (window.jwsdwRecaptchaSettings.captchaDisabled === false && window.jwsdwUtil.captcha.getResponse($captcha.attr('id')).length === 0) {\r\n // no response yet, check again in 200ms\r\n setTimeout(submitFormHandler, 200);\r\n return;\r\n }\r\n\r\n $submitButton.find('.jwsdw-buttonText').addClass('jwsdw-invisible');\r\n $submitButton.find('.jwsdw-spinner').removeClass('jws-hidden');\r\n $submitButton.attr('disabled', 'disabled');\r\n\r\n xhr = $.ajax(asURLEncoded($form)).done(function(response) {\r\n if (response.success) {\r\n $formElement[0].reset();\r\n $formElement.find('#jwsdw-contactUs-question').val('');\r\n $contactUsForm.find('.jwsdw-formLabelValid').removeClass('jwsdw-formLabelValid');\r\n $err.addClass('jws-hidden');\r\n $message.removeClass('jws-hidden');\r\n\r\n window.jwsdwApi.tracking.fireEvent('contactUs', {\r\n 'type': 'contactUs'\r\n });\r\n\r\n window.dataLayer.push({\r\n 'event':'ce.contact',\r\n 'eventCategory':'Contact',\r\n 'eventAction':'Form',\r\n 'eventLabel': undefined,\r\n 'eventValue': undefined,\r\n 'nonInteraction': false\r\n });\r\n }\r\n }).fail(function(response) {\r\n $message.addClass('jws-hidden');\r\n $err.text(response.responseJSON.details.message).removeClass('jws-hidden');\r\n }).always(function() {\r\n if (window.jwsdwRecaptchaSettings.captchaDisabled === false) {\r\n window.grecaptcha.reset(window.jwsdwRecaptcha[$captcha.attr('id')]);\r\n }\r\n $submitButton.find('.jwsdw-buttonText').removeClass('jwsdw-invisible');\r\n $submitButton.find('.jwsdw-spinner').addClass('jws-hidden');\r\n $submitButton.removeAttr('disabled');\r\n });\r\n }\r\n });\r\n\r\n // show delete data checkboxes if dropdown option is selected\r\n $dropdownElement.on('change', function () {\r\n $('#jwsdw-deleteData').toggleClass('jws-hidden', $(this).val() !== 'contactUsDeleteMyData');\r\n });\r\n\r\n // select all checkboxes\r\n $allData.on('change', function () {\r\n $options.prop('checked', $(this).prop('checked')).trigger('change');\r\n $allData.valid();\r\n });\r\n\r\n // update checkboxes\r\n $options.on('change', updateCheckboxGroup);\r\n\r\n // toggle required phone field\r\n $checkboxWhatsapp.on('change', toggleRequiredPhone);\r\n\r\n // toggle required phone field\r\n $checkboxSMS.on('change', toggleRequiredPhone);\r\n\r\n /**\r\n * Method to set phone field as required/optional\r\n * @returns {void}\r\n */\r\n function toggleRequiredPhone() {\r\n $('.jwsdw-phone-optional').toggleClass('jws-hidden', $(this).prop('checked'));\r\n $phone.prop('required', $(this).prop('checked'));\r\n }\r\n\r\n /**\r\n * Method to update checkbox group states\r\n * @returns {void}\r\n */\r\n function updateCheckboxGroup() {\r\n let checkedCount = 0;\r\n\r\n $options.each(function() {\r\n if ($(this).prop('checked')) {\r\n checkedCount++;\r\n }\r\n });\r\n\r\n if (checkedCount === 0) {\r\n $allData.prop({\r\n 'indeterminate': false,\r\n 'checked': false\r\n });\r\n } else if (checkedCount === $options.length) {\r\n $allData.prop({\r\n 'indeterminate': false,\r\n 'checked': true\r\n });\r\n } else {\r\n $allData.prop({\r\n 'indeterminate': true,\r\n 'checked': false\r\n });\r\n }\r\n\r\n $allData.valid();\r\n }\r\n\r\n}(window, document, jQuery));\r\n"],"names":["window","$","xhr","$formElement","$dropdownElement","$allData","$options","$checkboxWhatsapp","$checkboxSMS","$phone","toggleRequiredPhone","toggleClass","this","prop","validator","setDefaults","rules","email","invalidvalue","customemail","allData","requiredCheckboxGroup","validate","on","e","$form","$contactUsForm","$captcha","find","$submitButton","submitFormHandler","form","$err","$message","jwsdwRecaptchaSettings","captchaDisabled","jwsdwUtil","captcha","getResponse","attr","length","setTimeout","addClass","removeClass","ajax","contentType","type","url","data","serialize","dataType","done","response","success","reset","val","jwsdwApi","tracking","fireEvent","dataLayer","push","event","eventCategory","eventAction","eventLabel","undefined","eventValue","nonInteraction","fail","text","responseJSON","details","message","always","grecaptcha","jwsdwRecaptcha","removeAttr","preventDefault","valid","readyState","execute","then","trigger","let","checkedCount","each","indeterminate","checked","document","jQuery"],"mappings":"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"}