{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/src/js/modules/epi-helpers.js","webpack:///./assets/src/js/events/site-events.js","webpack:///./assets/src/js/utils/optimizely-experimentation-utils.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","epiHelpers","sendLeadToMailchimp","options","dealerOptin","getElementByMailchimpName","length","getCheckedRadioByMailchimpField","indexOf","getCheckedByMailchimpField","tags","getValByMailchimpField","split","trim","push","interests","productLineInterestName","interestInputValues","getMultipleValsByMailchimpField","campaign","currentDate","Date","newDealerSampling","document","querySelector","dataLayer","userID","utmCampaign","utmContent","utmMedium","utmSource","utmTerm","optimizelyExperiments","getOptimizelyExperimentationString","_dcq","email","first_name","last_name","phone","address1","address2","city","state","zip","country","source","gclid","design_studio_id","visualizer_source","d_opt_in","viz_key","product_interests","page_submitted_from","location","href","last_form_submitted_date","user_id","checkStringLength","utm_campaign","utm_content","utm_medium","utm_source","utm_term","optimizely_experiments","selected_bundle","store_number","company_number","company_name","company_contact","who_is_your_graber_tsm","success","data","console","log","failure","fail","dispatchSiteEvent","siteEventNames","ON_FORM_SUBMIT_SUCCESS","optin","validateForm","isValid","fieldErrorList","$","each","el","type","this","removeClass","find","attr","fieldError","simpleEpiValidationByType","classList","remove","add","addClass","focus","validatePhoneIfExists","val","RegExp","test","par","parent","hasClass","$prev","match","eq","is","lastIndexOf","substr","scrollFormToFirstError","animate","scrollTop","offset","top","resetMailchimpForm","prop","disableSubmitButtonOnSend","$btn","btn","jQuery","setAttribute","textContent","reenableSubmitButton","removeAttribute","getAttribute","convertInputTypeToPassword","str","ADD_EXPERT","ADD_SWATCH","DEALER_PHONE_CLICK","DEALER_WEBSITE_CLICK","ON_ACCOUNT_CREATED","ON_DEALER_SEARCH","ON_LOGGED_IN","ON_ORDER_SUBMITTED","ON_ORDER_CONFIRMATION","ON_RECAPTCHA_LOAD","REMOVE_SWATCH","eventName","siteEventRegistry","keys","forEach","event","dispatchEvent","getEventData","initSiteEvents","Event","formantExperimentString","optimizely_experiment","optimizely_variant","filter","map","item","reduce","acc","curr","index"],"mappings":"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","file":"become-a-dealer.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 \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 = 0);\n","import {\n dispatchSiteEvent,\n siteEventNames,\n} from '../events/site-events';\n\nimport { getOptimizelyExperimentationString } from '../utils/optimizely-experimentation-utils';\n\nwindow.epiHelpers = function epiHelpers() {};\n\n/* options: {\n success: ,\n fail: \n }\n*/\nepiHelpers.sendLeadToMailchimp = function(options) {\n // Get timestamp if required for Dealer interest\n var date = '';\n // Detect whether new/old INTEREST_DEALER by length;\n var dealerOptin = false;\n if (epiHelpers.getElementByMailchimpName('INTEREST_DEALER').length > 1) {\n // *NEW* Radio group, get selected value\n var selectedVal = epiHelpers.getCheckedRadioByMailchimpField('INTEREST_DEALER');\n if (selectedVal.indexOf('yes') != -1) {\n dealerOptin = true;\n }\n dealerOptin = epiHelpers.getCheckedRadioByMailchimpField('INTEREST_DEALER');\n } else {\n dealerOptin = epiHelpers.getCheckedByMailchimpField('INTEREST_DEALER');\n }\n var tags = [];\n if (epiHelpers.getValByMailchimpField('DRIP_TAGS') !== '') {\n tags = epiHelpers.getValByMailchimpField('DRIP_TAGS').split(',');\n }\n // Trim whitespace\n for (var i = 0; i <= tags.length; i++) {\n if (tags[i]) {\n tags[i].trim();\n }\n }\n // Add opt-in tag\n if (epiHelpers.getCheckedByMailchimpField('INTEREST_BRAND')) {\n tags.push('Opted In');\n }\n // Add date for dealer opt-in\n if (dealerOptin) {\n tags.push('Consumer Lead to Pickup');\n }\n var interests = '';\n // If product page\n if (window.productLineInterestName) {\n interests = window.productLineInterestName;\n }\n // If find a dealer\n var interestInputValues = epiHelpers.getMultipleValsByMailchimpField('PRODUCT_INTERESTS');\n if (interestInputValues != '') {\n interests = interestInputValues;\n }\n // Switch visualization campaigns\n var campaign = epiHelpers.getValByMailchimpField('CAMPAIGN');\n if (epiHelpers.getMultipleValsByMailchimpField('VIZ_KEY') !== '') {\n campaign = epiHelpers.getValByMailchimpField('CAMPAIGN_WITH_VISUALIZATION')\n }\n // Get Google Click Id (if exists for the form)\n let currentDate = new Date();\n // New Dealer Sampling page - Check if the form has an ide of #new-dealer-sampling-form. If so, the form will submit additional values from that form for drip\n let newDealerSampling = (document.querySelector('#new-dealer-sampling-form')) ? true : false;\n let { userID, utmCampaign, utmContent, utmMedium, utmSource, utmTerm } = window.dataLayer[0];\n let optimizelyExperiments = getOptimizelyExperimentationString();\n // Drip Call\n _dcq.push(\n [\n 'identify',\n {\n email: epiHelpers.getValByMailchimpField('EMAIL'),\n first_name: epiHelpers.getValByMailchimpField('FNAME'),\n last_name: epiHelpers.getValByMailchimpField('LNAME'),\n phone: epiHelpers.getValByMailchimpField('PHONE'),\n address1: epiHelpers.getValByMailchimpField('ADDR_LINE1'),\n address2: epiHelpers.getValByMailchimpField('ADDR_LINE2'),\n city: epiHelpers.getValByMailchimpField('ADDR_CITY'),\n state: epiHelpers.getValByMailchimpField('ADDR_STATE'),\n zip: epiHelpers.getValByMailchimpField('ADDR_ZIP'),\n country: epiHelpers.getValByMailchimpField('ADDR_CNTRY'),\n source: epiHelpers.getValByMailchimpField('SOURCE'),\n gclid: epiHelpers.getValByMailchimpField('GCLID'),\n design_studio_id: epiHelpers.getValByMailchimpField('DESIGN_STUDIO_ID'),\n visualizer_source: epiHelpers.getValByMailchimpField('VISUALIZER_SOURCE'),\n d_opt_in: date,\n viz_key: epiHelpers.getMultipleValsByMailchimpField('VIZ_KEY'),\n campaign,\n product_interests: interests,\n page_submitted_from: window.location.href,\n tags: tags,\n last_form_submitted_date: currentDate,\n user_id: userID,\n ...(epiHelpers.checkStringLength(utmCampaign) && { utm_campaign: utmCampaign }),\n ...(epiHelpers.checkStringLength(utmContent) && { utm_content: utmContent }),\n ...(epiHelpers.checkStringLength(utmMedium) && { utm_medium: utmMedium }),\n ...(epiHelpers.checkStringLength(utmSource) && { utm_source: utmSource }),\n ...(epiHelpers.checkStringLength(utmTerm) && { utm_term: utmTerm }),\n ...(epiHelpers.checkStringLength(optimizelyExperiments) && { optimizely_experiments: optimizelyExperiments }),\n ...(newDealerSampling && { selected_bundle: epiHelpers.getValByMailchimpField('SELECTED_BUNDLE') }),\n ...(newDealerSampling && { store_number: epiHelpers.getValByMailchimpField('STORE_NUMBER')}),\n ...(newDealerSampling && { company_number: epiHelpers.getValByMailchimpField('COMPANY_NUMBER') }),\n ...(newDealerSampling && { company_name: epiHelpers.getValByMailchimpField('COMPANY_NAME') }),\n ...(newDealerSampling && { company_contact: epiHelpers.getValByMailchimpField('COMPANY_CONTACT') }),\n ...(newDealerSampling && { who_is_your_graber_tsm: epiHelpers.getValByMailchimpField('WHO_IS_YOUR_GRABER_TSM') }),\n success: function(data) {\n console.log(data);\n if (options !== undefined) {\n if (options.success !== undefined) {\n options.success(data);\n }\n }\n },\n failure: function(data) {\n console.log(data);\n if (options !== undefined) {\n if (options.fail !== undefined) {\n options.fail(data);\n }\n }\n },\n },\n ]\n );\n // GTM Call\n dispatchSiteEvent(siteEventNames.ON_FORM_SUBMIT_SUCCESS, {\n optin: epiHelpers.getCheckedByMailchimpField('INTEREST_BRAND'),\n });\n};\n\nepiHelpers.validateForm = function() {\n var isValid = true;\n var fieldErrorList = [];\n $('#epiFormWrapper form div.Form__Element.ValidationRequired').each(function() {\n // Remove error class\n $(this).removeClass('ValidationFail');\n // Determine select/input... or other\n var el, type;\n if ($(this).find('input').length !== 0) {\n // Determine input text or select, or radio\n el = $(this).find('input');\n type = el.attr('type');\n } else if ($(this).find('select') !== 0) {\n el = $(this).find('select');\n type = 'select';\n } else if ($(this).find('textarea') !== 0) {\n el = $(this).find('textarea');\n type = 'text';\n }\n if (el !== undefined) {\n const fieldWrapper = this;\n const fieldError = fieldWrapper.querySelector('.text-danger');\n if (!epiHelpers.simpleEpiValidationByType(el, type)) {\n isValid = false;\n $(this).addClass('ValidationFail');\n fieldErrorList.push(el);\n if (fieldError) {\n fieldError.classList.add('field-validation-error');\n fieldError.classList.remove('field-validation-valid');\n }\n } else {\n if (fieldError) {\n fieldError.classList.remove('field-validation-error');\n fieldError.classList.add('field-validation-valid');\n }\n }\n }\n });\n // Add focus to first error, if form is invalid\n // console.log(fieldErrorList.length);\n if (fieldErrorList.length > 0) {\n // form.classList.add('form-validation-failed');\n fieldErrorList[0].focus();\n }\n return isValid;\n};\n\nepiHelpers.validatePhoneIfExists = function() {\n var val = epiHelpers.getValByMailchimpField('PHONE');\n if (val === '') {\n // No value, note entered, no validation needed\n return true;\n } else {\n // Validate\n var isValid = new RegExp(/^(\\+\\d{1,2}\\s)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/).test(val),\n par = $('form [data-mailchimp=\"PHONE\"]').parent();\n if (isValid) {\n par.removeClass('ValidationFail');\n } else {\n par.addClass('ValidationFail');\n }\n return isValid;\n }\n};\n\nepiHelpers.simpleEpiValidationByType = function(el, type) {\n var val = el.val();\n if (el.hasClass('u-validation__email')) {\n return new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/).test(val);\n } else if (el.hasClass('u-validation__phone')) {\n return new RegExp(/^(\\+\\d{1,2}\\s)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/).test(val);\n } else if (el.hasClass('u-validation__zip')) {\n return new RegExp(/(^\\d{5}(-\\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$)/).test(val);\n } else if (el.hasClass('u-validation__passwordMatch')) {\n // Validate for password strength\n if (!new RegExp(/^(?=.*[a-z])(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})/).test(val)) {\n return false;\n }\n // Check for match\n var $prev;\n var match = true;\n $('form .u-validation__passwordMatch').each(function() {\n if ($prev) {\n if ($prev.val() !== $(this).val()) {\n match = false;\n }\n }\n $prev = $(this);\n });\n if (val.length === 0) {\n match = false;\n }\n return match;\n } else {\n // Just check to see if empty\n if (type === 'text' || type === 'select' || type === 'hidden') { \n if (val !== undefined && val !== null) {\n if (val.length === 0) {\n return false;\n } \n }\n // For selects\n if (val === null) {\n return false;\n }\n }\n if (type === 'radio') {\n // Check to see if at least one radio is checked\n var checkedRadio = $(`[name=\"${el.attr('name')}\"]:checked`);\n if (checkedRadio.length === 0) {\n return false;\n }\n }\n }\n return true;\n};\n\nepiHelpers.getMultipleValsByMailchimpField = function(name) {\n var el = epiHelpers.getElementByMailchimpName(name);\n var s = '';\n for (var i = 0; i < el.length; i++) {\n if (el.eq(i).is(':checked')) {\n s += el.eq(i).val() + ',';\n }\n }\n if (s.lastIndexOf(',') !== -1) {\n s = s.substr(0, s.lastIndexOf(','))\n }\n return s;\n}\n\nepiHelpers.getCheckedRadioByMailchimpField = function(name) {\n var el = epiHelpers.getElementByMailchimpName(name);\n for (var i = 0; i < el.length; i++) {\n if (el.eq(i).is(':checked')) {\n return el.eq(i).val();\n }\n }\n return '';\n}\n\nepiHelpers.getCheckedByMailchimpField = function(name) {\n var el = epiHelpers.getElementByMailchimpName(name);\n if (el.length === 1) {\n return el.is(':checked');\n } else {\n return false;\n }\n};\n\nepiHelpers.getValByMailchimpField = function(name) {\n var el = epiHelpers.getElementByMailchimpName(name);\n if (el.length === 1) {\n return el.val();\n } else if (el.length > 1) {\n var s = '';\n for (var i = 0; i < el.length; i++) {\n s += el.eq(i).val() + ',';\n }\n return s;\n } else {\n return '';\n }\n};\n\nepiHelpers.getElementByMailchimpName = function(name) {\n return $('form [data-mailchimp=\"' + name + '\"]');\n}\n\nepiHelpers.scrollFormToFirstError = function() {\n $('html, body').animate({\n scrollTop: $('#epiFormWrapper').offset().top - 140\n }, 250);\n};\n\nepiHelpers.resetMailchimpForm = function() {\n epiHelpers.getElementByMailchimpName('FNAME').val('');\n epiHelpers.getElementByMailchimpName('LNAME').val('');\n epiHelpers.getElementByMailchimpName('EMAIL').val('');\n epiHelpers.getElementByMailchimpName('PHONE').val('');\n epiHelpers.getElementByMailchimpName('ADDR_LINE1').val('');\n epiHelpers.getElementByMailchimpName('ADDR_LINE2').val('');\n epiHelpers.getElementByMailchimpName('ADDR_CITY').val('');\n epiHelpers.getElementByMailchimpName('ADDR_STATE').val('');\n epiHelpers.getElementByMailchimpName('ADDR_ZIP').val('');\n epiHelpers.getElementByMailchimpName('ADDR_CNTRY').val('');\n epiHelpers.getElementByMailchimpName('INTEREST_BRAND').prop('checked', true);\n epiHelpers.getElementByMailchimpName('INTEREST_DEALER').prop('checked', true);\n};\n\nepiHelpers.disableSubmitButtonOnSend = function($btn) {\n var btn = ($btn instanceof jQuery) ? $btn[0] : $btn;\n btn.classList.add('o-form__submit--disabled');\n btn.setAttribute('data-prevvalue', btn.textContent);\n btn.setAttribute('disabled', 'disabled');\n btn.textContent = 'Submitting...';\n};\n\nepiHelpers.reenableSubmitButton = function($btn) {\n var btn = ($btn instanceof jQuery) ? $btn[0] : $btn;\n btn.classList.remove('o-form__submit--disabled');\n btn.removeAttribute('disabled');\n btn.textContent = btn.getAttribute('data-prevvalue');\n};\n\nepiHelpers.convertInputTypeToPassword = function() {\n $('#epiFormWrapper form .o-form__input--password').each(function() {\n $(this).attr('type', 'password');\n });\n}\n\nepiHelpers.checkStringLength = function(str) {\n return str.length > 0;\n}\n","const siteEventNames = {\n ADD_EXPERT: 'addexpert',\n ADD_SWATCH: 'addswatch',\n DEALER_PHONE_CLICK: 'dealerphoneclick',\n DEALER_WEBSITE_CLICK: 'dealerwebsiteclick',\n ON_ACCOUNT_CREATED: 'onaccountcreated',\n ON_DEALER_SEARCH: 'ondealersearch',\n ON_FORM_SUBMIT_SUCCESS: 'onformsubmitsuccess',\n ON_LOGGED_IN: 'onloggedin',\n ON_ORDER_SUBMITTED: 'onordersubmitted',\n ON_ORDER_CONFIRMATION: 'onorderconfirmation',\n ON_RECAPTCHA_LOAD: 'onrecaptchaload',\n REMOVE_SWATCH: 'removeswatch',\n};\n\nconst initSiteEvents = () => {\n if (window.siteEventRegistry) {\n return;\n }\n // Init events and add them to window scope here\n window.siteEventRegistry = {};\n Object.keys(siteEventNames).forEach((key) => {\n const value = siteEventNames[key];\n siteEventRegistry[value] = {\n event: new Event(value),\n data: {},\n }\n });\n};\n\nconst getEventData = (eventName) => {\n const { siteEventRegistry } = window;\n let data = {};\n Object.keys(siteEventRegistry).forEach((key) => {\n if (key === eventName) {\n data = siteEventRegistry[key].data;\n }\n });\n return data;\n}\n\nconst dispatchSiteEvent = (eventName, data) => {\n const { siteEventRegistry } = window;\n Object.keys(siteEventRegistry).forEach((key) => {\n if (key === eventName) {\n const event = siteEventRegistry[key].event;\n siteEventRegistry[key].data = data;\n window.dispatchEvent(event);\n }\n });\n};\n\nexport {\n dispatchSiteEvent,\n getEventData,\n initSiteEvents,\n siteEventNames,\n};\n","const getExperimentsInDataLayer = () => {\n const { dataLayer } = window;\n if (dataLayer === undefined) {\n return [];\n }\n return dataLayer\n .filter(item => item.event === 'optimizely_decision_web')\n .map(item => ({\n optimizely_experiment: item.optimizely_experiment,\n optimizely_variant: item.optimizely_variant,\n }));\n};\n\nconst formantExperimentString = data => (\n `${data.optimizely_experiment}**${data.optimizely_variant}`\n);\n\nconst getOptimizelyExperimentationString = () => (\n getExperimentsInDataLayer()\n .reduce((acc, curr, index) => (\n index === 0 ? formantExperimentString(curr) : `${acc}****${formantExperimentString(curr)}`\n ), '')\n);\n/* eslint-disable import/prefer-default-export */\nexport {\n getOptimizelyExperimentationString,\n};\n/* eslint-enable import/prefer-default-export */\n"],"sourceRoot":""}