{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_bab_core/cartridge/client/default/js/components/clientSideValidation.js","webpack:///./cartridges/app_bab_core/cartridge/client/default/js/login.js","webpack:///./cartridges/app_bab_core/cartridge/client/default/js/login/login.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/components/clientSideValidation.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/util.js"],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;;AAEb,WAAW,mBAAO,CAAC,6IAAsC;AACzD;;AAEA;AACA;AACA,iBAAiB,EAAE,KAAK,EAAE;AAC1B,mCAAmC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;AACtE,mCAAmC,EAAE,OAAO,EAAE;AAC9C,sBAAsB,EAAE;AACxB,sBAAsB,EAAE,WAAW,EAAE;AACrC,sBAAsB,EAAE;AACxB,yEAAyE,IAAI,qBAAqB,EAAE;AACpG,gBAAgB,KAAK;AACrB,KAAK;AACL;AACA,oBAAoB,GAAG;AACvB,oBAAoB,GAAG;AACvB;AACA;;AAEA;AACA,0EAA0E,IAAI;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sEAAsE,EAAE;AACxE;AACA,KAAK;AACL,CAAC;;AAED;;;;;;;;;;;;;AChda;;AAEb,qBAAqB,mBAAO,CAAC,uFAAW;;AAExC;AACA,mBAAmB,mBAAO,CAAC,2FAAe;AAC1C,CAAC;;;;;;;;;;;;;ACNY;;AAEb,qBAAqB,mBAAO,CAAC,iIAAgC;AAC7D,8BAA8B,mBAAO,CAAC,uIAAmC;AACzE,2BAA2B,mBAAO,CAAC,oIAAoC;;AAEvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wEAAwE,EAAE;AAC1E;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;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,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;ACtNa;;AAEb;AACA;AACA,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;AClFa;;AAEb;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;;;;;;;;;;;;;ACVa;;AAEb;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ca;;AAEb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA","file":"default/js/login.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_bab_core/cartridge/client/default/js/login.js\");\n","'use strict';\n\nvar base = require('base/components/clientSideValidation');\nvar dataLayer = window.dataLayer || [];\n\nvar regex = {\n postal: {\n us: /^\\d{5}(-\\d{4})?$/,\n ca: /^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$/,\n fr: /^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$/,\n it: /^([0-9]){5}$/,\n jp: /^([0-9]){3}[-]([0-9]){4}$/,\n cn: /^([0-9]){6}$/,\n gb: /^([A-PR-UWYZ0-9][A-HK-Y0-9][A-HJKS-U0-9]?[ABEHMNPRV-Y0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$/,\n xx: /^.{4,10}$/\n },\n phone: {\n us: /^[0-9]{10}$/,\n gb: /^[0-9]{11}$/\n }\n};\n\nfunction isValidEmailAddress(footLgEmail) {\n var pattern = /^([\\w+\\-]+\\.)*[\\w+\\-]+@([\\w+\\-]+\\.)*[\\w+\\-]+\\.[a-zA-Z]{2,4}$/;\n return pattern.test(footLgEmail);\n}\n\nfunction scrollAnimation() {\n if ($('.is-invalid').length) {\n let position = $('.is-invalid').offset().top - 200;\n $('html, body').animate({\n scrollTop: position\n }, 0);\n }\n}\n\n/**\n * Validate whole form. Requires `this` to be set to form object\n * @param {jQuery.event} event - Event to be canceled if form is invalid.\n * @returns {boolean} - Flag to indicate if form is valid\n */\nfunction validateForm(event) {\n var valid = true;\n if (this.checkValidity && !this.checkValidity()) {\n // safari\n valid = false;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n $(this).find('input, select').each(function () {\n if (!this.validity.valid) {\n $(this).trigger('invalid', this.validity);\n }\n });\n }\n return valid;\n}\n\nfunction checkPhoneValidation($form) {\n let siteId = $('body').data('sitecode');\n if ($form !== undefined) {\n let countryCode = $form.find('select[name$=\"_addressFields_country\"]').val();\n if ((countryCode === undefined) && $('.address-form').length > 0) {\n countryCode = $form.find('select[name$=\"_address_country\"]').val();\n } else if ((countryCode === undefined) && $('.add-new-address-form').length > 0) {\n countryCode = $form.find('select[name$=\"_address_country\"]').val();\n }\n\n if (siteId === 'US' && countryCode === 'US') {\n $('.changePhoneNumber').attr('maxlength', 10);\n } else {\n $('.changePhoneNumber').attr('maxlength', 11);\n }\n }\n\n $('body').find(\"input[type='tel']\").on('paste input', function () {\n RemoveAlphaChars(this);\n });\n}\nfunction RemoveAlphaChars(txt) {\n setTimeout(function () {\n let initVal = $(txt).val();\n let outputVal = initVal.replace(/[^0-9]/g, \"\");\n if (initVal != outputVal) {\n $(txt).val(outputVal);\n }\n }, 1);\n}\n\n/**\n * Validate visible elements. Requires `this` to be set to form object\n * @returns {boolean} - Flag to indicate if form is valid\n */\nfunction customZipAndPhoneValidation() {\n var valid = true;\n var form = $(this);\n var countryCode = form.find('select[name$=\"_addressFields_country\"]').val();\n // Zip Code validation\n $(this).find('input:visible, select:visible, textarea:visible, input[type=\"tel\"], input[type=\"email\"]').each(function () {\n if (this.name.indexOf('_addressFields_postalCode') > -1 || this.name.indexOf('_address_postalCode') > -1) {\n if ($('.address-form').length) {\n countryCode = form.find('select[name$=\"_address_country\"]').val();\n }\n if ($('.add-new-address-form').length) {\n countryCode = form.find('select[name$=\"address_country\"]').val();\n }\n let value = this.value;\n let isValid = false;\n switch (countryCode) {\n case 'US':\n isValid = regex.postal.us.test(value);\n break;\n case 'CA':\n isValid = regex.postal.ca.test(value);\n break;\n case 'FR':\n isValid = regex.postal.fr.test(value);\n break;\n case 'IT':\n isValid = regex.postal.it.test(value);\n break;\n case 'JP':\n isValid = regex.postal.jp.test(value);\n break;\n case 'CN':\n isValid = regex.postal.it.test(value);\n break;\n case 'GB':\n isValid = regex.postal.gb.test(value);\n break;\n default:\n isValid = regex.postal.xx.test(value);\n }\n if (!isValid) {\n valid = false;\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text('Please enter a valid zip code.');\n }\n } else if (!this.validity.valid) {\n valid = false;\n $(this).trigger('invalid', this.validity);\n }\n // Phone number validation\n if (this.name.indexOf('_addressFields_phone') > -1 || this.name.indexOf('_address_phone') > -1 || this.name.indexOf('_contactInfoFields_phone') > -1 || this.name.indexOf('_contactus_phone') > -1 || this.name.indexOf('_corporateEvent_phoneno') > -1) {\n if ($('.address-form').length) {\n countryCode = form.find('select[name$=\"_address_country\"]').val();\n }\n if ($('.add-new-address-form').length) {\n countryCode = form.find('select[name$=\"address_country\"]').val();\n }\n let invalid;\n let siteId = $('body').data('sitecode');\n let value = this.value;\n let isValid = false;\n if (siteId === 'US' && countryCode === 'GB') {\n switch (countryCode) {\n case 'US':\n isValid = regex.phone.us.test(value);\n break;\n default:\n isValid = regex.phone.us.test(value) || regex.phone.gb.test(value);\n }\n invalid = $(this).parents('.form-group').find('.otherCountryErrorMsg').val();\n } else {\n switch (countryCode) {\n case 'US':\n isValid = regex.phone.us.test(value);\n break;\n case 'GB':\n isValid = regex.phone.gb.test(value);\n break;\n default:\n isValid = regex.phone.us.test(value) || regex.phone.gb.test(value);\n }\n invalid = $(this).parents('.form-group').find('.invalid-feedback').data('error-msg');\n }\n if (!isValid) {\n valid = false;\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text(invalid);\n }\n } else if (!this.validity.valid) {\n valid = false;\n $(this).trigger('invalid', this.validity);\n }\n if (this.name.indexOf('_contactus_email') > -1 || this.name.indexOf('_orderStatus_trackOrderEmail') > -1 || this.name.indexOf('_corporateEvent_email') > -1 || this.name.indexOf('_coCustomer_email') > -1) {\n let value = this.value.trim();\n if (isValidEmailAddress(value)) {\n valid = true;\n } else {\n valid = false;\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text($(this).attr('data-error-msg'));\n }\n }\n let giftValid = true;\n if (this.name.indexOf('_shipping_shippingAddress_giftMessage') > -1) {\n let invalid = $(this).parents('.form-group').find('.invalid-feedback').data('error-msg');\n let value = this.value;\n if (value === '') {\n giftValid = false;\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text(invalid);\n }\n }\n if (giftValid === false) {\n valid = false;\n }\n\n if (!valid) {\n scrollAnimation();\n }\n });\n return valid;\n}\n\nfunction EGCformValidation() {\n var valid = true;\n var $form = $(this);\n var $formEmail = $form.find('input[type=\"email\"]');\n let $selectField = $form.find('#price-dropdown');\n let $enterdField = $form.find('#customPrice');\n let invalid = $form.find('.EGC-error-msg').val();\n let invalidEmail = $form.find('.EGC-email-error-msg').val();\n\n $form.find('input[type=\"text\"], input[type=\"email\"]').each(function () {\n if ($(this).val() === '') {\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text(invalid);\n valid = false;\n } else {\n $(this).removeClass('is-invalid');\n valid = true;\n }\n });\n\n let enteredAmmount = true;\n let validAmmount = $enterdField.val();\n\n if (($selectField.val() === '* Choose Amount') && ($enterdField.val() === '')) {\n $enterdField.addClass('is-invalid');\n $enterdField.parents('.form-group').find('.invalid-feedback').text(invalid);\n valid = false;\n } else if (($selectField.val() !== '* Choose Amount') && ($enterdField.val() === '')) {\n $enterdField.removeClass('is-invalid');\n valid = true;\n } else if (($selectField.val() !== '* Choose Amount') && ($enterdField.val() !== '') && (!$enterdField.hasClass('isBSR'))) {\n if (validAmmount < 10 || validAmmount > 75) {\n enteredAmmount = false;\n }\n } else {\n $enterdField.removeClass('is-invalid');\n valid = true;\n }\n\n $formEmail.each(function () {\n if (!isValidEmailAddress($(this).val())) {\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text(invalidEmail);\n valid = false;\n } else {\n $(this).removeClass('is-invalid');\n valid = true;\n }\n });\n\n if (!enteredAmmount) {\n valid = false;\n }\n\n if (!valid) {\n scrollAnimation();\n }\n return valid;\n}\n\nbase.customZipAndPhoneValidation = function (form, event) {\n return customZipAndPhoneValidation.call($(form), event || null);\n};\n\nbase.EGCformValidation = function (form, event) {\n return EGCformValidation.call(form, event || null);\n};\n\nbase.checkPhoneValidation = function (form) {\n return checkPhoneValidation(form);\n};\n$(document).ready(function () {\n $('body').find(\".shippingCountry, .billingCountry\").on('change', function () {\n let form = $(this).closest('form');\n checkPhoneValidation(form);\n });\n $('form input, form textarea, #brickGiftMessage').on('change blur', function () {\n const $formFields = $(this);\n const inputValue = $formFields.val().trim();\n $formFields.val(inputValue);\n });\n $('form input, form select, form textarea, #brickGiftMessage').on('change blur', function (e) {\n return validateForm.call(this, e);\n });\n $('body').find(\"input[type='tel']\").on('input', function () {\n $(this).val($(this).val().replace(/[^0-9]/g, ''));\n });\n $('body').find(\"input[type='tel']\").on('change blur', function () {\n let valid = true; // eslint-disable-line\n let formSelector = $(this).closest('form');\n let form = $(formSelector);\n let siteId = $('body').data('sitecode');\n let invalid;\n let countryCode = form.find('select[name$=\"_addressFields_country\"]').val();\n if ($('.address-form').length) {\n countryCode = form.find('select[name$=\"_address_country\"]').val();\n }\n let value = this.value;\n let isValid = false;\n if (siteId === 'US' && countryCode === 'GB') {\n switch (countryCode) {\n case 'US':\n isValid = regex.phone.us.test(value);\n break;\n default:\n isValid = regex.phone.us.test(value) || regex.phone.gb.test(value);\n }\n invalid = $(this).parents('.form-group').find('.otherCountryErrorMsg').val();\n } else if (siteId === 'GB' && countryCode !== 'GB') {\n switch (countryCode) {\n case 'US':\n isValid = regex.phone.us.test(value);\n break;\n case 'GB':\n isValid = regex.phone.gb.test(value);\n break;\n default:\n isValid = regex.phone.us.test(value) || regex.phone.gb.test(value);\n }\n invalid = $(this).parents('.form-group').find('.otherCountryErrorMsg').val();\n } else {\n switch (countryCode) {\n case 'US':\n isValid = regex.phone.us.test(value);\n break;\n case 'GB':\n isValid = regex.phone.gb.test(value);\n break;\n default:\n isValid = regex.phone.us.test(value) || regex.phone.gb.test(value);\n }\n invalid = $(this).parents('.form-group').find('.invalid-feedback').data('error-msg');\n }\n if (!isValid) {\n isValid = false;\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text(invalid);\n } else {\n $(this).removeClass('is-invalid');\n }\n });\n $('.shippingZipCode, .billingZipCode, #zipCode').on('change blur', function () {\n var valid = true; // eslint-disable-line\n var formSelector = $(this).closest('form');\n var form = $(formSelector);\n const invalid = $(this).parents('.form-group').find('.invalid-feedback').data('error-msg');\n var countryCode = form.find('select[name$=\"_addressFields_country\"]').val();\n if ($('.address-form').length) {\n countryCode = form.find('select[name$=\"_address_country\"]').val();\n }\n var value = this.value;\n var isValid = false;\n switch (countryCode) {\n case 'US':\n isValid = regex.postal.us.test(value);\n break;\n case 'CA':\n isValid = regex.postal.ca.test(value);\n break;\n case 'FR':\n isValid = regex.postal.fr.test(value);\n break;\n case 'IT':\n isValid = regex.postal.it.test(value);\n break;\n case 'JP':\n isValid = regex.postal.jp.test(value);\n break;\n case 'CN':\n isValid = regex.postal.it.test(value);\n break;\n case 'GB':\n isValid = regex.postal.gb.test(value);\n break;\n default:\n isValid = regex.postal.xx.test(value);\n }\n if (!isValid) {\n valid = false;\n $(this).addClass('is-invalid');\n $(this).parents('.form-group').find('.invalid-feedback').text(invalid);\n }\n });\n $('.emailValidation').on('change blur', function () {\n let $this = $(this);\n let formEMail = $this.val();\n let $subscriberEmail = $('#subscriberEmail');\n let $subscriberTerm = $('#subscriberTerms');\n let $productSubscribe = $('#productSubscribe');\n const $parentGroup = $this.parents('.form-group');\n const invalid = $parentGroup.find('.invalid-feedback').data('error-msg');\n const blankInvalid = $parentGroup.find('.invalid-feedback').data('blank-msg');\n\n if (!isValidEmailAddress(formEMail)) {\n $this.addClass('is-invalid');\n $parentGroup.find('.invalid-feedback').text(invalid);\n $productSubscribe.attr('disabled', true);\n } else {\n $this.removeClass('is-invalid');\n $productSubscribe.attr('disabled', false);\n if ($subscriberTerm.is(':checked')) {\n $productSubscribe.attr('disabled', false);\n $subscriberTerm.click(function () {\n $productSubscribe.prop(\"disabled\", !$subscriberTerm.prop(\"checked\"));\n });\n }\n }\n\n if ($subscriberEmail.length) {\n var subscriberEmailval = $subscriberEmail.val();\n if (subscriberEmailval == '') {\n $this.addClass('is-invalid');\n $parentGroup.find('.invalid-feedback').text(blankInvalid);\n $productSubscribe.attr('disabled', true);\n }\n }\n });\n $('body').find(\"input[type='tel'], input[type='text'], select\").on('change blur', function () {\n try {\n let formSelector = $(this).closest('form');\n let $form = $(formSelector);\n let $stepShipping = $('#stepshipping');\n\n let countryCode = $form.find('select[name$=\"_addressFields_country\"]').val();\n let phone = $form.find('input[name$=\"_addressFields_phone\"]').val();\n let postalCode = $form.find('input[name$=\"_addressFields_postalCode\"]').val();\n let stateCodeUS = $form.find('select[name$=\"_addressFields_states_stateUS\"]').val();\n let stateCodeUK = $form.find('select[name$=\"_addressFields_states_stateGB\"]').val();\n let address1 = $form.find('input[name$=\"_addressFields_address1\"]').val();\n let firstName = $form.find('input[name$=\"_addressFields_firstName\"]').val();\n let lastName = $form.find('input[name$=\"_addressFields_lastName\"]').val();\n let city = $form.find('input[name$=\"_addressFields_city\"]').val();\n\n if (firstName && lastName && address1 && countryCode && city && postalCode && phone && (stateCodeUS || stateCodeUK)) {\n var $dataLayerShippingObj = $stepShipping.val();\n if ($dataLayerShippingObj) {\n dataLayer.push(JSON.parse($dataLayerShippingObj));\n }\n $stepShipping.val('');\n }\n } catch (error) {\n window.console.error('\\clientSideValidation.js: error in {0}', error);\n }\n });\n});\n\nmodule.exports = base;\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 formValidation = require('base/components/formValidation');\nvar createErrorNotification = require('base/components/errorNotification');\nvar clientSideValidation = require('../components/clientSideValidation');\n\nconst setNewPassword = function () {\n $('.set-new-password-form').on('submit', function (evt) {\n evt.preventDefault();\n const $setNewPasswordForm = $(this);\n const saveNewPasswordUrl = $setNewPasswordForm.attr('action');\n\n $.ajax({\n url: saveNewPasswordUrl,\n type: 'post',\n dataType: 'json',\n data: $setNewPasswordForm.serialize(),\n beforeSend: function () {\n $setNewPasswordForm.spinner().start();\n },\n success: function (data) {\n $setNewPasswordForm.spinner().stop();\n\n if (!data.success) {\n formValidation($setNewPasswordForm, data);\n } else {\n $('.set-new-password-wrapper').addClass('d-none');\n $('.set-new-password-success').removeClass('d-none');\n }\n },\n error: function () {\n $setNewPasswordForm.spinner().stop();\n $setNewPasswordForm.off('submit').trigger('submit');\n }\n });\n });\n};\n\nconst orderTrack = function () {\n $('body').on('click', '.trackorder .order-track', function (evt) {\n evt.preventDefault();\n const url = $(this).closest('form').attr('action');\n const $form = $(this).closest('form');\n const defer = $.Deferred(); // eslint-disable-line\n if (!clientSideValidation.customZipAndPhoneValidation($form, null) || $('.trackorder .is-invalid').length) {\n defer.reject();\n return defer;\n }\n $.spinner().start();\n $.ajax({\n url: url,\n method: 'POST',\n data: $form.serialize(),\n success: function (data) {\n if (!data.success) {\n formValidation($form, data);\n $('#order-status-form-email-error').text(data.errorMSG).show();\n } else if (data.continueURL) {\n window.location.href = data.continueURL;\n }\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n });\n};\n // Validate phone number numeric values only\nfunction phoneValidation() {\n $(document).on('keypress keyup blur', '#registration-form-phone', function () {\n var phoneNum = $(this).val();\n $(this).val(phoneNum.replace(/[^\\d]/, ''));\n });\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 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 try {\n if (data.isEnabled) {\n window.dataLayer.push(JSON.parse(data.dataLayerObjLogin));\n }\n } catch (error) {\n window.console.error('\\nlogin.js: error in {0}', error);\n }\n window.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 window.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 let $resetRecaptcha = form.find('.g-recaptcha');\n let response = grecaptcha.getResponse();// eslint-disable-line\n if (response.length == 0) {\n $resetRecaptcha.addClass('is-invalid');\n form.spinner().stop();\n } else {\n $resetRecaptcha.removeClass('is-invalid');\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 $('.forgot-password-wrapper').addClass('email-sent');\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 }\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 setNewPassword: setNewPassword,\n orderTrack: orderTrack,\n phoneValidation: phoneValidation\n};\n","'use strict';\n\n/**\n * Validate whole form. Requires `this` to be set to form object\n * @param {jQuery.event} event - Event to be canceled if form is invalid.\n * @returns {boolean} - Flag to indicate if form is valid\n */\nfunction validateForm(event) {\n var valid = true;\n if (this.checkValidity && !this.checkValidity()) {\n // safari\n valid = false;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n $(this).find('input, select').each(function () {\n if (!this.validity.valid) {\n $(this).trigger('invalid', this.validity);\n }\n });\n }\n return valid;\n}\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 clearForm(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\nmodule.exports = {\n invalid: function () {\n $('form input, form select').on('invalid', function (e) {\n e.preventDefault();\n this.setCustomValidity('');\n if (!this.validity.valid) {\n var validationMessage = this.validationMessage;\n $(this).addClass('is-invalid');\n if (this.validity.patternMismatch && $(this).data('pattern-mismatch')) {\n validationMessage = $(this).data('pattern-mismatch');\n }\n if ((this.validity.rangeOverflow || this.validity.rangeUnderflow)\n && $(this).data('range-error')) {\n validationMessage = $(this).data('range-error');\n }\n if ((this.validity.tooLong || this.validity.tooShort)\n && $(this).data('range-error')) {\n validationMessage = $(this).data('range-error');\n }\n if (this.validity.valueMissing && $(this).data('missing-error')) {\n validationMessage = $(this).data('missing-error');\n }\n $(this).parents('.form-group').find('.invalid-feedback')\n .text(validationMessage);\n }\n });\n },\n\n submit: function () {\n $('form').on('submit', function (e) {\n return validateForm.call(this, e);\n });\n },\n\n buttonClick: function () {\n $('form button[type=\"submit\"], form input[type=\"submit\"]').on('click', function () {\n // clear all errors when trying to submit the form\n clearForm($(this).parents('form'));\n });\n },\n\n functions: {\n validateForm: function (form, event) {\n validateForm.call($(form), event || null);\n },\n clearForm: clearForm\n }\n};\n","'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\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"],"sourceRoot":""}