{"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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"}