{"version":3,"sources":["webpack:///webpack/bootstrap 18ae76087b773c166ed0?35be*****************************","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/login.js","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/components/formValidation.js?88fd**","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/util.js?0ce9********","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/components/eyePassword.js?94aa*","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/login/login.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","id","loaded","modules","call","m","c","p","processInclude","$","document","ready","formElement","payload","form","find","removeClass","clearFormErrors","remove","_typeof","fields","Object","keys","forEach","key","feedbackElement","parents","length","Array","isArray","html","join","siblings","addClass","show","scrollIntoView","behavior","block","inline","error","prop","prepend","include","on","self","this","parent","attr","is","closest","setTimeout","hasClass","click","formValidation","validateEmail","field","isValid","emailAddressToValidate","test","isValidEmailAddress","val","text","data","validatePhone","regexPhoneString","RegExp","trim","login","submit","e","preventDefault","url","type","spinner","start","trigger","ajax","dataType","serialize","success","stop","isLoginCheckout","email","customerCrmId","gtmData","location","href","redirectUrl","isFirstLogin","modal","csrf","token","responseJSON","window","resetPassword","receivedMsgHeading","empty","append","receivedMsgBody","returnUrl","buttonText","emailValidationLogin","clearResetForm","validate","fieldValue","isEmailField"],"mappings":"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","file":"login.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 18ae76087b773c166ed0","'use strict';\n\nvar processInclude = require('./util');\n\n$(document).ready(function () {\n processInclude(require('./login/login'));\n processInclude(require('./components/eyePassword'));\n});\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/login.js","'use strict';\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\nmodule.exports = function (formElement, payload) {\n // clear form validation first\n clearFormErrors(formElement);\n $('.alert', formElement).remove();\n\n if (typeof payload === 'object' && payload.fields) {\n Object.keys(payload.fields).forEach(function (key) {\n if (payload.fields[key]) {\n var feedbackElement = $(formElement).find('[name=\"' + key + '\"]')\n .parents('.cc-form-group')\n .find('.invalid-feedback');\n\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.find('.cc-text-message').html(payload.fields[key].join('
'));\n } else {\n feedbackElement.find('.cc-text-message').html(payload.fields[key]);\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid');\n feedbackElement.show();\n feedbackElement[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'nearest'});\n }\n }\n });\n }\n if (payload && payload.error) {\n var form = $(formElement).prop('tagName') === 'FORM'\n ? $(formElement)\n : $(formElement).parents('form');\n\n form.prepend('
'\n + payload.error.join('
') + '
');\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/components/formValidation.js","'use strict';\n\nmodule.exports = function (include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach(function (key) {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/util.js","'use strict';\n\nmodule.exports = function () {\n $(document).on('click', '.js-togglePassword', function () {\n const self = $(this);\n self.parent().find('.js-form-password').attr('type', self.parent().find('.js-form-password').is(':password') ? 'text' : 'password');\n if (self.parent().find('.js-form-password').attr('type') === 'password') {\n self.closest('.cc-content-input').removeClass('js-passwordShow cc-account__viewPassword');\n } else {\n self.closest('.cc-content-input').addClass('js-passwordShow cc-account__viewPassword');\n setTimeout(function() {\n if (self.closest('.cc-content-input').hasClass('js-passwordShow cc-account__viewPassword')) {\n self.click();\n self.closest('.cc-content-input').removeClass('js-passwordShow cc-account__viewPassword');\n }\n }, 5000);\n }\n });\n};\n\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/components/eyePassword.js","'use strict';\n\nvar formValidation = require('../components/formValidation');\n\n/**\n * Regex to check if the string passed is a valid e-mail address\n */\nfunction isValidEmailAddress(emailAddressToValidate) {\n var regexEmailString = /^[\\w.%+-]+@[\\w.-]+\\.[\\w]{2,6}$/;\n return regexEmailString.test(emailAddressToValidate);\n}\n\n/**\n * Validate email format and display error\n * @param {*} field - the email field to validate\n * @returns {Boolean} - a boolean that rapresent if the email inserted is valid or not\n */\nfunction validateEmail(field) {\n var isValid = isValidEmailAddress($(field).val());\n if (isValid) {\n $(field).removeClass('is-invalid custom-error');\n } else {\n $(field).addClass('is-invalid custom-error');\n $(field).parents('.cc-form-group').find('.cc-text-message').text($(field).data('pattern-mismatch'));\n }\n return isValid;\n}\n\n/**\n * Validate phone format and display error\n * @param {*} field - the phone field to validate\n * @returns {Boolean} - a boolean that rapresent if the number inserted is valid or not\n */\nfunction validatePhone(field) {\n var regexPhoneString = $(field).data('phone-pattern');\n var regexPhone = new RegExp(regexPhoneString);\n var isValid = regexPhone.test($(field).val().trim());\n if (isValid) {\n $(field).removeClass('is-invalid custom-error');\n } else {\n $(field).addClass('is-invalid custom-error');\n $(field).parents('.cc-form-group').find('.cc-text-message').text($(field).data('pattern-phone-mismatch'));\n }\n return isValid;\n}\n\nmodule.exports = {\n login: function () {\n $('form.login').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n var isEmailField = $('#login-form-email')[0].type === 'email' ? true : false;\n if (!isEmailField) {\n var isValid = false;\n var numberRegex = /^\\+?[\\d ]+$/;\n var isPhoneNumber = numberRegex.test($('#login-form-email').val().trim());\n if (isPhoneNumber) {\n isValid = validatePhone($('#login-form-email'));\n } else {\n isValid = validateEmail($('#login-form-email'));\n }\n if (!isValid) {\n return;\n }\n }\n form.spinner().start();\n $('form.login').trigger('login:submit', e);\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: form.serialize(),\n success: function (data) {\n form.spinner().stop();\n if (!data.success) {\n if (data.isFirstLogin) {\n $('#firstLoginModal').modal('show');\n // hide login modal on checkout to avoid modals overlap\n if ($('#checkoutLoginModal').length > 0) {\n $('#checkoutLoginModal').modal('hide');\n }\n } else {\n formValidation(form, data);\n }\n //update csrf token\n $('#csrfTokenInput').val(data.csrf.token);\n $('form.login').trigger('login:error', data);\n } else {\n var isLoginCheckout = $('#checkoutLoginModal').length > 0 ? true : false;\n $('form.login').trigger('login:success', data);\n // trigger the analytics login event\n var email = $('#login-form-email').val();\n $('body').trigger('analytics:login',\n {\n customerCrmId: data.customerCrmId,\n email: email,\n isLoginCheckout: isLoginCheckout\n }\n );\n // trigger the analytics basket collection data for mailing list\n $('body').trigger('analytics:pushBasketData', data.gtmData);\n location.href = data.redirectUrl;\n }\n },\n error: function (data) {\n if (data.responseJSON.redirectUrl) {\n window.location.href = data.responseJSON.redirectUrl;\n } else {\n $('form.login').trigger('login:error', data);\n form.spinner().stop();\n }\n }\n });\n return false;\n });\n },\n\n resetPassword: function () {\n $('.reset-password-form').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n form.spinner().start();\n form.trigger('login:register', e);\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: form.serialize(),\n success: function (data) {\n form.spinner().stop();\n if (data.redirectUrl) {\n //close the modal and redirect to another\n form.closest('.modal-content').find('button.close').trigger('click');\n location.href = data.redirectUrl;\n } else if (!data.success) {\n // no migration needed\n formValidation(form, data);\n } else {\n $('.request-password-title').text(data.receivedMsgHeading);\n $('.request-password-body').empty()\n .append('

' + data.receivedMsgBody + '

' + data.buttonText + '
');\n }\n },\n error: function () {\n form.spinner().stop();\n }\n });\n return false;\n });\n },\n\n emailValidationLogin: function () {\n $('.js-email-login-validation').on('click', function () {\n validateEmail($('#login-form-email'));\n });\n },\n\n clearResetForm: function () {\n $('#login .modal').on('hidden.bs.modal', function () {\n $('#reset-password-email').val('');\n $('.modal-dialog .form-control.is-invalid').removeClass('is-invalid');\n });\n },\n\n validate: function () {\n $('#login-form-email').on('blur', function () {\n var fieldValue = $(this).val().trim();\n $(this).val(fieldValue);\n var isEmailField = $(this)[0].type === 'email' ? true : false;\n if (fieldValue.length > 0) {\n // check if a number is entered\n var numberRegex = /^\\+?[\\d ]+$/;\n var isPhoneNumber = numberRegex.test(fieldValue);\n if (isPhoneNumber && !isEmailField) {\n validatePhone(this);\n } else {\n validateEmail(this);\n }\n } else {\n $(this).addClass('is-invalid');\n $(this).parents('.cc-form-group').find('.cc-text-message').text($(this).data('missing-error'));\n }\n });\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/login/login.js"],"sourceRoot":""}