{"version":3,"file":"default/js/login.js","sources":["webpack://rws/./dependencies/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/errorNotification.js","webpack://rws/./dependencies/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js","webpack://rws/./dependencies/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/login/login.js","webpack://rws/./dependencies/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack://rws/./cartridges/app_rws/cartridge/client/default/js/login/login.js","webpack://rws/./cartridges/app_rws/cartridge/client/default/js/util/urlUtils.js","webpack://rws/./cartridges/app_rws/cartridge/client/default/js/login.js"],"sourcesContent":["'use strict';\n\nmodule.exports = function (element, message) {\n var errorHtml = '
' +\n '' + message + '
';\n\n $(element).append(errorHtml);\n};\n","'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 .parent()\n .children('.invalid-feedback');\n\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.html(payload.fields[key].join('
'));\n } else {\n feedbackElement.html(payload.fields[key]);\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid');\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","'use strict';\n\nvar formValidation = require('../components/formValidation');\nvar createErrorNotification = require('../components/errorNotification');\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 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 formValidation(form, data);\n $('form.login').trigger('login:error', data);\n } else {\n $('form.login').trigger('login:success', data);\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 register: function () {\n $('form.registration').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n form.spinner().start();\n $('form.registration').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.success) {\n $('form.registration').trigger('login:register:error', data);\n formValidation(form, data);\n } else {\n $('form.registration').trigger('login:register:success', data);\n location.href = data.redirectUrl;\n }\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification($('.error-messaging'), err.responseJSON.errorMessage);\n }\n\n form.spinner().stop();\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 $('.reset-password-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.success) {\n formValidation(form, data);\n } else {\n $('.request-password-title').text(data.receivedMsgHeading);\n $('.request-password-body').empty()\n .append('

' + data.receivedMsgBody + '

');\n if (!data.mobile) {\n $('#submitEmailButton').text(data.buttonText)\n .attr('data-dismiss', 'modal');\n } else {\n $('.send-email-btn').empty()\n .html(''\n + data.buttonText + ''\n );\n }\n }\n },\n error: function () {\n form.spinner().stop();\n }\n });\n return false;\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","'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","'use strict';\n\nvar base = require('base/login/login');\n\nvar formValidation = require('base/components/formValidation');\nvar createErrorNotification = require('base/components/errorNotification');\nvar urlUtils = require('../util/urlUtils');\n\nbase.register = function () {\n $('form.registration').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n form.spinner().start();\n $('form.registration').trigger('login:register', e);\n try {\n if ('grecaptcha' in window) {\n window.grecaptcha.execute(\n $('[data-sitekey]').data('sitekey'),\n {\n action: 'createaccount'\n }\n ).then(function (token) {\n url = urlUtils.addQueryParams(url, { gRecaptchaToken: token });\n $.ajax({\n method: 'POST',\n url: url,\n dataType: 'json',\n data: form.serialize(),\n success: function (data) {\n form.spinner().stop();\n if (data.recaptchaError) {\n var $errorBlock = $('.js-form-error');\n $errorBlock.text(data.errorMessage);\n $errorBlock.show();\n $('body, html').animate({\n scrollTop: $('#maincontent').offset().top\n }, '1000');\n } else if (!data.success) {\n $('form.registration').trigger('login:register:error', data);\n formValidation(form, data);\n form.find('.is-invalid:first').trigger('focus');\n } else {\n $('form.registration').trigger('login:register:success', data);\n location.href = data.redirectUrl;\n }\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification($('.error-messaging'), err.responseJSON.errorMessage);\n }\n\n form.spinner().stop();\n }\n });\n });\n } else {\n $.spinner().stop();\n }\n } catch (err) {\n $.spinner().stop();\n }\n return false;\n });\n};\n\nbase.login = function () {\n $('form.login').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n var source = form.attr('id') || 'login';\n form.spinner().start();\n $('form.login').trigger('login:submit', e);\n try {\n if ('grecaptcha' in window) {\n window.grecaptcha.execute(\n $('[data-sitekey]').data('sitekey'),\n {\n action: source\n }\n ).then(function (token) {\n url = urlUtils.addQueryParams(url, { gRecaptchaToken: token });\n $.ajax({\n method: 'POST',\n url: url,\n dataType: 'json',\n data: form.serialize(),\n success: function (data) {\n form.spinner().stop();\n if (data.recaptchaError) {\n var $errorBlock = $('.js-form-error');\n $errorBlock.text(data.errorMessage);\n $errorBlock.show();\n $('body, html').animate({\n scrollTop: $('#maincontent').offset().top\n }, '1000');\n } else if (!data.success) {\n formValidation(form, data);\n $('form.login').trigger('login:error', data);\n if (data.resendVerify) {\n $('.js-resend-verify-email').removeClass('d-none');\n var queryString = '?email=' + encodeURIComponent(data.email) + '&resendemail=true';\n $('.js-resend-verify-email').attr('href', function () {\n return this.href + queryString;\n });\n }\n } else {\n $('form.login').trigger('login:success', data);\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 });\n } else {\n $.spinner().stop();\n }\n } catch (err) {\n $.spinner().stop();\n }\n return false;\n });\n};\n\nmodule.exports = base;\n","'use strict';\n\nfunction getQueryParams(url) {\n const urlParts = url.split('?'); // Split the URL into [baseUrl, queryString]\n return new URLSearchParams(urlParts[1] || ''); // If no query string, it's empty\n}\n\n/**\n * Adds parameters to the url\n * @param {string} url - base url either with or without parameters\n * @param {Object} params - key value pair to add as parameters to the url\n * @returns {string} full url string with parameters\n */\nfunction addQueryParams(url, params) {\n const urlParts = url.split('?'); // Split the URL into [baseUrl, queryString]\n const baseUrl = urlParts[0];\n\n // Parse the existing query string into an object\n let queryParams = getQueryParams(url);\n\n // Add new parameters (or update existing ones)\n $.each(params, function (key, value) {\n queryParams.set(key, value); // Adds or updates the parameter\n });\n\n // Rebuild the full URL\n return baseUrl + '?' + queryParams.toString();\n}\n\nmodule.exports = {\n addQueryParams: addQueryParams,\n getQueryParams: getQueryParams\n};\n","'use strict';\n\nvar processInclude = require('base/util');\n\n$(document).ready(function () {\n processInclude(require('./login/login'));\n});\n"],"names":["base","require","formValidation","createErrorNotification","urlUtils","$","e","form","url","window","token","data","$errorBlock","location","err","source","queryString","encodeURIComponent","module","getQueryParams","urlParts","URLSearchParams","addQueryParams","params","baseUrl","queryParams","key","value","processInclude","document"],"mappings":";;;;AAAa;;AAEb,cAAc;AACd;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;;;;;ACVa;;AAEb;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;AC1Ca;;AAEb,qBAAqB,mBAAO,CAAC,8KAA8B;AAC3D,8BAA8B,mBAAO,CAAC,oLAAiC;;AAEvE,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;AC5Ha;;AAEb,cAAc;AACd;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;ACZa;AAEb,IAAIA,OAAOC,mBAAOA,CAAC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"}