{"version":3,"file":"emailsignuppage.9eba4e6d25ef8f21ed27.js","mappings":"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","sources":["webpack://front-end-build-system/./src/smartpak/httpstatus.js","webpack://front-end-build-system/./src/smartpak/url.js","webpack://front-end-build-system/./src/utils/fetch.js","webpack://front-end-build-system/./src/validation/unobtrusivehelpers.js","webpack://front-end-build-system/./src/views/emailsignup/captureemaillead.js","webpack://front-end-build-system/./src/views/emailsignup/emailsignupdata.js","webpack://front-end-build-system/./src/views/emailsignup/emailsignuppage.js","webpack://front-end-build-system/./src/views/emailsignup/viewmodels/emailsignupviewmodel.js","webpack://front-end-build-system/external var \"jQuery\"","webpack://front-end-build-system/external var \"ko\""],"sourcesContent":["/* eslint-disable one-var */\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_CREATED = 201;\nexport const HTTP_STATUS_NOCONTENT = 204;\nexport const HTTP_STATUS_BADREQUEST = 400;\nexport const HTTP_STATUS_UNAUTHORIZED = 401;\nexport const HTTP_STATUS_NOTFOUND = 404;\nexport const HTTP_STATUS_INTERNALSERVERERROR = 500;\nexport const HTTP_STATUS_SERVICEUNAVAILABLE = 503;\n","export function parseQueryString(queryStr) {\n var queryString = {},\n parts,\n i,\n item;\n\n if (typeof queryStr === 'undefined' || queryStr === null) {\n return queryString;\n }\n\n parts = queryStr\n .split('?')\n .pop()\n .split('&');\n i = parts.length;\n\n while (i--) {\n item = parts[i].split('=');\n queryString[item[0]] = decodeURI(item[1]);\n }\n\n return queryString;\n}\n","export function antiForgeryPost(url, options){\n let opts = {\n method: 'POST',\n ...(options || {})\n };\n\n if(smartPak.pageData && smartPak.pageData.antiForgeryToken){\n opts.headers = {\n ...opts.headers,\n 'x-requestverificationtoken': smartPak.pageData.antiForgeryToken\n };\n }\n\n return fetch(url, opts);\n}\n","import $ from 'jquery';\n\nexport function parseDynamicFormElements($form) {\n if (!$form || !$form.length) {\n return;\n }\n\n $form\n .removeData('validator') /* added by the raw jquery.validate plugin */\n .removeData('unobtrusiveValidation'); /* added by the jquery unobtrusive plugin*/\n\n $.validator.setDefaults({\n ignore: []\n });\n $.validator.unobtrusive.parse($form);\n}\n\nexport function isDynamicFormValid($form) {\n if (!$form || !$form.length) {\n return false;\n }\n\n parseDynamicFormElements($form);\n\n return $form.valid();\n}\n\nexport function isValidShipDate(inputDate) {\n const shipDate = new Date(inputDate);\n const todaysDate = new Date();\n const sunday = 0;\n const saturday = 6;\n const maxYearThreshold = 5;\n\n shipDate.setHours(0, 0, 0, 0);\n todaysDate.setHours(0, 0, 0, 0);\n\n if (new RegExp(`${saturday}|${sunday}`).test(shipDate.getDay())) {\n return false;\n }\n\n if (shipDate.getFullYear() - todaysDate.getFullYear() > maxYearThreshold) {\n return false;\n }\n\n return shipDate >= todaysDate;\n}\n","export default function captureEmailLeadEvent() {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'NewEmailLead'\n });\n }\n}","export function getFormData(){\n return fetch('/api/CustomerContact/GetEmarsysChoiceData')\n .then(function(response){\n return response.json();\n })\n .then(function(response){\n return {\n ...response,\n content: format(response.content)\n };\n });\n}\n\nexport function getContent(){\n return fetch('/api/CustomerContact/EmailSignUp').then(r => r.text());\n}\n\nexport function format(content){\n return (content || []).reduce(function(obj, item){\n var key = item.section.substring(0, 1).toLowerCase() + item.section.substring(1);\n if(!obj[key]){\n obj[key] = [];\n }\n\n obj[key].push(item);\n\n return obj;\n }, {});\n}","/* eslint-disable sort-imports */\nimport $ from 'jquery';\nimport ko from 'knockout';\nimport EmailSignupViewModel from './viewmodels/emailsignupviewmodel';\nimport { getFormData } from './emailsignupdata';\nimport { HTTP_STATUS_OK, HTTP_STATUS_NOCONTENT } from '../../smartpak/httpstatus';\nimport { isDynamicFormValid } from '../../validation/unobtrusivehelpers';\nimport { parseQueryString } from '../../smartpak/url';\nimport captureEmailLeadEvent from './captureemaillead';\n\nfunction onDocReady() {\n const $container = document.getElementById('email-sign-up-form'),\n parameters = parseQueryString(location.search),\n source = parameters.from === 'catalog' ? 'CatalogRequest' : '',\n email = parameters.email || '';\n\n if ($container) {\n const $form = $container.querySelector('form'),\n $success = document.getElementById('email-sign-up-success');\n\n $success.style.display = 'none';\n\n if ($form && $success) {\n getFormData().then(response => {\n if (response.status === HTTP_STATUS_OK) {\n const emailSignupViewModel = new EmailSignupViewModel(response.content, email, source);\n\n if ($container) {\n ko.applyBindings(emailSignupViewModel, $container);\n\n $form.addEventListener('submit', e => {\n e.preventDefault();\n if (isDynamicFormValid($($form))) {\n emailSignupViewModel.save().then(response => {\n if (response.Status === HTTP_STATUS_NOCONTENT) {\n $form.style.display = 'none';\n $success.style.display = 'block';\n }\n\n captureEmailLeadEvent();\n });\n }\n });\n }\n }\n });\n }\n }\n}\n\nif (document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading') {\n onDocReady();\n} else {\n window.addEventListener('DOMContentLoaded', onDocReady);\n}\n","import {antiForgeryPost} from '../../../utils/fetch';\nimport ko from 'knockout';\n\nfunction EmailSignupViewModel(data, userEmail, sourceOverride){\n this.email = ko.observable(userEmail);\n this.gender = ko.observableArray(data.gender);\n this.selectedGender = ko.observable();\n this.primary = ko.observableArray(data.primary);\n this.selectedPrimary = ko.observable();\n this.frequency = ko.observableArray(data.frequency);\n this.selectedFrequency = ko.observable();\n this.specificPrimary = ko.observableArray(data.specificPrimary);\n this.selectedSpecificPrimary = ko.observable();\n this.source = sourceOverride || 'Equine Sign-Up';\n}\n\nEmailSignupViewModel.prototype.save = function(){\n return antiForgeryPost('/api/CustomerContact/EmailSubscribe', {\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n 'email': this.email(),\n 'frequency': this.selectedFrequency(),\n 'gender': this.selectedGender(),\n 'primaryRidingStyle': this.selectedPrimary(),\n 'specificPrimaryRidingStyle': this.selectedSpecificPrimary(),\n 'source': this.source\n })\n })\n .then(function(response){\n return response.json();\n })\n .catch(function(){\n // eslint-disable-next-line no-console\n console.error('A call to \\'/api/CustomerContact/EmailSubscribe\\' failed');\n });\n};\n\nexport default EmailSignupViewModel;","module.exports = jQuery;","module.exports = ko;"],"names":["HTTP_STATUS_OK","HTTP_STATUS_CREATED","HTTP_STATUS_NOCONTENT","HTTP_STATUS_BADREQUEST","HTTP_STATUS_UNAUTHORIZED","HTTP_STATUS_NOTFOUND","HTTP_STATUS_INTERNALSERVERERROR","HTTP_STATUS_SERVICEUNAVAILABLE","parseQueryString","queryStr","parts","i","item","queryString","split","pop","length","decodeURI","antiForgeryPost","url","options","opts","_objectSpread","method","smartPak","pageData","antiForgeryToken","headers","fetch","isDynamicFormValid","$form","removeData","$","setDefaults","ignore","unobtrusive","parse","parseDynamicFormElements","valid","isValidShipDate","inputDate","shipDate","Date","todaysDate","setHours","RegExp","concat","test","getDay","getFullYear","captureEmailLeadEvent","window","dataLayer","push","event","getFormData","then","response","json","content","reduce","obj","key","section","substring","toLowerCase","getContent","r","text","onDocReady","$container","document","getElementById","parameters","location","search","source","from","email","querySelector","$success","style","display","status","emailSignupViewModel","EmailSignupViewModel","ko","addEventListener","e","preventDefault","save","Status","attachEvent","readyState","data","userEmail","sourceOverride","this","gender","selectedGender","primary","selectedPrimary","frequency","selectedFrequency","specificPrimary","selectedSpecificPrimary","prototype","body","JSON","stringify","console","error","module","exports","jQuery"],"sourceRoot":""}