{"version":3,"sources":["assets/img/leadlinklogo.svg","assets/img/canadaflag.svg","assets/img/pronexislogo.svg","assets/img/usflag.svg","assets/img sync /^/.*$","assets/img/address.svg","assets/img/calendars.jpg","assets/img/companyinfo.jpg","assets/img/done.png","assets/img/employee.jpg","assets/img/employees.svg","assets/img/help.png","assets/img/house.jpg","assets/img/profile.svg","assets/img/services.svg","assets/img/verifyphone-old.jpg","assets/img/verifyphone.png","assets/img/wizardstart.png","services/uid.js","controls/ComboBox/ComboBox.js","controls/Header/Header.js","controls/Page/Page.js","controls/Form/Form.js","controls/HorizontalRule/HorizontalRule.js","controls/Button/Button.js","controls/LabelledWrapper/LabelledWrapper.js","controls/Popup/Popup.js","controls/TextField/TextField.js","controls/Collapse/Collapse.js","controls/IconField/IconField.js","controls/IconLink/IconLink.js","controls/IconButton/IconButton.js","controls/IconSelect/IconSelect.js","controls/fields/PasswordField/PasswordField.js","controls/fields/EmailField/EmailField.js","controls/fields/PhoneField/PhoneField.js","controls/fields/NameField/NameField.js","controls/fields/AddressBlock/AddressBlock.js","config/serviceList.js","controls/fields/ServicesField/ServicesField.js","controls/CloseButton/CloseButton.js","controls/PasswordStrength/PasswordStrength.js","controls/FieldLabel/FieldLabel.js","controls/LinkButton/LinkButton.js","controls/FilledInput/FilledInput.js","controls/SmartList/SmartList.js","controls/SortableTable/SortableTable.js","controls/SearchBar/SearchBar.js","controls/FieldsBox/FieldsBox.js","controls/FieldsRow/FieldsRow.js","controls/ErrorDisplay/ErrorDisplay.js","controls/CheckBox/CheckBox.js","controls/DateField/DateField.js","config/errors.js","services/server.js","hooks/lift.js","pages/Home/Home.js","pages/Business/Business.js","config/CRMIntegrations.js","pages/Calendars/AutoIntegrationForm/AutoIntegrationForm.js","pages/auth/AuthPage/AuthPage.js","config/appInfo.js","pages/Wizard/WizardChild/WizardChild.js","pages/Wizard/WizardColumns/WizardColumns.js","pages/Wizard/children/AddCalendar/AddCalendar.js","pages/Wizard/config.js","pages/Wizard/children/Welcome/Welcome.js","pages/Wizard/children/HelpOptions/HelpOptions.js","pages/Wizard/children/Profile/Profile.js","pages/Wizard/children/VerifyPhone/VerifyPhone.js","pages/Wizard/children/Country/Country.js","pages/Wizard/children/CompanyInfo/CompanyInfo.js","pages/Wizard/children/Services/Services.js","pages/Wizard/children/CompanyAddress/CompanyAddress.js","pages/Wizard/children/Schedulers/Schedulers.js","pages/Wizard/children/Calendars/Calendars.js","pages/Wizard/children/Done/Done.js","pages/Wizard/children/AddEditScheduler/AddEditScheduler.js","pages/Leads/Leads.js","pages/LeadSources/LeadSources.js","pages/Schedulers/Schedulers.js","layouts/panels/NavBar/NavItem/NavItem.js","layouts/panels/NavBar/NavBar.js","layouts/panels/AppFooter/AppFooter.js","layouts/panels/AppHeader/AppHeader.js","layouts/panels/MenuButton/Item/Item.js","layouts/panels/MenuButton/MenuButton.js","layouts/panels/AppFrame/AppFrame.js","layouts/AuthLayout/AuthLayout.js","layouts/AppLayout/AppLayout.js","layouts/ModalLayout/ModalLayout.js","config/routes.js","pages/Calendars/Calendars.js","pages/auth/Login/Login.js","pages/auth/Logout/Logout.js","pages/auth/Reset/Reset.js","pages/auth/ResetDone/ResetDone.js","pages/auth/Register/Register.js","pages/auth/RegisterDone/RegisterDone.js","pages/Wizard/Wizard.js","pages/Profile/Profile.js","pages/ProNexis/ProNexis.js","pages/ChangePassword/ChangePassword.js","pages/TermsOfUse/TermsOfUse.js","App.js","index.js"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","id_count","uid","ComboBox","props","onConfirm","onChange","options","inputProps","UNIQUE_ID","onKeyPress","event","key","nativeEvent","data","includes","target","value","type","list","opt","Header","Section","Page","className","children","Label","Modal","title","onClick","close","thin","Button","Blank","restProps","LabelledWrapper","htmlFor","name","label","Popup","useState","open","setOpen","class","onFocus","onBlur","help","TextField","mask","Masked","textFieldProps","Collapse","CollapseBlank","toggle","IconField","active","setActive","length","setLength","icon","lift","validate","_required","undefined","required","_validate","valid","getValid","v","checkValidity","setValueAndValid","setValue","useEffect","setValid","getValue","for","onInput","style","renderRightArea","IconLink","to","link","IconButton","click","after","text","renderContent","IconSelect","PasswordField","autoComplete","placeholder","meter","_name","password","forField","EmailField","pattern","spellCheck","PhoneField","NameField","AddressBlock","ServicesField","entry","setEntry","setList","item","i","onDelete","preventDefault","newList","splice","deleteService","tempList","push","sort","SERVICE_LIST","CloseButton","PasswordStrength","score","zxcvbn","val","strengthLabel","max","FieldLabel","LinkButton","FilledInput","Cell","onfocus","Row","row","defaultValue","SmartList","labels","a","SortableTable","columns","EntryRow","rowNumber","entriesProps","entries","column","find","displayName","Entry","EmptyEntry","ColumnHeaders","columnHeadersProps","columncount","rows","console","log","SearchBar","FieldsBox","FieldsRow","ErrorDisplay","hasError","getError","CheckBox","checked","DateField","Range","active2","_label","_className","ERROR","server","this","LoggedIn","_phoneVerified","_WizardOpen","fake_db","email","setError","newPassword","record_name","record","split","phone","Lift","trigger","_record_name","_values","getRecord","_valid","_changed","processRecord","_trigger","_trigger_val","last_error","error","triggerUpdate","forEach","setRecord","ret","values","useLift","setChange","ref","useRef","current","FILTER_TYPES","Date","IMAGE_FIELD_NAMES","FIELD_TYPES","EMAIL","CRM_URL","CRM_PASSWORD","CRM_USER","CRM_CREDENTIALS","CRM_PORTAL_ID","EXTERNAL_ID","CRMIntegrations","requiredFields","validation","method","regex","FORM_MODES","AutoIntegrationForm","internalID","inputFieldProps","mode","setMode","integration","integ","integr","toString","reqField","Field","Input","fieldValues","formName","INPUT_CONFIG","PORTAL","AuthPage","alt","src","require","APP_NAME","WizardChild","slide","WizardColumns","img","width","CALENDAR_TYPES","config","Component","nextText","phoneVerified","getPhone","prev","disabled","verifyPhone","next","skippable","autoSkip","country","jump","prevPage","prevText","nextPage","config_end","findIndex","element","TimeList","href","activeClassName","exact","ROUTES","HOME","LEADS","BUSINESS","SCHEDULERS","CALENDARS","LEAD_SOURCES","PRONEXIS","AppFooter","AppHeader","menu","USERMENU","HELPMENU","Item","linkProps","MenuButton","onMouseDown","index","display","AppFrame","component","AuthLayout","AppLayout","isLoggedIn","isWizardOpen","WIZARD","LOGIN","ModalLayout","LOGOUT","RESET","RESET_DONE","REGISTER","REGISTER_DONE","PROFILE","CHANGE_PASSWORD","HELP","CHAT","TERMS_OF_USE","ROUTE_MAP","path","preview","raw","isValid","save","Layout","alert","integrations","setIntegrations","handleChange","integrationIndex","eventTarget","prevState","newState","newType","field","handleIntegrationTypeChange","handleDelete","defaultIntegration","redirect","setRedirect","saved","localStorage","getItem","Push","autoFocus","remember","setItem","removeItem","login","logout","resetPassword","setValidNoTrigger","register","pageNum","set","setSlide","closeWizard","child_name","page","jumpNext","skip","Child","c","renderSkipButton","history","useHistory","goBack","changePassword","height","chartType","loader","calendar","cellSize","rootProps","chartArea","hAxis","minValue","vAxis","document","renderRoute","ReactDOM","render","StrictMode","getElementById"],"mappings":"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KAAK,WAAWqD,YAAY,iBAAiBO,WAAW,QACxHjC,UAAU,EAAO1B,MAAM,qCAC3B,kBAAC,EAAD,CAAWsB,KAAMA,EAAMI,UAAU,EAAOyB,aAAa,WAAW9B,KAAK,eAAetB,KAAK,WAAWqD,YAAY,iBAAiBO,WAAW,UAC5I,kBAAC,EAAD,CAAWrC,KAAMA,EAAMI,UAAU,EAAOyB,aAAa,OAAQ9B,KAAK,YAAYtB,KAAK,OAAOqD,YAAY,OAAQO,WAAW,UACzH,kBAAC,EAAD,CAAWrC,KAAMA,EAAMI,UAAU,EAAOyB,aAAa,QAAS9B,KAAK,aAAatB,KAAK,QAAQqD,YAAY,UACzG,kBAAC,EAAD,CAAW9B,KAAMA,EAAMI,UAAU,EAAOyB,aAAa,MAAM9B,KAAK,eAAetB,KAAK,MAAMqD,YAAY,WAAWO,WAAW,W,WCfzH,G,MAAA,CACX,aACA,oBACA,SACA,iBACA,0BACA,qBACA,2BACA,2BACA,2BACA,mBACA,iCACA,iBACA,UACA,yBACA,mBACA,+BACA,wBACA,wBACA,iBACA,wBACA,sBACA,iCACA,mBACA,iBACA,+BACA,yBACA,0BACA,kBACA,sBACA,cACA,kCACA,wCACA,kCACA,0BACA,4BACA,gBACA,iBACA,gBACA,uBACA,sBACA,yBACA,kBACA,iCACA,8BACA,kCACA,iCACA,wBACA,kCACA,2BACA,0BACA,oBACA,0BACA,wBACA,mBACA,kBACA,KACA,eACA,cACA,eACA,cACA,oBACA,oBACA,cACA,qCACA,mBACA,sBACA,UACA,mCACA,+BACA,yBACA,aACA,yBACA,iBACA,0BACA,4BACA,gCACA,mBACA,wBACA,oBACA,oBACA,aACA,oBACA,qBACA,gBACA,8BACA,8BACA,yBACA,UACA,2BACA,yBACA,WACA,8BACA,oBACA,YACA,UACA,qBACA,qCACA,qBACA,eACA,YACA,mBACA,kBACA,oBACA,sBACA,YACA,kBACA,cACA,kCACA,qCACA,oBACA,qCACA,6BACA,uBACA,4CACA,4CACA,kBACA,kBACA,kBACA,kBACA,eACA,iBACA,4BACA,aACA,0BACA,kBACA,+BACA,oBACA,eACA,kBACA,6DACA,iBACA,iBACA,cACA,qCACA,yBACA,mBACA,iCACA,kBACA,2BACA,uCACA,yBACA,gBACA,eACA,WACA,gCACA,+BACA,aACA,uBACA,WACA,0BACA,mBACA,UACA,UACA,gBACA,8BACA,+BACA,SACA,kBACA,sCACA,+BACA,wBACA,iCACA,wBACA,WACA,gBACA,0BACA,2BACA,oBACA,wBACA,6BACA,cACA,qBACA,eACA,eACA,aACA,uBACA,WACA,wBACA,uBACA,qBACA,eACA,uBACA,mBACA,mBACA,iBACA,0BACA,6CACA,yCACA,wBACA,oDACA,kDACA,gDACA,cACA,mBACA,sBACA,8BACA,qBACA,0BACA,yBACA,uBACA,kCACA,qCACA,2CACA,gBACA,mCACA,6BACA,UACA,gBACA,sBACA,iBACA,SACA,0CACA,+BACA,8CACA,YACA,6BACA,eACA,mBACA,eACA,kBACA,0CACA,iBACA,yBACA,SACA,iCACA,oCACA,eACA,kCACA,+BACA,cACA,6BACA,yBACA,oCACA,sBACA,kBACA,oBACA,eACA,4BACA,uBACA,gBACA,kBACA,aACA,iCACA,2BACA,gBACA,mBACA,aACA,kBACA,uBACA,iBACA,oBACA,sBACA,mBACA,sBACA,UACA,gBACA,kBACA,sBACA,gBACA,oBACA,UACA,mBACA,iBCjQW,SAASI,EAAcjG,GAAO,IAAD,EACdoC,mBAAS,IADK,mBACjC8D,EADiC,KAC1BC,EAD0B,OAEhB/D,mBAAS,IAFO,mBAEjCrB,EAFiC,KAE3BqF,EAF2B,KA0CxC,OAAS,oCAEDrF,EAAK/B,KAAI,SAACqH,EAAMC,GAAP,OACL,kBAAC,EAAD,CAAa9F,IAAK8F,EAAKD,EAAME,SAAU,SAAChH,GAAD,OAZnD,SAAuBgB,EAAO+F,GAC1B/F,EAAMiG,iBAGN,IAAIC,EAAO,YAAO1F,GAClB0F,EAAQC,OAAOJ,EAAG,GAClBF,EAAQK,GAM8CE,CAAcpH,EAAG+G,KAAKD,MAE5E,kBAACtG,EAAD,CACIqB,UAAU,iBACVP,MAAOqF,EACPhG,SAAU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","file":"static/js/main.990baacd.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/leadlinklogo.c62d82c3.svg\";","module.exports = __webpack_public_path__ + \"static/media/canadaflag.b4404030.svg\";","module.exports = __webpack_public_path__ + \"static/media/pronexislogo.4649603f.svg\";","module.exports = __webpack_public_path__ + \"static/media/usflag.1347a67c.svg\";","var map = {\n\t\"./address.svg\": 93,\n\t\"./calendars.jpg\": 94,\n\t\"./canadaflag.svg\": 26,\n\t\"./companyinfo.jpg\": 95,\n\t\"./done.png\": 96,\n\t\"./employee.jpg\": 97,\n\t\"./employees.svg\": 98,\n\t\"./help.png\": 99,\n\t\"./house.jpg\": 100,\n\t\"./leadlinklogo.svg\": 19,\n\t\"./profile.svg\": 101,\n\t\"./pronexislogo.svg\": 27,\n\t\"./services.svg\": 102,\n\t\"./usflag.svg\": 28,\n\t\"./verifyphone-old.jpg\": 103,\n\t\"./verifyphone.png\": 104,\n\t\"./wizardstart.png\": 105\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 92;","module.exports = __webpack_public_path__ + \"static/media/address.793f5f38.svg\";","module.exports = __webpack_public_path__ + \"static/media/calendars.dc34a05f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/companyinfo.637597e7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/done.f5a405da.png\";","module.exports = __webpack_public_path__ + \"static/media/employee.1de83f03.jpg\";","module.exports = __webpack_public_path__ + \"static/media/employees.6a179b43.svg\";","module.exports = __webpack_public_path__ + \"static/media/help.e6272053.png\";","module.exports = __webpack_public_path__ + \"static/media/house.8dc75df3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/profile.88d98393.svg\";","module.exports = __webpack_public_path__ + \"static/media/services.dc89fa6d.svg\";","module.exports = __webpack_public_path__ + \"static/media/verifyphone-old.32464b4a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/verifyphone.0f226eb2.png\";","module.exports = __webpack_public_path__ + \"static/media/wizardstart.08820e32.png\";","let id_count=0\r\n\r\nexport default function uid(){\r\n return `_llid${id_count++}`\r\n}","import React from 'react'\r\nimport uid from '../../services/uid'\r\n\r\nexport default function ComboBox(props){\r\n const {onConfirm, onChange, options, ...inputProps} = props\r\n\r\n function handleKeyPress(event){\r\n if(event.key === 'Enter')\r\n onConfirm && onConfirm(event)\r\n }\r\n\r\n //\r\n // detects if user selects element from dropdown\r\n // calls props.onConfirm\r\n //\r\n function _onChange(event){\r\n const {nativeEvent} = event\r\n const keyboardKey = nativeEvent.data\r\n if( !keyboardKey && options.includes(event.target.value)){\r\n /* if user selects something from the recommendations */\r\n onChange && onChange(event)\r\n onConfirm(event)\r\n return\r\n } else\r\n onChange && onChange(event)\r\n }\r\n \r\n\r\n const UNIQUE_ID = uid()\r\n return (\r\n <>\r\n \r\n \r\n {options.map(opt => )}\r\n \r\n \r\n )\r\n}","import React from 'react'\r\nimport './Header.scss'\r\n\r\nconst Header = Section\r\nHeader.Section = Section\r\nHeader.Page = Page\r\nHeader.Label = Label\r\nexport default Header\r\n\r\nfunction Section(props){\r\n\r\n return (\r\n

\r\n {props.children}\r\n

\r\n )\r\n}\r\n\r\nfunction Page(props){\r\n return (\r\n

\r\n {props.children}\r\n

\r\n )\r\n}\r\n\r\nfunction Label(props){\r\n return (\r\n

\r\n {props.children}\r\n

\r\n )\r\n}","import React from 'react'\r\nimport { Header } from '../index.js'\r\nimport { CloseButton } from '../../controls'\r\nimport './Page.scss'\r\n\r\n\r\nPage.Modal = PageModal\r\nexport default Page\r\n\r\n/**\r\n * Wrapper component for pages\r\n * \r\n * @param {Object} props\r\n * @param {String|Array|Function} props.title [optional] title to be rendered at top of ppage\r\n */\r\nfunction Page(props) {\r\n return (\r\n
\r\n {props.title ? {props.title} : ''}\r\n {props.children}\r\n
\r\n )\r\n}\r\n\r\nfunction PageModal(props) {\r\n\r\n return (\r\n
\r\n

\r\n
{props.title}
\r\n props.close()}/>\r\n

\r\n {props.children}\r\n
\r\n )\r\n}","import React from 'react'\r\n\r\n\r\n/**\r\n * Form\r\n * \r\n * A LeadLink specific wrapper for HTML forms\r\n * \r\n * @component\r\n */\r\nexport default props => {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './HorizontalRule.scss'\r\n\r\n/**\r\n * HorizontalRule\r\n * \r\n * A horizontal line\r\n * \r\n * @component\r\n */\r\nexport default props => {\r\n\r\n return (\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './Button.scss'\r\n\r\nButton.Blank = BlankButton\r\nexport default Button\r\n\r\nfunction Button(props){\r\n\r\n const { className, children, ...restProps } = props \r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction BlankButton(props){ \r\n\r\n const { className, children, ...restProps } = props \r\n return (\r\n \r\n )\r\n}","import React from 'react'\r\nimport './LabelledWrapper.scss'\r\n\r\n/**\r\n * An input field with a label\r\n * \r\n * @todo make responsive\r\n * @example\r\n * First Name: \r\n */\r\nexport default function LabelledWrapper(props){\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n { props.children }\r\n
\r\n
\r\n )\r\n}","import React, {useState} from 'react'\r\nimport './Popup.scss'\r\n\r\nexport default function Popup(props){\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n
\r\n
\r\n setOpen(true)} onBlur={()=>setOpen(false)} type='text'/>\r\n {props.help}\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport './TextField.scss'\r\n\r\nfunction TextField(props){\r\n\r\n const {onConfirm, mask, ...inputProps} = props\r\n\r\n \r\n\r\n function handleKeyPress(event){\r\n if(event.key === 'Enter')\r\n onConfirm && onConfirm(event)\r\n }\r\n\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\n\r\nfunction TextFieldWithMask(props){\r\n const {mask, ...textFieldProps} = props\r\n\r\n\r\n return (\r\n
\r\n
{mask}
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nTextField.Masked = TextFieldWithMask\r\nexport default TextField\r\n","import React, {useState} from 'react'\r\nimport './Collapse.scss'\r\n\r\n\r\nCollapse.Blank = CollapseBlank\r\nexport default Collapse\r\n/**\r\n * Header which can be clicked to hide/reveal contents\r\n * \r\n * \r\n * @param {Object} props\r\n * @param {String | *} props.title (Component) displayed header for this collapsible \r\n * @param {Boolean} props.open if true, start open\r\n * @param {*} props.children (Component) the rendered content\r\n */\r\nfunction Collapse(props){\r\n const [open, toggle] = useState(props.open || false);\r\n\r\n return (
\r\n
toggle(!open)}>{props.title}
\r\n {props.children}\r\n
);\r\n}\r\n\r\n/**\r\n * Blank component that can be used to hide / show a child component\r\n * \r\n * \r\n * @param {Object} props\r\n * @param {Boolean} props.open if the component is open\r\n * @param {*} props.children (Component) the rendered content\r\n */\r\nfunction CollapseBlank(props){\r\n return (\r\n
\r\n {props.children}\r\n
\r\n )\r\n}\r\n\r\n","import React, {useEffect, useState} from 'react'\r\nimport './IconField.scss'\r\nimport \"../../styles/icons.scss\"\r\nimport {FieldLabel} from '../../controls'\r\n\r\n// Suggested props to pass:\r\n// name - The name of the input field\r\n// label - Text for the label on the field\r\n// icon (specifying the class name of the icon to use.. from icons .scss file)\r\n// autocomplete (specifying the type of field it is)\r\n// type=\"password\" (if applicable)\r\n// placeholder (with the text to display as a placeholder in the field\r\n// spellcheck=\"false\" (to turn off spellchecking on fields where it doesn't make sense))\r\n// pattern - A REGEX for input validation\r\n// required (true, false, defaults to true)\r\n// validate (true by default)\r\nexport default function IconField(props){\r\n const [active, setActive] = useState(false);\r\n const [length, setLength] = useState(0)\r\n\r\n // prevent passing certain props directly to input field.\r\n const { type, label, icon, lift, validate, ...restProps } = props\r\n \r\n let _required = (props.required === undefined ? true:props.required)\r\n let _validate = (validate === undefined ? true: validate)\r\n let valid = lift ? lift.getValid(props.name):true;\r\n\r\n // mark empty fields as invalid if they are required\r\n useEffect(\r\n ()=>{\r\n if(_required && !valid && lift) lift.setValid(props.name, false)\r\n },\r\n [lift],\r\n )\r\n \r\n function renderRightArea(required) {\r\n\r\n let style=\"iconfield-right-area \";\r\n\r\n style += (active ? \"iconfield-right-area-active \":\"iconfield-right-area-normal \") \r\n\r\n if(length > 0){\r\n if(valid) { style += \"icon-check iconfield-valid \"}\r\n else style += \"icon-attention iconfield-invalid \" \r\n }\r\n else {\r\n if(required) style += \"icon-asterisk \"\r\n }\r\n \r\n return (\r\n
\r\n )\r\n }\r\n\r\n function onChange(event, validate){\r\n let value = event.target.value;\r\n let length = value.length;\r\n \r\n setLength(length)\r\n\r\n if(validate){\r\n let v = event.target.checkValidity()\r\n\r\n if(_required && (length <1)) v=false;\r\n \r\n // lift the value and valid state\r\n if(lift){\r\n lift.setValueAndValid(event.target.name, value, v)\r\n }\r\n }\r\n else {\r\n lift.setValue(event.target.name, value)\r\n }\r\n }\r\n\r\n let value = lift ? lift.getValue(props.name):\"\"\r\n return (\r\n
\r\n \r\n
\r\n
\r\n onChange(e, _validate)}\r\n onInput={(e)=>onChange(e, _validate)} \r\n onFocus={()=>setActive(true)}\r\n onBlur={()=>setActive(false)}\r\n value={value}\r\n {...restProps}\r\n type={type ? type:'text'}/>\r\n {renderRightArea(_required)}\r\n
\r\n
)\r\n}\r\n ","import React from 'react'\r\nimport './IconLink.scss'\r\nimport \"../../styles/icons.scss\"\r\nimport {Link} from 'react-router-dom'\r\n\r\n\r\n// Suggested props to pass:\r\n// label - The text with the hyperlink\r\n// link - The link (from routes.js file)\r\n// icon - the class name of the icon (from icons.scss file)\r\nexport default function IconLink(props){\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
)\r\n}\r\n","import React from 'react'\r\nimport './IconButton.scss'\r\nimport \"../../styles/icons.scss\"\r\nimport {Button} from \"../../controls\"\r\n\r\n\r\nfunction renderContent(props){\r\n if(props.after){\r\n return (\r\n <>{props.text}   \r\n \r\n )\r\n }\r\n return (<>\r\n   {props.text})\r\n}\r\n\r\n// Suggested props to pass:\r\n// text = what the button says\r\n// icon (specifying the class name of the icon to use.. from icons.scss file)\r\n// click - The function to call when clicked\r\n// className (if you need to provide additonal styling)\r\n// after -icon goes after text (default is before)\r\nexport default function IconButton(props){\r\n\r\n const { click, ...restProps } = props\r\n\r\n return (\r\n )\r\n}\r\n","import React, {useState} from 'react'\r\nimport './IconSelect.scss'\r\nimport \"../../styles/icons.scss\"\r\nimport {FieldLabel} from \"../../controls\"\r\n\r\n// Suggested props to pass:\r\n// name - The name of the input field\r\n// label - Text for the label on the field\r\n// icon (specifying the class name of the icon to use.. from icons .scss file)\r\nexport default function IconSelect(props){\r\n const [active, setActive] = useState(false);\r\n\r\n // prevent passing certain props directly to input field.\r\n const { label, icon, options, ...restProps } = props\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
)\r\n}\r\n","import React from 'react'\r\nimport \"../../../styles/icons.scss\"\r\nimport {IconField, PasswordStrength} from '../../index'\r\n\r\n// This component is used whenever the app needs to have the user enter a password\r\n// if meter == true, will show a strength meter\r\n// autoComplete, label, name and placeholder will default to proper values \r\n// for the current password for the current user\r\n// They may need to be changed if it is a NEW password or someone else's password\r\nexport default function PasswordField(props){\r\n\r\n // prevent passing certain props directly to input field.\r\n const { name, label, type, autoComplete, icon, placeholder, meter, validate, ...restProps } = props; \r\n\r\n let _name = name || \"password\";\r\n let password = props.lift.getValue(_name) || \"\";\r\n // we don't validate if there is a meter OR the prop says not to validate\r\n // in both vases, someone else is validating for us\r\n let _validate = !meter || (validate !== undefined && !validate) \r\n\r\n return (\r\n <>\r\n \r\n {meter ? :\"\"}\r\n \r\n )\r\n}\r\n","\r\nimport React from 'react'\r\nimport './EmailField.scss'\r\nimport \"../../../styles/icons.scss\"\r\nimport {IconField} from '../../index'\r\n\r\n\r\n\r\n// This component is used whenever the app needs to have the user enter en email\r\n// name and label will default to appropriate values for a current user\r\n// they may need to be changed in different spots\r\nexport default function EmailField(props){\r\n // prevent passing certain props directly to input field.\r\n const { name, label, pattern, autoComplete, spellCheck, icon, placeholder, ...restProps } = props; \r\n\r\n return (\r\n \r\n ) \r\n}\r\n","import React from 'react'\r\nimport './PhoneField.scss'\r\nimport \"../../../styles/icons.scss\"\r\nimport {IconField} from '../../index'\r\n\r\n// This component is used whenever the app needs to have the user enter a phone number\r\n// autoComplete, label, name and placeholder will default to proper values \r\n// for the current password for the current user\r\n// They may need to be changed if it is a NEW password or someone else's password\r\nexport default function PhoneField(props){\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport './NameField.scss'\r\nimport \"../../../styles/icons.scss\"\r\nimport {IconField} from '../../index'\r\n\r\n// This component is used whenever the app needs to have the user enter a person's name\r\n\r\n// autoComplete, label, name and placeholder will default to proper values \r\nexport default function NameField(props){\r\n\r\n // prevent passing certain props directly to input field.\r\n const { name, label, type, autoComplete, icon, placeholder, ...restProps } = props; \r\n\r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport './AddressBlock.scss'\r\nimport \"../../../styles/icons.scss\"\r\nimport {IconField} from '../../index'\r\n\r\nexport default function AddressBlock(props){\r\n\r\n let lift=props.lift;\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) \r\n}\r\n","export default [\r\n 'Accounting',\r\n 'Air Duct Cleaning',\r\n 'Alarms',\r\n 'Animal Removal',\r\n 'Animal Removal Services',\r\n 'Apartment Cleaning',\r\n 'Appliance Repair - Large',\r\n 'Appliance Repair - Small',\r\n 'Appraisals - Real Estate',\r\n 'Asbestos Removal',\r\n 'Asphalt Repair and Maintenance',\r\n 'Auto Detailing',\r\n 'Awnings',\r\n 'Basement Waterproofing',\r\n 'Bathroom Remodel',\r\n 'Bathtub Refinishing & Liners',\r\n 'Bed Bug Extermination',\r\n 'Biohazard Remediation',\r\n 'Blind Cleaning',\r\n 'Brick or Stone Repair',\r\n 'Buffing & Polishing',\r\n 'Builders - Garages/Barns/Sheds',\r\n 'Builders - Homes',\r\n 'Cabinet Making',\r\n 'Cabinet Refacing/Restoration',\r\n 'Carpentry - Unfinished',\r\n 'Carpentry - Woodworking',\r\n 'Carpet Cleaning',\r\n 'Carpet Installation',\r\n 'Cat Sitting',\r\n 'Ceiling Fan Installation/Repair',\r\n 'Central Air Conditioning Installation',\r\n 'Central Air Conditioning Repair',\r\n 'Central Vacuum Cleaning',\r\n 'Ceramic Tile Installation',\r\n 'Childproofing',\r\n 'Chimney Repair',\r\n 'Chimney Sweep',\r\n 'Closets Organization',\r\n 'Commercial Cleaning',\r\n 'Commercial Photography',\r\n 'Computer Repair',\r\n 'Concrete - Leveling/Mudjacking',\r\n 'Concrete - Pouring & Repair',\r\n 'Concrete - Stamped & Decorative',\r\n 'Concrete Driveway Installation',\r\n 'Concrete Installation',\r\n 'Concrete Repair and Maintenance',\r\n 'Corporate Lunch Catering',\r\n 'Countertop Installation',\r\n 'Countertop Repair',\r\n 'Custom Cabinet Building',\r\n 'Data Recovery Service',\r\n 'Deck Maintenance',\r\n 'Decks & Porches',\r\n 'DJ',\r\n 'Dog Grooming',\r\n 'Dog Sitting',\r\n 'Dog Training',\r\n 'Dog Walking',\r\n 'Door Installation',\r\n 'Door Installation',\r\n 'Door Repair',\r\n 'Drain Pipe Installation - Exterior',\r\n 'Drapery Cleaning',\r\n 'Dryer Vent Cleaning',\r\n 'Drywall',\r\n 'Drywall Installation and Hanging',\r\n 'Drywall Repair and Texturing',\r\n 'Duct and Vent Cleaning',\r\n 'Electrical',\r\n 'Engagement Photography',\r\n 'Epoxy Flooring',\r\n 'Event Catering (Buffet)',\r\n 'Event Catering (Drop-off)',\r\n 'Event Catering (Full Service)',\r\n 'Event Decorating',\r\n 'Event Hair and Makeup',\r\n 'Event Photography',\r\n 'Event Videography',\r\n 'Excavating',\r\n 'Exterior Painting',\r\n 'Exterior Painting ',\r\n 'Face Painting',\r\n 'Family Portrait Photography',\r\n 'Fence and Gate Installation',\r\n 'Fence and Gate Repairs',\r\n 'Fencing',\r\n 'Fencing & Driveway Gates',\r\n 'Fireplace Installation',\r\n 'Flooring',\r\n 'Food Truck or Cart Services',\r\n 'Foundation Repair',\r\n 'Fountains',\r\n 'Framing',\r\n 'Furniture Assembly',\r\n 'Furniture Moving and Heavy Lifting',\r\n 'Garage Door Repair',\r\n 'Garage Doors',\r\n 'Gardening',\r\n 'Gas Grill Repair',\r\n 'Gas Leak Repair',\r\n 'General Carpentry',\r\n 'General Contracting',\r\n 'Generator',\r\n 'Glass & Mirrors',\r\n 'Glass Block',\r\n 'Gutter Cleaning and Maintenance',\r\n 'Gutter Installation or Replacement',\r\n 'Handyman Services',\r\n 'Hardware & Home Improvement Stores',\r\n 'Hardwood Floor Refinishing',\r\n 'Headshot Photography',\r\n 'Heating Ventilation Air Conditioning HVAC',\r\n 'Holiday Lighting Installation and Removal',\r\n 'Home Automation',\r\n 'Home Inspection',\r\n 'Home Organizing',\r\n 'Home Remodeling',\r\n 'Home Staging',\r\n 'House Cleaning',\r\n 'House Cleaning (One Time)',\r\n 'Insulation',\r\n 'Inflatable Slide Rental',\r\n 'Interior Design',\r\n 'Interior Design & Decorating',\r\n 'Interior Painting',\r\n 'Junk Removal',\r\n 'Kitchen Remodel',\r\n 'Land Leveling and Grading - Small Scale (less than 1 acre)',\r\n 'Land Surveying',\r\n 'Land Surveying',\r\n 'Landscaping',\r\n 'Landscaping - Hardscaping & Pavers',\r\n 'Landscaping & Lighting',\r\n 'Lawn & Yard Work',\r\n 'Lawn Fertilization & Treatment',\r\n 'Lawn Irrigation',\r\n 'Lawn Mowing and Trimming',\r\n 'Lawn Mowing and Trimming (Recurring)',\r\n 'Lead Testing & Removal',\r\n 'Leaf Clean Up',\r\n 'Leaf Removal',\r\n 'Lighting',\r\n 'Local Moving (under 50 miles)',\r\n 'Lock Installation and Repair',\r\n 'Locksmiths',\r\n 'Long Distance Moving',\r\n 'Magician',\r\n 'Makeup Artistry Lessons',\r\n 'Marble & Granite',\r\n 'Masonry',\r\n 'Massage',\r\n 'Math Tutoring',\r\n 'Mold Inspection and Removal',\r\n 'Move-in or Move-out Cleaning',\r\n 'Moving',\r\n 'Mulch & Topsoil',\r\n 'Multi Service Lawn Care (Recurring)',\r\n 'Organization - Home & Garage',\r\n 'Oriental Rug Cleaning',\r\n 'Outdoor Landscaping and Design',\r\n 'Packing and Unpacking',\r\n 'Painting',\r\n 'Personal Chef',\r\n 'Personal Chef (Ongoing)',\r\n 'Personal Injury Attorney',\r\n 'Personal Training',\r\n 'Pest Control Services',\r\n 'Pest Control/Exterminating',\r\n 'Pet Sitting',\r\n 'Photo Booth Rental',\r\n 'Piano Moving',\r\n 'Piano Tuning',\r\n 'Plastering',\r\n 'Playground Equipment',\r\n 'Plumbing',\r\n 'Plumbing Drain Repair',\r\n 'Plumbing Pipe Repair',\r\n 'Pool & Spa Service',\r\n 'Poop removal',\r\n 'Portrait Photography',\r\n 'Pressure Washing',\r\n 'Pressure Washing',\r\n 'Printer Repair',\r\n 'Private Cooking Lessons',\r\n 'Private Dance Lessons (for me or my group)',\r\n 'Private Fitness Coaching (for couples)',\r\n 'Private Investigation',\r\n 'Private Swimming Instruction (for me or my group)',\r\n 'Private Tennis Instruction (for me or my group)',\r\n 'Private Yoga Instruction (for me or my group)',\r\n 'Prom Makeup',\r\n 'Property Cleanup',\r\n 'Property Management',\r\n 'Radon Detection & Reduction',\r\n 'Real Estate Agents',\r\n 'Relationship Counseling',\r\n 'Remodeling - Basements',\r\n 'Remodeling - General',\r\n 'Remodeling - Kitchen & Bathroom',\r\n 'Remodeling - Modular & Mobile Home',\r\n 'Remodeling - Sunrooms & Patio Enclosures',\r\n 'Roof Cleaning',\r\n 'Roof Installation or Replacement',\r\n 'Roof Repair or Maintenance',\r\n 'Roofing',\r\n 'Screen Repair',\r\n 'Septic Tank Service',\r\n 'Sewer Cleaning',\r\n 'Siding',\r\n 'Siding Installation, Repair, or Removal',\r\n 'Singing Lessons (for adults)',\r\n 'Singing Lessons (for children or teenagers)',\r\n 'Skylights',\r\n 'Snow Plowing (Residential)',\r\n 'Snow Removal',\r\n 'Sod Installation',\r\n 'Solar Panels',\r\n 'Spanish Lessons',\r\n 'Sprinkler System Repair and Maintenance',\r\n 'Stone & Gravel',\r\n 'Structural Engineering',\r\n 'Stucco',\r\n 'Switch and Outlet Installation',\r\n 'Tile Installation and Replacement',\r\n 'Tree Service',\r\n 'Tree Stump Grinding and Removal',\r\n 'Trim or Molding Installation',\r\n 'TV Mounting',\r\n 'Upholstering - Boat & Auto',\r\n 'Upholstering - General',\r\n 'Upholstery and Furniture Cleaning',\r\n 'Upholstery Cleaning',\r\n 'Vacuum Cleaners',\r\n 'Wallpaper Removal',\r\n 'Wallpapering',\r\n 'Warranty Companies - Home',\r\n 'Water & Smoke Damage',\r\n 'Water Heaters',\r\n 'Water Softeners',\r\n 'Web Design',\r\n 'Wedding and Event Hair Styling',\r\n 'Wedding and Event Makeup',\r\n 'Wedding Cakes',\r\n 'Wedding Catering',\r\n 'Wedding DJ',\r\n 'Wedding Florist',\r\n 'Wedding Hair Styling',\r\n 'Wedding Makeup',\r\n 'Wedding Officiant',\r\n 'Wedding Photography',\r\n 'Wedding Planning',\r\n 'Wedding Videography',\r\n 'Welding',\r\n 'Wells & Pumps',\r\n 'Window Cleaning',\r\n 'Window Installation',\r\n 'Window Repair',\r\n 'Window Treatments',\r\n 'Windows',\r\n 'Windows - Egress',\r\n 'Wrought Iron',\r\n]","import React, {useState} from 'react'\r\nimport './ServicesField.scss'\r\n\r\nimport { ComboBox, FilledInput } from '../../../controls'\r\nimport SERVICE_LIST from '../../../config/serviceList' \r\n\r\nexport default function ServicesField(props){\r\n const [entry, setEntry] = useState('')\r\n const [list, setList] = useState([])\r\n\r\n function onChange(event){\r\n setEntry(event.target.value)\r\n }\r\n\r\n function choiceSelected(event){\r\n event.preventDefault()\r\n\r\n const value = event.target.value\r\n\r\n // do nothing if the entry\r\n // this prevents the user from getting a bunch of empty industry fields\r\n if(value === '')\r\n return\r\n\r\n // just clear the field if the item is already in the array\r\n if(list.includes(value)){\r\n setEntry('')\r\n return\r\n }\r\n\r\n var tempList = [...list];\r\n tempList.push(value);\r\n tempList.sort();\r\n setList(tempList)\r\n\r\n //make service field blank after selection\r\n setEntry('')\r\n }\r\n\r\n function deleteService(event, i){\r\n event.preventDefault()\r\n\r\n //delete the specific service\r\n var newList = [...list]\r\n newList.splice(i, 1)\r\n setList(newList)\r\n }\r\n\r\n return (<>\r\n {\r\n list.map((item, i) => \r\n deleteService(e, i)}>{item})\r\n }\r\n onChange(e)} \r\n onConfirm={choiceSelected} \r\n type='text'\r\n placeholder={!list.length ? \"Select or enter a service\":\"Select or enter another service\"}\r\n name={props.name? props.name:\"services\"}\r\n options={SERVICE_LIST} />\r\n )\r\n}","import React from 'react'\r\nimport './CloseButton.scss'\r\nimport {Button} from '../../controls'\r\nimport '../../styles/icons.scss'\r\n\r\nexport default function CloseButton(props){\r\n return (\r\n \r\n
{props.children}
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './PasswordStrength.scss'\r\nimport zxcvbn from 'zxcvbn'\r\n\r\nfunction strengthLabel(score){\r\n switch (score) {\r\n case 4:\r\n return 'Strong';\r\n case 2:\r\n return 'Fair';\r\n case 3:\r\n return 'Good';\r\n case 0:\r\n case 1:\r\n default:\r\n return 'Weak';\r\n }\r\n}\r\n\r\nexport default function PasswordStrength(props){\r\n const { value, lift, forField } = props;\r\n\r\n // returns 0 through 4\r\n const score=zxcvbn(value).score\r\n\r\n // set the valid value for the input field\r\n lift.setValid(forField, score >= 3)\r\n\r\n let val = lift.getValue(forField)\r\n const label=(val && val.length > 0) ? strengthLabel(score): \"\"\r\n const className=\"passwordstrength strength-\" + label\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n )\r\n}","import React from 'react'\r\nimport './FieldLabel.scss'\r\nimport \"../../styles/icons.scss\"\r\n\r\n// Suggested props to pass:\r\n// active (true/false) - draws differently if active\r\n// label - the text of the label\r\n// for - the name of the field label is for\r\nexport default function FieldLabel(props){\r\n\r\n return (\r\n
\r\n \r\n
)\r\n}\r\n ","import React from 'react'\r\nimport './LinkButton.scss'\r\n\r\n// a button that looks like a link\r\n// recommended properties\r\n// click - the function to call when the link is clicked\r\nexport default function LinkButton(props){\r\n\r\n const { className, children, ...restProps } = props \r\n \r\n function click(){\r\n if(props.click) props.click()\r\n }\r\n \r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport './FilledInput.scss'\r\n\r\n/**\r\n * A styled \"filled-input\". \r\n * Despite the name: this is NOT an input;\r\n * it's the thing that's created after a user fills an input field,\r\n * and you need something to display the value\r\n * (is usually added in-line above the input field. The input-field is usually re-usable: \r\n * multiple 'filled inputs' can be created)\r\n * \r\n * @param {Object} props \r\n * @param {function} props.onDelete callback for when the 'delete' button is clicked. Callback takes an event parameter\r\n * @param {*} props.children displayed to the left of the delete button\r\n */\r\nexport default function FilledInput(props){\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {props.children}\r\n \r\n
\r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './SmartList.scss'\r\n\r\nfunction Cell(props){\r\n function onFocus(){ }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst Row = (props) =>{\r\n return props.row.map((i)=>{return })\r\n}\r\n\r\nexport default function SmartList(props){\r\n\r\n function getHeader(labels){\r\n return labels.map((a)=>{return {a}})\r\n }\r\n function getRows(rows){\r\n return rows.map((i)=>{return })\r\n }\r\n return (
\r\n {getHeader(props.labels)}\r\n {getRows(props.data)}\r\n
)\r\n} ","import React from 'react'\r\nimport './SortableTable.scss'\r\n\r\n\r\n/* example data for table */\r\n\r\n// const columns = [\r\n// 'dave',\r\n// 'alice',\r\n// 'carol',\r\n// 'bob'\r\n// ]\r\n\r\n// const rows = [\r\n// [ \r\n// {displayName: 'bob', value: 'bob1'},\r\n// {displayName: 'alice', value: 'alice1'},\r\n// {displayName: 'carol', value: 'carol1'},\r\n// ],\r\n// [\r\n// {displayName: 'bob', value: 'bob2'},\r\n// {displayName: 'dave', value: 'dave2'},\r\n// {displayName: 'alice', value: 'alice2'},\r\n// ],\r\n// [\r\n// {displayName: 'carol', value: 'carol3'},\r\n// {displayName: 'dave', value: 'dave3'},\r\n// {displayName: 'alice', value: 'alice3'},\r\n// ] \r\n// ]\r\n\r\n\r\n\r\n/**\r\n * A table that will sort by a column if you select the column header\r\n * Max of 64 columns\r\n * \r\n * @todo Make it sortable ;)\r\n * @todo Make responsive\r\n * \r\n * @param {Object} props \r\n * @param {Array} props.columns\r\n * @param {Array>} props.rows 'value' is rendered as a child component\r\n */\r\nexport default function SortableTable(props) {\r\n const { columns, rowNumber } = props\r\n\r\n const EntryRow = (entriesProps) => {\r\n const {entries, rowNumber} = entriesProps\r\n const final = columns.map((column) => {\r\n\r\n const entry = entries.find(entry => (entry.displayName === column))\r\n \r\n if(entry !== undefined){\r\n return ({entry.value})\r\n }else{\r\n return \r\n }\r\n }, [])\r\n\r\n return final\r\n }\r\n\r\n const ColumnHeaders = columnHeadersProps => {\r\n return columns.map(column =>
{column}
)\r\n }\r\n\r\n return (\r\n
\r\n \r\n {props.rows.map((row, i) => )} \r\n
\r\n )\r\n}\r\n\r\n\r\n\r\nfunction Entry(props){\r\n console.log('--------------->', props.rowNumber + 1)\r\n const className = `sortable-table-entry ${(props.rowNumber + 1) % 2 === 0 ? 'sortable-table-entry-even' : 'sortable-table-entry-odd'}`\r\n return (\r\n
{props.children}
\r\n )\r\n}\r\n\r\nfunction EmptyEntry(props){\r\n return( \r\n --\r\n )\r\n}\r\n\r\n\r\n\r\n\r\n","import React from 'react'\r\nimport './SearchBar.scss'\r\nimport { TextField } from '../../controls'\r\n\r\nexport default function SearchBar(props) {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}","import React from 'react'\r\nimport './FieldsBox.scss'\r\nimport \"../../styles/icons.scss\"\r\n\r\n// creates a column box for standard width fields\r\nexport default function FieldsBox(props){\r\n\r\n return (\r\n
\r\n {props.children}\r\n
)\r\n}\r\n ","import React from 'react'\r\nimport './FieldsRow.scss'\r\nimport \"../../styles/icons.scss\"\r\n\r\n// creates a row for multiple controls\r\nexport default function FieldsRow(props){\r\n\r\n return (\r\n
\r\n {props.children}\r\n
)\r\n}\r\n ","import React from 'react'\r\nimport './ErrorDisplay.scss'\r\nimport \"../../styles/icons.scss\"\r\n\r\n// Suggested props to pass:\r\n// lift - the lifter (which keeps the error message))\r\nexport default function ErrorDisplay(props){\r\n\r\n if(!props.lift.hasError) return (<>)\r\n\r\n return (\r\n
\r\n \r\n
)\r\n}\r\n ","import React from 'react'\r\nimport './CheckBox.scss'\r\n\r\nexport default function CheckBox(props){\r\n\r\n const { label, name, className, lift } = props \r\n\r\n let _name = name ? name:\"check\"\r\n let checked = false;\r\n if(lift) checked = lift.getValue(_name)\r\n\r\n function onChange(event){\r\n if(lift) lift.setValue(_name, event.target.checked)\r\n }\r\n\r\n return (
\r\n onChange(e)} />\r\n \r\n
)\r\n}\r\n\r\n","import React, {useState} from 'react'\r\nimport './DateField.scss'\r\nimport {FieldLabel} from '..'\r\n\r\nDateField.Range = DateFieldRange\r\nexport default DateField\r\n\r\nfunction DateField(props){\r\n const [active2, setActive] = useState(false);\r\n\r\n const {name, label, className } = props\r\n\r\n let _name = (name ? name:\"date\")\r\n let _label = (label ? label:\"Date\")\r\n let _className = \"datefield \" + (className ? className:\"\") + (active2 ? \" datefield-active\":\" datefield-normal\")\r\n return (\r\n
\r\n \r\n setActive(true)}\r\n onBlur={()=>setActive(false)}\r\n type=\"date\" name={_name} />\r\n
\r\n )\r\n}\r\n\r\nfunction DateFieldRange(props){ \r\n \r\n return (\r\n <>\r\n  \r\n \r\n \r\n )\r\n}","\r\n\r\nlet ERROR = {\r\n NONE: '',\r\n COULD_NOT_CONNECT: 'Unable to connect to the server. Please check your internet access and try again.',\r\n LOGIN_WRONG: 'The combination of email address and password was not correct.',\r\n USER_EXISTS: 'There is already a user with that email address. If you have forgotten your password, please select the \"Forgot Your Password\" when you Log In.'\r\n}\r\n\r\nexport {ERROR};\r\n\r\n","// This page is the entry point for all services provides by the server\r\nimport {ERROR} from '../config/errors'\r\n\r\nexport const SERVER_SUCCESS = 1,\r\n SERVER_FAILURE = 2,\r\n SERVER_NOT_AVAIL = 3,\r\n BAD_PARAM = 4,\r\n OBJECT_EXISTS = 5;\r\n\r\nexport default class Server{\r\n constructor(){\r\n this.LoggedIn = false\r\n this._phoneVerified = false;\r\n this._WizardOpen = true;\r\n this.fake_db = {};\r\n\r\n // this._testing = true;\r\n }\r\n\r\n // returns true or false - no actual server check\r\n // not a problem, because all server calls validate user is logged in\r\n get isLoggedIn() { return this.LoggedIn }\r\n \r\n // returns true on success. false otherwise\r\n // on error, calls setError with a user displayable error message\r\n login(email, password, setError){\r\n\r\n setError(ERROR.NONE)\r\n this.LoggedIn = true;\r\n return true;\r\n\r\n // for now, to test login, hard-code some password values\r\n // which provide all possoble error codes\r\n\r\n /* if(password === \"1\"){ // SERVER_SUCCESS\r\n setError(ERROR.NONE)\r\n this.LoggedIn = true;\r\n return true\r\n }\r\n if(password === \"2\"){ // SERVER_NOT_AVAIL\r\n setError(ERROR.COULD_NOT_CONNECT)\r\n return false\r\n }\r\n \r\n setError(ERROR.LOGIN_WRONG)\r\n return false */\r\n }\r\n\r\n logout(){\r\n // call server here\r\n\r\n // clear any session key stored here, even if we can't reach the server\r\n\r\n this.LoggedIn = false\r\n return true\r\n }\r\n\r\n resetPassword(email, setError){\r\n\r\n // for now, hard-code some values to do error testing\r\n /* if(email === \"b@b.b\"){ // SERVER_NOT_AVAIL\r\n setError(ERROR.COULD_NOT_CONNECT)\r\n return false\r\n } */\r\n return true\r\n }\r\n\r\n changePassword(newPassword, setError){\r\n\r\n // for now, dummy up some return values to check error handling\r\n /* if(newPassword === \"StoneStone1!\"){\r\n setError(ERROR.COULD_NOT_CONNECT)\r\n return false \r\n } */\r\n return true;\r\n }\r\n\r\n // returns whether the wizard should be up\r\n get isWizardOpen() { return this._WizardOpen }\r\n\r\n closeWizard() { \r\n this._WizardOpen = false \r\n }\r\n\r\n register(email, password, setError){\r\n\r\n console.log(\"Email:\" + email)\r\n\r\n // for now, hard-code some values to test error codes\r\n /* if(email === \"a@a.a\"){ // registered user already exists\r\n setError(ERROR.USER_EXISTS)\r\n return false\r\n }\r\n if(email === \"b@b.b\"){ // SERVER_NOT_AVAIL\r\n setError(ERROR.COULD_NOT_CONNECT)\r\n return false\r\n } */\r\n return true \r\n }\r\n\r\n getRecord(record_name){\r\n var record = record_name.split(\".\");\r\n \r\n if(this.fake_db[record[0]] === undefined) return {};\r\n\r\n return this.fake_db[record[0]] \r\n }\r\n\r\n sendPhoneCode(){\r\n this._phoneVerified = false;\r\n }\r\n\r\n verifyPhone(code){\r\n if(code === \"123456\"){\r\n this._phoneVerified = true;\r\n return true;\r\n }\r\n this._phoneVerified = false;\r\n return false;\r\n }\r\n\r\n phoneVerified(){\r\n return this._phoneVerified;\r\n }\r\n\r\n getPhone(){\r\n return this.fake_db[\"user\"].phone\r\n }\r\n\r\n setRecord(record_name, data, setError){\r\n\r\n // for testing purposes, every other time, lets send an error (for now)\r\n /* this._testing = !this._testing\r\n if(this._testing){\r\n setError(ERROR.COULD_NOT_CONNECT)\r\n return false \r\n } */\r\n\r\n // strip off everything after any dots in the record name\r\n var record = record_name.split(\".\")\r\n this.fake_db[record[0]] = data\r\n return true;\r\n }\r\n\r\n}\r\n\r\n// global instance of the server\r\nexport let server = new Server()\r\n","\r\nimport { useState, useRef } from 'react';\r\nimport {server} from '../services/server'\r\nimport {ERROR} from '../config/errors'\r\n\r\nexport class Lift {\r\n constructor(value, trigger, record_name) {\r\n this._record_name = record_name;\r\n this._values = record_name.length === 0 ? {} : server.getRecord(record_name);\r\n this._valid = {};\r\n this._changed = {};\r\n this.processRecord() \r\n this._trigger = trigger;\r\n this._trigger_val = value;\r\n this.last_error = ERROR.NONE;\r\n }\r\n\r\n triggerUpdate(){ this._trigger(this._trigger_val++)} \r\n hasError(){ return (this.last_error === ERROR.NONE ? false:true) }\r\n getError(){ return this.last_error }\r\n\r\n setError(error){ \r\n this.last_error = error;\r\n if(error !== ERROR.NONE) this.triggerUpdate();\r\n }\r\n\r\n processRecord(){\r\n Object.keys(this._values).forEach(key => \r\n {\r\n this._valid[key] = true;\r\n this._changed[key] = false;\r\n })\r\n }\r\n\r\n getRecord() { return this._record_name }\r\n\r\n // returns true if the data was saved. Automatically sets the error field if not\r\n save() {\r\n return server.setRecord(this._record_name, this._values, (e)=>this.setError(e))\r\n }\r\n\r\n setValidNoTrigger(name, valid){ this._valid[name] = valid; }\r\n\r\n setValid(name, valid){\r\n // if the value hasn't changed, don't do anything\r\n if(this._valid[name] === valid) return;\r\n\r\n this._valid[name] = valid; \r\n this.triggerUpdate() \r\n }\r\n\r\n setValueAndValid(name, value, valid){\r\n this._values[name] = value;\r\n this._valid[name] = valid;\r\n this._changed[name] = true;\r\n this.triggerUpdate();\r\n }\r\n\r\n getValid(name){ return this._valid[name] } \r\n\r\n setValueNoTrigger(name, value){ this._values[name] = value }\r\n\r\n setValue(name, value){\r\n this._values[name] = value;\r\n this.triggerUpdate()\r\n }\r\n\r\n getValue(name){ return this._values[name] }\r\n\r\n isValid(){\r\n\r\n let ret = true;\r\n\r\n Object.values(this._valid).forEach(val => \r\n {\r\n if(val !== true){ ret = false; }\r\n })\r\n return ret;\r\n }\r\n}\r\n\r\nexport function useLift(record_name) {\r\n const [value, setChange] = useState(1)\r\n const ref = useRef(null)\r\n if(ref.current == null || ref.current.getRecord() !== record_name ){\r\n ref.current = new Lift(value, setChange, record_name)\r\n }\r\n return ref.current;\r\n}\r\n\r\n","import React from 'react'\r\nimport { Page, ErrorDisplay, DateField, IconSelect} from '../../controls'\r\nimport './Home.scss'\r\nimport Chart from \"react-google-charts\";\r\nimport { useLift } from '../../hooks/lift' \r\n\r\nconst FILTER_TYPES = [\r\n 'This Month',\r\n 'Last Month',\r\n 'Past 30 Days',\r\n 'Past 90 Days',\r\n 'This Year',\r\n 'Last Year'\r\n]\r\n\r\nconst data = [\r\n [\r\n {\r\n type: \"date\",\r\n id: \"Date\"\r\n },\r\n {\r\n type: \"number\",\r\n id: \"Events\"\r\n }\r\n ],\r\n [new Date(2021, 3, 13), 32],\r\n [new Date(2021, 3, 14), 24],\r\n [new Date(2021, 3, 15), 1],\r\n [new Date(2021, 3, 16), 8],\r\n [new Date(2021, 3, 17), 9],\r\n ];\r\n\r\nexport default function Home(props) {\r\n const lift = useLift(\"dashboard\") \r\n\r\n return (\r\n \r\n \r\n
\r\n  \r\n \r\n
\r\n\r\n
\r\n \r\n Loading Chart
}\r\n data={[\r\n [{ type: 'date', id: 'Date' }, { type: 'number', id: 'Won/Loss' }],\r\n [new Date(2021, 3, 13), 12],\r\n [new Date(2021, 3, 14), 4],\r\n [new Date(2021, 3, 15), 8],\r\n [new Date(2021, 3, 16), 3],\r\n [new Date(2021, 3, 17), 2],\r\n [new Date(2021, 1, 4), 8],\r\n [new Date(2021, 1, 5), 5],\r\n [new Date(2021, 1, 12), 1],\r\n [new Date(2021, 1, 13), 9],\r\n [new Date(2021, 1, 19), 8],\r\n [new Date(2021, 1, 23), 5],\r\n [new Date(2021, 1, 24), 6],\r\n [new Date(2021, 2, 10), 11],\r\n ]}\r\n options={{\r\n title: 'Leads',\r\n calendar: { cellSize: 12 }, \r\n }}\r\n rootProps={{ 'data-testid': '1' }}\r\n/>\r\n\r\n
\r\n Loading Lead Status Chart
}\r\n data={[\r\n ['Status', 'Count'],\r\n ['New', 11],\r\n ['Assigned', 21],\r\n ['Converted', 25],\r\n ['Not Converted', 27],\r\n ['Missed', 7],\r\n ]}\r\n options={{\r\n title: 'Lead Status',\r\n }}\r\n rootProps={{ 'data-testid': '2' }}\r\n />\r\n\r\n Loading Lead Source Chart
}\r\n data={[\r\n ['Source', 'Count'],\r\n ['Thumbtack', 11],\r\n ['HomeAdvisor', 21],\r\n ['Website', 25],\r\n ['Manual', 27]\r\n ]}\r\n options={{\r\n title: 'Lead Source',\r\n }}\r\n rootProps={{ 'data-testid': '3' }}\r\n />\r\n
\r\n\r\n
\r\n Loading Conversion Comparison Chart
}\r\n data={[\r\n ['Scheduler', 'Last Month', 'This Month'],\r\n ['Everything, Inc', 54, 47],\r\n ['Industry', 36, 42],\r\n ['ProNexis', 57, 53],\r\n ]}\r\n options={{\r\n title: 'Appointments',\r\n chartArea: { width: '50%' },\r\n hAxis: {\r\n title: 'Conversion Percentage',\r\n minValue: 0,\r\n },\r\n vAxis: {\r\n title: 'Scheduler',\r\n },\r\n }}\r\n // For tests\r\n rootProps={{ 'data-testid': '1' }}\r\n />\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n )\r\n}","import React, {useState} from 'react'\r\nimport './Business.scss'\r\nimport '../../styles/icons.scss'\r\nimport {useLift} from '../../hooks/lift'\r\nimport { Page, IconButton, IconField, PhoneField, EmailField, Collapse, \r\n ServicesField, AddressBlock, Form, FieldLabel, FieldsBox,\r\n AddImage, ErrorDisplay } from '../../controls'\r\n\r\nconst IMAGE_FIELD_NAMES = {\r\n IMAGE_ICON: 'image-icon',\r\n IMAGE_MARKETING: 'image-marketing',\r\n}\r\n\r\nexport default function Businesss(props){\r\n const [images, setImages] = useState({\r\n [IMAGE_FIELD_NAMES.IMAGE_ICON]: {preview:'https://placekitten.com/100/100', raw: undefined}, \r\n [IMAGE_FIELD_NAMES.IMAGE_MARKETING]: {preview: 'https://placekitten.com/600/200', raw: undefined},\r\n })\r\n const lift = useLift(\"company\");\r\n \r\n function handleImageChange(event){\r\n const eventTarget = event.target\r\n if (eventTarget.files && eventTarget.files[0]){\r\n setImages(prevState => {\r\n return {\r\n ...prevState,\r\n [eventTarget.name]: {\r\n preview: URL.createObjectURL(eventTarget.files[0]),\r\n raw: eventTarget.files[0]\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n function save(){ lift.save() }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n{/* \r\n \r\n \r\n */} \r\n \r\n \r\n \r\n )\r\n}","const VALIDATION_METHODS = {\r\n REGEX: 'regex'\r\n}\r\n\r\nexport const FIELD_TYPES = {\r\n EMAIL: 'email',\r\n CRM_URL: 'crm-url',\r\n CRM_PASSWORD: 'crm-password',\r\n CRM_USER: 'crm-user',\r\n CRM_CREDENTIALS: 'crm-credentials',\r\n CRM_PORTAL_ID: 'crm-portal-id',\r\n EXTERNAL_ID: 'external-id'\r\n}\r\n\r\nexport const CRMIntegrations = [\r\n {\r\n displayName: 'Google Calendar',\r\n type:'google-calendar',\r\n requiredFields: [\r\n {\r\n displayName: 'Google Email',\r\n type: FIELD_TYPES.EMAIL,\r\n name: 'email',\r\n defaultValue: '',\r\n validation: {\r\n method: [VALIDATION_METHODS.REGEX],\r\n regex: /[a-zA-Z1-9._\\+]+@[a-zA-Z0-9.-]+.[a-zA-Z1-9]/\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n displayName: 'Sugar CRM',\r\n type:'sugar-crm',\r\n requiredFields: [\r\n {\r\n displayName: 'Sugar Email',\r\n name: 'email',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_PORTAL_ID\r\n },\r\n {\r\n displayName: 'Sugar CRM Username',\r\n name: 'username',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_USER,\r\n },\r\n {\r\n displayName: 'Sugar CRM Password',\r\n name: 'password',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_PASSWORD\r\n }\r\n ]\r\n },\r\n {\r\n displayName: 'Service Minder',\r\n type: 'service-minder',\r\n requiredFields: [\r\n {\r\n displayName: 'Service Minder Password',\r\n name: 'password',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_PASSWORD\r\n }\r\n ]\r\n },\r\n {\r\n displayName: 'mHelpDesk',\r\n type: 'mhelpdesk',\r\n requiredFields: [\r\n {\r\n displayName: 'mHelpDesk Account ID',\r\n name: 'id',\r\n defaultValue: '',\r\n type: FIELD_TYPES.EXTERNAL_ID\r\n },\r\n {\r\n displayName: 'mHelpDesk API Key',\r\n name: 'api-key',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_USER\r\n },\r\n {\r\n displayName: 'mHelpDesk Secret',\r\n name: 'secret',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_PASSWORD\r\n }\r\n ]\r\n },\r\n {\r\n displayName: 'Job Nimbus',\r\n type: 'job-nimbus',\r\n requiredFields: [\r\n {\r\n displayName: 'API Key',\r\n name: 'api-key',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_USER\r\n }\r\n ]\r\n },\r\n {\r\n displayName: 'POCOMOS',\r\n type: 'pocomos',\r\n requiredFields: [\r\n {\r\n displayName: 'Office ID',\r\n name: 'id',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_PORTAL_ID\r\n },\r\n {\r\n displayName: 'POCOMOS Username',\r\n name: 'username',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_USER\r\n },\r\n {\r\n displayName: 'POCOMOS Password',\r\n name: 'password',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_PASSWORD\r\n }\r\n ]\r\n },\r\n {\r\n displayName: 'Client Tether',\r\n type: 'client-tether',\r\n requiredFields: [\r\n {\r\n displayName: 'Client Tether Username',\r\n name: 'username',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_USER\r\n },\r\n {\r\n displayName: 'Web Token',\r\n name: 'token',\r\n defaultValue: '',\r\n type: FIELD_TYPES.CRM_PASSWORD\r\n }\r\n ]\r\n }\r\n]","import React, { useState } from 'react'\r\nimport { CRMIntegrations, FIELD_TYPES } from '../../../config/CRMIntegrations'\r\nimport { LabelledWrapper, Button } from '../../../controls'\r\n\r\n\r\nimport './AutoIntegrationForm.scss'\r\n\r\n\r\nconst FORM_MODES = {\r\n EDIT: 'edit',\r\n DISPLAY: 'display'\r\n}\r\n\r\n\r\nexport default function AutoIntegrationForm(props) {\r\n const {type, displayName, internalID, onDelete, ...inputFieldProps} = props\r\n const [mode, setMode] = useState(FORM_MODES.EDIT)\r\n const integration = CRMIntegrations.find(integ => integ.type === props.type)\r\n\r\n function handleFormSave(event){\r\n event.preventDefault()\r\n setMode(FORM_MODES.DISPLAY)\r\n }\r\n\r\n return (\r\n
\r\n {\r\n mode !== FORM_MODES.EDIT ?\r\n //Display Mode\r\n

\r\n {integration.displayName}\r\n \r\n

\r\n :\r\n //Edit Mode\r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n {integration.requiredFields.map(reqField => )}\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nfunction Field(props){\r\n const {displayName, ...inputProps} = props\r\n\r\n const name=`${displayName}${props.type}`\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction Input(props){\r\n const {defaultValue, name, type, fieldValues, ...inputProps} = props\r\n /* if there's no name, fall back to the type */\r\n const formName = name || type\r\n const INPUT_CONFIG = {\r\n //if there's a regular value (not defaultValue) \r\n //value: defaultValue will be overwritten by \"...inputProps\"\r\n value: defaultValue, \r\n name: formName, \r\n value: fieldValues[formName] || '', \r\n type: 'text', \r\n className: 'auto-integration-form-text-field'\r\n }\r\n\r\n\r\n switch(type){\r\n case FIELD_TYPES.EMAIL:\r\n return \r\n case FIELD_TYPES.PORTAL:\r\n return \r\n case FIELD_TYPES.CRM_USER:\r\n return \r\n case FIELD_TYPES.CRM_PASSWORD:\r\n return \r\n case FIELD_TYPES.EXTERNAL_ID:\r\n return \r\n case FIELD_TYPES.CRM_PORTAL_ID:\r\n return \r\n case FIELD_TYPES.CRM_URL:\r\n return \r\n default:\r\n return \"INLINE ERROR Alpha-India-Foxtrot-427\"\r\n //What this error means:\r\n //auto-generated form tried to render a field who's type\r\n //is not known by the form\r\n //check that FIELD_TYPES[renderedField]\r\n //is handled by this function\r\n\r\n //we put this here so it'd be easier to grep the code for it\r\n }\r\n}","import React from 'react'\r\nimport './AuthPage.scss'\r\nimport '../../../styles/icons.scss'\r\nimport {Page} from '../../../controls'\r\n\r\n// This is the common page for all authentication pages\r\n// properties to pass in\r\n// header=\"Text to Display\"\r\nexport default function AuthPage(props){\r\n return (\r\n
\r\n
\r\n \r\n {props.children}\r\n \r\n
\r\n \"Lead\r\n
)\r\n}","export const APP_NAME = \"Lead Link™\"\r\nexport const APP_COPYRIGHT_RANGE = \"2018-20\"","import React from 'react'\r\nimport './WizardChild.scss'\r\n\r\n// This is the wrapper component for all child pages\r\nexport default function WizardChild(props){\r\n return (\r\n
\r\n {props.children} \r\n
\r\n )\r\n}","import React from 'react'\r\nimport './WizardColumns.scss'\r\n\r\nexport default function WizardColumns(props){\r\n\r\n return (\r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n \r\n
\r\n
\r\n)\r\n}","import React from 'react'\r\nimport './AddCalendar.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {IconSelect, EmailField, IconButton, ErrorDisplay} from '../../../../controls'\r\n\r\nconst CALENDAR_TYPES = [\r\n 'Google Calendar',\r\n 'Sugar CRM',\r\n 'Service Minder',\r\n 'mHelpDesk',\r\n 'Job Nimbus',\r\n 'Pocomos',\r\n 'Client Tether'\r\n]\r\n\r\nexport default function AddCalendar(props){\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}","import Welcome from './children/Welcome/Welcome'\r\nimport HelpOptions from './children/HelpOptions/HelpOptions'\r\nimport Profile from './children/Profile/Profile'\r\nimport VerifyPhone from './children/VerifyPhone/VerifyPhone'\r\nimport Country from './children/Country/Country'\r\nimport CompanyInfo from './children/CompanyInfo/CompanyInfo'\r\nimport Services from './children/Services/Services'\r\nimport CompanyAddress from './children/CompanyAddress/CompanyAddress'\r\nimport Schedulers from './children/Schedulers/Schedulers'\r\nimport Calendars from './children/Calendars/Calendars'\r\nimport Done from './children/Done/Done'\r\nimport Scheduler from './children/AddEditScheduler/AddEditScheduler'\r\nimport AddCalendar from './children/AddCalendar/AddCalendar'\r\nimport {server} from '../../services/server'\r\n\r\nlet skipPhone = function phoneVerified(){\r\n return server.phoneVerified()\r\n}\r\n\r\nexport const config = [\r\n { name: \"welcome\", record:'', title:'Welcome to Lead Link™', Component:Welcome, \r\n nextText:\"Let's Get Started\"},\r\n { name: \"help\", record:'', title:'Help Available', Component:HelpOptions},\r\n { name: \"profile\", record:'user', title:'Your Information', Component:Profile }, \r\n { name: \"verify\", record:'user.verify', title:'Verify Your Phone', Component:VerifyPhone,\r\n skippable: true, autoSkip:skipPhone }, \r\n { name: \"country\", record:'company.country', title:'Select Your Country', Component:Country },\r\n { name: \"company\", record:'company.info', title:'Enter Company Information', Component:CompanyInfo }, \r\n { name: \"industries\", record:'company.services', title: 'Services You Offer', Component:Services,\r\n skippable: true},\r\n { name: \"address\", record:'company.address', title:'Enter Company Address', Component:CompanyAddress,\r\n skippable: true},\r\n { name: \"schedulers\", record: 'schedulers', title: 'Appointment Schedulers', Component:Schedulers},\r\n { name: \"calendars\", record: 'calendars', title: 'Connect Calendars', Component:Calendars}, \r\n { name: \"done\", record: '', title:'Inital Setup Complete', Component:Done, nextText:\"Close\"},\r\n // everything beyond here is special cases, not in the normal flow\r\n { name: \"scheduler\", record: 'schedulers.edit', title:'Scheduler Information', Component:Scheduler,\r\n prevPage:\"schedulers\", prevText:\"Cancel\", nextPage:\"schedulers\", nextText:\"Save\"}, \r\n { name: \"addcalendar\", record: 'calendars.edit', title:'Add Calendar', Component:AddCalendar,\r\n prevPage:\"calendars\", prevText:\"Cancel\", nextPage:\"calendars\", nextText:\"Save\"}, \r\n]\r\n\r\n// this is the index of the \"done\" element in the config list\r\nexport const config_end = config.findIndex(element => element.name === \"done\")","import React from 'react'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {APP_NAME} from '../../../../config/appInfo'\r\nimport './Welcome.scss'\r\n\r\n// \"Welcome to the Wizard\" page\r\nexport default function Welcome(props){\r\n return (\r\n \r\n \r\n

