{"version":3,"file":"default/js/login.js","sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_site_homa/cartridge/client/default/js/helpers/validation.js","webpack:///./cartridges/app_site_homa/cartridge/client/default/js/login.js","webpack:///./cartridges/app_site_homa/cartridge/client/default/js/login/login.js","webpack:///./cartridges/app_site_homa/cartridge/client/default/js/utils/cookies.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/components/errorNotification.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/login/login.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack:///./cartridges/bc_improove/cartridge/client/default/js/util/states.js","webpack:///../source/AsYouType.js","webpack:///../source/IDD.js","webpack:///../source/ParseError.js","webpack:///../source/PhoneNumber.js","webpack:///../source/PhoneNumberMatcher.js","webpack:///../source/RFC3966.js","webpack:///../source/constants.js","webpack:///../source/extension.js","webpack:///../source/findNumbers.js","webpack:///../../source/findNumbers/LRUCache.js","webpack:///../../source/findNumbers/Leniency.js","webpack:///../../source/findNumbers/RegExpCache.js","webpack:///../../source/findNumbers/isValidCandidate.js","webpack:///../../source/findNumbers/isValidPreCandidate.js","webpack:///../../source/findNumbers/parsePreCandidate.js","webpack:///../../source/findNumbers/utf-8.js","webpack:///../../source/findNumbers/util.js","webpack:///../source/findNumbers_.js","webpack:///../source/findPhoneNumbers.js","webpack:///../source/findPhoneNumbersInText.js","webpack:///../source/findPhoneNumbers_.js","webpack:///../source/format.js","webpack:///../source/formatIncompletePhoneNumber.js","webpack:///../source/format_.js","webpack:///../source/getCountries.js","webpack:///../source/getCountryCallingCode.js","webpack:///../source/getExampleNumber.js","webpack:///../source/getNumberType.js","webpack:///../source/getNumberType_.js","webpack:///../source/isPossibleNumber.js","webpack:///../source/isPossibleNumber_.js","webpack:///../source/isValidNumberForRegion.js","webpack:///../source/isValidNumberForRegion_.js","webpack:///../source/isViablePhoneNumber.js","webpack:///../source/metadata.js","webpack:///../source/parse.js","webpack:///../source/parseDigits.js","webpack:///../source/parseIncompletePhoneNumber.js","webpack:///../source/parsePhoneNumber.js","webpack:///../source/parsePhoneNumberFromString.js","webpack:///../source/parsePhoneNumberFromString_.js","webpack:///../source/parsePhoneNumber_.js","webpack:///../source/parse_.js","webpack:///../source/searchNumbers.js","webpack:///../source/searchPhoneNumbersInText.js","webpack:///../../source/tools/semver-compare.js","webpack:///../source/util.js","webpack:///../source/validate.js","webpack:///../source/validate_.js","webpack:///./node_modules/libphonenumber-js/index.es6.js","webpack:///./node_modules/libphonenumber-js/metadata.min.json.js","webpack:///./node_modules/lodash/lodash.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./cartridges/app_site_homa/cartridge/client/default/js/login.js\");\n","/* eslint-disable no-mixed-operators */\n'use strict';\n\n// Constants\nconst helpers = {};\n\n// API includes\nvar libphonenumber = require('libphonenumber-js');\n\n/**\n * Collection of validation functions.\n */\nhelpers.isValid = {\n /**\n * Verify if the provided nif (Portuguese VAT IN) is valid.\n * @param {string} value - nif (Portuguese VAT IN) to validate\n * @returns {boolean} true if is a valid nif\n */\n nif: function (value) {\n var valid;\n var pattern1 = ['1', '2', '3', '5', '6', '8'];\n var pattern2 = ['45', '70', '71', '72', '77', '79', '90', '91', '98', '99'];\n\n if (pattern1.indexOf(value.substr(0, 1)) === -1 && pattern2.indexOf(value.substr(0, 2)) === -1) {\n valid = false;\n }\n\n var total =\n value[0] * 9 +\n value[1] * 8 +\n value[2] * 7 +\n value[3] * 6 +\n value[4] * 5 +\n value[5] * 4 +\n value[6] * 3 +\n value[7] * 2;\n\n var module11 = total - parseInt(total / 11, 10) * 11;\n var comparator = module11 === 1 || module11 === 0 ? 0 : 11 - module11;\n\n valid = parseInt(value[8], 10) === comparator;\n\n\n if (!valid) {\n var letras = 'TRWAGMYFPDXBNJZSQVHLCKET';\n var numero;\n var letraCalculada;\n var dni = value.toUpperCase();\n\n if (dni.length === 9 && /^[XYZ0-9]/.test(dni.charAt(0)) && /^[A-Z]$/.test(dni.charAt(8))) {\n numero = dni.substr(0, 8);\n\n if (['X', 'Y', 'Z'].indexOf(dni.charAt(0)) !== -1) {\n numero = numero.replace('X', '0').replace('Y', '1').replace('Z', '2');\n }\n\n letraCalculada = letras.charAt(parseInt(numero, 10) % 23);\n\n if (letraCalculada === dni.charAt(8)) {\n valid = true;\n } else {\n valid = false;\n }\n }\n }\n\n return valid;\n },\n\n /**\n * Verify if the provided phone number is valid for the country and if it is returns a phoneNumber object.\n * @param {string} value - phone number to validate\n * @param {string} country - country code\n * @returns {Object | boolean} true if is a valid phone number\n */\n phoneNumber: function (value, country) {\n var isValid = libphonenumber.isValidNumber(value, country);\n if (isValid) {\n return libphonenumber.parsePhoneNumberFromString(value, country);\n }\n return false;\n }\n};\n\nmodule.exports = helpers;\n","'use strict';\n\nvar processInclude = require('base/util');\n\n$(document).ready(function () {\n processInclude(require('./login/login'));\n});\n","'use strict';\n\nvar base = require('base/login/login');\n\n// Component includes\nvar createErrorNotification = require('base/components/errorNotification');\nvar formValidation = require('base/components/formValidation');\n\n// Util includes\nvar cookiesUtil = require('../utils/cookies');\nvar states = require('improove/util/states');\n\n// Helper includes\nvar validationHelper = require('../helpers/validation');\n\n/**\n * Validates phone number and changes frontend classes and error messages accordingly\n * @param {number} value - phone number\n * @returns {boolean} true if is a valid phone number\n */\nfunction validatePhoneNumber(value) {\n if (value) {\n var selectedCountry = document.querySelector('[class=\"styled-select selected-country-flag\"]').innerText.trim();\n var phoneNumber = validationHelper.isValid.phoneNumber(value, selectedCountry);\n\n // @todo - solution implemented is not valid for US because in the US the + is replaced with 011\n if (phoneNumber && phoneNumber.isValid()) {\n var phoneNumberCountry = phoneNumber.country;\n if (phoneNumberCountry === selectedCountry) {\n $('#registration-form-phone').val(phoneNumber.number.replace('+', '00'));\n document.cookie = 'phoneValid=true';\n $('#registration-form-phone').removeClass('is-invalid');\n $('#registration-form-phone').removeClass('.invalid-feedback').empty();\n } else {\n $('#registration-form-phone').val(phoneNumber.number.replace('+', '00'));\n document.querySelector('[countrycode=\"' + phoneNumber.country + '\"]').click();\n document.cookie = 'phoneValid=true';\n $('#registration-form-phone').removeClass('is-invalid');\n }\n return true;\n }\n $('#registration-form-phone').addClass('is-invalid');\n $('#registration-form-phone').siblings('.invalid-feedback').empty();\n $('#registration-form-phone')\n .siblings('.invalid-feedback')\n .append(document.getElementById('error-account-Phone').getAttribute('data-error-phone'));\n document.cookie = 'phoneValid=false';\n } else {\n document.cookie = 'phoneValid=false';\n }\n return false;\n}\n\n$(document).ready(function () {\n var homaNewAccount = cookiesUtil.getCookie('createAccountHoma');\n if (homaNewAccount === 'true' || homaNewAccount === true) {\n var addressObject;\n var localStorageAddress = localStorage.getItem('AddressParsed');\n if (localStorageAddress) {\n // get the wanted cookie\n var AddressFromCookie = localStorageAddress;\n if (AddressFromCookie) {\n AddressFromCookie = JSON.parse(AddressFromCookie);\n addressObject = {\n firstName: AddressFromCookie.firstName,\n lastName: AddressFromCookie.lastName,\n address1: AddressFromCookie.address1,\n address2: AddressFromCookie.address2,\n city: AddressFromCookie.city,\n postalCode: AddressFromCookie.postalCode,\n stateCode: AddressFromCookie.stateCode,\n countryCode: AddressFromCookie.countryCode,\n phone: AddressFromCookie.phone,\n nif: AddressFromCookie.nif,\n email: AddressFromCookie.email\n };\n }\n } else {\n addressObject = {\n firstName: null,\n lastName: null,\n address1: null,\n address2: null,\n city: null,\n postalCode: null,\n stateCode: null,\n countryCode: null,\n phone: null,\n nif: null,\n email: null\n };\n }\n $('#registration-form-fname').val(addressObject.firstName);\n $('#registration-form-lname').val(addressObject.lastName);\n $('#registration-form-email-confirm').val(addressObject.email);\n $('#registration-form-nif').val(addressObject.nif);\n $('#registration-form-email').val(addressObject.email);\n $('#registration-form-phone').val(addressObject.phone);\n $('#registration-form-email-confirm').val(addressObject.email);\n // click to show register page\n document.querySelector('[aria-controls=\"register\"]').click();\n\n document.cookie = 'createAccountHoma=';\n }\n\n $('#registerPhoneId').each(function () {\n var countries = [\n { countryCode: 'pt-PT', name: 'Portugal' },\n { countryCode: 'es-ES', name: 'Spain' },\n { countryCode: 'at-AT', name: 'Austria' },\n { countryCode: 'be-BE', name: 'Belgium' },\n { countryCode: 'bg-BG', name: 'Bulgaria' },\n { countryCode: 'hr-HR', name: 'Croatia' },\n { countryCode: 'cy-CY', name: 'Cyprus' },\n { countryCode: 'cz-CZ', name: 'Czech Republic' },\n { countryCode: 'dk-DK', name: 'Denmark' },\n { countryCode: 'ee-EE', name: 'Estonia' },\n { countryCode: 'fi-FI', name: 'Finland' },\n { countryCode: 'fr-FR', name: 'France' },\n { countryCode: 'de-DE', name: 'Germany' },\n { countryCode: 'gr-GR', name: 'Greece' },\n { countryCode: 'hu-HU', name: 'Hungary' },\n { countryCode: 'ie-IE', name: 'Ireland' },\n { countryCode: 'it-IT', name: 'Italy' },\n { countryCode: 'lv-LV', name: 'Latvia' },\n { countryCode: 'lt-LT', name: 'Lithuania' },\n { countryCode: 'lu-LU', name: 'Luxembourg' },\n { countryCode: 'mt-MT', name: 'Malta' },\n { countryCode: 'nl-NL', name: 'Netherlands' },\n { countryCode: 'pl-PL', name: 'Poland' },\n { countryCode: 'ro-RO', name: 'Romania' },\n { countryCode: 'sk-SK', name: 'Slovakia' },\n { countryCode: 'si-SI', name: 'Slovenia' },\n { countryCode: 'se-SE', name: 'Sweden' },\n { countryCode: 'gb-GB', name: 'United Kingdom' },\n { countryCode: 'ru-RU', name: 'Russia' },\n { countryCode: 'us-US', name: 'United States' }\n ];\n // Cache the number of options\n var $this = $(this);\n var numberOfOptions = countries.length;\n\n // Hides the select element\n $this.addClass('s-hidden');\n\n // Wrap the select element in a div\n $this.wrap('
');\n\n // Insert a styled div to sit over the top of the hidden select element\n $this.after('
');\n\n // Cache the styled div\n var $styledSelect = $this.next('div.styled-select');\n\n var selectedItem;\n\n // Show the select option according to the current locale in the styled div\n for (var j = 0; j < numberOfOptions; j++) {\n if ($this.children('option').eq(j).attr('selected')) {\n selectedItem = $this.children('option').eq(j);\n }\n }\n\n var styledItemImg = '\"\"';\n var styledItemText = '' + selectedItem.text() + '';\n\n $styledSelect.html(styledItemImg + styledItemText);\n\n // Insert an unordered list after the styled div and also cache the list\n var $list = $('