{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/react/contact/components/Header.js","webpack:///./app/react/contact/constants/index.js","webpack:///./app/react/contact/components/ContactInfo.js","webpack:///./app/react/contact/components/helpers/DefaultContactAlert.js","webpack:///./app/react/contact/services/sendMessage.js","webpack:///./app/react/contact/components/ContactForm.js","webpack:///./app/react/contact/components/ContactUs.js","webpack:///./app/react/contact/App.js","webpack:///./app/react/jsPacks/contact.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","Promise","resolve","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Header","title","justifyContent","mb","width","textAlign","as","fontWeight","href","defaultProps","propTypes","PropTypes","string","ESL_PHONE_NUMBERS","INTENTIONS","PAGE_INFO","hasTeachersField","phoneInfos","icon","subTitle","ContactInfo","map","mr","fontStyle","DefaultContactAlert","sendMessage","xhr","url","method","contact","email","subject","full_name","message","teachers","formErrors","ContactForm","useQueryParams","StringParam","getInitialState","defaultValues","useState","hasError","setHasError","loading","setLoading","schema","Yup","required","onSuccess","redirectToThankYouPage","contactUsUrl","onError","AutoScrollAlert","alert","fallback","initialValues","initialErrors","validationSchema","onSubmit","formValues","then","validateOnMount","isValid","Field","label","placeholder","sanitizeError","type","Textarea","rows","outline","disabled","data-testid","ContactUs","intent","py","flexDirection","alignItems","mt","my","App","WebFont","load","google","families","ElliiThemeProvider","bool","document","addEventListener","ReactDOM","render","querySelector"],"mappings":"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","file":"contact.d0810dee44f875d51540.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"contact\": 0\n \t};\n\n \tvar deferredModules = [];\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 \t// The chunk loading function for additional chunks\n \t// Since all referenced chunks are already included\n \t// in this file, this function is empty here.\n \t__webpack_require__.e = function requireEnsure() {\n \t\treturn Promise.resolve();\n \t};\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 = \"//d3uk5h2fsqai9v.cloudfront.net/js-packs/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1538,\"vendor\",\"package-common\",\"ellii\",\"react\",\"contact~payments/payment~quotes~thank_you\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import PropTypes from 'prop-types'\n\nimport { Text, Columns, Col, Heading } from '@redriverpress/system'\n\nexport default function Header({ title }) {\n return (\n \n \n {title}\n \n We’re here to help! Write us a message or give us a\n call⁠—⁠we try to respond within one business day. You can\n also check out our handy{' '}\n \n Help Section\n {' '}\n to find quick answers.\n \n \n \n )\n}\n\nHeader.defaultProps = {\n title: 'Contact us',\n}\n\nHeader.propTypes = {\n title: PropTypes.string,\n}\n","export const ESL_PHONE_NUMBERS = {\n US_CANADA: '+1 866 896 7123',\n INTERNATIONAL: '+1 204 452 8241',\n}\n\nexport const INTENTIONS = {\n ADD_TEACHERS: 'addTeachers',\n CHANGE_PLAN: 'changePlan',\n}\n\nexport const PAGE_INFO = {\n [INTENTIONS.ADD_TEACHERS]: {\n title: 'Add Teachers',\n hasTeachersField: true,\n },\n [INTENTIONS.CHANGE_PLAN]: {\n title: 'Change Plan',\n hasTeachersField: true,\n },\n}\n","import { Text, Box, Icon } from '@redriverpress/system'\nimport { ESL_PHONE_NUMBERS } from '../constants'\n\nconst { US_CANADA, INTERNATIONAL } = ESL_PHONE_NUMBERS\n\nconst phoneInfos = [\n {\n key: 'us_ca_phone',\n icon: 'phone',\n title: 'US/Canada (Toll-Free)',\n subTitle: US_CANADA,\n },\n {\n key: 'international_phone',\n icon: 'phone',\n title: 'International',\n subTitle: INTERNATIONAL,\n },\n]\n\nexport default function ContactInfo() {\n return (\n <>\n {phoneInfos.map(({ icon, title, subTitle, key }) => (\n \n \n \n \n {title}\n \n \n {subTitle}\n \n ))}\n \n \n \n \n Address\n \n \n \n PO Box 69052 Tuxedo Park\n
\n Winnipeg, MB R3P 2G9\n
\n Canada\n
\n
\n \n )\n}\n","import { Fragment } from 'react'\n\nexport default function DefaultContactAlert() {\n return Something went wrong. Please try again later.\n}\n","import xhr from 'Common/utils/xhr'\n\nconst sendMessage = data => {\n const url = '/contact'\n\n return xhr({\n url,\n method: 'POST',\n data: {\n contact: {\n email: data.email,\n subject: data.subject,\n full_name: data.full_name,\n message: data.message,\n teachers: data.teachers,\n },\n },\n })\n}\nexport default sendMessage\n","import { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { Formik, Form } from 'formik'\nimport * as Yup from 'yup'\nimport { StringParam, useQueryParams } from 'use-query-params'\n\nimport { Box, LoadingButton, Textarea } from '@redriverpress/system'\n\nimport AutoScrollAlert from 'Common/components/alert/AutoScrollAlert'\nimport Field from 'Common/components/forms/Field'\nimport getInitialState from 'Common/utils/getInitialState'\n\nimport { DefaultContactAlert } from './helpers'\nimport sendMessage from '../services/sendMessage'\nimport { redirectToThankYouPage } from '../../thankYou/utils'\nimport { contactUsUrl } from '../../thankYou/constants'\n\nconst formErrors = {\n fullName: 'Please enter your name',\n email: 'Please enter a valid email address',\n emailRequired: 'Please enter your email',\n teachers: 'Please enter a teachers',\n subject: 'Please enter a subject',\n message: 'Please enter a message',\n}\n\nexport default function ContactForm({ hasTeachersField }) {\n const [{ subject, message }] = useQueryParams({\n subject: StringParam,\n message: StringParam,\n })\n const { full_name, email } = getInitialState()\n const defaultValues = {\n full_name,\n email,\n subject: subject || '',\n message: message || '',\n ...(hasTeachersField && {\n teachers: '',\n }),\n }\n\n const [hasError, setHasError] = useState(false)\n\n const [loading, setLoading] = useState(false)\n\n const schema = Yup.object({\n full_name: Yup.string().required(formErrors.fullName),\n email: Yup.string()\n .email(formErrors.email)\n .required(formErrors.emailRequired),\n subject: Yup.string().required(formErrors.subject),\n message: Yup.string().required(formErrors.message),\n ...(hasTeachersField && {\n teachers: Yup.number().required(formErrors.teachers),\n }),\n })\n\n const onSuccess = () => {\n setHasError(false)\n setLoading(false)\n redirectToThankYouPage(contactUsUrl)\n }\n const onError = () => {\n setLoading(false)\n setHasError(true)\n }\n\n const handleSubmit = formValues => {\n setLoading(true)\n sendMessage(formValues)\n .then(onSuccess)\n .catch(onError)\n }\n\n return (\n \n {hasError && (\n \n )}\n \n {({ isValid }) => (\n
\n \n \n {hasTeachersField && (\n \n )}\n \n \n \n \n Submit\n \n \n \n )}\n \n
\n )\n}\n\nContactForm.propTypes = {\n hasTeachersField: PropTypes.bool,\n}\n\nContactForm.defaultProps = {\n hasTeachersField: false,\n}\n","import { StringParam, useQueryParams } from 'use-query-params'\n\nimport { Columns, Col, Container } from '@redriverpress/system'\nimport Header from './Header'\nimport ContactInfo from './ContactInfo'\nimport ContactForm from './ContactForm'\nimport { PAGE_INFO } from '../constants'\n\nexport default function ContactUs() {\n const [{ intent }] = useQueryParams({\n intent: StringParam,\n })\n\n return (\n \n
\n \n \n \n \n\n \n \n \n \n \n )\n}\n","import WebFont from 'webfontloader'\nimport { QueryParamProvider } from 'use-query-params'\n\nimport ElliiThemeProvider from 'Common/components/ElliiThemeProvider'\nimport ContactUs from './components/ContactUs'\n\nexport default function App() {\n WebFont.load({\n google: {\n families: ['Open Sans:400italic,300,400,600,600italic,700,700italic'],\n },\n })\n\n return (\n \n \n \n \n \n )\n}\n","import ReactDOM from 'react-dom'\n\nimport App from '../contact/App'\n\ndocument.addEventListener('DOMContentLoaded', () => {\n ReactDOM.render(, document.querySelector('#root'))\n})\n"],"sourceRoot":""}