{"version":3,"file":"login.bundle.js","mappings":";qFAAAA,EAAOC,QAAU,06fCAjBD,EAAOC,QAAU,0wCCIjBD,EAAOC,QAAU,SAASC,GACzB,SAASC,EAAIC,GACQ,oBAAZC,UACJA,QAAQD,OAASC,QAAQF,KAAK,kBAAmBC,EACtD,CAOA,IAC2B,oBAAfE,YAJmB,oBAAhBC,aAA2D,oBAArBC,iBAKnDF,WAAWJ,GACe,oBAATO,KACjBA,KAAKC,KAAK,KAAMR,GAEhBC,EAAI,wCAEN,CAAE,MAAOC,GACRD,EAAIC,EACL,CACD,ICzBIO,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAab,QAGrB,IAAID,EAASW,EAAyBE,GAAY,CAGjDZ,QAAS,CAAC,GAOX,OAHAe,EAAoBH,GAAUb,EAAQA,EAAOC,QAASW,GAG/CZ,EAAOC,OACf,CCtBA,EAAQ,4CAAR,CAAmI,EAAQ,iFCA3I,EAAQ,4CAAR,CAAmI,EAAQ","sources":["webpack://RNAEKka/./wwwroot/scripts/app/login.js","webpack://RNAEKka/./wwwroot/scripts/app/services/account.js","webpack://RNAEKka/./node_modules/script-loader/addScript.js","webpack://RNAEKka/webpack/bootstrap","webpack://RNAEKka/./wwwroot/scripts/app/services/account.js?6af2","webpack://RNAEKka/./wwwroot/scripts/app/login.js?215d"],"sourcesContent":["module.exports = \"function loginController() {\\r\\n var controls = {\\r\\n btnLoginWindow: \\\".btn-login-window\\\",\\r\\n btnMegaMenuLogin: \\\".mega-menu--login-container\\\",\\r\\n txtNewAccFirstName: \\\"#txtNewAccFirstName\\\",\\r\\n txtNewAccLastName: \\\"#txtNewAccLastName\\\",\\r\\n txtNewAccName: \\\"#registerModel_Name\\\",\\r\\n txNewAcctEmailAddress: \\\"#registerModel_Email\\\",\\r\\n txtNewAccPassword: \\\"#registerModel_Password\\\",\\r\\n txtNewAccConfirmPassword: \\\"#registerModel_ConfirmPassword\\\",\\r\\n chkReceiveMarketingInfo: \\\"#chkReceiveMarketingInfo\\\",\\r\\n btnCreateAccount: \\\".btn-create-account\\\",\\r\\n txtLoginEmailAddress: \\\"#loginModel_Username\\\",\\r\\n txtLoginPassword: \\\"#loginModel_Password\\\",\\r\\n btnLogin: \\\".btn-login\\\",\\r\\n btnForgotPassword: \\\".btn-forgotpass\\\",\\r\\n btnResetPassword: \\\".btn-resetpass\\\",\\r\\n frmCreateAccount: \\\".frmCreateAccount form\\\",\\r\\n frmLogin: \\\"#frmLogin\\\",\\r\\n lblErrorSummary: \\\".frm-error-summary\\\",\\r\\n btnFacebookLogin: \\\".btn-facebook\\\",\\r\\n btnGoogleLogin: \\\".btn-google\\\",\\r\\n btnAppleLogin: \\\".btn-apple\\\",\\r\\n mobileBannerToggle: \\\".modal-login .modal-content div.banner-title\\\",\\r\\n btnLoginAfterReset: \\\".btn-continuelogin\\\"\\r\\n };\\r\\n\\r\\n var settings = {\\r\\n gcid: null\\r\\n };\\r\\n\\r\\n function bindEvents() {\\r\\n $(controls.btnLoginWindow).off().on('click', displayLoginWindow);\\r\\n $(controls.btnMegaMenuLogin).off().on('click', displayLoginWindow);\\r\\n\\r\\n if ($('.modal-login form .validation-summary-errors').length > 0) {\\r\\n displayLoginWindow();\\r\\n }\\r\\n\\r\\n if (document.body.getBoundingClientRect().width <= 900) {\\r\\n $('.register-wrapper .intro-paragraph').css({ \\\"display\\\": 'none' });\\r\\n $('.register-wrapper .frmCreateAccount').css({ \\\"display\\\": 'none' });\\r\\n\\r\\n $('.login-wrapper .frmLogin').css({ \\\"display\\\": 'none' });\\r\\n $('.login-wrapper .socmed-integrations').css({ \\\"display\\\": 'none' });\\r\\n\\r\\n \\r\\n var img = document.createElement('img');\\r\\n img.src = $('.mob-img-cow').attr(\\\"data-src\\\");\\r\\n $('.mob-img-cow').append(img);\\r\\n\\r\\n // toggle for the register and login section in mobile view\\r\\n $(controls.mobileBannerToggle).off().on('click', function () {\\r\\n var parentContainer = $(this).parent();\\r\\n $(parentContainer).toggleClass('active');\\r\\n if (parentContainer.hasClass('register-wrapper')) {\\r\\n if ($('.register-wrapper .intro-paragraph').css('display') !== 'none') {\\r\\n $('.register-wrapper .intro-paragraph').css({ \\\"display\\\": 'none' });\\r\\n $('.register-wrapper .frmCreateAccount').css({ \\\"display\\\": 'none' });\\r\\n }\\r\\n else {\\r\\n $('.register-wrapper .intro-paragraph').css({ \\\"display\\\": '' });\\r\\n $('.register-wrapper .frmCreateAccount').css({ \\\"display\\\": '' });\\r\\n\\r\\n $('.login-wrapper .frmLogin').css({ \\\"display\\\": 'none' });\\r\\n $('.login-wrapper .socmed-integrations').css({ \\\"display\\\": 'none' });\\r\\n $('.login-wrapper.active').removeClass('active');\\r\\n\\r\\n }\\r\\n }\\r\\n else if (parentContainer.hasClass('login-wrapper')) {\\r\\n if ($('.login-wrapper .frmLogin').css('display') !== 'none') {\\r\\n $('.login-wrapper .frmLogin').css({ \\\"display\\\": 'none' });\\r\\n $('.login-wrapper .socmed-integrations').css({ \\\"display\\\": 'none' });\\r\\n }\\r\\n else {\\r\\n $('.login-wrapper .frmLogin').css({ \\\"display\\\": '' });\\r\\n $('.login-wrapper .socmed-integrations').css({ \\\"display\\\": '' });\\r\\n\\r\\n $('.register-wrapper .intro-paragraph').css({ \\\"display\\\": 'none' });\\r\\n $('.register-wrapper .frmCreateAccount').css({ \\\"display\\\": 'none' });\\r\\n $('.register-wrapper.active').removeClass('active');\\r\\n }\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n $(controls.btnLoginAfterReset).off().on('click', function () {\\r\\n $('body').removeClass('no-scroll');\\r\\n $('.modal-resetpass').remove();\\r\\n $('.modal-overlay').remove();\\r\\n\\r\\n let url = window.location.href;\\r\\n let urlWithoutQueryString = url.split('?')[0];\\r\\n history.pushState({}, '', urlWithoutQueryString);\\r\\n\\r\\n displayLoginWindow();\\r\\n });\\r\\n }\\r\\n\\r\\n function displayLoginWindow() {\\r\\n $('body').addClass('no-scroll');\\r\\n $('.modal-login').addClass('show');\\r\\n $('
').insertAfter('.modal-login');\\r\\n initializeForm();\\r\\n\\r\\n $(controls.btnCreateAccount).off().on('click', validateAccount);\\r\\n $(controls.btnForgotPassword).off().on('click', displayForgotPasswordWindow);\\r\\n\\r\\n $(controls.btnFacebookLogin).off().on('click', onFacebookLogin);\\r\\n $(controls.btnGoogleLogin).off().on('click', onGoogleLogin);\\r\\n $(controls.btnAppleLogin).off().on('click', onAppleLogin);\\r\\n }\\r\\n\\r\\n async function validateAccount(e) {\\r\\n var payload = {\\r\\n emailAddress: $(controls.txNewAcctEmailAddress).val(),\\r\\n firstName: $(controls.txtNewAccFirstName).val(),\\r\\n lastName: $(controls.txtNewAccLastName).val(),\\r\\n password: $(controls.txtNewAccPassword).val(),\\r\\n //receiveMarketingInfo: $(controls.chkReceiveMarketingInfo).val()\\r\\n }\\r\\n\\r\\n var errorList = [];\\r\\n var emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z0-9]{2,9}$/;\\r\\n\\r\\n if (payload.emailAddress == \\\"\\\") {\\r\\n errorList.push({ id: controls.txNewAcctEmailAddress, message: \\\"Email address is required.\\\" });\\r\\n }\\r\\n else if (!emailRegex.test(payload.emailAddress)) {\\r\\n errorList.push({ id: controls.txNewAcctEmailAddress, message: \\\"Email address is not valid.\\\" });\\r\\n }\\r\\n\\r\\n if (payload.firstName == \\\"\\\") {\\r\\n errorList.push({ id: controls.txtNewAccFirstName, message: \\\"First name is required.\\\" });\\r\\n }\\r\\n\\r\\n if (payload.lastName == \\\"\\\") {\\r\\n errorList.push({ id: controls.txtNewAccLastName, message: \\\"Last name is required.\\\" });\\r\\n }\\r\\n\\r\\n if (payload.password == \\\"\\\") {\\r\\n errorList.push({ id: controls.txtNewAccPassword, message: \\\"Password is required.\\\" });\\r\\n }\\r\\n else if ($(controls.txtNewAccPassword).val() != $(controls.txtNewAccConfirmPassword).val()) {\\r\\n errorList.push({ id: controls.txtNewAccConfirmPassword, message: \\\"Confirm password must be equal to your choosen password.\\\" });\\r\\n }\\r\\n\\r\\n validate(errorList, controls.frmCreateAccount);\\r\\n\\r\\n if (errorList.length <= 0) {\\r\\n $(controls.txtNewAccName).val(payload.firstName + \\\" \\\" + payload.lastName);\\r\\n $(controls.frmCreateAccount).trigger('submit');\\r\\n }\\r\\n else {\\r\\n e.preventDefault();\\r\\n }\\r\\n }\\r\\n\\r\\n function displayForgotPasswordWindow() {\\r\\n var openedModals = $('.modal.show').length;\\r\\n\\r\\n $('.modal-forgotpass').addClass('show');\\r\\n $('.modal-forgotpass').css({ 'z-index': 1000 * (openedModals + 1) });\\r\\n\\r\\n var overlay = parseInt($('.modal-overlay').css('z-index'));\\r\\n $('.modal-overlay').css({ 'z-index': overlay + 1 });\\r\\n\\r\\n $(controls.btnResetPassword).off().on('click', resetPassword);\\r\\n }\\r\\n\\r\\n async function resetPassword() {\\r\\n var email = $('#forgot_email').val();\\r\\n\\r\\n if (!email) {\\r\\n $('.modal-forgotpass .form-error-validation').html(\\\"Email is required\\\");\\r\\n return;\\r\\n }\\r\\n\\r\\n $(controls.btnResetPassword).attr('disabled', '');\\r\\n\\r\\n var response = await accountService.forgotPassword(email);\\r\\n\\r\\n $('.modal-forgotpass .form-error-validation').html('');\\r\\n if (response.ok) {\\r\\n $('#forgot_email').val('');\\r\\n $('.modal-forgotpass .form-success-message').html(\\\"The reset link has been sent to your email. This pop-up will automatically close in 5 seconds.\\\");\\r\\n setTimeout(() => {\\r\\n $('.modal-forgotpass .modal-close').trigger('click');\\r\\n }, 5000);\\r\\n }\\r\\n else {\\r\\n var data = await response.json();\\r\\n $('.modal-forgotpass .form-error-validation').html(data.errorMessage);\\r\\n }\\r\\n\\r\\n $(controls.btnResetPassword).removeAttr('disabled');\\r\\n }\\r\\n\\r\\n function validate(errorList, form) {\\r\\n // clear all errors\\r\\n $(form + \\\" .form-error-validation\\\").text('');\\r\\n $(form + \\\" .form-control\\\").removeClass('has-error');\\r\\n\\r\\n // set errors\\r\\n for (var i = 0; i < errorList.length; i++) {\\r\\n var error = errorList[i];\\r\\n if (i == 0) {\\r\\n $(form + \\\" \\\" + error.id).focus();\\r\\n }\\r\\n\\r\\n $(form + \\\" \\\" + error.id).parent().find('.form-error-validation').text(error.message);\\r\\n $(form + \\\" \\\" + error.id).parent().addClass('has-error');\\r\\n }\\r\\n }\\r\\n\\r\\n function initializeForm() {\\r\\n $(controls.frmCreateAccount + \\\" .form-control input\\\").val('');\\r\\n $(controls.frmLogin + \\\" .form-control input\\\").val('');\\r\\n\\r\\n $(controls.frmCreateAccount + \\\" .form-error-validation\\\").text('');\\r\\n $(controls.frmLogin + \\\" .form-error-validation\\\").text('');\\r\\n\\r\\n $(controls.frmCreateAccount + \\\" .form-control.has-error\\\").removeClass('has-error');\\r\\n $(controls.frmLogin + \\\" .form-control.has-error\\\").removeClass('has-error');\\r\\n\\r\\n $(controls.frmCreateAccount + \\\" input\\\").removeClass('has-focus has-value');\\r\\n $(controls.frmLogin + \\\" input\\\").removeClass('has-focus has-value');\\r\\n }\\r\\n\\r\\n function initFacebookLogin() {\\r\\n if (window.FB != null && window.FB !== undefined) {\\r\\n FB.getLoginStatus(function (response) {\\r\\n statusChangeCallback(response);\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n function onFacebookLogin() {\\r\\n FB.getLoginStatus(function (response) {\\r\\n if (response.status === 'connected') {\\r\\n statusChangeCallback(response);\\r\\n }\\r\\n else {\\r\\n FB.login(function (response) {\\r\\n statusChangeCallback(response);\\r\\n }, { scope: 'public_profile,email' });\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n function statusChangeCallback(response) {\\r\\n if (response.status === 'connected') {// Logged into your webpage and Facebook.\\r\\n let payload = {\\r\\n accessToken: response.authResponse.accessToken,\\r\\n userId: response.authResponse.userID,\\r\\n name: \\\"\\\",\\r\\n email: \\\"\\\"\\r\\n };\\r\\n\\r\\n FB.api('/me', { fields: 'name, email' }, function (fbResponse) {\\r\\n payload.name = fbResponse.name;\\r\\n payload.email = fbResponse.email;\\r\\n\\r\\n accountService.fbLogin(payload).then(function (res) {\\r\\n if (res.status == 200) {\\r\\n window.location.reload();\\r\\n }\\r\\n });\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n function initGoogleLogin(gcid) {\\r\\n settings.gcid = gcid;\\r\\n\\r\\n window.onGoogleLibraryLoad = () => {\\r\\n google.accounts.id.initialize({\\r\\n client_id: gcid,\\r\\n use_fedcm_for_prompt: true,\\r\\n callback: handleGoogleResponse\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n const createFakeGoogleWrapper = () => {\\r\\n const googleLoginWrapper = document.createElement(\\\"div\\\");\\r\\n // Or you can simple hide it in CSS rule for custom-google-button\\r\\n googleLoginWrapper.style.display = \\\"none\\\";\\r\\n googleLoginWrapper.classList.add(\\\"custom-google-button\\\");\\r\\n\\r\\n // Add the wrapper to body\\r\\n document.body.appendChild(googleLoginWrapper);\\r\\n\\r\\n // Use GSI javascript api to render the button inside our wrapper\\r\\n // You can ignore the properties because this button will not appear\\r\\n google.accounts.id.renderButton(googleLoginWrapper, {\\r\\n type: \\\"icon\\\",\\r\\n width: \\\"200\\\",\\r\\n });\\r\\n\\r\\n const googleLoginWrapperButton =\\r\\n googleLoginWrapper.querySelector(\\\"div[role=button]\\\");\\r\\n\\r\\n return {\\r\\n click: () => {\\r\\n googleLoginWrapperButton.click();\\r\\n },\\r\\n };\\r\\n }\\r\\n\\r\\n function handleGoogleResponse(response) {\\r\\n var payload = {\\r\\n token: response.credential\\r\\n }\\r\\n\\r\\n accountService.googleLogin(payload).then(function (res) {\\r\\n if (res.status == 200) {\\r\\n window.location.reload();\\r\\n }\\r\\n });\\r\\n }\\r\\n \\r\\n function onGoogleLogin() {\\r\\n google.accounts.id.prompt((notification) => {\\r\\n if (notification.isSkippedMoment()) {\\r\\n // when button is called continue with credential flow\\r\\n const googleButtonWrapper = createFakeGoogleWrapper();\\r\\n googleButtonWrapper.click();\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n function initAppleLogin({ apcs, anc, acid, aredurl }) {\\r\\n var script = document.createElement('script');\\r\\n script.id = 'appleauth-jssdk';\\r\\n script.src = \\\"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\\\";\\r\\n script.async = true;\\r\\n script.onload = function () {\\r\\n AppleID.auth.init({\\r\\n clientId: acid,\\r\\n scope: 'openid name email',\\r\\n redirectURI: aredurl,\\r\\n state: apcs,\\r\\n nonce: anc,\\r\\n usePopup: true\\r\\n });\\r\\n }\\r\\n document.body.appendChild(script);\\r\\n }\\r\\n\\r\\n function onAppleLogin() {\\r\\n try {\\r\\n AppleID.auth.signIn().then(function (result) {\\r\\n let payload = {\\r\\n code: result.authorization.code,\\r\\n idToken: result.authorization.id_token\\r\\n };\\r\\n\\r\\n if (result.user) {\\r\\n payload = {\\r\\n ...payload,\\r\\n email: result.user.email,\\r\\n name: result.user.name.firstName + ' ' + result.user.name.lastName\\r\\n };\\r\\n }\\r\\n\\r\\n accountService.appleLogin(payload).then(function (res) {\\r\\n if (res.status == 200) {\\r\\n window.location.reload();\\r\\n }\\r\\n });\\r\\n });\\r\\n } catch (err) {\\r\\n // Handle error\\r\\n console.log(err);\\r\\n }\\r\\n }\\r\\n \\r\\n return {\\r\\n init: function ({ apcs, anc, acid, gcid, aredurl }) {\\r\\n bindEvents();\\r\\n initFacebookLogin();\\r\\n initGoogleLogin(gcid);\\r\\n initAppleLogin({ apcs, anc, acid, aredurl });\\r\\n },\\r\\n checkFBLoginState: function () {\\r\\n FB.getLoginStatus(function (response) {\\r\\n statusChangeCallback(response);\\r\\n });\\r\\n },\\r\\n displayLoginWindow\\r\\n }\\r\\n}\"","module.exports = \"function accountService() {\\r\\n const umbracoApiUrl = '/umbraco/api';\\r\\n\\r\\n function getRequestInfo(method, payload) {\\r\\n var request = {\\r\\n method\\r\\n }\\r\\n\\r\\n if (payload) {\\r\\n request.headers = {\\r\\n 'Accept': 'application/json',\\r\\n 'Content-Type': 'application/json'\\r\\n }\\r\\n request.body = JSON.stringify(payload);\\r\\n }\\r\\n\\r\\n return request;\\r\\n }\\r\\n\\r\\n return {\\r\\n forgotPassword: async function (email) {\\r\\n return await fetch(umbracoApiUrl + '/myekkaaccount/forgotpassword?emailaddress=' + email, getRequestInfo('POST'));\\r\\n },\\r\\n fbLogin: function (payload) {\\r\\n return fetch(umbracoApiUrl + '/facebookauth/login', getRequestInfo('POST', payload));\\r\\n },\\r\\n googleLogin: function (payload) {\\r\\n return fetch(umbracoApiUrl + '/googleauth/login', getRequestInfo('POST', payload));\\r\\n },\\r\\n appleLogin: async function (payload) {\\r\\n return await fetch(umbracoApiUrl + '/apple/login', getRequestInfo('POST', payload));\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\nvar accountService = new accountService();\"","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","require(\"!!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\node_modules\\\\script-loader\\\\addScript.js\")(require(\"!!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\node_modules\\\\raw-loader\\\\index.js!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\wwwroot\\\\scripts\\\\app\\\\services\\\\account.js\"))","require(\"!!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\node_modules\\\\script-loader\\\\addScript.js\")(require(\"!!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\node_modules\\\\raw-loader\\\\index.js!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\wwwroot\\\\scripts\\\\app\\\\login.js\"))"],"names":["module","exports","src","log","error","console","execScript","attachEvent","addEventListener","eval","call","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}