Welcome to {APP_NAME} - the easiest way to manage and convert your sales leads.

\r\n

Let's get you up and running.

\r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport './HelpOptions.scss'\r\n\r\n// \"Welcome to the Wizard\" page\r\nexport default function LiveHelp(props){\r\n return (\r\n \r\n \r\n

To close this assistant, click the \"X\" button in the upper right corner of this page.

\r\n

You may return to this assistant by selecting the option in the help menu.

\r\n

Other help options are also available, including live chat with a Lead Link expert.

\r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {NameField, PhoneField, ErrorDisplay} from '../../../../controls'\r\nimport {server} from '../../../../services/server'\r\n\r\nexport default function Profile(props){\r\n\r\n \r\n return (\r\n \r\n \r\n \r\n

Let's gather information about you.

\r\n \r\n \r\n {server.phoneVerified() ? \r\n \"Your phone number has been verified.\" :\r\n \"We will send a code to your phone.\"}\r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './VerifyPhone.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {IconField, IconButton, LinkButton, ErrorDisplay} from '../../../../controls'\r\nimport {server} from '../../../../services/server'\r\n\r\nexport default function VerifyPhone(props){\r\n\r\n function verify(){\r\n if(server.verifyPhone(props.lift.getValue(\"code\"))){\r\n props.next()\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n

We sent a code to: {server.getPhone()}
\r\n Use a different phone number.

\r\n

It may take up to 5 minutes.
\r\n Send the code again.

\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n","import React from 'react'\r\nimport './Country.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport {ErrorDisplay} from '../../../../controls'\r\n\r\nexport default function Country(props){\r\n \r\n function click(country){\r\n \r\n props.lift.setValueAndValid(\"country\", country, true)\r\n props.next()\r\n }\r\n\r\n let country = props.lift.getValue(\"country\")\r\n return (\r\n \r\n \r\n

Where is your main office located?

\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './CompanyInfo.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {IconField, PhoneField, EmailField, ErrorDisplay} from '../../../../controls'\r\n\r\nexport default function CompanyInfo(props){\r\n\r\n let lift = props.lift;\r\n return (\r\n \r\n \r\n \r\n

Let's gather information about your company.

\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './Services.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {ServicesField, ErrorDisplay} from '../../../../controls'\r\n\r\nexport default function Services(props){\r\n\r\n return (\r\n \r\n \r\n \r\n

Please enter one or more services offered by your company

\r\n \r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './CompanyAddress.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {AddressBlock, ErrorDisplay} from '../../../../controls'\r\n\r\nexport default function CompanyAddress(props){\r\n\r\n let lift = props.lift;\r\n return (\r\n \r\n \r\n \r\n Where is your main office?\r\n \r\n \r\n \r\n )\r\n}","import React from 'react'\r\nimport './Schedulers.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {IconButton, LinkButton, ErrorDisplay} from '../../../../controls'\r\nimport {APP_NAME} from '../../../../config/appInfo'\r\n\r\nexport default function Schedulers(props){\r\n\r\n return (\r\n \r\n \r\n \r\n

The following people will receive lead notifications and be able to schedule appointments.

\r\n\r\n
\r\n Alvin Black\r\n
\r\n\r\n props.jump(\"scheduler\")} text=\"Add Scheduler\" /> \r\n

When you add others, they will be invited to install the {APP_NAME} application.

\r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './Calendars.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {IconButton, ErrorDisplay} from '../../../../controls'\r\n\r\nexport default function Calendars(props){\r\n\r\n return (\r\n \r\n \r\n \r\n

The following calendars can be scheduled for appointments:

\r\n
\r\n No calendars connected yet\r\n
\r\n props.jump(\"addcalendar\")} text=\"Add Calendar\" /> \r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {APP_NAME} from '../../../../config/appInfo'\r\nimport './Done.scss'\r\n\r\n// \"Welcome to the Wizard\" page\r\nexport default function Done(props){\r\n return (\r\n \r\n \r\n Congratulations.\r\n

The {APP_NAME} initial setup is complete.

\r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './AddEditScheduler.scss'\r\nimport WizardChild from '../../WizardChild/WizardChild'\r\nimport WizardColumns from '../../WizardColumns/WizardColumns'\r\nimport {NameField, EmailField, PhoneField, IconField, ErrorDisplay} from '../../../../controls'\r\nimport '../../../../styles/icons.scss'\r\n\r\nexport default function AddEditScheduler(props){\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React from 'react'\r\nimport './Leads.scss'\r\nimport { SortableTable, SearchBar, Page, Button, ErrorDisplay} from '../../controls'\r\nimport { useLift } from '../../hooks/lift' \r\n\r\nconst columns = [\r\n 'dave',\r\n 'alice',\r\n 'carol',\r\n 'bob'\r\n]\r\n\r\nconst rows = [\r\n [ \r\n {displayName: 'bob', value: 'bob1'},\r\n {displayName: 'alice', value: 'alice1'},\r\n {displayName: 'carol', value: 'carol1'},\r\n ],\r\n [\r\n {displayName: 'bob', value: 'bob2'},\r\n {displayName: 'dave', value: 'dave2'},\r\n {displayName: 'alice', value: 'alice2'},\r\n ],\r\n [\r\n {displayName: 'carol', value: 'carol3'},\r\n {displayName: 'dave', value: 'dave3'},\r\n {displayName: 'alice', value: 'alice3'},\r\n ] \r\n]\r\n\r\nexport default function Leads(props) {\r\n const lift = useLift(\"leads\")\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\n\r\n\r\n\r\n","import React from 'react'\r\nimport { Page, Button, SortableTable, ErrorDisplay } from '../../controls'\r\nimport { useLift } from '../../hooks/lift' \r\n\r\nconst columns= ['Title', 'Actions']\r\n\r\nconst rows = [\r\n [\r\n { displayName: 'Title', value: 'Thumbtack'},\r\n { displayName: 'Actions', value:'OPEN DELETE'}\r\n ],\r\n [\r\n { displayName: 'Title', value: 'marco'},\r\n { displayName: 'Actions', value:'OPEN DELETE'}\r\n ]\r\n]\r\nexport default function LeadSources(props) {\r\n const lift = useLift(\"leadsources\")\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React from 'react'\r\nimport { Collapse, Popup, Page, SmartList, ErrorDisplay } from '../../controls'\r\nimport { useLift } from '../../hooks/lift' \r\n\r\n\r\nfunction TimeList(props){\r\n return ()\r\n}\r\n\r\nexport default function Schedulers(props){\r\n const lift = useLift(\"schedulers\")\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n \r\n

Automatically assigns the lead to the scheduler with the highest priority.

\r\n

Reassigns the lead if not claimed according to the following rules:

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Scheduler status:Move to next priority:
Not Available
Busy
Available
\r\n
\r\n \r\n
)\r\n} ","import React from 'react'\r\nimport {NavLink as Link} from 'react-router-dom'\r\nimport './NavItem.scss'\r\n\r\nexport default props => {\r\n\r\n // prevent passing certain props directly to input field.\r\n const { icon, ...restProps } = props\r\n\r\n return (\r\n \r\n
\r\n
{props.children}
\r\n \r\n )\r\n}","import React from 'react'\r\nimport NavItem from './NavItem/NavItem'\r\nimport {ROUTES} from '../../../config/routes'\r\nimport './NavBar.scss'\r\nimport '../../../styles/icons.scss'\r\n\r\nexport default props => {\r\n\r\n return (\r\n \r\n )\r\n}","import React from 'react'\r\nimport './AppFooter.scss'\r\nimport { APP_COPYRIGHT_RANGE, APP_NAME } from '../../../config/appInfo'\r\n\r\nexport default function AppFooter(props) {\r\n return (\r\n
\r\n Copyright {APP_COPYRIGHT_RANGE}. All rights reserved.  {APP_NAME} is a trademark of ProNexis.  Terms.  Privacy Policy.\r\n
\r\n )\r\n}","import React from 'react'\r\nimport './AppHeader.scss'\r\nimport { MenuButton } from '../../'\r\nimport '../../../styles/icons.scss'\r\nimport {USERMENU, HELPMENU} from '../../../config/routes'\r\n\r\nexport default function AppHeader(props) {\r\n return (\r\n
\r\n \"Lead\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n}","import React from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport './Item.scss'\r\n\r\nexport default function Item(props) {\r\n const {to, href, children, ...linkProps} = props\r\n \r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}","import React, { useState } from 'react'\r\nimport MenuItem from './Item/Item'\r\nimport { Button, Collapse } from '../../../controls'\r\n\r\nimport './MenuButton.scss'\r\n\r\nexport default function MenuButton(props) {\r\n const [open, setOpen] = useState(false)\r\n\r\n return (\r\n
open && event.preventDefault()}\r\n onBlur={() => setOpen(false)}>\r\n
\r\n setOpen(!open)}>\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {props.menu.map((data, index) => setOpen(false)} to={data.to}>{data.display})}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport {AppFooter, AppHeader, NavBar} from '../../'\r\nimport './AppFrame.scss'\r\n\r\nAppFrame.Modal = AppFrameModal\r\nexport default AppFrame\r\n\r\nfunction AppFrame(props) {\r\n return ( \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
)\r\n}\r\n\r\nfunction AppFrameModal(props) {\r\n return ( \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
)\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport default function AuthLayout(props){\r\n return ( \r\n
\r\n \r\n
)\r\n}","import React from 'react'\r\nimport {Redirect} from 'react-router-dom'\r\nimport {ROUTES} from '../../config/routes'\r\nimport {AppFrame} from '../index'\r\nimport {server} from '../../services/server'\r\n\r\nconst THIS_VARIABLE_IS_FOR_DEBUG = false\r\n\r\nexport default function AppLayout(props){\r\n if(server.isLoggedIn || THIS_VARIABLE_IS_FOR_DEBUG){\r\n if(server.isWizardOpen){\r\n return () \r\n }\r\n return ()\r\n }\r\n return ()\r\n}","import React from 'react'\r\nimport {Redirect} from 'react-router-dom'\r\nimport {AppFrame} from '../index'\r\nimport {ROUTES} from '../../config/routes'\r\nimport {server} from '../../services/server'\r\n\r\nexport default function ModalLayout(props){\r\n if(server.isLoggedIn){\r\n return ( ) \r\n }\r\n return ()\r\n}","import {Home, Business, Calendars, LeadSources, Login, Logout, Register, RegisterDone,\r\n Reset, ResetDone, Wizard, Schedulers, Leads, Profile, ProNexis, ChangePassword, TermsOfUse } from '../pages'\r\nimport {AuthLayout, AppLayout, ModalLayout} from '../layouts'\r\n\r\nlet ROUTES = {\r\n BUSINESS: '/business',\r\n HOME: '/',\r\n LEADS: '/leads',\r\n SCHEDULERS: '/schedulers',\r\n LEAD_SOURCES: '/leadsources',\r\n CALENDARS: '/calendars',\r\n LOGIN: '/login',\r\n LOGOUT: '/logout',\r\n RESET: '/reset',\r\n RESET_DONE: '/resetdone',\r\n REGISTER: '/register',\r\n REGISTER_DONE: '/registerdone',\r\n WIZARD: '/assistant',\r\n PROFILE: '/profile',\r\n CHANGE_PASSWORD: '/changepassword',\r\n HELP: '/help',\r\n CHAT: '/chat', \r\n PRONEXIS: '/pronexis',\r\n TERMS_OF_USE: './termsofuse' \r\n}\r\n\r\nexport {ROUTES};\r\n\r\nexport const ROUTE_MAP = [\r\n { path:ROUTES.BUSINESS, Component:Business, Layout:AppLayout},\r\n { path:ROUTES.LEADS, Component:Leads, Layout:AppLayout},\r\n { path:ROUTES.SCHEDULERS, Component:Schedulers, Layout:AppLayout},\r\n { path:ROUTES.LEAD_SOURCES, Component:LeadSources, Layout:AppLayout},\r\n { path:ROUTES.CALENDARS, Component:Calendars, Layout:AppLayout},\r\n { path:ROUTES.LOGIN, Component:Login, Layout:AuthLayout},\r\n { path:ROUTES.LOGOUT, Component:Logout, Layout:AuthLayout},\r\n { path:ROUTES.RESET, Component:Reset, Layout:AuthLayout},\r\n { path:ROUTES.RESET_DONE, Component:ResetDone, Layout:AuthLayout},\r\n { path:ROUTES.REGISTER, Component:Register, Layout:AuthLayout},\r\n { path:ROUTES.REGISTER_DONE, Component:RegisterDone, Layout:AuthLayout},\r\n { path:ROUTES.WIZARD, Component:Wizard, Layout:ModalLayout},\r\n { path:ROUTES.PROFILE, Component:Profile, Layout:ModalLayout},\r\n { path:ROUTES.PRONEXIS, Component:ProNexis, Layout:AppLayout},\r\n { path:ROUTES.CHANGE_PASSWORD, Component:ChangePassword, Layout:ModalLayout},\r\n { path:ROUTES.TERMS_OF_USE, Component:TermsOfUse, Layout:AuthLayout},\r\n/* { path:ROUTES.HELP, Component:Help},\r\n { path:ROUTES.CHAT, Component:Chat},\r\n */\r\n\r\n /* alwasy keep this one as the last one */\r\n { path:ROUTES.HOME, Component:Home, Layout:AppLayout}\r\n]\r\n\r\n// menu button mappings\r\nexport const USERMENU = [\r\n {display:'My Information', to: ROUTES.PROFILE },\r\n {display:'Change Password', to: ROUTES.CHANGE_PASSWORD },\r\n {display:'Log Out', to: ROUTES.LOGOUT } \r\n]\r\n\r\nexport const HELPMENU = [\r\n {display:'Setup Assistant', to: ROUTES.WIZARD },\r\n {display:'How Do I...', to: ROUTES.HELP},\r\n {display:'Live Chat', to: ROUTES.CHAT}\r\n]","import React, { useState } from 'react'\r\nimport uid from '../../services/uid'\r\nimport './Calendars.scss'\r\nimport { Page, HorizontalRule, Button, ErrorDisplay } from '../../controls'\r\nimport AutoIntegrationForm from './AutoIntegrationForm/AutoIntegrationForm'\r\nimport { CRMIntegrations } from '../../config/CRMIntegrations'\r\nimport { useLift } from '../../hooks/lift' \r\n\r\n\r\nexport default function Calendars(props) {\r\n //DUMMY_INTEGRATION_DATA\r\n const [integrations, setIntegrations] = useState([])\r\n const lift = useLift(\"calendars\") \r\n\r\n function handleChange(event, integrationIndex){\r\n\r\n //if the integration type changes,\r\n //handle it separately\r\n if(event.target.name === 'type')\r\n return (handleIntegrationTypeChange(event, integrationIndex), undefined) \r\n\r\n event.preventDefault()\r\n\r\n const eventTarget = event.target\r\n\r\n setIntegrations(prevState => {\r\n let newState = [...prevState]\r\n newState[integrationIndex][eventTarget.name] = eventTarget.value\r\n return newState\r\n })\r\n }\r\n\r\n function handleIntegrationTypeChange(event, integrationIndex){\r\n event.preventDefault()\r\n const eventTarget = event.target\r\n const newType = eventTarget.value\r\n\r\n const integration = CRMIntegrations.find(integ => integ.type === newType)\r\n \r\n\r\n setIntegrations(prevState => {\r\n const newState = [...prevState]\r\n console.log([...newState])\r\n newState[integrationIndex].type = newType\r\n \r\n //make sure state has a value\r\n //for each field in this integration type\r\n for (const field of integration.requiredFields){\r\n newState[integrationIndex][field.name] = prevState[integrationIndex][field.name] || field.defaultValue\r\n }\r\n\r\n return newState\r\n })\r\n }\r\n\r\n function handleDelete(event, integrationIndex){\r\n event.preventDefault()\r\n\r\n setIntegrations(prevState => {\r\n let newState = [...prevState]\r\n newState.splice(integrationIndex, 1)\r\n return newState\r\n })\r\n }\r\n\r\n function newIntegration(){\r\n const defaultIntegration = {\r\n internalID: uid(),\r\n type: CRMIntegrations[0].type\r\n }\r\n\r\n for (const field of CRMIntegrations[0].requiredFields){\r\n defaultIntegration[field.name] = field.defaultValue || ''\r\n }\r\n\r\n setIntegrations(prevState => [\r\n ...prevState,\r\n defaultIntegration\r\n ])\r\n }\r\n\r\n return (\r\n \r\n \r\n { integrations.map((integ, i) => \r\n handleChange(event, i)} \r\n onDelete={event => handleDelete(event, i)} \r\n fieldValues={integrations[i]} \r\n {...integ}\r\n />\r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, {useState, useEffect} from 'react'\r\nimport { Redirect } from \"react-router-dom\";\r\nimport '../../../styles/icons.scss'\r\nimport {EmailField, PasswordField, IconLink, IconButton, ErrorDisplay, CheckBox} from '../../../controls'\r\nimport AuthPage from '../AuthPage/AuthPage'\r\nimport { server } from '../../../services/server';\r\nimport { useLift } from '../../../hooks/lift';\r\nimport {ROUTES} from '../../../config/routes'\r\nimport {APP_NAME} from '../../../config/appInfo'\r\n\r\n\r\n\r\n// This is the login page..\r\nexport default function Login(props){\r\n const [redirect, setRedirect] = useState(null);\r\n const lift = useLift(\"login\");\r\n\r\n useEffect(\r\n () => {\r\n let saved = localStorage.getItem(\"remember\") \r\n lift.setValue(\"remember\", saved)\r\n if(saved){\r\n let email = localStorage.getItem(\"email\") \r\n if(email && email.length > 0){\r\n lift.setValueAndValid(\"email\", email, true)\r\n }\r\n } \r\n },\r\n [lift],\r\n )\r\n\r\n function login() {\r\n\r\n // handle the remember me stuff\r\n let remember = lift.getValue(\"remember\");\r\n let email = lift.getValue(\"email\") \r\n\r\n // save the remember state first\r\n if(remember) localStorage.setItem(\"remember\", true)\r\n else localStorage.removeItem(\"remember\")\r\n // then save or clear the email as appropriate\r\n if(remember) localStorage.setItem(\"email\", email)\r\n else localStorage.removeItem(\"email\")\r\n\r\n // and then do the login\r\n if(server.login(email, lift.getValue(\"password\"), (e)=>lift.setError(e))){\r\n setRedirect(props.redirect ? props.redirect:ROUTES.HOME);\r\n }\r\n }\r\n\r\n if(redirect) return ()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n} \r\n\r\n\r\n","import React from 'react'\r\nimport '../../../styles/icons.scss'\r\nimport {IconLink} from '../../../controls'\r\nimport AuthPage from '../AuthPage/AuthPage'\r\nimport {ROUTES} from '../../../config/routes'\r\nimport {APP_NAME} from '../../../config/appInfo'\r\nimport {server} from '../../../services/server'\r\n\r\n// Page notifying user that they have logged out\r\nexport default function Logout(props){\r\n\r\n server.logout();\r\n \r\n return (\r\n \r\n

You have logged out of {APP_NAME}.

\r\n \r\n
)\r\n}","import React, {useState} from 'react'\r\nimport { Redirect } from \"react-router-dom\";\r\nimport '../../../styles/icons.scss'\r\nimport {EmailField, IconLink, IconButton, ErrorDisplay} from '../../../controls'\r\nimport { server } from '../../../services/server'\r\nimport AuthPage from '../AuthPage/AuthPage'\r\nimport {ROUTES} from '../../../config/routes'\r\nimport { useLift } from '../../../hooks/lift';\r\n\r\n// This is the sign up page..\r\nexport default function Reset(props){\r\n const [redirect, setRedirect] = useState(null);\r\n const lift = useLift(\"reset\");\r\n\r\n function reset() {\r\n if(server.resetPassword(lift.getValue(\"email\"), (e)=>lift.setError(e))){\r\n setRedirect(ROUTES.RESET_DONE);\r\n }\r\n }\r\n\r\n if(redirect) return () \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React from 'react'\r\nimport '../../../styles/icons.scss'\r\nimport {IconLink} from '../../../controls'\r\nimport AuthPage from '../AuthPage/AuthPage'\r\nimport {ROUTES} from '../../../config/routes'\r\n\r\n// Page notifying user that a password reset email was sent\r\nexport default function ResetDone(props){\r\n return (\r\n \r\n

If the email was for a registered user, password reset information has been sent.

\r\n \r\n
)\r\n}","import React, {useState} from 'react'\r\nimport { Redirect } from \"react-router-dom\";\r\nimport '../../../styles/icons.scss'\r\nimport {EmailField, PasswordField, IconLink, IconButton, ErrorDisplay} from '../../../controls'\r\nimport { server } from '../../../services/server'\r\nimport { useLift } from '../../../hooks/lift'\r\nimport AuthPage from '../AuthPage/AuthPage'\r\nimport {ROUTES} from '../../../config/routes'\r\n\r\n\r\n// This is the corporate registration page..\r\nexport default function Register(props){\r\n const [redirect, setRedirect] = useState(null);\r\n const lift = useLift(\"register\"); \r\n\r\n function register() {\r\n if(server.register(lift.getValue(\"email\"), lift.getValue(\"password\"), (e)=>lift.setError(e))){\r\n setRedirect(ROUTES.REGISTER_DONE)\r\n }\r\n }\r\n\r\n if(redirect) return () \r\n\r\n // validate the second password field against the first field\r\n lift.setValidNoTrigger(\"password2\", (lift.getValue(\"password\") === lift.getValue(\"password2\")))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

By registering, you agree to the terms of service.

\r\n
)\r\n}","import React from 'react'\r\nimport '../../../styles/icons.scss'\r\nimport {IconLink} from '../../../controls'\r\nimport AuthPage from '../AuthPage/AuthPage'\r\nimport {ROUTES} from '../../../config/routes'\r\nimport {APP_NAME} from '../../../config/appInfo'\r\n\r\n// Page notifying user that they successfully registered\r\nexport default function RegisterDone(props){\r\n return (\r\n \r\n

Congratulations! Your company is now registered for {APP_NAME}.

\r\n \r\n
)\r\n}","import React, {useState} from 'react'\r\nimport { Redirect } from \"react-router-dom\";\r\nimport './Wizard.scss'\r\nimport {Page, IconButton} from '../../controls'\r\nimport {config, config_end} from './config'\r\nimport {ROUTES} from '../../config/routes'\r\nimport '../../styles/icons.scss'\r\nimport {server} from '../../services/server'\r\nimport { useLift } from '../../hooks/lift';\r\n\r\n// This is the wizard (Setup Assistant) page\r\n// it manages all of the child wizard pages using data from config.js\r\nexport default function Wizard(props){\r\n const [pageNum, set] = useState(0)\r\n const [slide, setSlide] = useState(\"left\")\r\n const [redirect, setRedirect] = useState(props.redirect);\r\n const lift = useLift(config[pageNum].record );\r\n\r\n // this causes a move to the previous child\r\n // can be called from the buttons on the wizard, or through callback hook in child\r\n function prev(){ \r\n setSlide(\"right\");\r\n \r\n // if there is a designated prev page, go to that\r\n if(config[pageNum].prevPage){\r\n jump(config[pageNum].prevPage)\r\n return\r\n }\r\n let prevPage=pageNum;\r\n if(prevPage !== 0){ \r\n prevPage--;\r\n // if the conditons for no longer displaying that page are true, skip it\r\n let autoSkip = config[prevPage].autoSkip\r\n if(autoSkip && autoSkip()) prevPage--;\r\n set(prevPage)\r\n }\r\n }\r\n\r\n // closes the wizard\r\n function close(){\r\n // if the save fails, ignore, because they were closing anyway\r\n lift.save();\r\n\r\n // tell the server we are closing so the wizard won't pop back up automatically\r\n server.closeWizard();\r\n\r\n // if this is the last page, go to the page the user was previously on, or the home page\r\n // setRedirect(redirect ? redirect: ROUTES.HOME)\r\n setRedirect(ROUTES.HOME);\r\n }\r\n\r\n function save(){\r\n // save the old\r\n return lift.save()\r\n }\r\n \r\n // this causes a move to the next child\r\n // can be called from the buttons on the wizard, or through callback hook in child \r\n function next(){ \r\n\r\n // if we are at the close page, close the wizard\r\n // save would have happened on previous page\r\n if(pageNum === config_end){ close(); return }\r\n\r\n setSlide(\"left\")\r\n // if there is a designated next page, go to that\r\n if(config[pageNum].nextPage){\r\n jump(config[pageNum].nextPage)\r\n return\r\n }\r\n\r\n // if we fail on the save, don't go to the next page\r\n if(!save()) return\r\n\r\n // otherwise, go to the next page\r\n let nextPage=pageNum + 1\r\n // if the conditions for no longer displaying that page are true, skip it\r\n let autoSkip = config[nextPage].autoSkip \r\n if(autoSkip && autoSkip()) nextPage++;\r\n \r\n set(nextPage)\r\n } \r\n\r\n // this can be used to jump to a page (usually one beyond the end)\r\n function jump(child_name){\r\n const page = config.findIndex(element => element.name === child_name)\r\n\r\n // if the save fails, don't go on\r\n if(!save()) return \r\n\r\n set(page)\r\n }\r\n\r\n function jumpNext(child_name){\r\n setSlide(\"left\")\r\n jump(child_name)\r\n }\r\n\r\n function skip(){ next() }\r\n\r\n function renderSkipButton(skippable){\r\n if(skippable) return (\r\n <> \r\n
\r\n )\r\n }\r\n\r\n if(redirect) return ()\r\n \r\n let Child = config[pageNum].Component\r\n let nextText = config[pageNum].nextText || \"Next\";\r\n let prevText = config[pageNum].prevText || \"Previous\";\r\n \r\n return (\r\n \r\n jumpNext(c)}/>\r\n
\r\n {pageNum !== 0 && }\r\n
\r\n {renderSkipButton(config[pageNum].skippable)} \r\n \r\n
\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { useHistory} from \"react-router-dom\";\r\nimport {Page, FieldsBox, FieldsRow, ErrorDisplay, NameField, PhoneField, IconButton} from '../../controls'\r\nimport { server } from '../../services/server'\r\nimport { useLift } from '../../hooks/lift' \r\n\r\nexport default function Profile(props) {\r\n const lift = useLift(\"user\")\r\n let history = useHistory();\r\n\r\n function close(){ history.goBack() }\r\n\r\n function save(){\r\n if(lift.save()){ \r\n close()\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {server.phoneVerified() ? \r\n \"Your phone number has been verified.\" :\r\n \"We will send a code to your phone.\"} \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
)\r\n}\r\n\r\n","import React from 'react'\r\nimport {Page} from '../../controls'\r\n\r\nexport default function ProNexis(props){\r\n return (\r\n \r\n ProNexis\r\n )\r\n} ","import React from 'react'\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {Page, PasswordField, IconButton, FieldsBox, FieldsRow, ErrorDisplay} from '../../controls'\r\nimport { server} from '../../services/server'\r\nimport { useLift } from '../../hooks/lift' \r\nimport '../../styles/global.scss'\r\n\r\nexport default function ChangePassword(props) {\r\n const lift = useLift(\"changepassword\");\r\n let history = useHistory();\r\n\r\n function close(){\r\n history.goBack();\r\n }\r\n\r\n function change(){\r\n if(server.changePassword(lift.getValue(\"password\"), (e)=>lift.setError(e))){\r\n close();\r\n }\r\n }\r\n\r\n // validate the second password field\r\n lift.setValidNoTrigger(\"password2\", (lift.getValue(\"password\") === lift.getValue(\"password2\")))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
)\r\n}","import React from 'react'\r\nimport './TermsOfUse.scss'\r\nimport { Collapse, Header, Page } from '../../controls'\r\n\r\nexport default function TermsOfUse(props) {\r\n\r\n return (\r\n \r\n Terms of Use}\r\n >\r\n Do. Or do not. There is no try.\r\n \r\n Privacy Policy}\r\n >\r\n You can keep your data, we're only after your heart.\r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport {Switch, Route, BrowserRouter as Router} from 'react-router-dom'\r\nimport {ROUTE_MAP} from './config/routes'\r\nimport {APP_NAME} from './config/appInfo'\r\nimport './styles/global.scss'\r\nimport './App.scss'\r\n\r\n// set the name of the application\r\ndocument.title = APP_NAME;\r\n\r\nfunction renderRoute(entry, index){\r\n let Layout = entry.Layout;\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default props => {\r\n return (\r\n \r\n \r\n {ROUTE_MAP.map((entry, i) => renderRoute(entry, i))} \r\n \r\n \r\n )\r\n} \r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App'\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);"],"sourceRoot":""}