{"version":3,"sources":["Components/TabHeader/TabHeader.jsx","Components/Tables/PlaceholderTable.jsx","Components/Login/PasswordInstructions.jsx","Components/Forms/UserForm.jsx","Components/Forms/SiteForm.jsx","Util.js","Components/Forms/NotificationForm.jsx","Components/Forms/ProviderForm.jsx","Components/Admin/DuplicateUsernameModal.jsx","Components/Login/PasswordInstructionsError.jsx","Components/Login/RequiredFieldsError.jsx","Components/Modals/ProviderError.jsx","Components/Modals/SiteError.jsx","Components/Admin/DuplicateSiteNameModal.jsx","Components/Modals/AdminModals.jsx","Components/Dashboard/Dashboard.jsx","Containers/LogoutTimeout.jsx","Context/PointsContext.jsx","Context/AIContext.jsx","Context/BaseObjectContext.jsx","Components/Sidebar/EventsSidebar.jsx","Services/functions.js","Components/Interface/NotCollection.jsx","Components/Interface/IsCollection.jsx","Components/Forms/DynamicForm.jsx","Components/Interface/ProgressBar.jsx","Components/Forms/NewSID.jsx","Components/Forms/NewCommunitySID.jsx","Components/Forms/SearchForm.jsx","Components/Modals/NotesModal.jsx","Components/Forms/Notes.jsx","Components/Modals/SyringesChart.jsx","Components/Modals/EventsModals.jsx","Components/ParticipantHeader/ParticipantHeader.jsx","Components/Interface/Interface.jsx","Context/APIProgressContext.jsx","Components/Admin/UserAdmin.jsx","Components/Modals/NotificationModal.jsx","Components/Sidebar/NotificationsList.jsx","Components/Modals/NotificationsListModal.jsx","Components/Header/Header.jsx","Components/Events/Base.jsx","Components/Events/BaseRecords.jsx","Components/Events/Events.jsx","Components/Reports/Reports.jsx","Components/BiReporting/index.js","Components/Sidebar/SidebarPanes.jsx","Components/Sidebar/Sidebar.jsx","Components/Admin/SiteAdmin.jsx","Components/Admin/NotificationAdmin.jsx","Components/Admin/DuplicateProviderLoginModal.jsx","Components/Admin/ProviderAdmin.jsx","Containers/Main.jsx","Components/Login/PasswordConfirm.jsx","Components/Login/PasswordConfirmError.jsx","Components/Login/LoginForm.jsx","Components/Login/TwoFactor.jsx","Components/ReferralCapture/ReferralConfirm.jsx","Components/ReferralCapture/ReferralCapture.jsx","Global/config.js","Components/Modals/QaWarningModal.jsx","Containers/Login.jsx","Components/ReferralCapture/ReferralContainer.jsx","App.js","index.js"],"names":["TabHeader","titleLeft","titleRight","Fragment","Segment","Group","horizontal","style","boxShadow","border","marginTop","backgroundColor","compact","inline","textAlign","basic","padding","marginBottom","undefined","Divider","catchFilterError","filter","row","id","pivotId","String","toLowerCase","startsWith","value","filterCaseInsensitive","error","console","log","PlaceholderTable","props","float","button","search","modal","defaultFilterMethod","className","data","columns","showPagination","defaultPageSize","pageSizeOptions","Number","recordCount","sortable","filterable","fontWeight","scramblerID","smartID","dateRange","PasswordInstructions","open","context","password","Popup","size","position","Content","List","Header","Item","display","alignItems","Icon","test","color","name","UserForm","changeConfirmReset","setState","confirmReset","state","changeConfirmDelete","confirmDelete","buttonColor","newUser","siteOptions","this","handleNewUser","handleNewUserPhone","user","userRoleOptions","editUser","handleUserChange","handleUserPhoneChange","deleteUser","resetUserPassword","resetSuccess","render","React","Component","NewUser","passwordInstructionsOpen","contextRef","createRef","Form","widths","Input","label","firstName","onChange","lastName","width","userName","email","inputComponent","phone","Dropdown","selection","placeholder","options","role","Ref","innerRef","ref","type","onFocus","onBlur","EditUser","site","dividing","Button","animated","inverted","disabled","left","right","onClick","hidden","visible","SiteForm","newSite","handleNewSite","editSite","handleSiteChange","deleteSite","NewSite","description","contactName","contactEmail","contactPhone","event","EditSite","url","key","setCookie","cname","cvalue","exdays","d","Date","setTime","getTime","expires","toUTCString","document","cookie","getCookie","ca","split","i","length","c","charAt","substring","indexOf","validateEmail","validatePhone","replace","NotificationForm","newNotification","notification","handleNotificationChange","handleNewNotification","getNotifications","editNotification","NewNotification","sub","notificationStatus","paddingLeft","TextArea","height","control","content","EditNotification","Checkbox","toggle","checked","ProviderForm","provider","handleProviderChange","handleProviderTypeChange","getProviders","handleClose","providerRow","showPinInput","Provider","getProviderTypes","axios","method","headers","api_key","AccessToken","then","res","providerTypes","map","text","catch","err","genPin","providerType","params","pin","deleteProvider","confirmMessage","phoneNumber","token","login","transparent","readOnly","Select","multiple","required","marginLeft","marginRight","DuplicateUsernameModal","close","onClose","PasswordInstructionsError","RequiredFieldsError","checkPass","bulleted","ProviderError","SiteError","DuplicateSiteNameModal","AdminModals","handleModal","userID","siteID","notificationID","providerID","setSite","getUser","getNotification","getProvider","handleSubmit","a","buttonText","submitUser","getUsers","passwordInstructionsErrorOpen","newUserRequiredFieldsErrorOpen","userRequiredFieldsErrorOpen","submitSite","siteErrorOpen","submitNotification","newProvider","postProvider","providerErrorOpen","e","getSites","btoa","response","status","duplicateUsernameModal","duplicateSiteNameModal","newSiteErrorOpen","trigger","closeOnDocumentClick","closeOnDimmerClick","siteRow","userRow","notificationRow","Actions","DoughnutChart","require","Doughnut","BarChart","Bar","Dashboard","fetchReportType","reportType","param","dateStart","dateEnd","getGenderChart","start","today","siteId","chart1","getReferralChart","chart2","getSubstancesChart","chart3","date","mm","getMonth","dd","getDate","yyyy","getFullYear","yearPrevious","profile","prevState","prevProps","genderPie","referralBar","styleName","substanceBar","substance","gender","referral","thing","getRandomColor","shades","used","letters","Math","floor","random","getAllRandomColor","selIndex","push","AppLogout","PieChart","report","results","forEach","result","values","dataSegment","yVal","xVal","Dimmer","active","Loader","DynamicBarChart","barData","labels","dataSets","dataSetValues","_","includes","newDataSet","fillColor","datasets","scaleBeginAtZero","scaleShowHorizontalLines","barValueSpacing","PointsContext","createContext","PointsContextProvider","points","totalPoints","changedPoints","children","PointsContextConsumer","Consumer","AIContext","AIContextProvider","runAITask","aiTasks","elements","element","baseObject","aiTaskResponse","activeIndex","baseID","BaseObjectContext","BaseObjectProvider","validateField","elementID","requirements","invalidFields","find","validation","req","regEx","v","valid","RegExp","invalidField","index","findIndex","splice","componentDidUpdate","inputData","baseInputData","instanceID","records","record","recordInput","concat","isLoading","activeComponent","isEmpty","postNewParticipant","sid","updateCounter","toString","newParticipant","historyID","dateRecorded","notes","startNewEventRecord","communityID","newCommunity","newRecordInstance","userRecorded","getRecordInput","postEventRecord","dateValue","getRecords","recordID","baseInput","recordInputs","setActiveComponent","onDateChange","seq","findRecord","_d","newDate","optionID","handleCollectionSubmission","modalType","collectionValues","newInputData","findFilter","foundFilter","val","found","elementid","foundValue","findBase","newElement","isInteger","removeCollectionElements","sequenceToCompair","item","difference","without","Object","entries","addUpdateBaseNotes","functionType","contentType","newNote","noteToAdd","moment","format","addNote","updatedNote","baseNote","changeNoteStatus","updateSmartID","updatedSmartID","baseObj","deleteRecord","deleteRecordInstance","checkBaseObjectRecords","BaseObjectConsumer","clearTimer","warnTimer","clearTimeout","logoutTimer","setTimer","setTimeout","warn","warningTime","logout","signoutTime","resetTimer","warningModal","destroyTimer","events","window","removeEventListener","location","reload","addEventListener","EventsSidebar","componentDidMount","panes","handleChange","setActiveIndex","Tab","menu","fluid","vertical","tabular","grid","paneWidth","tabWidth","renderActiveOnly","interfaces","onTabChange","integerKeyDown","preventDefault","stopPropagation","NotCollection","isReadOnly","useState","loading","form","setValues","prevValueRef","useRef","current","useEffect","getPoints","inputCheck","flatMap","findInvalid","showPopup","message","updateDropdownField","set","blurred","updateField","target","getElementById","Field","uniqueId","o","tabIndex","openOnFocus","Radio","defaultValue","onKeyDown","updateDate","isClearable","selected","customInput","mask","keepCharPositions","guide","minHeight","Label","createQuestionsWithProps","verticalOffset","numberInputRef","IsCollection","initiateDelete","tableState","newRow","numberRef","createCollectionElements","collectionElements","newElements","clone","collection","newInput","tableData","j","assign","elementValue","findElementValue","sorted","sortBy","grouped","groupBy","s","newTableState","createTableData","el","editOpen","modalOpen","handleBlur","elId","handleInputRef","foundElement","foundProperties","newSeq","newestRow","isComplete","findValue","r","newValue","isString","reduce","acc","handleModalOpen","newRowElements","isChecked","findNegative","findNewRowElement","resetFilter","handleModalClose","argument","returnValue","isArray","handleEditClose","previousValues","newValues","newRowState","handleEditOpen","findNumberRef","findCheckedState","isDisabled","createCollectionWithPropsTable","responses","negative","positive","checkElementValues","collectionErrorOpen","Table","verticalAlign","celled","selectable","striped","Row","HeaderCell","Body","Cell","changeTableState","cell","properties","modalChange","secondary","raised","DynamicForm","isCollection","forceRerender","checkedElements","Set","add","iterator","entry","paneLength","renderDynamicButtonText","setBaseActiveIndex","displayInvalidMessage","primary","saveDynamicForm","ProgressBar","Progress","total","progress","percent","round","genderOptions","dateOptions","NewSID","createSID","concatSID","toUpperCase","toggleConfirmPost","FIFN","FILN","MMFN","MMLN","MONTH","YEAR","GCODE","formHeader","yearOptions","yearStart","yearEnd","year","numberOfYears","createYearOptions","maxLength","autoComplete","NewCommunitySID","lookup","countyCode","typeCode","specifyingCode","SearchForm","dateFrom","dateTo","findSmartIDstate","recordType","findSmartID","icon","onFromChange","placeholderText","onToChange","updateSIDValue","cancelFindSmartID","contextType","EditNotesModal","renderNoteStatusButton","note","labelPosition","floated","closeIcon","subheader","Notes","toggleNotes","notesDisplay","styles","listItemDismissed","textDecoration","listItemActive","ordered","autoHeight","onInput","LineChart","Line","SyringesChart","participantID","setData","lineData","setLineData","end","parm","baseURL","getReport","x","strokeColor","pointColor","pointStrokeColor","pointHighlightFill","pointHighlightStroke","flexDirection","redraw","EventsModals","confirmPost","handleSearch","searchError","DateFrom","localStorage","setItem","DateTo","JSON","parse","getItem","minWidth","iconButton","storedDateFrom","storedDateTo","baseType","hideActions","ParticipantHeader","navigateToBase","openBackModal","backModal","closeBackModal","relaxed","interfaceScreen","showGraph","as","Interface","getInterfaces","interfaceID","renderAnsweredDynamicSidebar","saveTextArea","eventNote","pointSource","pointsArrays","uiSet","pointElements","filteredValues","combined","currentPoints","some","navigation","panesLength","uiSets","menuItem","Pane","attached","updateBaseNotes","updateBaseObject","postNewRecord","Responsive","NavigationBar","APIContext","APIContextProvider","inProgress","finished","apiProgressCounter","APIContextConsumer","UserAdmin","users","sites","makeOptions","makeRoleOptions","parseInt","accessor","original","createdOn","toLocaleDateString","Modal","clear","background","paddingTop","EditNotificationsModal","renderNotificationStatusButton","clearing","changeNotificationStatus","NotificationsList","updateNotifications","listNotifications","toggleNotifications","notificationDisplay","showDismissed","notificationsList","justifyContent","fontSize","notificationCount","closePopup","cursor","zIndex","opacity","Boolean","viewMore","divided","dissmissed","flexBasis","NotificationsListModal","handleButtonClick","Title","src","alt","title","Profile","circular","Card","on","hideOnScroll","Notifications","handleOpen","isOpen","toggleNotificationsListModal","showNotificationsListModal","checkNotifications","showBadge","wide","onOpen","slice","Settings","closeOnChange","Menu","Base","getRecordType","openConfirmDelete","idToDelete","recordTypeID","deleteErrorModal","stringify","accept","eventType","storedScramblerID","storedSmartID","col","arr","keys","mostRecentVisit","recentRecordDate","firstVisit","firstRecordDate","column","ModalElement","BaseRecords","notify","toast","info","POSITION","BOTTOM_RIGHT","getRecord","checkProperty","field","fieldOrDescription","eventDate","autoClose","Events","renderRightHeader","renderLeftTitle","rightHeader","baseRecord","baseRecords","Reports","createColumns","keyLength","reportModal","details","substanceOptions","modalDetails","errorResponse","onSiteChange","onFilterChange","runReport","isObject","reportID","openReport","stop","centered","Description","BiReporting","iframeUrl","setIframeUrl","dashboardPane","pane","borderRadius","eventsPane","leftFooter","reportsPane","biReportingPane","SidebarPanes","tabletEventsPane","tabletSidebarPanes","Sidebar","activeBaseIndex","onlyTablet","SiteAdmin","NotificationAdmin","toggleDeleteError","confirm","delete","deleteNotification","getUserNotifications","notifications","userNotifications","DuplicateProviderLoginModal","ProviderAdmin","providers","duplicateProviderLoginModal","Main","component","removeItem","newInterfacesArray","getPanes","lastLogin","setBaseObjectState","newBaseObject","updatedObject","recordData","submitDynamicForm","pushRecord","getProfile","handleLogout","handleOnUpdate","fireOnMount","onUpdate","history","Meta","organization","getPointsAndElements","PasswordConfirm","PasswordConfirmError","LoginForm","match","path","penCode","pathname","confirmPassword","resetError","changePassword","passwordConfirmErrorOpen","loggedIn","forgotPass","changePass","username","auth","resetPass","passwordConfirmOpen","confirmContextRef","iconPosition","margin","passwordReset","setChangeForgotPass","TwoFactor","code","twoFactor","handleNewCode","newCodeSent","href","ReferralConfirm","refCode","ReferralCapture","passkey","referralSuccess","visibility","pointing","submitReferral","QaWarningModal","host","setOpen","Login","option","setError","passChangeSuccess","appVersion","version","Grid","Column","process","padded","bottom","ReferralContainer","App","getAppInfo","Accept","app_Version","currentVersion","appLoading","apiError","refcode","isAcceptedBrowser","appError","toMatchItem","navigator","userAgent","detectMob","browserInfo","browser","versionNumber","top","ReactDOM"],"mappings":"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","file":"static/js/main.f2e9732d.chunk.js","sourcesContent":["import React from 'react';\nimport {Segment, Divider} from 'semantic-ui-react';\n\nexport const TabHeader = ({ titleLeft, titleRight }) => {\n return (\n \n \n \n \n {titleLeft !== undefined ?

{titleLeft}

: null}\n
\n \n \n \n {titleRight !== undefined ?

{titleRight}

: null}\n
\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { Segment } from 'semantic-ui-react';\nimport ReactTable from 'react-table';\n\nfunction filterCaseInsensitive(filter, row) {\n if(row !== undefined) {\n const id = filter.pivotId || filter.id;\n let returnedFilter;\n\n return (\n row[id] !== undefined && row[id] !== null ?\n String(row[id].toLowerCase()).startsWith(filter.value.toLowerCase())\n :\n true\n );\n }\n}\n\nfunction catchFilterError(filter, row) {\n try {\n return filterCaseInsensitive(filter, row);\n } catch (error) {\n console.log(error);\n }\n}\n\nconst PlaceholderTable = props => (\n\n \n { console.log( 'props: ', props ) }\n
{props.button}{props.search}{props.modal}
\n \n
\n

{`Record Count: ${props.recordCount} ${ props.scramblerID ? `for Scrambler ID ${ props.scramblerID }` : props.smartID ? `for Smart ID ${ props.smartID }` : props.dateRange !== undefined ? `for date range ${ props.dateRange }` : '' }` }

\n
\n
\n);\n\nexport default PlaceholderTable;\n","import React from 'react';\nimport { Icon, List, Popup } from 'semantic-ui-react';\n\nconst PasswordInstructions = ({ open, context, password }) => {\n return (\n \n \n \n Password must be at least 8 characters in length and include the following:\n
\n \n \n \n  \n One uppercase letter\n \n \n \n  \n One lowercase letter\n \n \n \n  \n One numeric digit\n \n \n /?-]+.*)$/.test( password ) ? null : 'mini' }\n color={ password && /(.*[`~!#$%^&*()_=+[\\]{}\\\\|;:’“,<.>/?-]+.*)$/.test( password ) ? 'green' : null }\n name={ password && /(.*[`~!#$%^&*()_=+[\\]{}\\\\|;:’“,<.>/?-]+.*)$/.test( password ) ? 'check' : 'circle' }\n />\n  \n One special character\n \n \n
\n
\n \n );\n}\n\nexport default PasswordInstructions;\n","import React, { useRef, useState } from 'react';\nimport { Form, Header, Dropdown, Button, Icon, Input, Ref } from 'semantic-ui-react';\nimport PhoneInput from \"react-phone-input-auto-format\";\nimport PasswordInstructions from '../Login/PasswordInstructions';\n\nexport class UserForm extends React.Component {\n constructor(props) {\n super(props);\n this.state = { buttonColor: 'yellow', confirmDelete: false, confirmReset: false };\n }\n\n changeConfirmReset = () => {\n this.setState({confirmReset: !this.state.confirmReset});\n }\n\n changeConfirmDelete = () => {\n this.setState({confirmDelete: !this.state.confirmDelete});\n }\n\n\n render() {\n const newUser = (\n \n );\n const editUser = (\n \n );\n return (\n \n {this.props.render({\n newUser: newUser,\n editUser: editUser,\n })}\n \n );\n }\n}\n\nclass NewUser extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n passwordInstructionsOpen: false\n };\n this.contextRef = React.createRef();\n }\n\n render() {\n return (\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n\n \n \n this.contextRef = ref }>\n {\n this.setState({ passwordInstructionsOpen: true });\n }}\n onBlur={ () => this.setState({ passwordInstructionsOpen: false }) }\n />\n \n \n \n \n \n \n \n );\n }\n};\n\nconst EditUser = props => {\n return (\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Reset Password
\n \n \n \n { props.resetSuccess == true ?\n 'Email Link Sent' :\n \n }\n \n \n
Delete User
\n \n \n \n \n \n \n
\n );\n};\n","import React from 'react';\nimport { Form, Header, Button, Icon } from 'semantic-ui-react';\nimport PhoneInput from \"react-phone-input-auto-format\";\n\nexport class SiteForm extends React.Component {\n constructor (props) {\n super(props);\n this.state = { confirmDelete: false};\n }\n\n changeConfirmDelete = () => {\n this.setState({confirmDelete: !this.state.confirmDelete});\n }\n\n render() {\n const newSite = (\n \n );\n const editSite = (\n \n );\n return (\n \n {this.props.render({\n newSite: newSite,\n editSite: editSite,\n })}\n \n );\n }\n}\n\nexport class NewSite extends React.Component {\n constructor(props) {\n super(props);\n\n\n }\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n this.props.handleNewSite(event, {name})}\n />\n \n \n );\n}};\n\nconst EditSite = props => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n props.handleSiteChange(event, {name})}\n />\n \n
Delete Site
\n \n \n \n \n \n \n
\n );\n};\n","\nexport const url = 'https://sspapi.azurewebsites.net/';\n// export const url = 'http://localhost:53966/';\nexport const key = 'SVNESFNTUEFkbWluOlpRdTM2U2V1Zlo4SGFKRw==';\n\nexport function formatDate(date) {\n if (date !== undefined) {\n let split = date.split('T', 1).toString();\n let resplit = split.split('-');\n let flip = resplit.reverse();\n let newDate = flip.join('/');\n return newDate;\n }\n}\n\nexport function setCookie(cname, cvalue, exdays) {\n var d = new Date();\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\n var expires = 'expires=' + d.toUTCString();\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n}\n\nexport function getCookie(cname) {\n var name = cname + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n}\n\nexport function checkCookie(name) {\n var name = getCookie(name);\n if (name != '') {\n return name;\n } else {\n console.log('unauthorized');\n }\n}\n\nexport const validateEmail = value => {\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test( value );\n};\n\nexport const validatePhone = value => {\n if ( value ) {\n return /^[0-9]{10}$/.test( value.replace( /[^0-9]/g, '' ) );\n }\n\n return false;\n};","import React from 'react';\nimport { Form, Header, Button, Icon, TextArea } from 'semantic-ui-react';\n\nexport class NotificationForm extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const newNotification = (\n \n );\n\n const editNotification = (\n \n );\n return (\n \n {this.props.render({\n newNotification: newNotification,\n editNotification: editNotification,\n })}\n \n );\n }\n}\n\nconst NewNotification = props => {\n return (\n \n
\n \n Notification ID: {props.notification.id}\n
\n Notification Status:\n {props.notification.notificationStatus === 12 ? (\n \n {' '}\n Active{' '}\n

\n ) : (\n \n {' '}\n Disabled{' '}\n

\n )}\n
\n
\n
\n \n
\n );\n};\n\nconst EditNotification = props => {\n return (\n \n
\n \n Notification ID: {props.notification.id}\n
\n Notification Status:\n {props.notification.notificationStatus === 12 ? (\n \n {' '}\n Active{' '}\n

\n ) : (\n \n {' '}\n Disabled{' '}\n

\n )}\n
\n
\n
\n \n \n
\n );\n};\n","import React from 'react';\nimport {\n Form,\n Header,\n Button,\n Icon,\n TextArea,\n Segment,\n} from 'semantic-ui-react';\nimport PhoneInput from 'react-phone-input-auto-format';\nimport { key, url, getCookie } from '../../Util';\nimport axios from 'axios';\n\nexport class ProviderForm extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const provider = (\n \n );\n\n return (\n \n {this.props.render({\n provider,\n })}\n \n );\n }\n}\n\nexport class Provider extends React.Component {\n constructor(props) {\n super(props);\n this.state = { confirmMessage: false, phoneNumber: '5551234567', providerTypes: [], pin: '' };\n }\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n this.getProviderTypes();\n if ( this.props.provider ) {\n this.setState({ pin: this.props.provider.pin });\n }\n }\n\n getProviderTypes = () => {\n axios({\n method: 'get',\n url: url + 'Lookups/ReferralTypes',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n })\n .then( res => {\n const providerTypes = res.data.map( type => ({ key: type.id, value: type.id, text: type.description }) );\n console.log( providerTypes );\n this.setState({ providerTypes });\n })\n .catch( err => console.log( err ) );\n }\n\n genPin = () => {\n let data = {\n ...this.props.provider,\n providerTypes: this.props.provider.providerTypes.map( providerType => ({ id: providerType.id ? providerType.id : providerType }) )\n };\n axios({\n method: 'post',\n url: url + 'Provider',\n data,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n params: {\n genPin: true\n }\n })\n .then( res => {\n this.setState({ pin: res.data.pin });\n }).catch( err => console.log( err ) );\n }\n\n deleteProvider = provider => {\n if (this.state.confirmMessage === true) {\n axios({\n method: 'delete',\n url: url + 'Provider/' + provider,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => console.log(res));\n this.props.handleClose();\n this.props.getProviders();\n } else {\n this.setState({ confirmMessage: !this.state.confirmMessage });\n }\n }\n\n render() {\n const { provider } = this.props;\n return (\n \n
\n \n
\n Provider ID: {provider !== undefined ? provider.id : null}\n
\n Provider Name: {provider !== undefined ? provider.name : null}\n
\n Provider Contact:
\n {provider !== undefined ? provider.contactName : null}
\n {provider !== undefined ? provider.contactEmail : null}\n
\n
\n
\n \n \n \n \n \n {\n this.props.handleProviderChange(event, { name: 'contactPhone', value: event });\n }}\n value={\n this.props.provider !== undefined\n ? this.props.provider.contactPhone\n : this.state.phoneNumber\n }\n />\n \n { this.props.showPinInput\n ? \n \n \n \n : null\n }\n\n id ) : []\n }\n />\n {/* add a multiple dropsdown */}\n \n {this.props.providerRow ? (\n \n
\n {this.state.confirmMessage === true ? 'Remove Provider?' : null}\n
\n this.deleteProvider(provider.id)}\n >\n {this.state.confirmMessage === false\n ? 'Delete Provider?'\n : 'Confirm Delete'}\n \n \n ) : null}\n
\n );\n }\n}\n","import React from 'react';\nimport { Modal } from 'semantic-ui-react';\n\nconst DuplicateUsernameModal = ({ open, close }) => {\n return (\n \n \n Duplicate login Error!\n \n \n

An error occurred and we were unable to create the user! It appears that a user with that username already exists. Please try again with a unique login.

\n
\n \n );\n};\n\nexport default DuplicateUsernameModal;","import React from 'react';\nimport { Icon, List, Modal } from 'semantic-ui-react';\n\nconst PasswordInstructionsError = ({ open, close, password }) => {\n return (\n \n \n Invalid Password\n \n \n \n Password must be at least 8 characters in length and include the following:\n
\n \n \n \n  \n One uppercase letter\n \n \n \n  \n One lowercase letter\n \n \n \n  \n One numeric digit\n \n \n /?-]+.*)$/.test( password ) ? null : 'mini' }\n color={ password && /(.*[`~!#$%^&*()_=+[\\]{}\\\\|;:’“,<.>/?-]+.*)$/.test( password ) ? 'green' : null }\n name={ password && /(.*[`~!#$%^&*()_=+[\\]{}\\\\|;:’“,<.>/?-]+.*)$/.test( password ) ? 'check' : 'circle' }\n />\n  \n One special character\n \n \n
\n
\n \n );\n}\n\nexport default PasswordInstructionsError;\n","import React from 'react';\nimport { Icon, List, Modal } from 'semantic-ui-react';\nimport { validateEmail, validatePhone } from '../../Util';\n\nconst RequiredFieldsError = ({ open, close, user, checkPass }) => {\n return (\n \n \n One or more required fields are missing\n \n \n \n \n Please confirm that you have entered the following fields:\n \n
\n \n \n \n  \n First Name\n \n \n \n  \n Last Name\n \n \n \n  \n User Name\n \n \n \n  \n Email\n \n \n \n  \n Phone\n \n \n \n  \n Role\n \n { checkPass\n ? \n \n  \n Password\n \n : null\n }\n \n \n  \n Site\n \n \n
\n
\n \n );\n};\n\nexport default RequiredFieldsError;\n","import React from 'react';\nimport { List, Modal } from 'semantic-ui-react';\nimport { validateEmail, validatePhone } from '../../Util';\n\nconst ProviderError = ({ open, close, provider }) => {\n return (\n \n \n One or more required fields are missing\n \n \n \n \n Please confirm that you have entered the following fields and that all fields are valid:\n \n
\n \n \n \n  \n Name\n \n \n \n  \n Description\n \n \n \n  \n Contact Name\n \n \n \n  \n Valid Contact Email\n \n \n \n  \n Contact Phone\n \n \n \n  \n Login\n \n \n \n  \n At Least One Provider Type\n \n \n
\n
\n \n );\n};\n\nexport default ProviderError;","import React from 'react';\nimport { Icon, List, Modal } from 'semantic-ui-react';\nimport { validateEmail, validatePhone } from '../../Util';\n\nconst SiteError = ({ open, close, site }) => {\n return (\n \n \n One or more required fields are missing\n \n \n \n \n Please confirm that you have entered the following fields:\n \n
\n \n \n \n  \n Site Name\n \n \n
\n
\n \n );\n};\n\nexport default SiteError;","import React from 'react';\nimport { Modal } from 'semantic-ui-react';\n\nconst DuplicateSiteNameModal = ({ open, close }) => {\n return (\n \n \n Duplicate login Error!\n \n \n

An error occurred and we were unable to create the site! It appears that a site with that site name already exists. Please try again with a unique site name.

\n
\n \n );\n};\n\nexport default DuplicateSiteNameModal;","import React from 'react';\nimport { Modal, Button, Icon } from 'semantic-ui-react';\nimport { UserForm } from '../Forms/UserForm';\nimport { SiteForm } from '../Forms/SiteForm';\nimport axios from 'axios';\nimport { Form, Header, Dropdown } from 'semantic-ui-react';\nimport btoa from 'btoa';\nimport { key, url, getCookie, validateEmail, validatePhone } from '../../Util';\nimport { NotificationForm } from '../Forms/NotificationForm';\nimport { ProviderForm } from '../Forms/ProviderForm';\nimport DuplicateUsernameModal from '../Admin/DuplicateUsernameModal';\nimport PasswordInstructionsError from '../Login/PasswordInstructionsError';\nimport RequiredFieldsError from '../Login/RequiredFieldsError';\nimport ProviderError from './ProviderError';\nimport SiteError from './SiteError';\nimport DuplicateSiteNameModal from '../Admin/DuplicateSiteNameModal';\n\nexport class AdminModals extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n open: false,\n site: {},\n user: {},\n notification: {},\n newUser: { id: 0 },\n newSite: { id: 0 },\n newNotification: { id: '', content: '', notificationStatus: 12 },\n resetSuccess: {},\n provider: { providerTypes: [] },\n duplicateUsernameModal: false,\n passwordInstructionsErrorOpen: false,\n userRequiredFieldsErrorOpen: false,\n newUserRequiredFieldsErrorOpen: false,\n providerErrorOpen: false,\n duplicateSiteNameModal: false,\n siteErrorOpen: false,\n newSiteErrorOpen: false\n // resetPassNotificationModal: false\n };\n }\n\n componentDidMount() {\n let token = getCookie('token');\n this.setState({ token });\n }\n\n\n handleModal = () => {\n const {userID, siteID, notificationID, providerID} = this.props;\n siteID !== undefined ? this.setSite(siteID) :\n userID !== undefined ? this.getUser(userID) :\n notificationID !== undefined ? this.getNotification(notificationID) :\n providerID !== undefined ? this.getProvider(providerID) :\n this.setState({open: true});\n }\n\n handleClose = () => {\n this.setState({ newUser: {}, newSite: {}, provider: { providerTypes: [] }, open: false, resetSuccess: {}});\n }\n\n handleSubmit = async () => {\n switch (this.props.buttonText) {\n case 'New User':\n let newUser = this.state.newUser;\n if ( newUser && newUser.firstName && newUser.lastName && newUser.userName && validateEmail( newUser.email ) && validatePhone( newUser.phone ) && newUser.role && newUser.password && newUser.site ) {\n if ( /(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[`~!#$%^&*()_=+[\\]{}\\\\|;:’“,<.>/?-])(?:.){8,}$/.test( this.state.newUser.password ) ) {\n newUser.id = 0;\n const newUserPosted = await this.submitUser(newUser);\n if ( newUserPosted ) {\n this.setState({ newUser: {}, open: false });\n this.props.getUsers();\n }\n } else {\n this.setState({ passwordInstructionsErrorOpen: true });\n }\n } else {\n this.setState({ newUserRequiredFieldsErrorOpen: true });\n }\n break;\n case 'Select User':\n let { user } = this.state;\n if ( user && user.firstName && user.lastName && user.userName && validateEmail( user.email ) && validatePhone( user.phone ) && user.role && user.site ) {\n const userPosted = await this.submitUser(user);\n if ( userPosted ) {\n this.setState({ open: false, resetSuccess: {} });\n this.props.getUsers();\n }\n } else {\n this.setState({ userRequiredFieldsErrorOpen: true });\n }\n break;\n case 'Select Site':\n let { site } = this.state;\n let siteIsValid = site.name;\n if ( siteIsValid ) {\n const sitePosted = await this.submitSite( this.state.site );\n if ( sitePosted ) {\n this.setState({ open: false });\n }\n } else {\n this.setState({ siteErrorOpen: true });\n }\n break;\n case 'New Site':\n let { newSite } = this.state;\n let newSiteIsValid = newSite.name;\n if ( newSiteIsValid ) {\n const newSitePosted = await this.submitSite(this.state.newSite);\n if ( newSitePosted ) {\n this.setState({ newSite: {}, open: false });\n }\n }\n break;\n case 'New Notification':\n this.submitNotification(this.state.newNotification);\n this.setState({\n open: false,\n newNotification: { id: '', content: '', notificationStatus: 12 },\n });\n break;\n case 'Select Notification':\n this.submitNotification(this.state.notification);\n this.setState({ open: false });\n\n break;\n case 'New Provider':\n let newProvider = this.state.provider;\n let newProviderIsValid = newProvider.name\n && newProvider.description\n && newProvider.contactName\n && validateEmail( newProvider.contactEmail )\n && validatePhone( newProvider.contactPhone )\n && newProvider.login\n && newProvider.providerTypes.length;\n if ( newProviderIsValid ) {\n const newProviderPosted = await this.props.postProvider(this.state.provider, true);\n if ( newProviderPosted ) {\n this.setState({ provider: { providerTypes: [] }, open: false });\n }\n } else {\n this.setState({ providerErrorOpen: true });\n }\n break;\n case 'Select Provider':\n let { provider } = this.state;\n let providerIsValid = provider.name\n && provider.description\n && provider.contactName\n && validateEmail( provider.contactEmail )\n && validatePhone( provider.contactPhone )\n && provider.login\n && provider.providerTypes.length;\n if ( providerIsValid ) {\n const providerPosted = await this.props.postProvider(this.state.provider);\n if ( providerPosted ) {\n this.setState({ open: false });\n }\n } else {\n this.setState({ providerErrorOpen: true });\n }\n break;\n default:\n this.setState({ open: false, resetSuccess: {} });\n }\n }\n\n handleUserChange = (event, { name, value }) => {\n let user = { ...this.state.user, [name]: value };\n this.setState({ user });\n }\n\n handleUserPhoneChange = value => {\n let phone = value;\n let user = { ...this.state.user, phone };\n this.setState({ user });\n }\n\n handleSiteChange = (event, { name, value }) => {\n if (name === undefined || value === undefined) {\n const site = { ...this.state.site, contactPhone: event };\n this.setState({ site });\n } else {\n let site = { ...this.state.site, [name]: value };\n this.setState({ site });\n }\n }\n\n handleNewSite = (event, { name, value }) => {\n if (name === undefined || value === undefined) {\n const site = { ...this.state.newSite, contactPhone: event };\n this.setState({ newSite: site });\n } else {\n let newSite = { ...this.state.newSite, [name]: value };\n this.setState({ newSite });\n }\n }\n\n handleNewUser = (event, { name, value }) => {\n let newUser = { ...this.state.newUser, [name]: value };\n this.setState({ newUser });\n }\n\n handleNewUserPhone = value => {\n let phone = value;\n if (phone.length >= 14) {\n let newUser = { ...this.state.newUser, phone: phone };\n this.setState({ newUser });\n }\n }\n\n handleNewNotification = (event, { name, value }) => {\n let notification = { ...this.state.newNotification, [name]: value };\n this.setState({ newNotification: notification });\n }\n\n handleNotificationChange = (event, { name, value }) => {\n if (name == 'notificationStatus' && value == 20) {\n value = 12;\n let notification = { ...this.state.notification, [name]: value };\n this.setState({ notification });\n } else if (name == 'notificationStatus' && value != 20) {\n value = 20;\n let notification = { ...this.state.notification, [name]: value };\n this.setState({ notification });\n } else {\n let notification = { ...this.state.notification, [name]: value };\n this.setState({ notification });\n }\n }\n\n getProvider = id => {\n if (id !== undefined) {\n axios({\n method: 'get',\n url: url + 'provider/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.setState({ provider: res.data, open: true });\n });\n } else {\n this.setState({ provider: { providerTypes: [] }, open: true });\n }\n }\n\n handleProviderChange = (event, { name, value }) => {\n const provider = { ...this.state.provider, [name]: value };\n this.setState({ provider });\n }\n\n handleProviderTypeChange = (e, {value}) => {\n const providerTypes = value.map( providerType => ({ id: providerType }) );\n const provider = { ...this.state.provider, providerTypes };\n this.setState({ provider });\n }\n\n deleteUser = () => {\n const id = this.state.user.id;\n axios({\n method: 'delete',\n url: url + 'user/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n\n this.setState({ open: false });\n this.props.getUsers();\n });\n }\n\n deleteSite = () => {\n const id = this.state.site.id;\n axios({\n method: 'delete',\n url: url + 'site/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.setState({ open: false });\n this.props.getSites();\n });\n }\n\n setSite = id => {\n if (id !== undefined) {\n axios({\n method: 'get',\n url: url + 'site/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.setState({ site: res.data, open: true});\n });\n }\n }\n\n getUser = id => {\n if (id !== undefined) {\n axios({\n method: 'get',\n url: url + 'user/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n let user = res.data;\n this.setState({ user, open: true });\n\n\n });\n }\n }\n\n submitUser = async user => {\n if ( user.password ) {\n const password = btoa( user.password );\n try {\n await axios({\n method: 'post',\n url: url + 'user?Password=' + password,\n data: user,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n });\n this.props.getUsers();\n\n return true;\n } catch ( e ) {\n console.log( e.response );\n if ( e.response.status === 409 ) {\n this.setState({ duplicateUsernameModal: true });\n }\n return false;\n };\n\n } else {\n try {\n const res = await axios({\n method: 'post',\n url: url + 'user',\n data: user,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n });\n if ( res ) {\n this.props.getUsers();\n\n return true;\n }\n } catch ( e ) {\n if ( e.response.status === 409 ) {\n this.setState({ duplicateUsernameModal: true });\n }\n return false;\n };\n }\n }\n\n submitSite = async site => {\n try {\n const res = await axios({\n method: 'post',\n url: url + 'site',\n data: site,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n });\n if ( res ) {\n this.props.getSites();\n return true;\n };\n } catch ( e ) {\n if ( e.response.status === 409 ) {\n this.setState({ duplicateSiteNameModal: true });\n }\n return false;\n }\n }\n\n getNotification = id => {\n if (id !== undefined) {\n axios({\n method: 'get',\n url: url + 'Notification/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.setState({ notification: res.data, open: true });\n });\n }\n }\n\n submitNotification = notification => {\n axios({\n method: 'post',\n url: url + 'Notification',\n data: notification,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.props.getNotifications();\n this.handleSubmit();\n });\n }\n\n resetUserPassword = () => {\n let email = this.state.user.email;\n\n if (email !== undefined) {\n axios({\n method: 'put',\n url: url + 'user/forgotpass?Email=' + email,\n headers: {\n api_key: key,\n },\n }).then(res => {\n this.setState({resetSuccess: res.data });\n // this.setState({resetSuccess: res.data, resetPassNotificationModal: true })\n // this.handleClose()\n });\n }\n\n }\n\n render() {\n const {open} = this.state;\n\n return (\n \n \n {this.props.buttonText}\n \n }\n open={open}\n onClose={this.handleClose}\n size=\"tiny\"\n closeOnDocumentClick={false}\n closeOnDimmerClick={false}\n >\n \n {this.props.buttonText === 'New User' ? (\n (\n
\n
\n \n User Information\n
\n {newUser}\n
\n )}\n siteOptions={this.props.siteOptions}\n handleNewUser={this.handleNewUser}\n handleNewUserPhone={this.handleNewUserPhone}\n user={this.state.newUser}\n userRoleOptions={this.props.userRoleOptions}\n />\n ) : this.props.buttonText === 'New Site' ? (\n (\n
\n
\n \n Site Information\n
\n {newSite}\n
\n )}\n handleNewSite={this.handleNewSite}\n site={this.state.newSite}\n getSites={this.props.getSites}\n />\n ) : this.props.buttonText === 'New Notification' ? (\n (\n
\n
Notification Information
\n {newNotification}\n
\n )}\n notification={this.state.newNotification}\n handleNewNotification={this.handleNewNotification}\n />\n ) : this.props.siteRow ? (\n (\n
\n
\n \n Site Information\n
\n {editSite}\n
\n )}\n site={this.state.site}\n handleSiteChange={this.handleSiteChange}\n deleteSite={this.deleteSite}\n getSites={this.props.getSites}\n />\n ) : this.props.userRow ? (\n (\n
\n
\n \n User Information\n
\n {editUser}\n
\n )}\n user={this.state.user}\n siteOptions={this.props.siteOptions}\n handleUserChange={this.handleUserChange}\n handleUserPhoneChange={this.handleUserPhoneChange}\n deleteUser={this.deleteUser}\n userRoleOptions={this.props.userRoleOptions}\n resetUserPassword={this.resetUserPassword}\n resetSuccess={this.state.resetSuccess}\n />\n ) : this.props.notificationRow ? (\n (\n
\n
Edit Notification Information
\n {editNotification}\n
\n )}\n notification={this.state.notification}\n handleNotificationChange={this.handleNotificationChange}\n />\n ) : this.props.buttonText === 'New Provider' ? (\n (\n
\n
Provider Details
\n {provider}\n
\n )}\n provider={this.state.provider}\n handleProviderChange={this.handleProviderChange}\n handleProviderTypeChange={this.handleProviderTypeChange}\n handleClose={this.handleClose}\n getProvider={this.getProvider}\n getProviders={this.props.getProviders}\n />\n ) : this.props.providerRow ? (\n (\n
\n
Provider Details
\n {provider}\n
\n )}\n provider={this.state.provider}\n handleProviderChange={this.handleProviderChange}\n handleProviderTypeChange={this.handleProviderTypeChange}\n handleClose={this.handleClose}\n getProvider={this.getProvider}\n providerRow={this.props.providerRow}\n getProviders={this.props.getProviders}\n showPinInput\n />\n ) : null}\n
\n \n \n \n \n this.setState({ duplicateUsernameModal: false }) }\n />\n this.setState({ passwordInstructionsErrorOpen: false })}\n password={ this.state.newUser.password || '' }\n />\n this.setState({ userRequiredFieldsErrorOpen: false })}\n user={ this.state.user }\n />\n this.setState({ newUserRequiredFieldsErrorOpen: false })}\n user={ this.state.newUser }\n checkPass\n />\n this.setState({ providerErrorOpen: false })}\n provider={ this.state.provider }\n />\n this.setState({ duplicateSiteNameModal: false }) }\n />\n this.setState({ newSiteErrorOpen: false })}\n site={ this.state.newSite }\n />\n this.setState({ siteErrorOpen: false })}\n site={ this.state.site }\n />\n \n {/* this.setState({ resetPassNotificationModal: false }) }\n size=\"mini\"\n >\n \n An email containing a with a reset password link has been sent to the user's email address.\n \n */}\n
\n );\n }\n}\n","import React from 'react';\nimport { TabHeader } from '../TabHeader/TabHeader';\nimport { Segment, Header, Loader, Dimmer } from 'semantic-ui-react';\nimport axios from 'axios';\nimport { getCookie, key, url } from '../../Util';\nimport _ from 'lodash';\n\n// let LineChart = require('react-chartjs').Line;\nlet DoughnutChart = require('react-chartjs').Doughnut;\nlet BarChart = require('react-chartjs').Bar;\n\nexport class Dashboard extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n chart1:false,\n chart2:false,\n chart3:false,\n };\n }\n\n componentDidMount() {\n\n let date = new Date();\n let mm = date.getMonth();\n let dd = date.getDate();\n let yyyy = date.getFullYear();\n mm = mm + 1;\n\n let yearPrevious = yyyy - 1;\n let start = `${mm}/${dd}/${yearPrevious}`;\n let today = `${mm}/${dd}/${yyyy}`;\n this.setState({ start, today });\n\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n\n if (this.props.profile !== undefined) {\n let site = this.props.profile.site;\n this.setState({ site });\n }\n }\n\n componentDidUpdate(prevState, prevProps) {\n console.log( this.state);\n if (this.props.profile !== undefined & this.state.site === undefined) {\n let site = this.props.profile.site;\n this.setState({ site });\n }\n\n if (this.state.today !== undefined && this.state.site !== undefined) {\n if (this.state.chart1 === false)\n this.getGenderChart();\n\n if (this.state.chart2 === false)\n this.getSubstancesChart();\n\n if (this.state.chart3 === false)\n this.getReferralChart();\n }\n }\n\n fetchReportType = (reportType, param, dateStart, dateEnd) => {\n axios({\n method: 'get',\n url:\n url +\n `vizreport/${reportType}?parm=${param}&dateStart=${dateStart}&dateEnd=${dateEnd}`,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n })\n .then(res => {\n this.setState({ [reportType]: res.data });\n\n // console.log(\"This is dashboard state\", this.state);\n\n })\n .catch(error => console.log(error));\n }\n\n getGenderChart = () => {\n let start = this.state.start;\n let today = this.state.today;\n let siteId = this.state.site.id;\n\n this.setState({ chart1: true });\n\n if (start !== undefined && today !== undefined ) {\n this.fetchReportType(1, siteId, start, today);\n }\n }\n\n getReferralChart = () => {\n let start = this.state.start;\n let today = this.state.today;\n let siteId = this.state.site.id;\n\n this.setState({ chart2: true });\n\n if (start !== undefined && today !== undefined) {\n this.fetchReportType(2, siteId, start, today);\n }\n }\n\n getSubstancesChart = () => {\n let start = this.state.start;\n let today = this.state.today;\n let siteId = this.state.site.id;\n\n this.setState({ chart3: true });\n\n if (start !== undefined && today !== undefined) {\n this.fetchReportType(3, siteId, start, today);\n }\n }\n\n render() {\n const content = 'SSP Dashboard View';\n const genderPie = ;\n const referralBar = (\n \n );\n const substanceBar = (\n \n );\n\n return (\n
\n \n {this.props.render({\n content: content,\n substance: substanceBar,\n gender: genderPie,\n referral: referralBar,\n thing: 'thing',\n })}\n
\n );\n }\n}\n\nfunction getRandomColor() {\n //Selecting color based on color range to maintain look/feel coordination.\n var shades = [\n '#f0e6ff',\n '#e0ccff',\n '#d1b3ff',\n '#c299ff',\n '#b380ff',\n '#a366ff',\n '#944dff',\n '#8533ff',\n '#751aff',\n '#6600ff',\n '#5c00e6',\n '#5200cc',\n '#4700b3',\n '#3d0099',\n '#330080',\n '#290066',\n '#1f004d',\n '#140033',\n '#0a001a',\n '#000000',\n '#690df2',\n '#6a13ec',\n '#6b19e6',\n '#6c20df',\n '#6e26d9',\n '#6f2dd2',\n '#7033cc',\n '#7139c6',\n '#7340bf',\n '#7446b9',\n '#754db3',\n '#7753ac',\n '#7859a6',\n '#79609f',\n '#7a6699',\n '#7c6c93',\n '#7d738c',\n '#7e7986',\n '#808080',\n ];\n var used = [];\n\n var color = '';\n\n if (shades.length === used.length) {\n //Get random color out of range\n color = getAllRandomColor();\n } else {\n while (!color) {\n var selIndex = Math.floor(Math.random() * shades.length);\n color = shades[selIndex];\n }\n\n used.push(shades[selIndex]);\n shades[selIndex] = '';\n }\n\n return color;\n}\n\nfunction getAllRandomColor() {\n var letters = '0123456789ABCDEF';\n var color = '#';\n for (var i = 0; i < 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n\n return color;\n}\n\n// const lineData = {\n// labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n// datasets: [\n// {\n// label: 'My First dataset',\n// fillColor: 'rgba(220,220,220,0.2)',\n// strokeColor: 'rgba(220,220,220,1)',\n// pointColor: 'rgba(220,220,220,1)',\n// pointStrokeColor: '#fff',\n// pointHighlightFill: '#fff',\n// pointHighlightStroke: 'rgba(220,220,220,1)',\n// data: [65, 59, 80, 81, 56, 55, 40],\n// },\n// {\n// label: 'My Second dataset',\n// fillColor: 'rgba(195, 198, 235,0.2)',\n// strokeColor: 'rgba(195, 198, 235,1)',\n// pointColor: 'rgba(195, 198, 235,1)',\n// pointStrokeColor: '#fff',\n// pointHighlightFill: '#fff',\n// pointHighlightStroke: 'rgba(195, 198, 235,1)',\n// data: [28, 48, 40, 19, 86, 27, 90],\n// },\n// ],\n// };\n\n// class FirstChart extends React.Component {\n// render() {\n// return (\n// \n//
Monthly Events
\n// \n//
\n// );\n// }\n// }\n\nconst PieChart = props => {\n let reportType = props.reportType;\n let report = props.data[reportType];\n let data = [];\n let name;\n let description;\n\n if (report !== undefined) {\n report.results.forEach(result => {\n result.values.forEach(value => {\n let dataSegment = {\n value: value.yVal,\n color: getRandomColor(),\n label: value.xVal,\n };\n data.push(dataSegment);\n });\n });\n name = report.name;\n description = report.description;\n }\n\n return (\n \n {!data ? (\n \n \n \n \n \n ) : (\n \n
{name !== undefined ? name : null}
\n \n
\n {description !== undefined ? description : null}\n
\n
\n )}\n
\n );\n};\n\nconst DynamicBarChart = props => {\n let reportType = props.reportType;\n let report = props.data[reportType];\n let barData;\n let name;\n let description;\n\n if (report !== undefined) {\n let labels = [];\n // let dataSetValues = [];\n let dataSets = [];\n\n for (let i = 0; i < report.results.length; i++) {\n let dataSetValues = [];\n\n report.results[i].values.forEach(value => {\n let includes = _.includes(labels, value.xVal);\n if (!includes) {\n labels.push(value.xVal);\n }\n });\n\n report.results[i].values.forEach(value => {\n dataSetValues.push(value.yVal);\n });\n\n let newDataSet = {\n label: report.results[i].label,\n fillColor: getRandomColor(),\n data: dataSetValues,\n };\n\n dataSets.push(newDataSet);\n }\n\n barData = {\n labels: labels,\n datasets: dataSets,\n };\n\n name = report.name;\n description = report.description;\n }\n\n let chartOptions = {\n scaleBeginAtZero: false,\n scaleShowHorizontalLines: true,\n barValueSpacing: 5,\n };\n\n return (\n \n {!barData ? (\n \n \n \n \n \n ) : (\n \n
{name !== undefined ? name : null}
\n \n
\n {description !== undefined ? description : null}\n
\n
\n )}\n
\n );\n};\n","import React from \"react\";\nimport { key, url, setCookie } from '../Util';\nimport { Modal } from 'semantic-ui-react';\n\nexport default function(AppLogout) {\n return class LogoutTimeout extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n warningTime: 1000 * 60 * 10,\n signoutTime: 1000 * 60 * 15,\n warningModal: false\n };\n }\n\n componentDidMount() {\n this.events = [\n 'load',\n 'mousemove',\n 'mousedown',\n 'click',\n 'scroll',\n 'keypress'\n ];\n\n for( let i in this.events ) {\n window.addEventListener( this.events[i], this.resetTimer );\n }\n\n this.setTimer();\n }\n\n clearTimer = () => {\n if( this.warnTimer ) clearTimeout( this.warnTimer );\n if( this.logoutTimer ) clearTimeout( this.logoutTimer );\n }\n\n setTimer = () => {\n this.warnTimer = setTimeout( this.warn, this.state.warningTime );\n this.logoutTimer = setTimeout( this.logout, this.state.signoutTime );\n };\n\n resetTimer = () => {\n if ( this.state.warningModal ) this.setState({ warningModal: false });\n this.clearTimer();\n this.setTimer();\n }\n\n destroyTimer = () => {\n const events = [\n 'load',\n 'mousemove',\n 'mousedown',\n 'click',\n 'scroll',\n 'keypress'\n ];\n for ( let i in events ) {\n window.removeEventListener( events[i], this.resetTimer );\n }\n }\n\n warn = () => {\n this.setState({ warningModal: true });\n };\n\n logout = () => {\n this.setState({ warningModal: false });\n this.destroyTimer();\n setCookie( 'token', this.props.token, -1 );\n window.location.reload();\n };\n\n render() {\n return (\n \n \n \n No activity has been detected for 10 minutes.\n
You will be logged out in 5 minutes if no further activity is detected.\n
\n \n \n
\n );\n }\n }\n}\n","import React from 'react';\n\nconst PointsContext = React.createContext();\n\nexport class PointsContextProvider extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n points: 0,\n totalPoints: 0,\n changedPoints: 0\n };\n }\n\n componentDidMount() {\n if (this.props.values !== undefined) {\n let values = this.props.values;\n this.setState({\n points: values.points,\n totalPoints: values.totalPoints,\n changedPoints: values.changedPoints\n });\n }\n }\n\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.values !== this.props.values) {\n let values = this.props.values;\n let points = prevProps.values.points += values.changedPoints;\n this.setState({points, totalPoints: values.totalPoints, changedPoints: values.changedPoints });\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n \n {console.log(this.props.values)}\n {children}\n \n );\n }\n}\n\nexport const PointsContextConsumer = PointsContext.Consumer;\n","import React from 'react';\nimport axios from 'axios';\nimport { key, url, getCookie } from '../Util';\nimport _ from 'lodash';\n\nconst AIContext = React.createContext();\n\nexport class AIContextProvider extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { baseObject: {}, aiTaskResponse: {} };\n }\n\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n\n if (this.props.values !== undefined && this.props.values.elements !== undefined) {\n this.setState({ elements: this.props.values.elements });\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { values } = this.props;\n\n if (\n prevProps.values !== undefined &&\n prevProps.values.activeIndex !== values.activeIndex\n ) {\n this.runAITask();\n }\n\n if (\n prevProps.values !== undefined &&\n prevProps.values.baseObject !== values.baseObject\n ) {\n let baseID = values.baseObject.id;\n let baseObject = values.baseObject;\n\n this.setState({ baseID, baseObject });\n }\n }\n\n runAITask = () => {\n // console.log(this.props.values.aiTasks, this.state.baseObject, this.state.elements);\n let aiTasks = this.props.values.aiTasks;\n this.state.elements.map(element => {\n let includes = _.includes(aiTasks, element.id);\n let baseObject = this.state.baseObject;\n if (includes == true) {\n let id = element.id;\n axios({\n method: 'post',\n url: url + 'AI/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: baseObject,\n }).then(res => {\n let aiTaskResponse = res.data;\n this.setState({ aiTaskResponse });\n });\n }\n });\n }\n\n render() {\n const { children } = this.props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport const AIContextConsumer = AIContext.Consumer;\n","import React from 'react';\nimport axios from 'axios';\nimport { key, url, getCookie } from '../Util';\nimport { PointsContextProvider } from './PointsContext';\nimport { AIContextProvider } from './AIContext';\nimport AppLogout from '../Containers/LogoutTimeout';\nimport moment from 'moment';\nimport _ from 'lodash';\n\nexport const BaseObjectContext = React.createContext();\n\n/*\n invalidFields state object holds fields as Objects as {id: INT, invalid: Boolean}\n\n validateField(fieldid, fieldvalue, fieldReqs)\n -takes in elementID, value, and requirments, then checks if value\n meets validation requirments\n -if valid, pushed to baseObject\n -if invalid:\n -not added to baseObject\n -pushed to [invalidFields] in state\n -error prop on field will be set to true\n*/\n\nexport class BaseObjectProvider extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { points: 0, aiTasks: [], invalidFields: [] };\n }\n\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n\n if (this.props.baseObject !== undefined) {\n let baseObject = this.props.values.baseObject;\n\n this.setState({ baseObject, instanceID: \"\", points: 0 });\n }\n }\n\n validateField = (elementID, value, requirements) => {\n let invalidFields = this.state.invalidFields;\n let find = _.find(invalidFields, { id: elementID });\n if (requirements !== undefined) {\n let validation = requirements.map(req => req.regEx);\n if (validation.length > 0) {\n validation.map(v => {\n let expression = new RegExp(v);\n let valid = expression.test(value);\n let invalidField = { id: elementID, valid: valid };\n if (find == undefined) {\n if (valid == false) {\n invalidFields.push(invalidField);\n this.setState({ invalidFields });\n }\n }\n\n if (find !== undefined) {\n if (valid !== false) {\n let index = _.findIndex(invalidFields, elementID);\n invalidFields.splice(index, 1);\n this.setState({ invalidFields });\n }\n }\n });\n }\n }\n }\n\n\n\n componentDidUpdate = (prevProps, prevState) => {\n if (\n this.state.baseObject !== undefined &&\n this.state.inputData == undefined\n ) {\n let baseInputData = this.state.baseObject.inputData;\n let instanceID = this.state.instanceID;\n let records = this.state.baseObject.records;\n let record = _.find(records, { id: instanceID });\n let recordInput = record !== undefined ? record.inputData : [];\n let inputData = _.concat(baseInputData, recordInput);\n this.setState({ inputData, records, record, recordInput });\n }\n\n if (\n prevProps.values !== undefined &&\n prevProps.values.baseObject !== this.props.values.baseObject\n ) {\n this.setState({ baseObject: this.props.values.baseObject });\n }\n\n\n if (prevState.baseObject !== this.state.baseObject) {\n let baseInputData = this.state.baseObject.inputData;\n let instanceID = this.state.instanceID;\n let records = this.state.baseObject.records;\n let record = _.find(records, { id: instanceID });\n let recordInput = record !== undefined ? record.inputData : [];\n let inputData = _.concat(this.state.baseObject.inputData, this.state.baseObject.records.inputData);\n let baseObject = this.state.baseObject;\n this.setState({ inputData, records, record, recordInput, baseObject });\n }\n\n if (\n prevState.baseObject !== undefined &&\n this.state.baseObject.records !== undefined &&\n prevState.baseObject.records.length < this.state.baseObject.records.length\n ) {\n this.setState({isLoading: true})\n // this.getRecords();\n }\n\n if(prevProps.values !== undefined &&prevProps.values.activeComponent !== this.props.values.activeComponent) {\n if(this.props.values.activeComponent == 'base' ) {\n // this.setState({baseObject: {}, instanceID: \"\" })\n }\n }\n\n if (prevProps.baseObject !== this.props.baseObject) {\n this.setState({ baseObject: this.state.baseObject });\n }\n\n if (\n this.state.baseObject !== undefined &&\n prevState.baseObject !== undefined &&\n _.isEmpty(this.state.baseObject) == false &&\n prevState.baseObject.records !== undefined &&\n this.state.baseObject.records[0] !== prevState.baseObject.records[0]\n ) {\n if(this.state.baseObject.records.length > 0) {\n let inputData = _.concat(this.state.baseObject.inputData, this.state.baseObject.records[0].inputData);\n this.setState({ baseObject: this.state.baseObject , inputData});\n }\n }\n }\n\n\n\n postNewParticipant = async(sid, type) => {\n if (sid !== undefined && sid.length >= 11 && type == 'Participant') {\n this.props.updateCounter(1, 0);\n let smartID = sid.toString();\n let newParticipant = {\n id: 0,\n type: 18,\n scramblerID: null,\n smartID: smartID,\n historyID: '',\n dateRecorded: new Date(),\n status: {},\n inputData: [],\n records: [],\n notes: [],\n };\n\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: newParticipant,\n }).then( res => {\n let baseObject = res.data;\n this.setState({ baseObject: res.data });\n this.props.updateCounter(0, 1);\n this.startNewEventRecord(baseObject);\n });\n }\n\n if (sid !== undefined && sid.length >= 7 && type == 'Community') {\n\n this.props.updateCounter(1, 0);\n let communityID = sid.toString();\n\n let newCommunity = {\n id: 0,\n type: 19,\n scramblerID: null,\n smartID: communityID,\n historyID: '',\n dateRecorded: new Date(),\n status: {},\n inputData: [],\n records: [],\n notes: [],\n };\n\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: newCommunity,\n }).then( res => {\n let baseObject = res.data;\n this.setState({ baseObject: res.data });\n this.props.updateCounter(0, 1);\n this.startNewEventRecord(baseObject);\n });\n }\n }\n\n startNewEventRecord = (baseObject) => {\n if (baseObject !== undefined) {\n this.props.updateCounter(1, 0);\n\n let newRecordInstance = {\n id: 0,\n inputData: [],\n dateRecorded: new Date(),\n status: {\n id: 0,\n description: null,\n },\n userRecorded: '',\n };\n\n // this.setState(state => {\n // const baseObject = state.baseObject;\n // baseObject.records = [...state.baseObject.records, newRecordInstance];\n // return {baseObject}\n // })\n\n const baseObject = this.state.baseObject;\n baseObject.records = [...baseObject.records, newRecordInstance];\n\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: baseObject,\n }).then(async res => {\n await this.setState({\n baseObject: res.data,\n instanceID: res.data.records[res.data.records.length - 1].id,\n });\n this.props.updateCounter(0, 1);\n this.getRecordInput(res.data.records[res.data.records.length - 1].id);\n });\n }\n }\n\n postEventRecord = () => {\n this.props.updateCounter(1, 0);\n let baseObject = this.state.baseObject;\n baseObject.records[0].dateRecorded = new Date();\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: baseObject,\n }).then(async res => {\n await this.setState({ baseObject: res.data, dateValue: {}, instanceID: null });\n this.props.updateCounter(0, 1);\n this.getRecords();\n });\n }\n\n getRecords = async (recordID = this.state.baseObject.id) => {\n this.setState({isLoading: true});\n // this.props.updateCounter(1, 0);\n const res = await axios({\n method: 'get',\n url: url + 'Record/' + recordID,\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n })\n this.setState({ baseObject: res.data, records: res.data.records, points: 0, isLoading: false});\n }\n\n getRecordInput = id => {\n this.props.updateCounter(1, 0);\n this.setState({isLoading: true})\n axios({\n method: 'get',\n url: url + 'Record/Instance/' + id,\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n }).then(async res => {\n let baseInput = res.data.inputData;\n let recordInputs = res.data.records[0].inputData;\n let inputData = _.concat(baseInput, recordInputs);\n\n await this.setState({\n instanceID: id,\n baseObject: res.data,\n record: res.data.records[0],\n records: res.data.records,\n inputData,\n points: 0,\n });\n this.props.updateCounter(0, 1);\n this.setState({isLoading: false});\n this.props.values.setActiveComponent('interface');\n });\n }\n\n onDateChange = (value, id, seq) => {\n let baseObject = this.state.baseObject;\n let record = this.state.record;\n let findRecord = _.find(record.inputData, { elementID: id });\n let findInstance = _.find(baseObject.records, { id: this.state.instanceID });\n const date = value._d.toUTCString();\n if (findRecord !== undefined) {\n } else {\n let newDate = {\n elementID: id,\n optionID: 0,\n value: date,\n seq: 0,\n };\n record.inputData = _.concat(record.inputData, newDate);\n findInstance = record;\n this.setState({ record, baseObject, dateValue: value });\n }\n }\n\n handleCollectionSubmission = (\n modalType,\n collectionValues,\n activeComponent,\n row,\n index\n ) => {\n let baseObject = this.state.baseObject;\n let instanceID = this.state.instanceID;\n let inputData = this.state.inputData;\n let record = _.find(baseObject.records, { id: instanceID });\n\n if (modalType == 'add') {\n row.map((value, index) => {\n let newInputData = {\n elementID: value.elementID,\n seq: value.seq,\n optionID: value.optionID,\n value: value.value\n }\n\n this.setState(state => {\n const inputData = [...state.inputData, newInputData];\n baseObject.records[0].inputData = [\n ...state.baseObject.records[0].inputData,\n newInputData,\n ];\n return { inputData, baseObject };\n });\n });\n }\n\n if (modalType == 'edit') {\n row.map(value => {\n let findFilter = _.filter(inputData, { elementID: value.elementID });\n let foundFilter = _.filter(baseObject.records[0].inputData, {\n elementID: value.elementID,\n });\n\n if (findFilter !== undefined) {\n let find = _.find(findFilter, {seq: value.seq});\n find.optionID = value.optionID;\n find.value = value.value;\n this.setState(state => {\n const inputData = state.inputData.map(val => {\n\n if(val.elementID == find.elementID && val.seq == find.seq) {\n find = val;\n }\n return val;\n });\n return { inputData };\n });\n\n if(foundFilter !== undefined) {\n let found = _.find(foundFilter, {seq: value.seq});\n found.optionID = value.optionID;\n found.value = value.value;\n console.log(found)\n this.setState(state => {\n const baseObject = state.baseObject;\n baseObject.records[0].inputData = baseObject.records[0].inputData.map(\n val => {\n if(val.elementID == found.elementID && val.seq == found.seq) {\n val = found;\n }\n return val;\n }\n );\n return { baseObject };\n });\n }\n }\n\n\n });\n }\n }\n\n onChange = (name, type, value, points, elementid, validation) => {\n let inputData = this.state.inputData;\n let baseObject = this.state.baseObject;\n let foundValue = _.find(baseObject.records[0].inputData, { elementID: elementid });\n let findBase = _.find(this.state.baseObject.inputData, {\n elementID: elementid,\n });\n\n this.validateField(elementid, value, validation);\n\n // if (\n // points !== undefined &&\n // foundValue == undefined &&\n // findBase == undefined\n // ) {\n // let statePoints = this.state.points;\n // let pointValue = type == 5 && value == 0 ? statePoints : (statePoints += points);\n // this.setState({ points: pointValue });\n // }\n\n let newElement = {\n elementID: elementid,\n optionID: _.isInteger(value) ? value : 0,\n seq: 0,\n value: !_.isInteger(value) ? value : \"\"\n }\n\n if(elementid <= 8 || elementid == 38) {\n if(findBase == undefined) {\n /* this sets the baseObject input data it is not in the array set */\n this.setState(state => {\n const baseObject = state.baseObject;\n baseObject.inputData = _.concat(state.baseObject.inputData, newElement);\n return {baseObject};\n });\n } else {\n if(findBase !== undefined) {\n /* this sets the baseObject input data it IS in the array set */\n this.setState(state => {\n const baseObject = state.baseObject;\n baseObject.inputData = baseObject.inputData.map((data, index) => {\n if(data == findBase) {\n data = newElement;\n return data\n } else {\n return data\n }\n });\n return {baseObject}\n });\n }\n }\n }\n if(elementid >= 9 && elementid !== 38 ) {\n /* this sets the baseObject.records[0].inputData if the value is not in the record already */\n if(foundValue == undefined) {\n this.setState(state => {\n const baseObject = state.baseObject;\n baseObject.records[0].inputData = _.concat(state.baseObject.records[0].inputData, newElement);\n return {baseObject}\n });\n } else {\n if(foundValue !== undefined) {\n /* this sets the baseObject.records[0].inputData if the value IS in the record already */\n this.setState(state => {\n const baseObject = state.baseObject;\n baseObject.records[0].inputData = baseObject.records[0].inputData.map(data => {\n if(data == foundValue) {\n data = newElement;\n return data;\n } else {\n return data;\n }\n });\n return {baseObject}\n });\n }\n }\n }\n/* end of function */\n\n }\n\n\n removeCollectionElements = (row, confirmDelete) => {\n let baseObject = this.state.baseObject;\n if (confirmDelete === true) {\n\n\n for(let [key, value] of Object.entries(row)) {\n\n this.setState(state => {\n const baseObject = state.baseObject;\n let inputData = state.inputData;\n let sequenceToCompair = value.seq;\n let filter = baseObject.records[0].inputData.filter(item => item.seq == value.seq);\n\n if(_.isEmpty(value.value) == true && filter == undefined || _.isEmpty(filter) == true) {\n filter = baseObject.records[0].inputData.filter(item => item.optionID == value.optionID);\n } else if (filter == undefined) {\n filter = baseObject.records[0].inputData.filter(item => item.value == value.value);\n }\n let foundValue = _.find(filter, {elementID: value.elementID});\n\n let difference = _.without(baseObject.records[0].inputData, foundValue);\n\n difference.filter(item => {\n if(item.seq !== value.seq && item.elementID == value.elementID) {\n if(item.seq > sequenceToCompair) {\n item.seq = item.seq -1;\n return item;\n }\n }\n });\n\n baseObject.records[0].inputData = difference;\n inputData = _.concat(baseObject.inputData, baseObject.records[0].inputData)\n return {baseObject, inputData}\n });\n }\n }\n }\n\n addUpdateBaseNotes = (functionType, contentType) => {\n this.props.updateCounter(1, 0);\n let addNote = newNote => {\n let baseObject = this.state.baseObject;\n\n let notes = baseObject.notes;\n\n let noteToAdd = {\n dateRecorded: new moment().format('MM/DD/YYYY'),\n content: newNote,\n notificationStatus: 12,\n };\n\n this.setState(state => {\n const baseObject = state.baseObject;\n baseObject.notes = _.concat(baseObject.notes, noteToAdd);\n return {baseObject}\n });\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: this.state.baseObject,\n }).then(async res => {\n this.props.updateCounter(0, 1);\n await this.setState({ baseObject: res.data });\n });\n };\n\n let changeNoteStatus = updatedNote => {\n let baseObject = this.state.baseObject;\n let baseNote = _.find(baseObject.notes, { id: updatedNote.id });\n\n if (baseNote.notificationStatus == 12) {\n this.props.updateCounter(1, 0);\n baseNote.notificationStatus = 13;\n this.setState({ baseObject });\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: this.state.baseObject,\n }).then(res => this.props.updateCounter(0, 1));\n } else if (baseNote.notificationStatus == 13) {\n this.props.updateCounter(1, 0);\n baseNote.notificationStatus = 12;\n this.setState({ baseObject });\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: this.state.baseObject,\n }).then(res => this.props.updateCounter(0, 1));\n }\n };\n\n if (functionType == 'add') {\n addNote(contentType);\n } else if (functionType == 'changeStatus') {\n changeNoteStatus(contentType);\n } else {\n console.log('problem in BaseObjectContext addUpdateFunction');\n }\n }\n\n updateSmartID = updatedSmartID => {\n\n let baseObject = this.state.baseObject;\n baseObject.smartID = updatedSmartID;\n this.props.updateCounter(1, 0);\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: baseObject,\n }).then(res => {\n this.props.updateCounter(1, 1);\n axios({\n method: 'get',\n url: url + 'Record/' + baseObject.id,\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n }).then(res => {\n let baseObj = res.data;\n this.setState({ baseObject: baseObj, records: baseObj.records });\n this.props.updateCounter(0, 1);\n });\n });\n\n this.setState({ baseObject });\n }\n\n deleteRecord = async id => {\n this.props.updateCounter(1, 0);\n const { data } = await axios({\n method: 'delete',\n url: url + 'Record/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n });\n this.props.updateCounter(0, 1);\n return data;\n }\n\n deleteRecordInstance = id => {\n this.props.updateCounter(1, 0);\n axios({\n method: 'delete',\n url: url + 'Record/Instance/' + id,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.getRecords();\n this.props.updateCounter(0, 1);\n });\n }\n\n render() {\n const { children } = this.props;\n return (\n \n \n \n { console.log( this.state )}\n {children}\n \n \n \n );\n }\n}\n\nexport const BaseObjectConsumer = AppLogout( BaseObjectContext.Consumer );\n","import React from 'react';\nimport { Tab } from 'semantic-ui-react';\nimport { Dashboard } from '../Dashboard/Dashboard';\nimport { BaseObjectProvider, BaseObjectConsumer } from '../../Context/BaseObjectContext';\n\nexport class EventsSidebar extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount = () => {\n if(this.props.panes !== undefined) {\n this.setState({panes: this.props.panes});\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if(prevState.activeIndex !== this.state.activeIndex) {\n this.setState({panes: this.props.panes})\n }\n }\n\n\n handleChange = (event, data) => {\n this.props.setActiveIndex(data.activeIndex);\n this.setState({activeIndex: data.activeIndex});\n }\n\n render() {\n return (\n \n {({baseObject, inputData}) =>\n 992 ? 13 : 13, tabWidth: this.props.width > 992 ? 2 : 3 }}\n panes={this.props.panes}\n renderActiveOnly={true}\n activeComponent={this.props.activeComponent}\n setActiveComponent={this.props.setActiveComponent}\n interfaces={this.props.interfaces}\n onTabChange={this.handleChange}\n inputData={inputData}\n baseObject={baseObject}\n style={this.props.width < 992 ? {marginTop: '-4em'} : null}\n profile={this.props.profile}\n />\n }\n \n );\n }\n}\n","export const integerKeyDown = e => {\n if (\n e.key !== \"Backspace\"\n && e.key !== \"Tab\"\n && e.key !== \"0\"\n && e.key !== \"1\"\n && e.key !== \"2\"\n && e.key !== \"3\"\n && e.key !== \"4\"\n && e.key !== \"5\"\n && e.key !== \"6\"\n && e.key !== \"7\"\n && e.key !== \"8\"\n && e.key !== \"9\"\n ) {\n e.preventDefault();\n e.stopPropagation();\n }\n} // backspace, tab, 0-9, numpad 0-9\n\nexport const floatKeyDown = e => {\n if (\n e.key !== \"Backspace\"\n && e.key !== \"Tab\"\n && e.key !== \"0\"\n && e.key !== \"1\"\n && e.key !== \"2\"\n && e.key !== \"3\"\n && e.key !== \"4\"\n && e.key !== \"5\"\n && e.key !== \"6\"\n && e.key !== \"7\"\n && e.key !== \"8\"\n && e.key !== \"9\"\n && e.key !== \".\"\n ) {\n e.preventDefault();\n e.stopPropagation();\n }\n} // backspace, tab, 0-9, numpad 0-9, period, numpad period(s)\n","import React, { useState, useLayoutEffect, useEffect, useRef } from 'react';\nimport {\n Form,\n Radio,\n Checkbox,\n Input,\n Dropdown,\n TextArea,\n Label,\n Segment,\n Loader,\n Dimmer,\n Popup,\n} from 'semantic-ui-react';\nimport _ from 'lodash';\nimport DatePicker from 'react-datepicker';\nimport MaskedInput from 'react-text-mask';\nimport moment from 'moment';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\nimport { integerKeyDown } from '../../Services/functions';\n\nexport function NotCollection(props) {\n let inputData = props.inputData;\n let element = props.element;\n let isReadOnly = props.isReadOnly;\n let baseObject = props.baseObject;\n let record = baseObject.records[0];\n let invalidFields = props.invalidFields;\n\n const [form, setValues] = useState({\n element: element,\n loading: true,\n valid: true,\n });\n\n const prevValueRef = useRef(form.element.value);\n const prevValue = prevValueRef.current;\n\n useEffect(() => {\n props.getPoints();\n }, [ props.record.inputData, props.baseObject.inputData ]);\n\n useEffect(() => {\n let inputCheck = _.concat(baseObject.inputData, record.inputData);\n inputCheck = _.flatMap(inputCheck);\n\n\n /* Check to see if the element is the date field and then formats it as a moment date object */\n let found = _.find(inputCheck, { elementID: 41 });\n if (found !== undefined && form.element.id == 41) {\n let element = form.element;\n let value = new Date(found.value);\n element.value = value;\n } else if (found == undefined && form.element.id == 41) {\n let element = form.element;\n let value = new Date();\n element.value = value;\n }\n\n /* Check to see if the element is find in existing record data */\n let find = _.find(inputCheck, { elementID: form.element.id });\n\n if (find !== undefined) {\n /*\n Checks to see if the element is found in the invalid fields array and sets the element to valid or invalid\n Triggers popup when field is invalid\n */\n\n prevValueRef.current = find.value;\n let findInvalid = _.find(invalidFields, { id: form.element.id });\n if (findInvalid !== undefined && form.valid == true) {\n setValues({ ...form, element, valid: false });\n props.showPopup(form.element.validation.map(v => v.message), form.valid);\n }\n\n if (findInvalid == undefined && form.valid == false) {\n setValues({ ...form, element, valid: true });\n props.showPopup(form.element.validation.map(v => v.message), form.valid);\n }\n\n /* Checks optionID and sets the field value to an existing value if present */\n let optionID = find.optionID;\n if (optionID !== undefined && form.element.optionID !== find.optionID) {\n let element = form.element;\n element.optionID = optionID;\n }\n\n let value = find.value;\n\n if (value !== undefined || prevValueRef.current !== undefined) {\n let element = form.element;\n element.value = prevValueRef.current !== undefined ? prevValueRef.current : find.value;\n\n /* Sets the value of the ref to match the value stored in state */\n if (form.element.value !== find.value) {\n element.value = find.value;\n prevValueRef.current = element.value;\n }\n }\n }\n\n /* Sets the values into the state any time the form is in a loading state */\n if (element !== undefined && form.loading == true) {\n if (form.element.value !== null && form.element.value !== undefined && form.element.value.length > 0) {\n prevValueRef.current = form.element.value\n }\n setValues({ ...form, element, loading: false });\n }\n });\n\n const updateDropdownField = (e, { value }) => {\n\n let element = form.element;\n element.optionID = value;\n setValues({\n ...form,\n element,\n set: true,\n blurred: false,\n });\n props.onChange(\n form.element.label,\n form.element.type,\n value,\n form.element.points,\n form.element.id,\n form.element.validation\n );\n };\n\n const updateDate = value => {\n let date = value;\n console.log( value )\n let element = form.element;\n element.value = date;\n props.onChange(\n form.element.label,\n form.element.type,\n date,\n form.element.points,\n form.element.id\n );\n setValues({ ...form, element });\n };\n\n const updateField = e => {\n let element = form.element;\n\n prevValueRef.current = e.target.value;\n\n element.value = prevValueRef.current;\n\n function handleBlur(e) {\n setValues({ ...form, element });\n\n props.onChange(\n form.element.label,\n form.element.type,\n prevValueRef.current,\n form.element.points,\n form.element.id,\n form.element.validation\n );\n }\n\n document\n .getElementById(form.element.id)\n .addEventListener('blur', handleBlur);\n\n };\n\n const showPopup = valid => {\n\n if (valid !== undefined && valid == true) {\n return false;\n }\n\n if (valid !== undefined && valid == false) {\n return true;\n }\n };\n\n const createQuestionsWithProps = () => {\n // const conditionElement = elements.options.map(cE => cE.conditionElement);\n // const conditionValues = elements.options.map(cV => cV.conditionValues);\n let elements = form.element;\n let type = form.element.type;\n\n switch (type) {\n case 4:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 5:\n let options = elements.options.map(o => ({\n key: o.id,\n text: o.label,\n value: o.id,\n }));\n\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 6:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 7:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 8:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n \n );\n case 14:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n {({ dateValue, onDateChange }) => (\n \n isReadOnly == false ? updateDate(value) : null\n }\n isClearable\n selected={\n form.element.value && form.element.value !== undefined\n ? new Date( form.element.value )\n : null\n }\n customInput={\n \n }\n disabled={isReadOnly == true ? true : false}\n />\n )}\n \n \n \n );\n case 15:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 17:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n default:\n return null;\n }\n };\n\n\n\n return (\n \n v.message)}\n open={showPopup(form.valid)}\n trigger={createQuestionsWithProps()}\n position=\"top center\"\n verticalOffset={-35}\n />\n \n );\n}\n","import React from 'react';\nimport {\n Form,\n Radio,\n Input,\n Segment,\n Dropdown,\n Loader,\n Dimmer,\n TextArea,\n Label,\n Button,\n Table,\n Modal,\n} from 'semantic-ui-react';\nimport _ from 'lodash';\nimport DatePicker from 'react-datepicker';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\nimport { checkCookie } from '../../Util';\n\n\nconst numberInputRef = React.createRef();\nexport class IsCollection extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n modalOpen: false,\n editOpen: false,\n collectionElements: [],\n newRow: [],\n tableState: [],\n initiateDelete: false,\n confirmDelete: false,\n blurred: false,\n previousValues: [],\n isChecked: false,\n newestRow: [],\n collectionErrorOpen: false\n };\n }\n\n componentDidMount() {\n if (\n this.props.inputData !== undefined &&\n this.props.elements !== undefined\n ) {\n this.createCollectionElements();\n numberInputRef.current = 0;\n }\n\n if (this.props.isReadOnly !== undefined) {\n let isReadOnly = this.props.isReadOnly;\n this.setState({ isReadOnly });\n }\n\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.collectionElements !== prevState.collectionElements) {\n this.createTableData();\n this.createCollectionElements();\n }\n if (prevProps !== this.props) {\n } else if (prevProps.baseObject !== this.props.baseObject) {\n this.createCollectionElements();\n }\n\n if (\n prevProps.inputData !== this.props.inputData ||\n prevState.inputData !== this.state.inputData\n ) {\n this.createCollectionElements();\n this.setState({ inputData: this.props.inputData });\n }\n\n if(prevState.tableState !== this.state.tableState) {\n\n this.setState(state => {\n const tableState = state.tableState;\n return {tableState}\n })\n\n\n }\n }\n\n initiateDelete = (removeCollectionElements, row, index) => {\n if (this.state.initiateDelete === false) {\n this.setState({ initiateDelete: index });\n } else {\n let index = this.state.index;\n let tableState = this.state.tableState;\n let tableStateEntry = tableState[index];\n let confirmDelete = this.state.confirmDelete;\n confirmDelete = true;\n\n this.setState({initiateDelete: false, confirmDelete: index },\n removeCollectionElements(row, true)\n );\n if (confirmDelete === true) {\n tableState.splice(this.state.index, 1);\n confirmDelete = false;\n this.setState({\n tableState,\n initiateDelete: false,\n row: [],\n newRow: [],\n confirmDelete,\n numberRef: null,\n });\n // this.createCollectionElements()\n // this.createCollectionWithPropsTable()\n }\n }\n }\n\n createCollectionElements = () => {\n let inputData = this.props.inputData;\n let elements = this.props.elements;\n let tableState = this.state.tableState;\n let collectionElements = this.state.collectionElements;\n\n if (\n inputData !== undefined\n && collectionElements.length < elements.length\n ) {\n let newElements = _.clone(elements);\n this.setState({ collectionElements: newElements });\n }\n\n if (\n _.isEmpty(inputData) == false &&\n inputData.length > 1 &&\n this.props.collection == true\n ) {\n let tableData = [];\n let newInput;\n for (let i = 0; i < inputData.length; i++) {\n for (let j = 0; j < elements.length; j++) {\n if (inputData[i].elementID == elements[j].id) {\n newInput = Object.assign({}, elements[j]);\n newInput = Object.assign(newInput, inputData[i]);\n\n let elementValue;\n if (newInput.options.length > 0) {\n let findElementValue = _.find(newInput.options, {\n id: newInput.optionID,\n });\n if (findElementValue !== undefined) {\n elementValue = findElementValue.label;\n }\n } else {\n elementValue = newInput.value;\n }\n newInput.elementValue = elementValue;\n }\n\n let includes = _.includes(tableData, newInput);\n if (includes == false && newInput !== undefined) {\n tableData.push(newInput);\n }\n }\n }\n // let sorted = _.sortBy(tableData, 'seq');\n let sorted = _.sortBy(tableData, ['seq']);\n let grouped = _.groupBy(sorted, s => s.seq);\n let newTableState = Object.values(grouped);\n\n this.setState({ tableState: newTableState, loading: false });\n }\n }\n\n createTableData = () => {\n if (\n this.props.elements !== undefined &&\n this.state.collectionElements !== undefined\n ) {\n if (this.state.collectionElements.length > 0) {\n let elements = this.props.elements;\n let collectionElements = this.state.collectionElements;\n\n let labels;\n labels = [];\n elements.map(el => {\n let includes = _.includes(labels, el.label);\n if (includes === false && el.label !== undefined) {\n labels.push(el.label);\n }\n });\n labels = labels;\n let length = labels.length;\n if (this.state.labels == undefined || this.state.columns == 0) {\n this.setState({ labels, columns: length });\n }\n }\n }\n }\n\n handleChange = (event, {id, value}) => {\n let numberRef = this.state.numberRef;\n let row = this.state.row;\n let newRow = this.state.newRow;\n if(this.state.editOpen == true) {\n numberRef = event.target.value;\n let find = _.find(row, {elementID: id});\n if(find !== undefined) {\n find.value = value;\n find.elementValue = value;\n }\n }\n\n if(this.state.modalOpen == true) {\n numberRef = event.target.value;\n let find = _.find(newRow, {elementID: id});\n if(find !== undefined) {\n find.value = value;\n find.elementValue = value;\n }\n }\n\n }\n\n handleBlur = event => {\n event.preventDefault();\n let elId = event.target.id.toString();\n let element = document.getElementById(elId);\n\n element.addEventListener('blur', e => {\n numberInputRef.current = e.target.value;\n this.setState({ numberRef: e.target.value });\n\n this.handleInputRef(\n e,\n element.name,\n e.target.value,\n 0,\n Number(e.target.id),\n 0,\n element.type\n );\n });\n }\n\n handleInputRef = (event, name, value, points, id, seq, type) => {\n\n if (this.state.modalOpen == true) {\n let newElement;\n let newRow = this.state.newRow;\n let tableState = this.state.tableState;\n let foundElement = _.find(newRow, { id: id });\n\n if (foundElement !== undefined) {\n let foundProperties = _.find(this.state.collectionElements, { id: id });\n\n newElement = Object.assign(foundElement, foundProperties);\n let elementValue;\n if (foundProperties.options.length < 1) {\n elementValue = value;\n }\n let newSeq = this.state.tableState.length + 1;\n\n newElement.elementID = id;\n newElement.value = value;\n newElement.elementValue = value;\n newElement.seq = newSeq;\n let newestRow = this.state.newestRow;\n for(let i=0; i {\n /* this is where the changes from the edit modal happen */\n\n if (this.state.row !== undefined && this.state.modalOpen == false) {\n let row = this.state.row;\n let foundValue = _.find(row, { elementID: id });\n if (foundValue !== undefined && foundValue.options.length > 0) {\n let elementValue = _.find(foundValue.options, { id: value });\n\n foundValue.optionID = value;\n if ( foundValue.elementValue !== undefined ) {\n foundValue.elementValue = elementValue.label;\n }\n this.setState({ row });\n } else if (\n foundValue !== undefined &&\n foundValue.optionID === 0 &&\n this.state.modalOpen == false\n ) {\n foundValue.value = value;\n foundValue.elementValue = value;\n\n this.setState({ row });\n } else if (\n foundValue === undefined &&\n this.state.modalOpen == false\n ) {\n let findValue = _.find(this.state.row, function(r) {\n if (r !== undefined) {\n return r;\n }\n });\n\n let newValue = Object.assign({}, findValue);\n let newElement;\n let elements = _.clone(this.props.elements)\n let element = _.find(elements, { id: id });\n newElement = Object.assign({}, element);\n let elementValue = _.find(newElement.options, { id: value });\n let newerValue = Object.assign(newValue, element);\n\n newValue.elementID = id;\n newValue.id = id;\n newValue.optionID = _.isInteger(value) === true ? value : 0;\n newValue.value = _.isString(value) === true ? value : '';\n newValue.elementValue =\n elementValue !== undefined ? elementValue.label : value;\n newValue.label = '';\n\n row = _.concat(row, newValue);\n this.setState({ row });\n } else {\n console.log('Something is unaccounted for');\n }\n }\n\n if (this.state.editOpen === false) {\n /* This is where the changes from the Add Modal Happen */\n let newElement;\n let newRow = this.state.newRow;\n let tableState = this.state.tableState;\n let foundElement = _.find(newRow, { id: id });\n\n if (foundElement !== undefined) {\n let foundProperties = _.find(this.state.collectionElements, { id: id });\n newElement = Object.assign(foundElement, foundProperties);\n\n let elementValue;\n if (\n foundProperties !== undefined &&\n foundProperties.options.length > 0\n ) {\n elementValue = _.find(foundProperties.options, { id: value });\n elementValue = elementValue !== undefined ? elementValue.label : '';\n } else {\n if (foundProperties !== undefined) {\n elementValue = _.find(foundProperties.options, { id: value });\n elementValue = elementValue !== undefined ? elementValue.label : '';\n } else {\n elementValue = value;\n }\n }\n\n let newSeq = this.state.tableState.length + 1;\n newElement.elementID = id;\n newElement.optionID = _.isInteger(value) === true ? value : 0;\n newElement.value = _.isString(value) === true ? value : '';\n newElement.elementValue = elementValue;\n newElement.seq = newSeq;\n\n // let newestRow = this.state.newRow;\n // /// PROBLEM!!!!!!!\n // // for(let i=0; i {\n if (row.elementValue) {\n return [ ...acc, row ];\n }\n return acc;\n }, []);\n\n if ( newestRow.length == this.state.labels.length ) {\n this.setState({ isComplete: true })\n }\n this.setState({ newRow, newestRow });\n }\n\n if (foundElement !== undefined) {\n let elementValue;\n\n if (foundElement.options.length > 0 && foundElement.type !== 7 ) {\n elementValue = _.find(foundElement.options, { id: value });\n if ( elementValue !== undefined ) {\n elementValue = elementValue.label;\n }\n } else {\n elementValue = value;\n }\n foundElement.optionID = _.isInteger(value) === true ? value : 0;\n foundElement.value = _.isString(value) === true ? value : '';\n foundElement.elementValue = elementValue;\n this.setState({ newRow });\n }\n }\n }\n\n handleModalOpen = () => {\n\n this.numberInputRef = null;\n\n let newRowElements = _.clone(this.props.elements);\n let filter = newRowElements.filter(element => element.type == 7);\n if(filter !== undefined && !_.isEmpty(filter)) {\n this.setState({isChecked: false});\n let findNegative = _.find(filter[0].options, {label: 'No'});\n\n if(findNegative !== undefined) {\n let findNewRowElement = _.find(newRowElements, {id: filter[0].id});\n findNewRowElement.optionID = findNegative.id;\n findNewRowElement.elementID = filter[0].id;\n findNewRowElement.elementValue = findNegative.label;\n findNewRowElement.seq = this.state.tableState.length + 1;\n }\n }\n\n let resetFilter = newRowElements.filter(element => element.type !== 7);\n if(resetFilter !== undefined) {\n resetFilter.forEach(element => {\n element.optionID = 0;\n element.value = '';\n element.elementValue = '';\n element.seq = this.state.tableState.length + 1;\n });\n }\n\n this.setState({ modalOpen: true, isComplete: false, newRow: newRowElements, numberRef: null});\n }\n\n handleModalClose = (argument, modalType, handleCollectionSubmission) => {\n\n if (argument === 'cancel') {\n let tableState = this.state.tableState;\n // if (this.state.newRow.length === this.state.labels.length) {\n // tableState.pop();\n // }\n this.setState({\n modalOpen: false,\n newRow: [],\n row: [],\n tableState,\n numberRef: null,\n isChecked: false,\n newestRow: []\n });\n this.numberInputRef = null;\n }\n\n if (argument === 'save') {\n let tableState = this.state.tableState;\n\n handleCollectionSubmission(\n modalType,\n this.state.tableState,\n this.props.activeComponent,\n this.state.newRow\n );\n\n this.setState({\n modalOpen: false,\n newRow: [],\n row: [],\n blurred: false,\n numberRef: null,\n isChecked: false,\n newestRow: []\n });\n this.numberInputRef = null;\n }\n }\n\n findValue = (response, element, id, row, index) => {\n\n\n if (\n this.state.row !== undefined &&\n _.isArray(this.state.row) === true &&\n index !== undefined\n ) {\n let returnValue;\n this.state.row.map(r => {\n if (r.options.length > 0 && r.id === id) {\n returnValue = r.optionID;\n } else if (r.options.length == 0 && r.id === id) {\n returnValue = r.value;\n }\n });\n return returnValue;\n } else if (\n this.state.newRow !== undefined &&\n this.state.modalOpen === true\n ) {\n let returnValue;\n this.state.newRow.map(r => {\n if (r.optionID > 0 && r.id === id) {\n returnValue = r.optionID;\n } else if (r.optionID == 0 && r.id === id) {\n returnValue = r.value;\n }\n });\n return returnValue;\n }\n }\n\n handleEditClose = (argument, modalType, handleCollectionSubmission) => {\n if (argument == 'cancel') {\n this.setState({ editOpen: false});\n this.setState({\n previousValues: [],\n newValues: [],\n row: [],\n numberRef: null,\n newRow: [],\n newRowState: [],\n isChecked: false,\n newestRow: []\n });\n this.numberInputRef = null;\n }\n\n if (argument == 'save') {\n let row = this.state.row;\n let numberRef = this.state.numberRef;\n let tableState = this.state.tableState;\n let index = this.state.index;\n // tableState[index] = row;\n tableState = tableState;\n handleCollectionSubmission(\n modalType,\n tableState,\n this.props.activeComponent,\n row,\n index\n );\n this.setState({\n editOpen: false,\n tableState,\n row: [],\n numberRef: null,\n newRow: [],\n newRowState: [],\n isChecked: false,\n newestRow: []\n });\n this.numberInputRef = null;\n }\n }\n handleEditOpen = row => {\n if (this.state.initiateDelete === false) {\n let findNumberRef;\n let numberRef = this.state.numberRef;\n row.map(r => {\n if (r.options.length == 0) {\n findNumberRef = r;\n findNumberRef.value = findNumberRef.elementValue;\n }\n\n });\n if (findNumberRef !== undefined) {\n numberInputRef.current = findNumberRef.elementValue;\n numberRef = numberInputRef.current;\n }\n let previousValues = _.clone(row);\n let findCheckedState = _.find(row, {type: 7});\n if(findCheckedState !== undefined) {\n let findCheckedOption = _.find(findCheckedState.options, {label: 'No'});\n let findCheckedOptionID = findCheckedOption.id;\n if(findCheckedOptionID !== findCheckedState.optionID) {\n // console.log('true', findCheckedOptionID, findCheckedState.optionID)\n this.setState({isChecked: true, editOpen: true, isDisabled: false, row: row, numberRef, previousValues});\n } else {\n // console.log('false', findCheckedOptionID, findCheckedState.optionID)\n this.setState({isChecked: false, editOpen: true, isDisabled: false, row: row, numberRef, previousValues});\n }\n } else {\n this.setState({editOpen: true, row: row, numberRef, previousValues, isDisabled: false})\n }\n } else {\n this.setState({ initiateDelete: false });\n }\n }\n\n createCollectionWithPropsTable = (collection, elements, responses) => {\n const tableState = collection;\n\n return (\n \n {({\n handleCollectionSubmission,\n inputData,\n recordInput,\n removeCollectionElements,\n }) => (\n \n { console.log( this.state )}\n {\n if (this.state.isReadOnly == false) {\n this.handleModalOpen()\n }\n }}\n >\n Add\n \n }\n /* Modal props can go here */\n open={this.state.modalOpen}\n >\n \n
\n {elements.map(el =>\n this.createQuestionsWithProps(\n el.type,\n el,\n this.state.collectionElements\n )\n )}\n
\n
\n \n this.handleModalClose('cancel')}\n >\n Cancel\n \n {\n const checkElementValues = () => {\n if ( this.state.newRow.length === this.state.collectionElements.length ) {\n let returnValue = true;\n for (let row of this.state.newRow) {\n if (row.elementValue) {\n continue;\n } else {\n returnValue = false;\n break;\n }\n }\n return returnValue;\n } else {\n return false;\n }\n }\n if ( checkElementValues() ) {\n this.handleModalClose(\n 'save',\n 'add',\n handleCollectionSubmission\n )\n } else {\n this.setState({ collectionErrorOpen: true });\n }\n }}\n >\n Save\n \n \n \n this.setState({ collectionErrorOpen: false }) }\n size=\"tiny\"\n >\n \n Unable to save collection!\n \n \n All fields are required in order to save a new collection!\n \n \n \n \n \n Modify\n \n {this.state.labels !== undefined\n ? this.state.labels.map(label => (\n \n {label}\n \n ))\n : null}\n \n \n \n \n \n {tableState !== undefined\n ? tableState.map((row, index) => (\n \n \n \n this.changeTableState(\n tableState,\n this.state.collectionElements,\n row,\n index\n )\n }\n >\n {this.state.isReadOnly == false ? (\n \n { console.log( row ) }\n this.handleEditOpen(row)}\n >\n {this.state.initiateDelete !== index\n ? 'Edit'\n : 'Cancel'}\n \n \n this.initiateDelete(\n removeCollectionElements,\n row,\n index\n )\n }\n style={{\n width: '20%',\n marginRight: '0.5em',\n }}\n >\n {this.state.initiateDelete !== index\n ? 'Delete'\n : this.state.confirmDelete !== index\n ? 'Confirm?'\n : null}\n \n \n ) : (\n

\n `You are not permitted to modify this\n record`\n

\n )}\n \n }\n row={row}\n index={index}\n open={this.state.editOpen}\n >\n \n
\n {elements.map(el =>\n this.createQuestionsWithProps(\n el.type,\n el,\n this.state.collectionElements,\n row,\n 'arg',\n index,\n this.numberInputRef\n )\n )}\n
\n
\n \n this.handleEditClose('cancel')}\n >\n Cancel\n \n {\n const checkElementValues = () => {\n if ( this.state.row.length === this.state.collectionElements.length ) {\n let returnValue = true;\n for (let row of this.state.row) {\n if (row.elementValue) {\n continue;\n } else {\n returnValue = false;\n break;\n }\n }\n return returnValue;\n } else {\n return false;\n }\n }\n if ( checkElementValues() ) {\n this.handleEditClose(\n 'save',\n 'edit',\n handleCollectionSubmission,\n row\n )\n }\n }}\n >\n Save\n \n \n \n {row.map(cell => (\n \n \n {cell.elementValue}\n \n \n ))}\n
\n
\n ))\n : console.log('loading')}\n
\n
\n \n
\n )}\n
\n );\n }\n\n changeTableState = (tableData, properties, row, index) => {\n this.setState({ index: index, row: row });\n }\n\n createQuestionsWithProps = (\n type,\n elements,\n inputData,\n row,\n modalChange,\n index\n ) => {\n // const conditionElement = elements.options.map(cE => cE.conditionElement);\n // const conditionValues = elements.options.map(cV => cV.conditionValues);\n const { date } = this.state;\n\n switch (type) {\n case 4:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 5:\n let options = elements.options.map(o => ({\n key: o.id,\n text: o.label,\n value: o.id,\n }));\n\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 6:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 7:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n this.setState({isChecked: !this.state.isChecked})}\n checked={this.state.isChecked}\n onChange={this.onChange}\n // indeterminate={this.state.isNeutral}\n // conditionElement={conditionElement}\n // conditionValues={conditionValues}\n />\n \n );\n case 8:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 14:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n this.onDateChange(value, elements.id, elements.seq)\n }\n selected={date}\n />\n \n \n );\n case 15:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n case 17:\n return (\n 0 ? 'score-control' : null}\n style={{ display: elements.display, width: `${elements.width}%` }}\n >\n \n \n );\n default:\n return null;\n }\n }\n\n render() {\n const { collectionElements, tableState } = this.state;\n const { collection, elements } = this.props;\n return collectionElements === undefined || collectionElements.length < 1 ? (\n \n \n \n \n \n ) : tableState !== undefined ||\n this.props.inputData !== undefined ? (\n \n {({ baseObject, inputData, records, record, recordInput }) => (\n
\n \n \n {baseObject !== undefined && elements !== undefined ? (\n \n {this.createCollectionWithPropsTable(\n tableState,\n elements,\n collectionElements\n )}\n \n ) : null}\n \n \n \n )}\n
\n ) : (\n \n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport {\n Segment,\n Button,\n Icon,\n Loader,\n Dimmer,\n} from 'semantic-ui-react';\nimport _ from 'lodash';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\nimport { NotCollection } from '../Interface/NotCollection';\nimport { IsCollection } from '../Interface/IsCollection';\nimport { getCookie } from '../../Util';\nimport { AIContextProvider } from '../../Context/AIContext';\n\nexport class DynamicForm extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n points: 0,\n isCollection: false,\n isDisabled: false,\n modalOpen: false,\n baseObject: {},\n isReadOnly: false,\n showPopup: false,\n message: '',\n };\n }\n\n async componentDidMount () {\n\n if (this.state.token === undefined) {\n let token = getCookie('token');\n await this.setState({ token });\n }\n\n if (this.props.collection !== undefined) {\n this.setState({ collection: this.props.collection });\n }\n\n if (\n this.props.elements !== undefined &&\n this.props.baseObject !== undefined\n ) {\n this.setState({ elements: this.props.elements });\n }\n\n if (this.props.profile !== undefined) {\n let profile = this.props.profile;\n if (profile.role.id == 4) {\n this.setState({ isReadOnly: true });\n }\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n\n if (this.props.collection !== this.state.collection) {\n this.setState({\n collection: this.props.collection,\n elements: this.state.elements,\n });\n }\n\n if (this.props.collection !== prevProps.collection) {\n let inputData = this.props.inputData;\n let baseObject = this.props.baseObject;\n this.setState({\n baseObject,\n inputData,\n collection: this.props.collection,\n });\n }\n if (\n prevProps.baseObject !== this.props.baseObject ||\n prevProps.inputData !== this.props.inputData\n ) {\n let inputData = this.props.inputData;\n let baseObject = this.props.baseObject;\n this.setState({ baseObject, inputData });\n }\n if (this.props.activeIndex !== prevProps.activeIndex) {\n let inputData = _.concat(this.props.baseObject.inputData, this.props.baseObject.records[0].inputData);\n let baseObject = this.props.baseObject;\n this.setState({ baseObject, inputData });\n }\n\n if (\n prevProps.baseObject.records[0].id !== this.props.baseObject.records[0].id\n ) {\n let inputData = _.concat(this.props.baseObject.inputData, this.props.baseObject.records[0].inputData);\n let baseObject = this.props.baseObject;\n\n this.setState({ baseObject, inputData, elements: this.props.elements });\n }\n\n if (\n prevProps.elements !== this.props.elements &&\n prevProps.collection === this.props.collection\n ) {\n this.forceRerender();\n }\n\n if (prevProps.elements !== this.props.elements) {\n let inputData = _.concat(this.props.baseObject.inputData, this.props.baseObject.records[0].inputData);\n\n let checkedElements = new Set();\n if (\n (inputData !== undefined && inputData.length > 0)\n ) {;\n for (let i = 0; i < inputData.length; i++) {\n this.props.elements.map(el => {\n if (el.id == inputData[i].elementID) {\n checkedElements.add(el);\n } else {\n checkedElements.add(el);\n }\n });\n }\n const iterator = checkedElements.values();\n let elements = [];\n for (let entry of iterator) {\n elements.push(entry);\n }\n this.setState({ elements });\n } else {\n let elements = this.props.elements;\n this.setState({ elements });\n }\n }\n }\n\n async forceRerender() {\n await this.setState({\n collection: !this.state.collection,\n elements: this.props.elements,\n });\n\n this.setState({ collection: !this.state.collection });\n }\n\n renderDynamicButtonText() {\n const { paneLength, activeIndex } = this.props;\n if (paneLength && activeIndex !== undefined) {\n if (activeIndex < paneLength - 1) {\n return 'Next ';\n } else {\n return 'Save ';\n }\n }\n }\n\n saveDynamicForm(baseObject) {\n const buttonAction = this.renderDynamicButtonText();\n if (buttonAction !== 'Save ') {\n this.props.setActiveIndex('next');\n } else {\n this.props.postEventRecord();\n this.props.setBaseActiveIndex('base', 1);\n this.setState({ elements: [], inputData: [] });\n }\n }\n showPopup = (message, valid) => {\n console.log(message, valid);\n if (valid !== undefined) {\n this.setState({ showPopup: valid, message: message });\n }\n }\n\n render() {\n return this.state.elements === undefined ||\n this.state.collection === undefined ? (\n \n \n \n \n \n ) : this.props.baseObject === undefined ? (\n \n \n \n \n \n ) : this.props.baseObject !== undefined ? (\n \n {({\n baseObject,\n inputData,\n records,\n record,\n recordInput,\n onChange,\n invalidFields,\n handleCollectionSubmission\n }) => (\n \n \n {this.state.collection == false ? (\n \n \n {this.state.elements.map(el => (\n \n ))}\n \n \n ) : this.state.collection === true ? (\n \n\n ) : null}\n
\n \n this.props.setActiveIndex('back')}\n >\n \n Previous\n \n \n\n this.saveDynamicForm(baseObject)}\n >\n \n {this.renderDynamicButtonText()}\n \n \n \n \n
\n \n
\n )}\n
\n ) : null;\n }\n}\n","import React from 'react';\nimport { Progress } from 'semantic-ui-react';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\nimport { PointsContextConsumer } from '../../Context/PointsContext';\n\nexport class ProgressBar extends React.Component {\n\n\n render() {\n\n return (\n \n {({points, totalPoints}) =>\n \n }\n \n\n );\n }\n}\n","import React from 'react';\nimport { Form, Header, Dropdown, Button, Icon } from 'semantic-ui-react';\nimport * as _ from 'lodash';\n\nconst genderOptions = [\n { key: 0, value: 1, text: 'Male' },\n { key: 1, value: 2, text: 'Female' },\n { key: 2, value: 3, text: 'Transgender/Other/Unknown' },\n];\n\nconst dateOptions = [\n { key: 0, value: '01', text: '01 - January' },\n { key: 1, value: '02', text: '02 - February' },\n { key: 2, value: '03', text: '03 - March' },\n { key: 3, value: '04', text: '04 - April' },\n { key: 4, value: '05', text: '05 - May' },\n { key: 5, value: '06', text: '06 - June' },\n { key: 6, value: '07', text: '07 - July' },\n { key: 7, value: '08', text: '08 - August' },\n { key: 8, value: '09', text: '09 - September' },\n { key: 9, value: '10', text: '10 - October' },\n { key: 10, value: '11', text: '11 - November' },\n { key: 11, value: '12', text: '12 - December' },\n];\n\nfunction createYearOptions() {\n let yearStart;\n let yearEnd;\n\n let date = new Date();\n let year = date.getFullYear();\n\n yearStart = year;\n yearEnd = year - 90;\n\n let numberOfYears = yearStart - yearEnd + 1;\n let yearOptions = [];\n for ( let i = 0; i < numberOfYears; i++ ) {\n if (yearEnd++ <= yearStart) {\n yearOptions.push({\n key: i,\n value: yearStart - i,\n text: (yearStart - i).toString(),\n });\n }\n }\n return yearOptions;\n}\n\nexport class NewSID extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n sid: {\n FIFN: '',\n FILN: '',\n MMFN: '',\n MMLN: '',\n MONTH: '',\n YEAR: '',\n GCODE: '',\n },\n smartID: '',\n formHeader: 'New Smart ID',\n yearOptions: []\n };\n }\n\n componentDidMount() {\n if (this.props.smartID !== undefined) {\n this.setState({\n smartID: this.props.smartID,\n formHeader: 'Update Smart ID',\n });\n } else if (this.props.smartID === null) {\n this.setState({\n smartID: 'Error: Smart ID Not Set',\n formHeader: 'Update Smart ID',\n });\n }\n let yearOptions = createYearOptions();\n this.setState({ yearOptions });\n }\n\n createSID = (event, { name, value }) => {\n const sid = { ...this.state.sid, [name]: value };\n this.setState({ sid });\n let concatSID = '';\n for (var key in sid) {\n concatSID = concatSID.concat(sid[key]).toUpperCase();\n if (concatSID.length >= 11) {\n this.props.toggleConfirmPost(true, concatSID);\n }\n }\n this.setState({ concatSID });\n }\n\n render() {\n const { smartID, concatSID, formHeader, yearOptions } = this.state;\n return (\n \n
\n \n {formHeader}\n
\n
\n
\n

{smartID ? `Current Smart ID: ${smartID}` : null}

\n

{concatSID ? `New Smart ID: ${concatSID}` : null}

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n );\n }\n}\n","import React from 'react';\nimport { Form, Header, Dropdown, Button, Icon } from 'semantic-ui-react';\nimport * as _ from 'lodash';\n\n\nexport class NewCommunitySID extends React.Component {\n constructor (props) {\n super(props)\n\n this.state = {\n sid: {\n countyCode: '',\n typeCode: '',\n specifyingCode: '',\n },\n smartID: '',\n formHeader: 'New Community ID',\n };\n }\n\n componentDidMount() {\n if(this.props.smartID !== undefined && this.props.lookup == false) {\n this.setState({\n smartID: this.props.smartID,\n formHeader: 'Update Community ID',\n });\n } else if (this.props.smartID == null && this.props.lookup == false) {\n this.setState({\n smartID: '',\n formHeader: 'New Community ID',\n })\n }\n }\n\n createSID = (event, { name, value }) => {\n const sid = { ...this.state.sid, [name]: value };\n this.setState({ sid });\n let concatSID = '';\n for (var key in sid) {\n concatSID = concatSID.concat(sid[key]).toUpperCase();\n if (concatSID.length >= 7 && this.props.lookup !== true) {\n this.props.toggleConfirmPost(true, concatSID);\n }\n if(concatSID.length >=7 && this.props.lookup !== false) {\n this.props.toggleConfirmPost(false, concatSID);\n }\n }\n this.setState({ concatSID });\n }\n\n render() {\n const {smartID, concatSID, formHeader, sid} = this.state;\n return(\n \n {this.props.lookup == false ? (\n
\n \n {formHeader}\n
\n ) : null}\n
\n
\n

{smartID && this.props.lookup == false ? `Current Community ID: ${smartID}` : null}

\n

{this.props.lookup == true ? null : concatSID ? `New Community ID: ${concatSID}` : null}

\n
\n
\n \n \n \n \n \n
\n
\n
\n )\n }\n\n}\n","import React from 'react';\nimport {\n Form,\n Header,\n Button,\n Icon,\n} from 'semantic-ui-react';\nimport DatePicker from 'react-datepicker';\nimport MaskedInput from 'react-text-mask';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport { NewCommunitySID } from './NewCommunitySID';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\n\nconst genderOptions = [\n { key: 0, value: 1, text: 'Male' },\n { key: 1, value: 2, text: 'Female' },\n { key: 2, value: 3, text: 'Transgender/Other/Unknown' },\n];\n\nconst dateOptions = [\n { key: 0, value: '01', text: '01 - January' },\n { key: 1, value: '02', text: '02 - February' },\n { key: 2, value: '03', text: '03 - March' },\n { key: 3, value: '04', text: '04 - April' },\n { key: 4, value: '05', text: '05 - May' },\n { key: 5, value: '06', text: '06 - June' },\n { key: 6, value: '07', text: '07 - July' },\n { key: 7, value: '08', text: '08 - August' },\n { key: 8, value: '09', text: '09 - September' },\n { key: 9, value: '10', text: '10 - October' },\n { key: 10, value: '11', text: '11 - November' },\n { key: 11, value: '12', text: '12 - December' },\n];\n\nexport class SearchForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n static contextType = BaseObjectConsumer;\n\n\n render() {\n const {\n dateFrom,\n dateTo,\n sid,\n smartID,\n scramblerID,\n findSmartIDstate,\n yearOptions,\n } = this.props;\n return findSmartIDstate === false ? (\n
\n
\n \n Search For {this.props.recordType}\n
\n \n \n \n \n \n \n \n\n \n }\n />\n \n \n \n }\n />\n \n \n
\n ) : (\n
\n
\n \n Search For {this.props.recordType}\n
\n {this.props.recordType !== 'Community' ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n )}\n \n Retrieve {this.props.recordType} ID\n \n \n Cancel\n \n \n );\n }\n}\n","import React from 'react';\nimport { Modal, Button, Icon, List, Header, Segment } from 'semantic-ui-react';\nimport { url, key, getCookie } from '../../Util';\nimport moment from 'moment';\nimport Moment from 'react-moment';\n\nexport class EditNotesModal extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { open: false, buttonColor: '' };\n }\n\n\n handleModal = () => {\n this.setState({ open: !this.state.open });\n }\n\n renderNoteStatusButton = () => {\n if (this.props.note !== undefined) {\n if (this.props.note.notificationStatus === 12) {\n return 'Dismiss Note';\n } else if (this.props.note.notificationStatus === 13) {\n return 'Undismiss Notification';\n }\n }\n }\n\n render() {\n const { note } = this.props;\n return (\n \n \n Open\n \n }\n open={this.state.open}\n onClose={this.handleModal}\n size=\"large\"\n closeIcon\n >\n \n
Note
\n \n
\n ID: {note.id}\n
\n Date Recorded:{' '}\n {note.dateRecorded}\n
\n
\n
{note.content}
\n this.props.addUpdateBaseNotes('changeStatus', note)}\n >\n {this.renderNoteStatusButton()}\n \n
\n
\n \n );\n }\n}\n","import React from 'react';\nimport { Button, Icon, List, TextArea, Loader } from 'semantic-ui-react';\nimport Moment from 'react-moment';\nimport { EditNotesModal } from '../Modals/NotesModal';\n\nvar moment = require('moment');\n\nexport class Notes extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount() {\n const notes = this.props.notes;\n // this.setState({ notes });\n }\n\n componentDidUpdate(prevState, prevProps) {\n if (\n prevProps.notes !== undefined &&\n this.props.notes.length > prevProps.notes.length\n ) {\n this.setState({ newNote: '' });\n }\n }\n\n toggleNotes = notesDisplay => {\n if (notesDisplay === 'hide') {\n this.setState({ display: 'none' });\n } else if (notesDisplay === 'show') {\n this.setState({ display: 'initial' });\n }\n }\n\n render() {\n const { notes } = this.props;\n const styles = {\n listItemDismissed: {\n textDecoration: 'line-through',\n display: this.state.display,\n },\n listItemActive: {\n textDecoration: 'none',\n },\n };\n return (\n \n {notes !== undefined ? (\n \n {this.props.notes.map(note => (\n \n

\n {note.dateRecorded}\n

\n

\n {note.content !== null && note.content !== undefined\n ? note.content.split('.', 1)\n : 'No Content'}{' '}\n ...\n \n

\n \n }\n />\n ))}\n
\n ) : (\n \n )}\n this.setState({ newNote: value })}\n />\n
\n \n this.props.addUpdateBaseNotes('add', this.state.newNote)\n }\n />\n
\n );\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport axios from 'axios';\nimport { Header, Segment } from 'semantic-ui-react';\nimport { getCookie, key, url } from '../../Util';\nlet LineChart = require('react-chartjs').Line;\n\nconst SyringesChart = ({ participantID }) => {\n\tconst [ data, setData ] = useState( null );\n\tconst [ lineData, setLineData ] = useState( [] );\n\n\tuseEffect( () => {\n\t\tconst start = `01/01/${ new Date().getFullYear() }`;\n\t\tconst end = `12/31/${ new Date().getFullYear() }`;\n\t\tconst getReport = async ( parm = participantID, dateStart = start, dateEnd = end ) => {\n\t\t\ttry {\n\t\t\t\tconst res = await axios({\n\t\t\t\t\tmethod: 'get',\n\t\t\t\t\tbaseURL: url,\n\t\t\t\t\turl: `vizreport/4`,\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tparm,\n\t\t\t\t\t\tdateStart,\n\t\t\t\t\t\tdateEnd\n\t\t\t\t\t},\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tapi_key: key,\n\t\t\t\t\t\tAccessToken: getCookie('token'),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\n\t\t\t\tsetData( res.data );\n\t\t\t} catch ( error ) { console.log(error); };\n\t\t};\n\t\tgetReport();\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( data ) {\n\t\t\tlet labels = data.results[0].values.map( ({ xVal }) => xVal );\n\t\t\tlet datasets = [];\n\t\t\tlet x = 0;\n\t\t\tfor ( let result of data.results ) {\n\n\n\t\t\t\tif (x == 0)\n\t\t\t\t{\n\t\t\t\tdatasets.push({\n\t\t\t\t\tlabel: result.label,\n\t\t\t\t\tfillColor: 'rgba(220,220,220,0.2)',\n\t\t\t\t\tstrokeColor: 'rgba(61, 30, 114,1)',\n\t\t\t\t\tpointColor: 'rgba(61, 30, 114,1)',\n\t\t\t\t\tpointStrokeColor: '#fff',\n\t\t\t\t\tpointHighlightFill: '#fff',\n\t\t\t\t\tpointHighlightStroke: 'rgba(220,220,220,1)',\n\t\t\t\t\tdata: result.values.map( ({ yVal }) => yVal ),\n\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse \n\t\t\t\t{\n\t\t\t\t\tdatasets.push({\n\t\t\t\t\tlabel: result.label,\n\t\t\t\t\tfillColor: 'rgba(220,220,220,0.2)',\n\t\t\t\t\tstrokeColor: 'rgba(220,170,0,1)',\n\t\t\t\t\tpointColor: 'rgba(220,170,0,1)',\n\t\t\t\t\tpointStrokeColor: '#fff',\n\t\t\t\t\tpointHighlightFill: '#fff',\n\t\t\t\t\tpointHighlightStroke: 'rgba(220,220,220,1)',\n\t\t\t\t\tdata: result.values.map( ({ yVal }) => yVal ),\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tx++;\n\t\t\t}\n\t\t\tsetLineData({ labels, datasets });\n\t\t}\n\t}, [ data ]);\n\t\n\treturn (\n\t\t\n\t\t\t{ console.log( lineData )}\n\t\t\t
Total Syringe Use
\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SyringesChart;\n","import React from 'react';\nimport { Modal, Button, Icon, List } from 'semantic-ui-react';\nimport axios from 'axios';\nimport { url, key, getCookie } from '../../Util';\nimport Moment from 'react-moment';\nimport moment from 'moment';\nimport { NewSID } from '../Forms/NewSID';\n\nimport { SearchForm } from '../Forms/SearchForm';\nimport { Notes } from '../Forms/Notes';\nimport { NewCommunitySID } from '../Forms/NewCommunitySID';\nimport SyringesChart from './SyringesChart';\n\nfunction createYearOptions() {\n let yearStart;\n let yearEnd;\n\n let date = new Date();\n let year = date.getFullYear();\n\n yearEnd = year - 12;\n yearStart = year - 90;\n\n let numberOfYears = yearEnd - yearStart + 1;\n let yearOptions = [];\n for (let i = 0; i < numberOfYears; i++) {\n if (yearStart++ <= yearEnd) {\n yearOptions.push({\n key: i,\n value: yearStart + 1,\n text: (yearStart + 1).toString(),\n });\n }\n }\n return yearOptions;\n}\n\nexport class EventsModals extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n open: false,\n sid: {\n FIFN: '',\n FILN: '',\n MMFN: '',\n MMLN: '',\n MONTH: '',\n YEAR: '',\n GCODE: '',\n },\n smartID: '',\n findSmartIDstate: false,\n scramblerID: '',\n dateFrom: '',\n dateTo: '',\n confirmPost: false,\n searchError: false\n };\n }\n\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n\n let dateTo = JSON.parse( window.localStorage.getItem('DateTo') );\n let dateFrom = JSON.parse( window.localStorage.getItem('DateFrom') );\n if(dateTo && dateFrom) {\n dateTo = new Date(dateTo);\n dateFrom = new Date(dateFrom);\n this.setState({dateTo, dateFrom});\n }\n }\n\n let yearOptions = createYearOptions();\n this.setState({ yearOptions });\n }\n\n handleModal = () => {\n this.setState({ open: true });\n }\n\n handleClose = () => {\n this.setState({\n open: false,\n sid: {\n FIFN: '',\n FILN: '',\n MMFN: '',\n MMLN: '',\n MONTH: '',\n YEAR: '',\n GCODE: '',\n },\n findSmartIDstate: false,\n smartID: '',\n confirmPost: false\n });\n }\n\n toggleConfirmPost = (value, smartID) => {\n this.setState({ confirmPost: value, smartID });\n }\n\n handleSubmit = sid => {\n if (\n this.props.buttonText === 'New Participant' &&\n this.state.confirmPost == true &&\n this.state.smartID.length >= 11\n ) {\n this.props.postNewParticipant(this.state.smartID, 'Participant');\n this.handleClose();\n }\n\n if (this.props.buttonText == 'New Community' && this.state.confirmPost == true && this.state.smartID.length >= 7) {\n this.props.postNewParticipant(this.state.smartID, 'Community');\n this.handleClose();\n }\n\n if (this.props.buttonText === 'Reminders') {\n this.handleClose();\n }\n\n if (this.props.buttonText === 'Search') {\n const dateFrom = moment(this.state.dateFrom);\n const dateTo = moment(this.state.dateTo);\n if ( this.state.dateTo && this.state.dateFrom && ( this.state.dateTo > this.state.dateFrom ) ) {\n this.props.handleSearch(\n this.state.scramblerID,\n this.state.smartID,\n dateFrom,\n dateTo\n );\n this.handleClose();\n } else {\n this.setState({ searchError: true });\n }\n }\n if (\n this.props.smartID !== this.state.smartID &&\n this.state.smartID.length >= 11 &&\n this.state.confirmPost !== false && this.props.buttonText !== 'New Participant' && this.props.buttonText !== 'New Community') {\n this.props.updateSmartID(this.state.smartID);\n this.handleClose();\n }\n\n if(this.props.smartID !== this.state.smartID && this.state.smartID.length >= 7 && this.state.smartID.length < 11 && this.state.confirmPost !== false && this.props.buttonText !== 'New Participant' && this.props.buttonText !== 'New Community') {\n this.props.updateSmartID(this.state.smartID);\n this.handleClose();\n }\n }\n\n updateSIDValue = (event, { name, value }) => {\n const sid = { ...this.state.sid, [name]: value};\n this.setState({ sid });\n }\n\n createSID = () => {\n let concatSID = '';\n let { sid } = this.state;\n for (var key in sid) {\n concatSID = concatSID.concat(sid[key]).toUpperCase();\n }\n this.setState({\n smartID: concatSID,\n findSmartIDstate: !this.state.findSmartIDstate,\n sid: {\n FIFN: '',\n FILN: '',\n MMFN: '',\n MMLN: '',\n MONTH: '',\n YEAR: '',\n GCODE: '',\n }\n });\n }\n\n onChange = (event, { name, value }) => {\n this.setState({ [name]: value});\n }\n\n findSmartID = () => {\n this.setState({ findSmartIDstate: !this.state.findSmartIDstate });\n }\n\n cancelFindSmartID = () => {\n this.setState({\n findSmartIDstate: false,\n sid: {\n FIFN: '',\n FILN: '',\n MMFN: '',\n MMLN: '',\n MONTH: '',\n YEAR: '',\n GCODE: '',\n }\n })\n }\n\n onFromChange = value => {\n const dateFrom = value;\n const DateFrom = moment(dateFrom).format('MM/DD/YYYY');\n window.localStorage.setItem('DateFrom', dateFrom);\n // let dateTo;\n // let DateTo;\n // let storedDateTo = window.localStorage.getItem('DateTo');\n // if(storedDateTo !== null && this.state.DateTo == undefined) {\n // dateTo = moment(storedDateTo);\n // DateTo = dateTo;\n // this.setState({ dateTo, DateTo });\n // }\n this.setState({ DateFrom, dateFrom});\n }\n\n onToChange = value => {\n const dateTo = value;\n const DateTo = moment(dateTo).format('MM/DD/YYYY');\n window.localStorage.setItem('DateTo', dateTo);\n // let dateFrom;\n // let DateFrom;\n // let storedDateFrom = window.localStorage.getItem('DateFrom');\n // if(storedDateFrom !== null && this.state.DateFrom == undefined) {\n // dateFrom = moment(storedDateFrom);\n // DateFrom = dateFrom;\n // this.setState({DateFrom, dateFrom});\n // }\n this.setState({ DateTo, dateTo });\n }\n\n\n render() {\n return (\n }\n trigger={\n \n }\n open={this.state.open}\n onClose={this.handleClose}\n closeOnDimmerClick={false}\n closeOnDocumentClick={false}\n size=\"large\"\n >\n \n {this.props.buttonText === 'New Participant' ? (\n \n ) : this.props.buttonText === 'Search' ? (\n \n ) : this.props.buttonText === 'Chart' ? (\n \n ) : this.props.buttonText === 'Reminders' ? (\n \n ) : this.props.smartID !== undefined && this.props.baseType == 18 ? (\n \n ) : this.props.smartID !== undefined && this.props.baseType == 19 ? (\n \n ) : this.props.buttonText === 'New Community' ? (\n \n ) : null}\n \n { !this.props.hideActions\n ? \n \n \n \n : null\n }\n this.setState({ searchError: false })}\n >\n \n Invalid Dates! Please select a Start Date and End Date to search. End Date must be at least one day greater than Start Date.\n \n \n this.setState({ searchError: false })}\n >\n close\n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport { List, Modal, Button, Icon } from 'semantic-ui-react';\nimport { EventsModals } from '../Modals/EventsModals';\nimport { formatDate } from '../../Util';\nimport {BaseObjectConsumer} from '../../Context/BaseObjectContext';\nimport Moment from 'react-moment';\n\nexport class ParticipantHeader extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n backModal: false\n };\n }\n\n componentDidMount() {\n }\n\n navigateToBase = () => {\n if (this.props.activeComponent === 'baseRecord') {\n this.props.setBaseActiveIndex('base', 1);\n } else {\n this.props.setBaseActiveIndex('baseRecord', 1);\n }\n }\n\n openBackModal = () => {\n this.setState({ backModal: true });\n }\n\n closeBackModal = () => {\n this.setState({ backModal: false });\n }\n\n\n render() {\n const { participantID, notes, smartID, scramblerID, dateRecorded, description } = this.props;\n return (\n \n {({baseObject, addUpdateBaseNotes, updateSmartID}) =>\n
\n \n \n Are You Sure?\n \n \n Any unsaved changes will be lost.\n
\n Are you sure you'd like to go back?\n
\n \n \n Confirm\n \n \n Cancel\n \n \n \n \n \n \n \n \n Smart ID:\n \n \n \n Scrambler ID: {scramblerID}\n \n \n Event Date: \n {dateRecorded}\n \n \n Status: {description}\n \n \n { this.props.showGraph\n ? \n : null\n }\n \n \n \n
\n }\n
\n );\n }\n}\n","import React from 'react';\nimport {\n Tab,\n Button,\n Responsive,\n Dimmer,\n Loader\n} from 'semantic-ui-react';\nimport { EventsSidebar } from '../Sidebar/EventsSidebar';\nimport { DynamicForm } from '../Forms/DynamicForm';\nimport { ProgressBar } from './ProgressBar';\nimport { ParticipantHeader } from '../ParticipantHeader/ParticipantHeader';\nimport * as _ from 'lodash';\nimport {\n BaseObjectConsumer\n} from '../../Context/BaseObjectContext';\nimport {\n PointsContextProvider\n} from '../../Context/PointsContext';\nexport class Interface extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n panesLength: 0,\n activeIndex: 0,\n points: 0,\n eventNote: { value: '' },\n panes: [],\n showPopup: false,\n message: '',\n };\n }\n\n componentDidMount = () => {\n this.setState({ activeIndex: 0, points: 0 });\n if (this.props.activeComponent === 'interface') {\n this.getPoints(this.props.interfaces);\n this.props.getInterfaces(this.props.interfaceID);\n this.renderAnsweredDynamicSidebar();\n }\n }\n\n componentDidUpdate = (prevProps, prevState) => {\n if (this.state.activeIndex === 0 && this.state.totalPoints === undefined) {\n // this.getPoints(this.props.interfaces);\n }\n\n if (prevState.activeIndex !== this.state.activeIndex) {\n this.renderAnsweredDynamicSidebar();\n }\n\n if (prevProps.record !== this.props.record) {\n this.getPoints(this.props.interfaces);\n this.renderAnsweredDynamicSidebar();\n }\n\n if (prevState.points !== this.state.points) {\n this.setState({ points: this.state.points });\n }\n }\n\n saveTextArea = eventNote => {\n this.setState({ ...this.state.eventNote, eventNote });\n }\n\n getPoints = ( pointSource = this.props.interfaces ) => {\n if (pointSource !== undefined) {\n // edited by Jonathan 10/02/2019\n let pointsArrays = pointSource.map(uiSet => {//interFace =>\n // interFace.uiSets.map(uiSet =>\n return uiSet.elements.map(element => element.points);\n // )\n });\n // edited by Jonathan 10/02/2019\n let pointElements = pointSource.map(uiSet => {//interFace =>\n // interFace.uiSets.map(uiSet =>\n return uiSet.elements.reduce((acc,element) => element.points > 0 ? [...acc, element ] : acc, [] );\n // )\n });\n pointElements = _.flatMapDeep(pointElements);\n\n let values = _.flatMapDeep(pointsArrays);\n let filteredValues = _.filter(values, function(o) {\n return o > 0;\n });\n\n let totalPoints = 0;\n for (let i = 0; i < filteredValues.length; i++) {\n totalPoints += filteredValues[i];\n }\n\n if (totalPoints > 0) {\n // totalPoints = totalPoints / 2; why would I divide this by 2???\n this.setState({ totalPoints, points: 0 });\n }\n\n if (\n this.props.activeComponent !== 'newEvent' &&\n this.props.baseObject !== undefined &&\n this.props.inputData !== undefined &&\n this.props.record !== undefined\n ) {\n const inputData = this.props.baseObject.inputData;\n const record = this.props.record.inputData;\n\n const combined = _.concat(inputData, record);\n\n let currentPoints = combined.reduce( (acc, value) => {\n if (\n pointElements.some( element => {\n if ( !(element.type == 5 && value.optionID == 0) && !(element.type == 8 && !value.value) ) { // make sure it is not a dropdown with select option selected\n return element.id == value.elementID;\n }\n return false;\n })\n ) {\n return ++acc;\n }\n return acc;\n }, 0);\n\n this.setState({ points: currentPoints });\n\n // if (pointSource !== undefined) {\n // let flat = _.flatMapDeep(pointSource[0]);\n // let truthy = [];\n // for (let [key, value] of Object.entries(flat)) {\n // if (_.isObject(value)) {\n // let flatElements = _.flatMap(value.elements);\n // let matches = combined.map(c => c.elementID);\n // for (let i = 0; i < matches.length; i++) {\n // _.filter(flatElements, function(o) {\n // if (matches[i] === o.id && o.points > 0) {\n // let includes = _.includes(truthy, o);\n // if (includes == false) {\n // truthy.push(o);\n // }\n // }\n // });\n // }\n // }\n // }\n //\n // let filteredPoints = _.filter(truthy, function(o) {\n // return o.points > 0;\n // });\n //\n // if (filteredPoints.length > 0) {\n // let answeredStatePoints = this.state.points;\n // filteredPoints = filteredPoints.map(p => p.points);\n // for (let x = 0; x < filteredPoints.length; x++) {\n // answeredStatePoints += filteredPoints[x];\n // }\n //\n // this.setState({ points: answeredStatePoints });\n // }\n // }\n }\n }\n }\n\n setActiveIndex = navigation => {\n switch (navigation) {\n case 'next':\n this.setState({ activeIndex: this.state.activeIndex + 1 });\n break;\n case 'back':\n if (this.state.activeIndex > 0) {\n this.setState({ activeIndex: this.state.activeIndex - 1 });\n }\n break;\n default:\n this.setState({ activeIndex: navigation });\n break;\n }\n }\n\n\n\n renderAnsweredDynamicSidebar() {\n // edited by Jonathan 10/02/2019\n // let uiSets = this.props.interfaces.map(i => i.uiSets);\n let uiSets = [ this.props.interfaces ];\n const iterator = uiSets.values();\n let paneLength = uiSets.map(s => s.length);\n if (this.state.panesLength === 0) {\n paneLength = paneLength[0];\n if (paneLength !== undefined) {\n this.setState({ panesLength: paneLength });\n }\n }\n for (const value of iterator) {\n let panes = value.map(i => ({\n menuItem: {\n key: `${i.id}`,\n content: `${i.label}`,\n style: { color: 'white' },\n },\n render: () => (\n \n \n {({\n baseObject,\n inputData,\n points,\n postEventRecord,\n invalidFields,\n }) =>\n baseObject !== undefined ? (\n \n \n \n\n \n
\n\n \n
\n \n
\n ) : null\n }\n
\n
\n ),\n }));\n if (this.state.panes !== panes) {\n this.setState({ panes });\n }\n return panes;\n }\n }\n\n render() {\n return this.props.activeComponent === 'interface' ||\n this.props.activeComponent === 'newEvent' ? (\n \n {this.props.baseObject === undefined ||\n this.props.baseObject === null ? (\n \n \n \n \n \n ) : (\n \n {({ baseObject, inputData }) => (\n \n \n \n \n \n \n )}\n \n )}\n \n ) : null;\n }\n}\n\nexport const NavigationBar = props =>\n props.profile !== undefined ? (\n \n props.setBaseActiveIndex('base', 0)}\n />\n props.setBaseActiveIndex('base', 1)}\n />\n props.setBaseActiveIndex('base', 2)}\n />\n \n ) : null;\n","import React from 'react';\nimport axios from 'axios';\nimport { key, url, getCookie } from '../Util';\n\nconst APIContext = React.createContext();\n\nexport class APIContextProvider extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {apiProgressCounter: 0, inProgress: 0, finished: 0};\n\n }\n\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n\n if (this.props.values !== undefined && this.props.values !== undefined) {\n this.setState({ apiProgressCounter: 0, inProgress: this.props.values.inProgress, finished: this.props.values.finished});\n }\n }\n\n\n updateCounter = (inProgress, finished) => {\n if(inProgress > 0 && inProgress !== undefined) {\n this.setState({inProgress: this.state.inProgress + inProgress, apiProgressCounter: this.state.inProgress - this.state.finished});\n }\n\n if(finished > 0) {\n this.setState({finished: this.state.finished + finished, apiProgressCounter: this.state.inProgress - this.state.finished});\n }\n }\n\n\n\n componentDidUpdate(prevProps, prevState) {\n const {inProgress, finished} = this.props.values;\n if(prevProps.values.inProgress !== inProgress) {\n\n this.setState({inProgress});\n }\n\n if(prevProps.values.finished !== finished) {\n let {finished} = this.props.values;\n this.setState({finished});\n }\n\n if(prevState.finished !== this.state.finished || prevState.inProgress !== this.state.inProgress) {\n this.setState({apiProgressCounter: this.state.inProgress - this.state.finished});\n }\n\n }\n\n\n\n render() {\n\n const { children } = this.props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport const APIContextConsumer = APIContext.Consumer;\n","import React from 'react';\nimport { TabHeader } from '../TabHeader/TabHeader';\nimport PlaceholderTable from '../Tables/PlaceholderTable';\nimport { AdminModals } from '../Modals/AdminModals';\nimport { NavigationBar } from '../Interface/Interface';\nimport axios from 'axios';\nimport { url, key, getCookie } from '../../Util';\nimport { Loader, Dimmer } from 'semantic-ui-react';\nimport { APIContextConsumer } from '../../Context/APIProgressContext';\nexport class UserAdmin extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n users: [],\n sites: [],\n siteOptions: [],\n isLoading: false,\n userRoleOptions: [],\n };\n }\n\n componentDidMount() {\n this.setState({ isLoading: true });\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n this.getUsers();\n this.getSites();\n this.makeRoleOptions();\n }\n\n getUsers = () => {\n this.setState({isLoading: true});\n this.props.updateCounter(1,0);\n axios({\n method: 'get',\n url: url + 'users',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.props.updateCounter(0,1);\n this.setState({ users: res.data, data: res.data, isLoading: false });\n });\n }\n\n getSites = () => {\n this.setState({isLoading: true});\n this.props.updateCounter(1,0);\n axios({\n method: 'get',\n url: url + 'sites',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.props.updateCounter(0,1);\n this.setState({ sites: res.data, isLoading: false });\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.sites !== prevState.sites) {\n this.makeOptions();\n }\n if (this.state.users.length !== prevState.users.length) {\n this.getUsers();\n }\n }\n\n makeOptions = () => {\n let siteOptions = this.state.sites.map(site => ({\n key: site.id,\n text: site.name,\n value: { id: site.id, name: site.name },\n }));\n\n\n this.setState({ siteOptions });\n }\n\n makeRoleOptions = () => {\n if(this.props.profile !== undefined) {\n let userRoleOptions;\n\n if (parseInt(this.props.profile.role.id) === 1) {\n userRoleOptions = [\n { key: 1, text: 'State Admin', value: { id: 1, name: 'Admin' } },\n { key: 2, text: 'Site Admin', value: { id: 2, name: 'Site Admin' } },\n { key: 3, text: 'User', value: { id: 3, name: 'User' } },\n {\n key: 4,\n text: 'User Read Only',\n value: { id: 4, name: 'User Read Only' },\n },\n ];\n this.setState({ userRoleOptions });\n } else {\n userRoleOptions = [\n { key: 3, text: 'User', value: { id: 3, name: 'User' } },\n {\n key: 4,\n text: 'User Read Only',\n value: { id: 4, name: 'User Read Only' },\n },\n ];\n this.setState({ userRoleOptions });\n };\n }\n }\n\n render() {\n const {data} = this.state;\n const columns = [\n { Header: 'Site', accessor: 'site.name' },\n { Header: 'First Name', accessor: 'firstName' },\n { Header: 'Last Name', accessor: 'lastName' },\n { Header: 'Date Created', accessor: 'createdOn', Cell: row => { new Date( row.original.createdOn.replace( 'Z', '' ) ).toLocaleDateString() } },\n {\n Header: 'Modify User',\n accessor: 'id',\n filterable: false,\n Cell: row => (\n \n {({ updateCounter }) => (\n \n )}\n \n ),\n },\n ];\n\n const Modal = (\n \n {({ updateCounter }) => (\n \n )}\n \n );\n const content = (\n \n );\n\n\n\n return (\n \n \n \n \n \n \n {this.props.render({ content: content })}\n \n );\n }\n}\n","import React from 'react';\nimport { Modal, Button, Icon, List, Header, Segment } from 'semantic-ui-react';\nimport Moment from 'react-moment';\n\nexport class EditNotificationsModal extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { open: false, buttonColor: '' };\n }\n\n handleModal = () => {\n this.setState( prevState => ({ open: !prevState.open }) );\n }\n\n renderNotificationStatusButton = () => {\n if (this.props.notification !== undefined) {\n if (this.props.notification.notificationStatus === 12) {\n return 'Dismiss Notification';\n } else if (this.props.notification.notificationStatus === 13) {\n return 'Undismiss Notification';\n }\n }\n }\n\n render() {\n const { notification } = this.props;\n return (\n {\n this.handleModal();\n }}\n >\n \n \n }\n open={this.state.open}\n onClose={this.handleModal}\n size=\"small\"\n closeIcon\n >\n \n
Notification
\n \n

{notification.content}

\n this.props.changeNotificationStatus(notification)}\n >\n {this.renderNotificationStatusButton()}\n \n
\n
\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport {\n Button,\n Checkbox,\n Header,\n Icon,\n Image,\n Menu,\n Segment,\n Sidebar,\n List,\n} from 'semantic-ui-react';\nimport { Main } from '../../Containers/Main';\nimport { Notifications } from '../Header/Header';\nimport axios from 'axios';\nimport { url, key, getCookie } from '../../Util';\nimport { EditNotificationsModal } from '../Modals/NotificationModal';\n\nexport class NotificationsList extends Component {\n constructor(props) {\n super(props);\n\n this.state = { showDismissed: false };\n }\n\n componentDidMount = () => {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n }\n\n changeNotificationStatus = notification => {\n let status = notification.notificationStatus;\n if (status === 12) {\n axios({\n method: 'post',\n url: url + 'Notification/User',\n data: {\n ...notification,\n notificationStatus: 13,\n },\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => this.updateNotifications());\n } else {\n if (status === 13) {\n axios({\n method: 'post',\n url: url + 'Notification/User',\n data: {\n ...notification,\n notificationStatus: 12,\n },\n headers: {\n api_key: key,\n AccessToken: getCookie('token')\n },\n }).then(res => this.updateNotifications());\n }\n }\n }\n\n updateNotifications = () => {\n axios({\n method: 'get',\n url: url + 'Notifications/User',\n headers: {\n api_key: key,\n AccessToken: getCookie('token')\n },\n }).then(res => {\n this.props.listNotifications(res.data);\n });\n }\n\n toggleNotifications = notificationDisplay => {\n this.setState( prevState => { return { showDismissed: !prevState.showDismissed }; } );\n }\n\n render() {\n const { visible, notificationsList } = this.props;\n\n return (\n \n { notificationsList !== undefined ? (\n notificationsList.length > 0 ? (\n \n \n \n { `NOTIFICATIONS (${ this.props.notificationCount })` }\n \n { this.props.closePopup\n ? \n \n : null\n }\n \n \n { notificationsList.some( item => item.notificationStatus === 13 )\n ? \n : null\n }\n \n { notificationsList.map(item => (\n \n \n \n { item.content.split('.', 1) } ...\n \n \n \n \n ))}\n \n \n { this.props.viewMore\n ?

view more

\n : null\n }\n
\n ) : (\n \n \n

\n There are currently no notifications...\n

\n
\n
\n )\n ) : null }\n
\n );\n }\n}\n","import React from 'react';\nimport {\n Modal\n} from 'semantic-ui-react';\nimport { NotificationsList } from '../Sidebar/NotificationsList';\n\nconst NotificationsListModal = ({ open, handleModal, notificationsList, listNotifications, handleButtonClick }) => {\n\treturn (\n\t\t\n \n\t\t\t\t\n \n \n\t);\n};\n\nexport default NotificationsListModal;","import React from 'react';\nimport { Popup, Dropdown, Icon, Button, Card, Label } from 'semantic-ui-react';\nimport { UserAdmin } from '../Admin/UserAdmin';\nimport axios from 'axios';\nimport { url, key, getCookie } from '../../Util';\nimport { NotificationsList } from '../Sidebar/NotificationsList';\nimport NotificationsListModal from '../Modals/NotificationsListModal';\nconst value = 'ISDH | SSP Application';\n\nexport const Title = props => {\n return (\n props.setActiveComponent('base')}\n style={{ background: 'none' }}\n >\n \n

{props.title}

\n \n );\n};\n\nexport class Profile extends React.Component {\n constructor(props) {\n super(props);\n this.state = { profile: {} };\n }\n\n render() {\n const { profile } = this.props;\n return (\n \n }\n content={\n \n {this.props.render({ profile })}\n \n }\n on={'click'}\n position=\"bottom center\"\n hideOnScroll\n />\n );\n }\n}\n\nexport class Notifications extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n isOpen: false,\n showNotificationsListModal: false\n };\n }\n\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n axios({\n method: 'get',\n url: url + 'Notifications/User',\n headers: {\n api_key: key,\n AccessToken: token,\n },\n }).then(res => this.props.listNotifications(res.data));\n }\n }\n\n componentDidUpdate( prevProps, prevState ) {\n if ( prevProps.notificationsList !== this.props.notificationsList ) {\n this.props.checkNotifications();\n }\n }\n\n handleOpen = () => {\n this.setState({ isOpen: true });\n }\n\n handleClose = () => {\n this.setState({ isOpen: false });\n }\n\n toggleNotificationsListModal = () => {\n this.setState( prevState => ({ showNotificationsListModal: !prevState.showNotificationsListModal }) );\n }\n\n render() {\n return (\n \n \n \n \n }\n wide=\"very\"\n open={ this.state.isOpen }\n onClose={ this.handleClose }\n onOpen={ this.handleOpen }\n content={\n 5\n ? () => {\n this.handleClose();\n this.toggleNotificationsListModal();\n }\n : null\n : null\n }\n />\n }\n on={ 'click' }\n position=\"bottom center\"\n />\n \n \n );\n }\n}\n\nexport class Settings extends React.Component {\n render() {\n return (\n }\n // simple\n closeOnChange='true'\n >\n \n\n this.props.setActiveComponent('userAdmin')}\n >\n User Admin\n \n {this.props.profile !== undefined && this.props.profile.role.id == 1 ?\n \n \n this.props.setActiveComponent('siteAdmin')}\n >\n Site Admin\n \n \n this.props.setActiveComponent('notificationAdmin')}\n >\n Notification Admin\n \n \n this.props.setActiveComponent('providerAdmin')}>\n Provider Admin\n \n \n : null\n }\n \n \n );\n }\n}\n\nexport class Header extends React.Component {\n render() {\n return this.props.render({ title: value });\n }\n}\n","import React from 'react';\nimport PlaceholderTable from '../Tables/PlaceholderTable';\nimport { EventsModals } from '../Modals/EventsModals';\nimport { Button, Loader, Dimmer, Segment, Modal } from 'semantic-ui-react';\nimport axios from 'axios';\nimport { key, url, getCookie } from '../../Util';\nimport Moment from 'react-moment';\nimport moment from 'moment';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\n\nclass Base extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n data: [],\n isLoading: false,\n openConfirmDelete: false,\n idToDelete: '',\n deleteErrorModal: false\n };\n }\n\n componentDidMount() {\n if (this.props.recordType !== undefined) {\n this.getRecordType(this.props.recordType);\n }\n\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n }\n\n componentDidUpdate = (prevProps, prevState) => {\n if (\n prevProps.recordType !== this.props.recordType ||\n prevProps.activeComponent !== this.props.activeComponent\n ) {\n this.getRecordType(this.props.recordType);\n }\n if (prevProps.recordType !== this.props.recordType) {\n this.getRecordType(this.props.recordType);\n }\n\n if(this.state.token == undefined && this.state.token !== prevState.token) {\n let token = getCookie('token');\n this.setState({token});\n }\n }\n\n getRecordType = recordType => {\n if (recordType == 'Community') {\n this.getRecords(19);\n } else if (recordType == 'Participant') {\n this.getRecords(18);\n } else {\n // this.getRecords();\n }\n }\n\n deleteRecord = async id => {\n if (this.state.openConfirmDelete == false) {\n this.setState({ openConfirmDelete: true, idToDelete: id });\n }\n if (this.state.openConfirmDelete == true) {\n const res = await this.props.deleteRecord(id);\n if ( res ) {\n this.setState({ openConfirmDelete: false, idToDelete: '' });\n const recordTypeID = this.props.recordType === 'Participant' ? 18 : this.props.recordType === 'Community' ? 19 : null;\n this.getRecords( recordTypeID );\n } else {\n this.setState({ openConfirmDelete: false, idToDelete: '' });\n this.setState({ deleteErrorModal: true });\n }\n }\n }\n\n handleSearch = (scramblerID, smartID, dateFrom, dateTo) => {\n this.setState({ isLoading: true });\n dateFrom = moment(dateFrom).format('MM/DD/YYYY');\n if(dateTo !== 'Invalid Date') {\n dateTo = moment(dateTo).format('MM/DD/YYYY');\n } else {\n dateTo = moment( JSON.parse(window.localStorage.getItem('DateTo')) ).format('MM/DD/YYYY');\n }\n\n if(dateFrom !== 'Invalid Date') {\n dateFrom = moment(dateFrom).format('MM/DD/YYYY');\n } else {\n dateFrom = moment( JSON.parse(window.localStorage.getItem('DateFrom')) ).format('MM/DD/YYYY');\n }\n\n window.localStorage.setItem('DateFrom', JSON.stringify( moment(dateFrom).format('MM/DD/YYYY') ));\n window.localStorage.setItem('DateTo', JSON.stringify( moment(dateTo).format('MM/DD/YYYY') ));\n window.localStorage.setItem('scramblerID', scramblerID);\n window.localStorage.setItem('smartID', smartID);\n let recordType = this.props.recordType == 'Community' ? 19 : 18;\n axios({\n method: 'get',\n url:\n url +\n 'Records?DateFrom=' +\n dateFrom +\n '&DateTo=' +\n dateTo +\n '&SmartID=' +\n smartID +\n '&ScramblerID=' +\n scramblerID +\n '&Type=' +\n recordType,\n headers: {\n api_key: key,\n accept: 'application/json',\n AccessToken: getCookie('token'),\n },\n })\n .then(res => {\n let data = res.data;\n let length = res.data.length;\n\n this.setState({ data, length, isLoading: false });\n })\n .catch(error => {\n let data = [];\n let length = 0;\n this.setState({ data, length, isLoading: false });\n });\n }\n\n getRecords = eventType => {\n let storedDateFrom = JSON.parse( window.localStorage.getItem('DateFrom') );\n let storedDateTo = JSON.parse( window.localStorage.getItem('DateTo') );\n\n let storedScramblerID = window.localStorage.getItem('scramblerID');\n let storedSmartID = window.localStorage.getItem('smartID');\n let token = getCookie('token');\n\n if (storedSmartID !== null || storedScramblerID !== null) {\n this.handleSearch(\n storedScramblerID,\n storedSmartID,\n storedDateFrom,\n storedDateTo\n );\n } else if (storedDateFrom !== null) {\n this.setState({ isLoading: true });\n let today = moment(storedDateTo).format('MM/DD/YYYY');\n let end = moment(storedDateFrom).format('MM/DD/YYYY');\n\n axios({\n method: 'get',\n url:\n url +\n 'Records?DateFrom=' +\n end +\n '&DateTo=' +\n today +\n '&SmartID=' +\n '' +\n '&ScramblerID=' +\n '' +\n '&Type=' +\n eventType,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n })\n .then(res => {\n let data = res.data;\n let length = res.data.length;\n this.setState({ data, length, isLoading: false });\n })\n .catch(error => {\n let data = [];\n let length = 0;\n this.setState({ data, length, isLoading: false });\n });\n } else {\n this.setState({ isLoading: true });\n let today = new Date();\n let dd = today.getDate();\n let mm = today.getMonth();\n let yyyy = today.getFullYear();\n\n if (dd < 10 && dd.length <= 2) {\n dd = '0' + dd;\n }\n if (mm < 10 && mm.length <= 2) {\n mm = '0' + mm;\n }\n\n if (dd < 29) {\n today =\n (mm + 1).toString() +\n '/' +\n (dd + 2).toString() +\n '/' +\n yyyy.toString();\n } else {\n today =\n (mm + 2).toString() + '/' + dd.toString() + '/' + yyyy.toString();\n }\n let end;\n if (mm <= 1) {\n end = '12' + '/' + dd.toString() + '/' + (yyyy - 1).toString();\n } else {\n end = (mm - 1).toString() + '/' + dd.toString() + '/' + yyyy.toString();\n }\n\n axios({\n method: 'get',\n url:\n url +\n 'Records?DateFrom=' +\n end +\n '&DateTo=' +\n today +\n '&SmartID=' +\n '' +\n '&ScramblerID=' +\n '' +\n '&Type=' +\n eventType,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n })\n .then(res => {\n let data = res.data;\n let length = res.data.length;\n window.localStorage.setItem('DateFrom', JSON.stringify( moment(end).format('MM/DD/YYYY') ));\n window.localStorage.setItem('DateTo', JSON.stringify( moment(today).format('MM/DD/YYYY') ));\n window.localStorage.setItem('eventType', eventType.toString());\n this.setState({ data, length, isLoading: false });\n })\n .catch(error => {\n let data = [];\n let length = 0;\n this.setState({ data, length, isLoading: false });\n });\n }\n }\n\n render() {\n let columns = [];\n let { data, length } = this.state;\n if (data) {\n data.map(col => {\n let arr = Object.keys(col);\n columns = arr.map(a => ({ Header: a, accessor: a }));\n\n let button = {\n Header: 'Select',\n accessor: 'id',\n filterable: false,\n Cell: row => (\n {this.state.idToDelete !== row.original.id ? (\n {\n await this.props.getRecords( row.original.id );\n this.props.setActiveComponent('baseRecord', row.original);\n }}\n >\n Select Participant\n \n ) : (\n this.setState({ openConfirmDelete: false, idToDelete: '' })}\n >\n Cancel\n \n )}\n { this.props.profile.role.id === 1 || this.props.profile.role.id === 2 ? (\n {\n this.deleteRecord(row.original.id);\n }}\n style={\n row.original.id == this.state.idToDelete ? {backgroundColor: 'green', color: 'white'} : {backgroundColor: 'red', color: 'white'}\n }\n content={\n this.state.openConfirmDelete == true ? 'Confirm' : 'Delete'\n }\n />\n ) : null\n }\n \n ),\n };\n\n let filterVal;\n\n let dateRecorded = {\n Header: 'Date Recorded',\n accessor: 'dateRecorded',\n filterable: false,\n Cell: row => (\n {row.original.dateRecorded}\n ),\n };\n\n let visitCount = {\n Header: 'Number of Events',\n accessor: 'recordCount',\n filterable: false\n };\n let mostRecentVisit = {\n Header: 'Most Recent Visit',\n accessor: 'recentRecordDate',\n filterable: false,\n Cell: row => (\n moment( row.original.recentRecordDate ).format('L') === '01/01/1900'\n ? '--'\n : {row.original.recentRecordDate}\n ),\n };\n let firstVisit = {\n Header: 'First Visit',\n accessor: 'firstRecordDate',\n filterable: false,\n Cell: row => (\n moment( row.original.firstRecordDate ).format('L') === '01/01/1900'\n ? '--'\n : {row.original.firstRecordDate}\n ),\n };\n let historyID = {\n Header: 'History ID',\n accessor: 'historyID',\n Cell: row => row.original.historyID ? { row.original.historyID } : { \"\" }\n };\n let smartID = {\n Header: this.props.recordType === 'Participant' ? 'Smart ID' : this.props.recordType === 'Community' ? 'Community ID' : null,\n accessor: 'smartID',\n };\n let scramblerID = {\n Header: 'Scrambler ID',\n accessor: 'scramblerID',\n };\n\n columns = columns.filter(column => column.Header !== 'inputData');\n columns = columns.filter(column => column.Header !== 'records');\n columns = columns.filter(column => column.Header !== 'notes');\n columns = columns.filter(column => column.Header !== 'id');\n columns = columns.filter(column => column.Header !== 'status');\n columns = columns.filter(column => column.Header !== 'dateRecorded');\n columns = columns.filter(column => column.Header !== 'historyID');\n columns = columns.filter(column => column.Header !== 'smartID');\n columns = columns.filter(column => column.Header !== 'scramblerID');\n columns = columns.filter(column => column.Header !== 'type');\n columns = columns.filter(column => column.Header !== 'firstRecordDate');\n columns = columns.filter(column => column.Header !== 'recentRecordDate');\n columns = columns.filter(column => column.Header !== 'recordCount');\n columns.push(scramblerID, smartID, historyID, firstVisit, mostRecentVisit, visitCount, button);\n })\n }\n \n\n const ModalElement = (\n \n {({ postNewParticipant, isLoading }) => (\n \n )}\n \n );\n\n const search = (\n \n );\n return (\n \n \n { ({ isLoading }) => (\n this.state.isLoading == true ? (\n \n \n \n \n \n ) : (\n \n \n this.setState({ deleteErrorModal: false }) }\n size=\"mini\"\n >\n \n Unable to delete this record.\n
\n Please make sure to remove all events associated with this record before deleting.\n
\n \n
\n )\n )}\n
\n
\n );\n }\n}\n\nexport default Base;\n","import React from 'react';\nimport { Button, Segment, Dimmer, Loader, Icon, Modal } from 'semantic-ui-react';\nimport PlaceholderTable from '../Tables/PlaceholderTable';\nimport { EventsModals } from '../Modals/EventsModals';\nimport axios from 'axios';\nimport { key, url, getCookie } from '../../Util';\nimport { ParticipantHeader } from '../ParticipantHeader/ParticipantHeader';\nimport Moment from 'react-moment';\nimport { ToastContainer, toast } from 'react-toastify';\nimport {\n BaseObjectProvider,\n BaseObjectContext,\n BaseObjectConsumer,\n} from '../../Context/BaseObjectContext';\nimport moment from 'moment';\nimport _ from 'lodash';\n\nexport class BaseRecords extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n openConfirmDelete: false,\n idToDelete: ''\n };\n }\n\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token, isLoading: true});\n }\n\n if (this.props.baseObject !== undefined) {\n this.getRecords();\n }\n this.notify();\n }\n\n componentDidUpdate(prevProps, prevState) {\n\n if(this.context.isLoading !== this.state.isLoading) {\n this.setState({isLoading: this.context.isLoading});\n }\n // if ( !_.isEqual(prevProps.baseObject.notes, this.props.baseObject.notes) ) {\n // this.notify()\n // }\n }\n\n notify = () => {\n let toastId = this.props.recordID || null;\n // let customToastId = 'xxx-yyy';\n if (this.props.baseObject !== undefined) {\n let notes = this.props.baseObject.notes;\n\n let notDismissedNotes = notes.filter(\n note => note.notificationStatus !== 13\n );\n\n\n if (notDismissedNotes.length > 0) {\n // let filter = notDismissedNotes.filter(\n // note => Date.parse(note.dateRecorded) > Date.parse(lastLogin)\n // );\n\n // if (filter !== undefined && filter.length > 0 && !toast.isActive(toastId)) {\n\n toast.info('You have participant notes', {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n\n }\n }\n }\n\n getRecords() {\n this.setState({isLoading: true});\n this.props.getRecords();\n }\n\n updateBaseNotes = notes => {\n const baseObject = this.state.baseObject;\n baseObject.notes = notes;\n this.setState({ baseObject });\n\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: baseObject,\n }).then(res => {\n let baseObject = res.data;\n let notes = res.data.notes;\n this.setState({ baseObject, notes });\n });\n }\n\n getRecord = id => {\n this.setState({isLoading: true});\n this.props.getRecordInput(id);\n this.setState({isLoading: false});\n // this.props.setActiveComponent('interface');\n }\n\n deleteRecordInstance = id => {\n if (this.state.openConfirmDelete == false) {\n this.setState({ openConfirmDelete: true, idToDelete: id });\n }\n if (this.state.openConfirmDelete == true) {\n this.props.deleteRecordInstance(id);\n this.setState({ openConfirmDelete: false, idToDelete: '' });\n }\n }\n\n checkProperty = field => {\n let fieldOrDescription;\n if (field !== 'status') {\n fieldOrDescription = field;\n } else if (field === 'status') {\n fieldOrDescription = `${field}.description`;\n }\n return fieldOrDescription;\n }\n\n render() {\n let columns = [];\n let { baseObject, notes } = this.state;\n\n if (this.props.baseObject !== undefined) {\n this.props.baseObject.records.map(col => {\n let arr = Object.keys(col);\n columns = arr.map(d => ({ Header: d, accessor: d }));\n let button = {\n Header: 'Select',\n accessor: 'id',\n filterable: false,\n Cell: row => (\n \n { this.state.idToDelete !== row.original.id ? (\n this.getRecord(row.original.id)}\n >\n Select Event\n \n ) : (\n this.setState({openConfirmDelete: false, idToDelete: ''})}\n >\n Cancel\n \n )}\n { this.props.profile.role.id === 1 || this.props.profile.role.id === 2 ? (\n this.deleteRecordInstance( row.original.id )}\n style={\n row.original.id == this.state.idToDelete ? {backgroundColor: 'green', color: 'white'} : {backgroundColor: 'red', color: 'white'}\n }\n content={\n this.state.openConfirmDelete == true ? 'Confirm' : 'Delete'\n }\n />\n ) : null}\n \n ),\n };\n\n let eventDate = {\n Header: 'Event Date',\n accessor: 'dateRecorded',\n filterable: false,\n Cell: row => (\n {row.original.dateRecorded}\n\n ),\n\n };\n\n let userRecorded = {\n Header: 'User Recorded',\n accessor: 'userRecorded',\n };\n\n columns = columns.filter(column => column.Header !== 'status');\n columns = columns.filter(column => column.Header !== 'inputData');\n columns = columns.filter(column => column.Header !== 'dateRecorded');\n columns = columns.filter(column => column.Header !== 'userRecorded');\n columns.push(eventDate, userRecorded, button);\n })\n }\n\n\n const Modal = (\n \n );\n\n const button = (\n \n {({\n startNewEventRecord\n }) => (\n \n )}\n \n );\n\n\n\n return (\n \n {({ baseObject, updateSmartID, isLoading }) => (\n \n {baseObject === undefined || baseObject.records === undefined || isLoading == true || this.state.isLoading == true ? (\n \n \n \n \n \n ) : (\n \n \n \n \n )}\n \n \n )}\n \n );\n }\n}\n\nBaseRecords.contextType = BaseObjectContext;\n","import React from 'react';\nimport { TabHeader } from '../TabHeader/TabHeader';\nimport Base from './Base';\nimport { BaseRecords } from './BaseRecords';\nimport { Button } from 'semantic-ui-react';\nimport { Interface } from '../Interface/Interface';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\n\nexport class Events extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n componentDidMount() {\n if(this.props.baseObject !== undefined) {\n this.props.getRecords();\n }\n }\n\n\n renderRightHeader = () => {\n if (this.props.profile !== null && this.props.profile !== undefined) {\n return (\n

\n {this.props.profile.site.name}\n

\n );\n } else {\n return (\n

\n No Site Assigned\n

\n );\n }\n };\n\n renderLeftTitle = () => {\n if (this.props.activeComponent === 'base' && this.props.recordType !== undefined) {\n return `${this.props.recordType} Events`;\n } else {\n return \"SSP Events\";\n }\n }\n\n\n render() {\n const { profile } = this.props;\n\n const rightHeader = this.renderRightHeader();\n const titleLeft = this.renderLeftTitle();\n const activeComponent = this.props.activeComponent;\n\n const baseRecord = (\n \n {({ baseObject, postNewParticipant, getRecordInput, deleteRecord, getRecords }) =>\n \n }\n \n );\n const baseRecords = (\n \n {({ baseObject, startNewEventRecord, getRecordInput, getRecords, deleteRecordInstance, records }) =>\n \n }\n \n );\n\n return (\n
\n \n {this.props.render({\n activeComponent,\n baseRecord,\n baseRecords,\n })}\n
\n );\n }\n}\n","import React from 'react';\nimport { TabHeader } from '../TabHeader/TabHeader';\nimport ReactTable from 'react-table';\nimport {\n Segment,\n Modal,\n Button,\n Header,\n Form,\n Label,\n Divider,\n Icon,\n} from 'semantic-ui-react';\nimport axios from 'axios';\nimport { url, key, getCookie } from '../../Util';\nimport DatePicker from 'react-datepicker';\nimport MaskedInput from 'react-text-mask';\nimport moment from 'moment';\nimport _ from 'lodash';\n\nexport class Reports extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n open: false,\n stop: false,\n columns: [],\n data: [],\n loading: false,\n error: false,\n errorResponse: '',\n substance: '',\n substanceOptions: [],\n };\n }\n\n componentDidMount() {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n\n axios({\n method: 'get',\n url: url + 'Reports',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n let data = res.data;\n let length = res.data.length;\n this.createColumns(res.data);\n this.setState({ data, length });\n });\n\n axios({\n method: 'get',\n url: url + 'Sites',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n let sites = res.data;\n this.setState({ sites });\n });\n let substanceLookupId = 9;\n axios({\n method: 'get',\n url: url + `Interface/dataElement/${substanceLookupId}`,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n let substanceOptions = res.data.options;\n this.setState({ substanceOptions });\n });\n\n if (this.props.profile !== undefined) {\n if( this.props.profile.role.id == 2 || this.props.profile.role.id == 3 || this.props.profile.role.id == 4 ) {\n let site = this.props.profile.site;\n this.setState({ site });\n }\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.open == true && this.state.open == false) {\n this.setState({\n url: null,\n dateFrom: '',\n dateTo: '',\n errorResponse: '',\n substance: '',\n });\n\n this.createColumns(this.state.data);\n }\n\n if (this.state.sites !== prevState.sites && this.props.profile !== undefined) {\n if ( this.props.profile.role.id == 1 ) {\n }\n else if ( this.props.profile.role.id == 2 || this.props.profile.role.id == 3 || this.props.profile.role.id == 4 ) {\n let site = this.props.profile.site;\n this.setState({ site });\n }\n }\n }\n\n createColumns = data => {\n let keys = data.map(d => Object.keys(d));\n let keyLength = keys[0].length;\n let columns = [];\n let button = {\n Header: '',\n accessor: 'id',\n Cell: row => (\n \n ),\n };\n for (let i = 0; i < keyLength; i++) {\n if (keys[0][i] !== 'id') {\n if (keys[0][i] != 'filter')\n columns.push({ Header: keys[0][i], accessor: keys[0][i] });\n }\n }\n\n columns.push(button);\n this.setState({ columns });\n }\n\n reportModal = details => {\n let options = this.state.sites.map(site => ({\n key: site.id,\n text: site.name,\n value: site.id,\n }));\n\n let substanceOptions = this.state.substanceOptions.map(substance => ({\n key: substance.id,\n text: substance.label,\n value: substance.id,\n }));\n\n let modalDetails = {\n id: details.original.id,\n name: details.original.name,\n description: details.original.description,\n options,\n substanceOptions,\n filter: _.parseInt(details.original.filter),\n };\n\n this.setState({ open: true, modalDetails });\n }\n\n onToChange = value => {\n const dateTo = value;\n this.setState({ dateTo, error: false, errorResponse: '' });\n }\n\n onFromChange = value => {\n const dateFrom = value;\n this.setState({ dateFrom, error: false, errorResponse: '' });\n }\n\n onSiteChange = (event, { name, value }) => {\n const site = value;\n this.setState({ site, error: false, errorResponse: '' });\n }\n\n onFilterChange = (event, { name, value }) => {\n const substance = value;\n this.setState({ substance });\n }\n\n runReport = () => {\n this.setState({ loading: !this.state.loading });\n let site;\n if (_.isObject(this.state.site) == true) {\n site = this.state.site.id;\n } else {\n site = this.state.site;\n }\n const reportID = this.state.modalDetails.id;\n\n if (_.isInteger(this.state.substance) == true) {\n axios({\n method: 'post',\n url: url + 'report/execute?ReportID=' + reportID + '&ReportType=pdf',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: {\n values: [\n {\n name: 'SiteID',\n value: site,\n type: 'integer',\n },\n {\n name: 'DateFrom',\n value: moment(this.state.dateFrom).format('MM/DD/YYYY'),\n type: 'date',\n },\n {\n name: 'DateTo',\n value: moment(this.state.dateTo).format('MM/DD/YYYY'),\n type: 'date',\n },\n {\n name: 'Parm1',\n value: this.state.substance,\n type: 'integer',\n },\n ],\n },\n })\n .then(res => {\n this.setState({\n loading: false,\n url: res.data.url,\n dateFrom: undefined,\n dateTo: undefined,\n // site: undefined,\n substance: '',\n });\n })\n .catch(error => {\n console.log(error);\n this.setState({\n loading: false,\n error: true,\n errorResponse: error.response,\n dateFrom: undefined,\n dateTo: undefined,\n // site: undefined,\n substance: '',\n });\n });\n } else {\n\n let site;\n if (_.isObject(this.state.site) == true) {\n console.log(this.state.site);\n site = this.state.site.id;\n } else {\n site = this.state.site;\n }\n\n axios({\n method: 'post',\n url: url + 'report/execute?ReportID=' + reportID + '&ReportType=pdf',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n data: {\n values: [\n {\n name: 'SiteID',\n value: site,\n type: 'integer',\n },\n {\n name: 'DateFrom',\n value: moment(this.state.dateFrom).format('MM/DD/YYYY'),\n type: 'date',\n },\n {\n name: 'DateTo',\n value: moment(this.state.dateTo).format('MM/DD/YYYY'),\n type: 'date',\n },\n ],\n },\n })\n .then(res => {\n this.setState({\n loading: false,\n url: res.data.url,\n dateFrom: undefined,\n dateTo: undefined,\n // site: undefined,\n substance: '',\n });\n })\n .catch(error =>\n this.setState({\n loading: false,\n error: true,\n url: null,\n errorResponse: error.response,\n dateFrom: undefined,\n dateTo: undefined,\n // site: undefined,\n substance: '',\n })\n );\n }\n }\n\n openReport = () => {\n window.open(this.state.url);\n this.setState({ open: false, url: null });\n }\n\n onClose = () => {\n this.setState({\n url: null,\n dateFrom: undefined,\n dateTo: undefined,\n errorResponse: '',\n open: false,\n error: false,\n // site: undefined,\n });\n }\n\n render() {\n const content = 'Reports';\n const {\n columns,\n data,\n modalDetails,\n dateFrom,\n dateTo,\n site,\n loading,\n substance,\n substanceOptions,\n errorResponse,\n } = this.state;\n const { profile } = this.props;\n\n const modal = (\n \n this.setState({ open: false, error: false, errorResponse: '' })\n }\n style={{ float: 'right', marginTop: '-1em', marginRight: '-20px' }}\n />\n }\n onClose={this.handleClose}\n centered\n closeOnDocumentClick\n >\n Run Reports\n \n \n
\n {modalDetails !== undefined ? modalDetails.name : ''}\n
\n

{modalDetails !== undefined ? modalDetails.description : ''}

\n
\n
\n \n \n \n }\n />\n \n \n \n \n }\n />\n \n \n {profile.role !== undefined && profile.role.id == 1 ? (\n \n ) : (\n \n )}\n {modalDetails !== undefined &&\n _.isInteger(modalDetails.filter) == true ? (\n \n ) : null}\n\n \n \n \n {this.state.url === undefined || this.state.url === null\n ? 'Run Report'\n : 'Open Report'}\n \n {this.state.error === true ? (\n
\n Error Running Report, Please Try Again\n
\n ) : null}\n \n
\n \n );\n\n return (\n
\n \n\n \n \n {modal}\n \n
\n );\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport axios from 'axios';\nimport { key, url, getCookie } from '../../Util';\n\nconst BiReporting = () => {\n\tconst [ iframeUrl, setIframeUrl ] = useState( '' );\n\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst AccessToken = getCookie( 'token' );\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios( {\n\t\t\t\t\tbaseURL: url,\n\t\t\t\t\turl: '/user/authenticate/adhoc',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tapi_key: key,\n\t\t\t\t\t\tAccessToken\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\n\t\t\t\tsetIframeUrl( `https://isdhbi.kineticiq.com?t=${ data.token }` );\n\t\n\t\t\t} catch ( err ) {\n\t\t\t\tconsole.error( err );\n\t\t\t}\n\t\t} )();\n\t} , [] );\n\n\treturn (\n\t\t\n\t\t\t{ iframeUrl\n\t\t\t\t\t?
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t:\t
\n\t\t\t\t\t\tloading...\n\t\t\t\t\t
\n\t\t\t}\n\t\t
\n\t);\n};\n\nexport default BiReporting;","import React from 'react';\nimport { Tab, Segment, Button, Modal } from 'semantic-ui-react';\nimport { Dashboard } from '../Dashboard/Dashboard';\nimport { Events } from '../Events/Events';\nimport { Reports } from '../Reports/Reports';\nimport { BaseObjectConsumer } from '../../Context/BaseObjectContext';\nimport BiReporting from '../BiReporting';\n\nconst dashboardPane = {\n menuItem: {\n key: 'dashboard',\n icon: 'grid layout',\n content: 'Dashboard',\n style: { color: 'white' },\n },\n render: (props) => (\n props.panes !== undefined && props.profile !== undefined ? (\n props.panes.forEach( (pane) => {\n\n pane.menuItem.className = `menu${pane.menuItem.content}${props.profile.role.name}`;\n })\n ) : null,\n \n (\n
\n {/*

{content}

*/}\n \n {gender}\n {substance}\n \n
\n {referral}\n
\n )}\n profile={props.profile}\n width={props.width}\n />\n \n ),\n};\n\nconst eventsPane = {\n menuItem: {\n key: 'events',\n icon: 'medkit',\n content: 'Events',\n style: { color: 'white' },\n },\n render: props => (\n props.panes !== undefined && props.profile !== undefined ? (\n props.panes.forEach( (pane) => {\n pane.menuItem.className = `menu${pane.menuItem.content}${props.profile.role.name}`;\n })\n ) : null,\n \n \n {({getRecords}) =>\n (\n
\n {props.activeComponent === 'base'\n ? baseRecord\n : props.activeComponent === 'baseRecord'\n ? baseRecords\n : props.activeComponent === 'community'\n ? baseRecord\n : props.activeComponent === 'eventTypeCheck' ?\n \n \n \n Would you like to load the Community or Participant interface?\n \n \n Please select Community interface for any non-participant related events.\n \n \n \n \n \n \n \n : null}\n

{leftFooter}

\n {modal}\n
\n\n )}\n setActiveComponent={props.setActiveComponent}\n recordID={props.recordID}\n getRecordInput={props.getRecordInput}\n setBaseActiveIndex={props.setBaseActiveIndex}\n activeComponent={props.activeComponent}\n profile={props.profile}\n updateBaseNotes={props.updateBaseNotes}\n updateSmartID={props.updateSmartID}\n recordType={props.recordType}\n baseObject={props.baseObject}\n getRecords={getRecords}\n />\n }\n
\n \n ),\n};\n\nconst reportsPane = {\n menuItem: {\n key: 'reports',\n icon: 'chart line',\n content: 'Reports',\n style: { color: 'white' },\n },\n render: (props) => (\n props.panes !== undefined && props.profile !== undefined ? (\n props.panes.forEach( (pane) => {\n\n pane.menuItem.className = `menu${pane.menuItem.content}${props.profile.role.name}`;\n })\n ) : null,\n\n \n (\n
\n {content}\n

{rightHeader}

\n
\n )}\n profile={props.profile}\n />\n \n ),\n};\n\nconst biReportingPane = {\n menuItem: {\n key: 'biReporting',\n icon: 'grid layout',\n content: 'BI Reporting',\n style: { color: 'white' },\n },\n render: () => (\n \n \n \n ),\n};\n\nexport const SidebarPanes = (props) => {\n switch (props.profile.role.id) {\n case 1:\n return [\n dashboardPane,\n eventsPane,\n reportsPane,\n biReportingPane\n ];\n case 2:\n case 3:\n return [\n dashboardPane,\n eventsPane,\n reportsPane\n ];\n case 4:\n return [\n dashboardPane,\n reportsPane\n ];\n default:\n return [];\n }\n};\n\n\n\nconst tabletEventsPane = {\n menuItem: {\n key: 'events',\n icon: 'medkit',\n content: 'Events',\n style: { color: 'white' },\n },\n render: props => (\n \n \n {({getRecords}) =>\n (\n
\n {props.activeComponent === 'base'\n ? baseRecord\n : props.activeComponent === 'baseRecord'\n ? baseRecords\n : props.activeComponent === 'community'\n ? baseRecord\n : props.activeComponent === 'eventTypeCheck' ?\n \n \n \n Would you like to load the Community or Participant interface?\n \n \n Please select Community interface for any non-participant related events.\n \n \n \n \n \n \n \n : null}\n

{leftFooter}

\n {modal}\n
\n\n )}\n setActiveComponent={props.setActiveComponent}\n recordID={props.recordID}\n getRecordInput={props.getRecordInput}\n setBaseActiveIndex={props.setBaseActiveIndex}\n activeComponent={props.activeComponent}\n profile={props.profile}\n updateBaseNotes={props.updateBaseNotes}\n updateSmartID={props.updateSmartID}\n recordType={props.recordType}\n baseObject={props.baseObject}\n getRecords={getRecords}\n />\n }\n
\n \n ),\n};\n\nexport const tabletSidebarPanes = (props) => {\n if ( props.profile !== undefined ) {\n switch (props.profile.role.id) {\n case 1:\n case 2:\n case 3:\n return [\n tabletEventsPane\n ];\n case 4:\n return [];\n default:\n return [];\n }\n }\n return [];\n};\n","import React from 'react';\nimport { Tab, Responsive } from 'semantic-ui-react';\nimport { SidebarPanes, tabletSidebarPanes } from './SidebarPanes';\n\nexport class Sidebar extends React.Component {\n handleChange = (event, data) => {\n this.props.setBaseActiveIndex('eventTypeCheck', data.activeIndex);\n }\n\n componentDidMount() {\n if (this.props.width !== undefined) {\n if (this.props.width < 992) {\n this.props.setBaseActiveIndex('eventTypeCheck', 0);\n }\n }\n }\n\n render() {\n const { profile } = this.props;\n return (\n \n { profile !== undefined\n ? \n \n \n \n : null\n }\n \n );\n }\n}\n","import React from 'react';\nimport { TabHeader } from '../TabHeader/TabHeader';\nimport PlaceholderTable from '../Tables/PlaceholderTable';\nimport { AdminModals } from '../Modals/AdminModals';\nimport axios from 'axios';\nimport { NavigationBar } from '../Interface/Interface';\nimport { url, key, getCookie } from '../../Util';\nimport { Dimmer, Loader } from 'semantic-ui-react';\nimport PhoneInput from 'react-phone-input-auto-format';\nimport { APIContextConsumer } from '../../Context/APIProgressContext';\n\nexport class SiteAdmin extends React.Component {\n constructor(props) {\n super(props);\n this.state = { sites: [], isLoading: false };\n }\n\n componentDidMount() {\n this.setState({ isLoading: true });\n this.getSites();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n if (this.state.sites.length !== prevState.sites.length) {\n this.setState({ isLoading: true });\n this.getSites();\n }\n\n if (this.state.sites !== prevState.sites && this.state.sites.length !== prevState.sites.length) {\n this.getSites();\n }\n }\n\n getSites = () => {\n this.props.updateCounter(1,0);\n axios({\n method: 'get',\n url: url + 'sites',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.setState({ sites: res.data, isLoading: false });\n this.props.updateCounter(0,1);\n });\n }\n\n render() {\n const columns = [\n { Header: 'Site', accessor: 'name' },\n { Header: 'Description', accessor: 'description' },\n { Header: 'Contact Name', accessor: 'contactName' },\n { Header: 'Contact Email', accessor: 'contactEmail' },\n {\n Header: 'Contact Phone',\n accessor: 'contactPhone',\n Cell: row => (\n \n ),\n },\n {\n Header: 'Modify Site',\n accessor: 'id',\n filterable: false,\n Cell: row => (\n \n {({ updateCounter }) => (\n \n )}\n \n ),\n },\n ];\n const data = this.state.sites;\n const Modal = (\n \n {({ updateCounter }) => (\n \n )}\n \n );\n const content = (\n \n );\n\n return (\n \n \n \n \n \n \n {this.props.render({ content: content })}\n \n );\n }\n}\n","import React from 'react';\nimport { Dimmer, Button, Loader, Header, Segment } from 'semantic-ui-react';\nimport { NavigationBar } from '../Interface/Interface';\nimport { TabHeader } from '../TabHeader/TabHeader';\nimport { AdminModals } from '../Modals/AdminModals';\nimport PlaceholderTable from '../Tables/PlaceholderTable';\nimport axios from 'axios';\nimport { url, key, getCookie } from '../../Util';\n\nexport default class NotificationAdmin extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n userNotifications: [],\n notifications: [],\n isLoading: false,\n confirm: false,\n delete: '',\n };\n }\n\n async componentDidMount() {\n let token = getCookie('token');\n this.setState({ token, isLoading: true });\n await this.getNotifications();\n }\n\n componentDidUpdate( prevProps, prevState ) {\n if (prevState.notifications !== this.state.notifications ) {\n this.getUserNotifications()\n }\n }\n\n toggleDeleteError = notification => {\n this.setState({ confirm: true, delete: notification });\n }\n\n deleteNotification = notification => {\n this.props.updateCounter(1,0);\n axios({\n method: 'delete',\n url: url + 'notification/' + notification,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.props.updateCounter(0,1);\n this.getNotifications();\n this.setState({ confirm: false, isLoading: false });\n });\n }\n\n getUserNotifications = () => {\n axios({\n method: 'get',\n url: url + 'Notifications/User',\n headers: {\n api_key: key,\n AccessToken: getCookie('token')\n },\n }).then(res => {\n // this.setState({userNotifications: res.data, isLoading: false})\n this.props.listNotifications( res.data );\n });\n }\n\n getNotifications = () => {\n axios({\n method: 'get',\n url: url + 'Notifications',\n headers: {\n api_key: key,\n AccessToken: getCookie('token')\n },\n }).then(res => {\n this.setState({notifications: res.data, isLoading: false})\n });\n }\n\n render() {\n const columns = [\n { Header: 'Notification', accessor: 'content' },\n {\n Header: 'Modify Notification',\n accessor: 'id',\n filterable: false,\n Cell: row => (\n\n \n ),\n },\n {\n Header: 'Delete Notification',\n accessor: 'id',\n filterable: false,\n Cell: row => (\n this.toggleDeleteError(row.original.id)}\n />\n ),\n },\n ];\n\n const data = this.state.notifications;\n const Modal = (\n \n );\n const content = (\n \n );\n\n return (\n \n \n \n \n \n \n {this.state.confirm === true ? (\n \n
Are You Sure You Want To Delete This Notification?
\n this.deleteNotification(this.state.delete)}\n />\n this.setState({ confirm: false })}\n />\n \n ) : null}\n {this.props.render({ content })}\n \n );\n }\n}\n","import React from 'react';\nimport { Modal } from 'semantic-ui-react';\n\nconst DuplicateProviderLoginModal = ({ open, close }) => {\n return (\n \n \n Duplicate login Error!\n \n \n

An error occurred and we were unable to create the provider! It appears that a provider with that login already exists. Please try again with a unique login.

\n
\n \n );\n};\n\nexport default DuplicateProviderLoginModal;","import React from 'react';\nimport { TabHeader } from '../TabHeader/TabHeader';\nimport PlaceholderTable from '../Tables/PlaceholderTable';\nimport { AdminModals } from '../Modals/AdminModals';\nimport { NavigationBar } from '../Interface/Interface';\nimport axios from 'axios';\nimport { url, key, getCookie } from '../../Util';\nimport { Loader, Dimmer } from 'semantic-ui-react';\nimport DuplicateProviderLoginModal from './DuplicateProviderLoginModal';\n\nexport class ProviderAdmin extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n providers: [],\n isLoading: false,\n duplicateProviderLoginModal: false\n };\n }\n\n componentDidMount() {\n this.setState({ isLoading: true });\n if (this.state.token === undefined) {\n let token = getCookie('token');\n this.setState({ token });\n }\n this.getProviders();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.providers !== prevState.providers && this.state.providers.length !== prevState.providers.length) {\n this.getProviders();\n }\n }\n\n getProviders = () => {\n this.props.updateCounter(1, 0);\n axios({\n method: 'get',\n url: url + 'Providers',\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n }).then(res => {\n this.props.updateCounter(0, 1);\n this.setState({ providers: res.data, isLoading: false });\n });\n }\n\n postProvider = async ( provider, genPin = false ) => {\n this.props.updateCounter(1, 0);\n let data = {\n ...provider\n };\n try {\n const res = await axios({\n method: 'post',\n url: url + 'Provider',\n data,\n headers: {\n api_key: key,\n AccessToken: getCookie('token'),\n },\n params: {\n genPin\n }\n });\n if ( res ) {\n this.props.updateCounter(0, 1);\n this.getProviders();\n return true;\n }\n } catch ( e ) {\n this.props.updateCounter(0, 1);\n if ( e.response.status === 409 ) {\n this.setState({ duplicateProviderLoginModal: true });\n }\n return false;\n };\n }\n\n render() {\n const columns = [\n { Header: 'Provider', accessor: 'name' },\n { Header: 'Contact Name', accessor: 'contactName' },\n { Header: 'Contact Email', accessor: 'contactEmail' },\n { Header: 'Contact Phone', accessor: 'contactPhone' },\n {\n Header: 'Modify Provider',\n accessor: 'id',\n filterable: false,\n Cell: row => (\n \n ),\n },\n ];\n const data = this.state.providers;\n const Modal = (\n \n );\n const content = (\n \n );\n\n return (\n \n \n \n \n \n \n {this.props.render({ content: content })}\n this.setState({ duplicateProviderLoginModal: false }) }\n />\n \n );\n }\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport {\n Header,\n Title,\n Profile,\n Notifications,\n Settings,\n} from '../Components/Header/Header';\nimport axios from 'axios';\nimport { Sidebar } from '../Components/Sidebar/Sidebar';\nimport {\n Menu,\n Tab,\n Card,\n Button,\n Responsive,\n Loader,\n Dimmer,\n Icon,\n} from 'semantic-ui-react';\nimport { SidebarPanes } from '../Components/Sidebar/SidebarPanes';\nimport { Interface } from '../Components/Interface/Interface';\nimport { url, key, setCookie } from '../Util';\nimport { UserAdmin } from '../Components/Admin/UserAdmin';\nimport { SiteAdmin } from '../Components/Admin/SiteAdmin';\nimport NotificationAdmin from '../Components/Admin/NotificationAdmin';\nimport PhoneInput from 'react-phone-input-auto-format';\nimport { ProviderAdmin } from '../Components/Admin/ProviderAdmin';\nimport {\n BaseObjectConsumer,\n BaseObjectProvider,\n BaseObjectContext\n} from '../Context/BaseObjectContext';\nimport {\n APIContextProvider,\n APIContextConsumer,\n} from '../Context/APIProgressContext';\n\n\nexport class Main extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeComponent: 'base',\n interfaces: [],\n visible: false,\n interfaceID: '',\n showBadge: false,\n inProgress: 0,\n finished: 0,\n };\n\n }\n\n setActiveComponent = (component, data) => {\n if (data !== undefined) {\n\n if (this.state.activeComponent === 'base') {\n this.setState({ activeComponent: component, recordID: data.id });\n }\n\n if (component === 'baseRecord') {\n this.setState({ activeComponent: component, recordID: data.id });\n }\n } else {\n this.setState({ activeComponent: component });\n }\n }\n\n setBaseActiveIndex = (component, index, recordType) => {\n if (recordType === 'Community') {\n window.localStorage.removeItem('smartID');\n window.localStorage.removeItem('scramblerID');\n this.setState({\n activeComponent: 'community',\n recordType,\n interfaceID: 3,\n });\n } else if (recordType === 'Participant') {\n window.localStorage.removeItem('smartID');\n window.localStorage.removeItem('scramblerID');\n this.setState({ activeComponent: component, recordType, interfaceID: 2 });\n } else {\n this.setState({ activeComponent: component, activeBaseIndex: index });\n }\n }\n\n getInterfaces = id => {\n this.setState({ inProgress: this.state.inProgress + 1 });\n axios({\n method: 'get',\n url: url + 'Interface/' + id,\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n }).then(res => {\n let finished = this.state.finished;\n finished = finished + 1;\n // added by Jonathan 10/02/2019\n const newInterfacesArray = res.data.interfaces.reduce(( acc, item ) => {return [ ...acc, ...item.uiSets ];}, []);\n this.setState({ interfaces: newInterfacesArray, finished });\n });\n }\n\n handleButtonClick = () => {\n this.setState({ visible: !this.state.visible });\n }\n\n getPanes = () => {\n if (this.state.interfaces.length >= 1) {\n const data = this.state.interfaces;\n const panes = data.map(d => ({\n menuItem: d.label,\n render: () => {d.label},\n }));\n if (this.state.panes === undefined) {\n this.setState({ panes });\n }\n }\n }\n\n listNotifications = notifications => {\n this.setState({ notifications });\n }\n\n checkNotifications = () => {\n if (\n this.state.notifications !== undefined &&\n this.state.profile !== undefined\n ) {\n let notifications = this.state.notifications;\n let profile = this.state.profile;\n let foundNotifications = _.filter(notifications, {\n notificationStatus: 12,\n });\n\n foundNotifications.forEach(notification => {\n if (\n notification.date.split('T')[0] >= profile.lastLogin.split('T')[0]\n ) {\n this.setState({ showBadge: true });\n } else {\n this.setState({ showBadge: false });\n }\n });\n }\n }\n\n getRecordInput = id => {\n axios({\n method: 'get',\n url: url + 'Record/Instance/' + id,\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n }).then(res => {\n const baseObject = res.data;\n this.setState({ baseObject, instanceID: id });\n });\n }\n\n\n getRecords = () => {\n\n if (this.state.recordID > 0)\n {\n axios({\n method: 'get',\n url: url + 'Record/' + this.state.recordID,\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n }).then(res => {\n let baseObj = res.data;\n let notes = res.data.notes;\n let finished = this.state.finished;\n finished = finished + 1;\n this.setState({ baseObject: baseObj, notes: notes, finished });\n });\n }\n }\n\n setBaseObjectState = newBaseObject => {\n const baseObject = newBaseObject;\n this.setState({ baseObject });\n }\n\n updateBaseObject = updatedObject => {\n const { baseObject, instanceID } = this.state;\n\n let inputData = [];\n let recordData = [];\n for (const [key, value] of Object.entries(updatedObject)) {\n for (const [k, v] of Object.entries(value)) {\n if (\n key < 9 ||\n key === 38 ||\n value.elementID < 9 ||\n value.elementID === 38\n ) {\n inputData.push(value);\n baseObject.inputData = inputData;\n } else {\n recordData.push(value);\n\n baseObject.records.forEach(record => {\n if (record.id === instanceID) {\n baseObject.records[0].inputData = recordData;\n }\n });\n }\n }\n }\n this.setState({ baseObject });\n\n this.submitDynamicForm(baseObject);\n if (this.state.activeComponent === 'newEvent') {\n this.pushRecord(recordData);\n } else return;\n }\n\n pushRecord = recordData => {\n\n const { baseObject } = this.state;\n let records = baseObject.records;\n let newRecordInstance = { id: 0, inputData: recordData };\n records.push(newRecordInstance);\n return records;\n }\n\n getProfile = () => {\n this.setState({ inProgress: this.state.inProgress + 1 });\n if (this.props.userID !== undefined) {\n const userID = this.props.userID;\n axios({\n method: 'get',\n url: url + 'user/' + userID,\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n }).then(res => {\n let profile = res.data;\n let finished = this.state.finished;\n finished = finished + 1;\n this.setState({ profile: profile, finished });\n });\n }\n }\n\n componentDidMount() {\n this.getProfile();\n window.localStorage.removeItem('smartID');\n window.localStorage.removeItem('scramblerID');\n window.localStorage.removeItem('DateFrom');\n window.localStorage.removeItem('DateTo');\n window.localStorage.removeItem('eventType');\n // window.localStorage.clear();\n }\n\n componentDidUpdate = (prevProps, prevState) => {\n\n if (prevState.interfaceID !== this.state.interfaceID) {\n this.getInterfaces(this.state.interfaceID);\n }\n\n if (this.state.profile !== prevState.profile) {\n this.checkNotifications();\n }\n if(this.state.activeComponent === 'base') {\n let interfaceID = this.state.interfaceID;\n if(_.isString(interfaceID)) {\n this.setState({activeComponent: 'eventTypeCheck'});\n }\n }\n }\n\n postNewRecord = () => {\n // this.submitDynamicForm();\n this.setActiveComponent('base', 1);\n }\n\n updateSmartID = smartID => {\n if (this.state.baseObject !== undefined) {\n const baseObject = this.state.baseObject;\n baseObject.smartID = smartID;\n this.setState({ baseObject });\n if (smartID.length === 11) {\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n data: baseObject,\n }).then(res => {\n let baseObject = res.data;\n let notes = res.data.notes;\n this.setState({ baseObject, notes });\n });\n }\n } else {\n if (smartID.length === 11) {\n axios({\n method: 'post',\n url: url + 'Record',\n headers: {\n api_key: key,\n AccessToken: this.props.token,\n },\n data: { smartID: smartID },\n }).then(res => {\n const recordID = res.data.id;\n this.setState({ recordID });\n if (this.state.recordID !== undefined) {\n this.getRecords();\n this.setActiveComponent('baseRecord');\n }\n });\n }\n }\n }\n\n handleLogout = () => {\n setCookie('token', this.props.token, -1);\n window.location.reload(true);\n }\n\n handleOnUpdate = (e, { width }) => this.setState({ width })\n\n render() {\n const {\n notifications,\n profile,\n baseObject,\n activeComponent,\n width,\n } = this.state;\n\n let setActiveComponent = this.setActiveComponent;\n return (\n \n \n \n {/* This is the header that appears across the whole app */}\n {typeof this.props.userID !== 'number' ? (\n this.props.history.push('/login')\n ) : (\n \n )}\n
\n (\n \n \n \n \n \n \n {({ apiProgressCounter }) => (\n apiProgressCounter > 0 ? (\n \n \n \n ) : null\n )}\n \n \n \n \n {profile !== undefined ? (\n (\n \n \n User Profile\n \n \n {profile.firstName} {profile.lastName}\n \n \n {profile.organization}\n \n \n Email: {profile.email}\n
\n Phone:{' '}\n \n
\n
\n \n {/* */}\n this.handleLogout()}\n >\n Logout\n \n \n
\n )}\n profile={profile}\n />\n ) : (\n
\n )}\n {this.state.profile !== undefined &&\n this.state.profile.role.id < 3 ? (\n \n ) : (\n
\n )}\n \n \n )}\n />\n
\n {/* The Header Ends Here */}\n {/* This is the Start of the Body */}\n {width === undefined ? (\n \n \n \n ) : (\n \n {({updateCounter}) => (\n \n \n {({\n baseObject,\n getRecordInput,\n points,\n getPointsAndElements,\n inputData,\n record,\n }) => (\n
\n
\n {/* */}\n {this.state.activeComponent === 'base' ||\n this.state.activeComponent === 'community' ? (\n \n \n \n ) : this.state.activeComponent === 'baseRecord' ? (\n \n ) : this.state.activeComponent === 'interface' ||\n this.state.activeComponent === 'newEvent' ? (\n \n
\n {this.state.interfaces.length === 0\n ? this.getInterfaces(this.state.interfaceID)\n : null}\n
\n\n \n
\n ) : this.state.activeComponent === 'userAdmin' ? (\n \n {({updateCounter}) => (\n
{content}
}\n updateCounter={updateCounter}\n />\n )}\n
\n ) : this.state.activeComponent === 'siteAdmin' ? (\n \n {({updateCounter}) => (\n
{content}
}\n updateCounter={updateCounter}\n />\n )}\n
\n ) : this.state.activeComponent === 'notificationAdmin' ? (\n \n {({updateCounter}) => (\n
{content}
}\n updateCounter={updateCounter}\n listNotifications={ this.listNotifications }\n />\n )}\n
\n ) : this.state.activeComponent === 'providerAdmin' ? (\n \n {({updateCounter}) => (\n
{content}
}\n updateCounter={updateCounter}\n />\n )}\n
\n ) : this.state.activeComponent === 'eventTypeCheck' ? (\n \n ) : null}\n {/* */}\n
\n
\n )}\n
\n \n )}\n
\n )}\n {/* The Body Ends Here */}\n\n
\n \n \n \n );\n }\n}\n\nMain.contextType = BaseObjectContext;\n","import React from 'react';\nimport { Icon, List, Popup } from 'semantic-ui-react';\n\nconst PasswordConfirm = ({ open, context, password, confirm }) => {\n return (\n \n \n \n \n \n \n  \n Passwords must match\n \n \n \n \n \n );\n}\n\nexport default PasswordConfirm;\n","import React from 'react';\nimport { Icon, List, Modal } from 'semantic-ui-react';\n\nconst PasswordConfirmError = ({ open, close }) => {\n return (\n \n \n Passwords must match!\n \n \n Please make sure the new password and confirm new password fields are matching.\n \n \n );\n}\n\nexport default PasswordConfirmError;\n","import React from 'react';\nimport { Ref, Input, Button, Header, List, Popup } from 'semantic-ui-react';\nimport btoa from 'btoa';\nimport PasswordInstructions from './PasswordInstructions';\nimport PasswordConfirm from './PasswordConfirm';\nimport PasswordInstructionsError from './PasswordInstructionsError';\nimport PasswordConfirmError from './PasswordConfirmError';\n\nexport class LoginForm extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n username: '',\n password: '',\n confirmPassword: '',\n penCode: '',\n passwordInstructionsOpen: false,\n passwordConfirmOpen: false,\n passwordInstructionsErrorOpen: false,\n passwordConfirmErrorOpen: false\n };\n this.contextRef = React.createRef();\n this.confirmContextRef = React.createRef();\n }\n\n handleChange = (event, { name, value }) => {\n this.setState({ [name]: value });\n }\n\n handleSubmit = () => {\n if (this.props.match.path === '/reset' ) {\n let penCode = this.props.location.pathname.split('/');\n console.log( penCode[2] )\n let password = this.state.password;\n let confirmPassword = this.state.confirmPassword;\n if ( /(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[`~!#$%^&*()_=+[\\]{}\\\\|;:’“,<.>/?-])(?:.){8,}$/.test( password ) ) {\n if ( password === confirmPassword ) {\n this.props.resetError()\n this.props.changePassword( penCode[2], btoa(password) )\n this.props.history.push('/login')\n } else {\n this.setState({ passwordConfirmErrorOpen: true });\n }\n } else {\n this.setState({ passwordInstructionsErrorOpen: true });\n }\n } else {\n\n if (this.props.loggedIn === false && this.props.forgotPass == false && this.props.changePass == false) {\n const username = this.state.username;\n const password = this.state.password;\n this.props.auth(username, password);\n }\n\n if (this.props.loggedIn === false && this.props.forgotPass == true) {\n if (this.state.username.length > 1) {\n this.props.resetPass(this.state.username);\n this.setState({ username: '', password: '' });\n }\n }\n }\n }\n\n render() {\n return (\n \n {this.props.match.path !== '/reset' ? (\n \n ) : null}\n {this.props.match.path === '/reset' ? (\n \n this.contextRef = ref }>\n this.setState({ passwordInstructionsOpen: true }) }\n onBlur={ () => this.setState({ passwordInstructionsOpen: false }) }\n />\n \n this.confirmContextRef = ref }>\n this.setState({ passwordConfirmOpen: true }) }\n onBlur={ () => this.setState({ passwordConfirmOpen: false }) }\n />\n \n \n ) : null}\n {this.props.match.path !== '/reset' && this.props.forgotPass == false ? (\n \n \n \n ) : null}\n {this.props.match.path !== '/reset' ? (\n \n {this.props.forgotPass !== true && this.props.match.path !== '/reset'\n ? 'Authorize Access'\n : 'Reset Password'}\n \n ) : (\n \n Reset Password\n \n )}\n\n {this.props.forgotPass == false &&\n this.props.passwordReset == false &&\n this.props.match.path !== '/reset' ? (\n \n this.props.setChangeForgotPass('forgot')}\n >\n Forgot Password\n \n\n \n ) : (\n this.props.forgotPass == true ? (\n this.props.setChangeForgotPass('home')}\n >\n Cancel\n \n ) : null\n )}\n {this.props.match.path === '/reset' ? (\n this.props.history.push('/login')}\n >\n Cancel\n \n ) : null}\n
\n Due to HIPAA regulations, never save your password to your browser's\n password manager\n
\n \n \n this.setState({ passwordInstructionsErrorOpen: false })}\n password={ this.state.password }\n />\n this.setState({ passwordConfirmErrorOpen: false })}\n />\n
\n );\n }\n}\n","import React from 'react';\nimport { Input, Button, Header, List, Icon } from 'semantic-ui-react';\nimport { url, key } from '../../Util';\nimport axios from 'axios';\n\nexport class TwoFactor extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n code: '',\n newCodeSent: false\n };\n }\n\n handleChange = (event, { name, value }) => {\n this.setState({ code: value });\n }\n\n handleSubmit = () => {\n if (this.props.valid === false) {\n const code = this.state.code;\n this.props.twoFactor(code);\n }\n }\n\n handleNewCode = async () => {\n await axios({\n method: 'get',\n url: `${ url }/user/${ this.props.userID }/resend2auth`,\n headers: {\n api_key: key\n }\n });\n this.setState({ newCodeSent: true });\n }\n\n render() {\n return (\n \n
\n \n Two Factor Authentication\n
\n
\n A message with a verification code has been sent to your email\n
\n
Enter the code to continue
\n \n
\n Cancel and go back to Login\n
\n \n Authorize Access\n \n \n { this.state.newCodeSent? 'New Code Sent!' : 'Send New Code' }\n \n
\n );\n }\n}\n","import React from 'react';\nimport { Input, Button, Header, List, Icon } from 'semantic-ui-react';\n\nexport function ReferralConfirm(props) {\n return (\n \n
Thank You
\n \n
\n Thank you for submitting referral code # {props.refCode}\n
\n
\n );\n}\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { Input, Button, Header, Label } from 'semantic-ui-react';\nimport { ReferralConfirm } from './ReferralConfirm';\n\nexport function ReferralCapture(props) {\n\n const [form, setValues] = useState({\n email: '',\n passkey: '',\n refCode: props.location.pathname.split('/')[2],\n });\n\n const handleChange = e => {\n e.preventDefault();\n setValues({\n ...form,\n [e.target.name]: e.target.value,\n });\n };\n\n const handleSubmit = e => {\n e.preventDefault();\n props.submitReferral(form.email, form.passkey, form.refCode);\n };\n\n return props.referralSuccess == false || props.referralSuccess == null? (\n \n
REFERRAL CODE: {form.refCode == undefined ? \"Invalid Referral Code\" : form.refCode}
\n \n \n\n
\n \n
\n \n Complete Referral\n \n
\n ) : (\n \n );\n}\n","export const Settings = {\n appVersion: '1.0'\n};\n","import React, { useState } from 'react';\nimport { Button, Modal } from 'semantic-ui-react';\n\nconst QaWarningModal = () => {\n\n const [ open, setOpen ] = useState( window.location.host.includes( 'qa' ) )\n\n return (\n setOpen( false )}\n size=\"mini\"\n >\n \n Quality Assurance\n \n \n

You are currently accessing a testing and quality assurance version of the ISDH SSP Application. All data on this QA site should be considered test data and may become unavailable, outdated, and incorrect.

\n

If you are trying to update the live system please visit https://ssd.isdh.in.gov/login.

\n
\n \n setOpen( false )}\n >\n Continue\n \n \n \n );\n};\n\nexport default QaWarningModal;\n","import React from 'react';\nimport { LoginForm } from '../Components/Login/LoginForm';\nimport { TwoFactor } from '../Components/Login/TwoFactor';\nimport { Main } from './Main';\nimport {\n Grid,\n Form,\n Segment,\n Header,\n Icon,\n Loader,\n Dimmer,\n} from 'semantic-ui-react';\nimport { url, key } from '../Util';\nimport { ReferralCapture } from '../Components/ReferralCapture/ReferralCapture';\nimport axios from 'axios';\nimport { Settings } from '../Global/config';\nimport QaWarningModal from '../Components/Modals/QaWarningModal';\n\nexport class Login extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n loggedIn: false,\n valid: false,\n forgotPass: false,\n passwordReset: false,\n changePass: false,\n appVersion: ''\n };\n }\n\n componentDidMount() {\n const version = localStorage.getItem( 'appVersion' );\n this.setState({ appVersion: JSON.parse( version ) });\n }\n\n setChangeForgotPass = (option) => {\n // push the user to /reset\n if(option == 'forgot') {\n this.setState({ forgotPass: true, changePass: false });\n this.props.resetError()\n }\n\n if(option == 'change') {\n this.setState({changePass: true, forgotPass: false});\n this.props.resetError()\n }\n\n if(option == 'home') {\n this.setState({changePass: false, forgotPass: false, passwordReset: false});\n this.props.resetError()\n }\n }\n\n resetPass = username => {\n if (username !== undefined) {\n axios({\n method: 'put',\n url: url + 'user/forgotpass?Email=' + username,\n headers: {\n api_key: key,\n },\n }).then(res => {\n if(res.data == true) {\n this.setState({ forgotPass: false, passwordReset: true });\n }\n\n if(res.data == false) {\n this.props.setError();\n }\n\n });\n }\n }\n\n changePassword = (penCode, password) => {\n axios({\n method: 'put',\n url:\n url +\n 'user/confirmpass?PenCode=' +\n penCode +\n '&Password=' +\n password,\n headers: {\n api_key: key,\n },\n })\n .then(res => {\n\n if(res.data == false) {\n this.props.setError();\n this.setState({passChangeSuccess: res.data})\n }\n\n if(res.data == true) {\n this.setState({\n passChangeSuccess: res.data,\n });\n this.props.resetError();\n }\n }).catch(error => {console.log(error)});\n }\n\n render() {\n return (\n
\n \n \n \n \n \n
\n \n \n \n Indiana State Department of Health\n \n \n Syringe Service Program\n \n \n {this.props.loggedIn === false &&\n this.props.referral == undefined ? (\n \n ) : this.props.valid === false ? (\n \n ) : (\n this.props.history.push('/dashboard')\n )}\n version { this.state.appVersion }\n \n {this.props.error === true ? (\n \n
\n {this.props.location.pathname !== '/reset'\n ? ('Error: Invalid Credentials')\n : ( 'Error: Failed To Update Password')\n }\n
\n
\n ) : this.state.passwordReset == true && this.props.location.pathname !== '/reset' ? (\n \n
\n You should recieve an email with instructions to reset\n your password shortly.\n
\n
\n ) : null}\n \n
\n
\n
\n \n
\n );\n }\n}\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { ReferralCapture } from './ReferralCapture';\nimport { ReferralConfirm } from './ReferralConfirm';\nimport { Grid, Form, Segment, Header } from 'semantic-ui-react';\n\nexport function ReferralContainer(props) {\n return (\n
\n
\n \n \n
\n \n \n\n \n Indiana State Department of Health\n \n \n Referral Confirmation System\n \n \n \n \n \n
\n
\n
\n
\n
\n );\n}\n","import React, { Component } from 'react';\nimport { Main } from './Containers/Main';\nimport { Login } from './Containers/Login';\nimport { Route } from 'react-router-dom';\nimport './App.css';\nimport axios from 'axios';\nimport { key, url, setCookie } from './Util';\nimport { Header, Dimmer, Loader, Modal } from 'semantic-ui-react';\nimport { ReferralContainer } from './Components/ReferralCapture/ReferralContainer';\nimport { BaseObjectProvider } from './Context/BaseObjectContext';\nimport browser from 'browser-detect';\n\n\n// import { FormikForm } from './Components/Forms/FormikForm';\n\nclass App extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n loggedIn: false,\n isLoading: false,\n error: false,\n referralSuccess: null,\n isAcceptedBrowser: null,\n appLoading: true,\n appError: false\n };\n }\n\n detectMob() {\n const toMatch = [\n /Android/i,\n /webOS/i,\n /iPhone/i,\n /iPad/i,\n /iPod/i,\n /BlackBerry/i,\n /Windows Phone/i\n ];\n return toMatch.some((toMatchItem) => {\n return navigator.userAgent.match(toMatchItem);\n });\n }\n\n componentDidMount() {\n if ( this.detectMob() ) {\n this.setState({ isAcceptedBrowser: false });\n }\n this.getAppInfo();\n const browserInfo = browser();\n const { name, versionNumber } = browserInfo;\n switch ( name ) {\n case 'chrome':\n if ( versionNumber >= 74 ) {\n this.setState({ isAcceptedBrowser: true });\n break;\n } else {\n this.setState({ isAcceptedBrowser: false });\n break;\n }\n case 'safari':\n if ( versionNumber >= 11 ) {\n this.setState({ isAcceptedBrowser: true });\n break;\n } else {\n this.setState({ isAcceptedBrowser: false });\n break;\n }\n case 'firefox':\n if ( versionNumber >= 66 ) {\n this.setState({ isAcceptedBrowser: true });\n break;\n } else {\n this.setState({ isAcceptedBrowser: false });\n break;\n }\n case 'edge':\n if ( versionNumber >= 18 ) {\n this.setState({ isAcceptedBrowser: true });\n break;\n } else {\n this.setState({ isAcceptedBrowser: false });\n break;\n }\n case 'IE':\n if ( versionNumber >= 11 ) {\n this.setState({ isAcceptedBrowser: true });\n break;\n } else {\n this.setState({ isAcceptedBrowser: false });\n break;\n }\n default:\n this.setState({ isAcceptedBrowser: false });\n break;\n }\n }\n\n getAppInfo = async () => {\n try {\n const { data: { app_Version } } = await axios({\n method: 'get',\n baseURL: url,\n url: '/info',\n headers: {\n api_key: key,\n Accept: 'application/json',\n },\n });\n const currentVersion = localStorage.getItem( 'appVersion' );\n if ( !currentVersion || ( JSON.parse( currentVersion ) !== app_Version ) ) {\n localStorage.setItem( 'appVersion', JSON.stringify( app_Version ) );\n window.location.reload(true);\n }\n this.setState({ appLoading: false });\n } catch (e) {\n this.setState({ apiError: true });\n }\n }\n\n auth = ( username, password ) => {\n this.setState({ isLoading: true });\n if (this.state.loggedIn === false) {\n password = btoa(password);\n axios({\n method: 'get',\n url:\n url +\n 'user/authenticate?UserName=' +\n username +\n '&Password=' +\n password,\n headers: {\n api_key: key,\n },\n })\n .then(res => {\n setCookie('token', res.data.token, 7);\n this.setState({\n token: res.data.token,\n valid: res.data.valid,\n loggedIn: true,\n userName: username,\n userID: res.data.userID,\n isLoading: false,\n });\n })\n .catch(res => this.setState({ error: true, isLoading: false }));\n } else if (this.state.valid === true) {\n // eslint-disable-next-line no-undef\n setCookie('token', res.data.token, 7);\n this.setState({\n // eslint-disable-next-line no-undef\n token: res.data.token,\n loggedIn: true,\n userName: username,\n valid: true,\n // eslint-disable-next-line no-undef\n userID: res.data.userID,\n isLoading: false,\n });\n this.props.history.push('/dashboard');\n }\n }\n\n twoFactor = code => {\n this.setState({ isLoading: true });\n if (\n (this.state.loggedIn === true && this.state.valid === false) ||\n this.state.token === undefined ||\n this.state.token === null\n ) {\n const username = this.state.userName;\n axios({\n method: 'get',\n url:\n url +\n 'user/phase2authenticate?UserName=' +\n username +\n '&Code=' +\n code,\n headers: {\n api_key: key,\n AccessToken: this.state.token,\n },\n })\n .then(res => {\n setCookie('token', res.data.token);\n this.setState({\n token: res.data.token,\n userID: res.data.userID,\n valid: res.data.valid,\n isLoading: false,\n });\n })\n .catch(res => this.setState({ error: true, isLoading: false }));\n } else {\n this.props.history.push('/dashboard');\n }\n }\n\n resetError = () => {\n this.setState({ error: false });\n }\n\n setError = () => {\n this.setState({error: true});\n }\n\n submitReferral = (login, pin, refcode) => {\n let refCode = refcode;\n\n axios({\n method: 'post',\n url: `${url}Provider/referral?Login=${login}&Pin=${pin}&RefCode=${refCode}`,\n headers: {\n api_key: key,\n AccessToken: this.state.token,\n },\n }).then(res => {\n\n this.setState({ referralSuccess: res.data, refCode });\n });\n }\n\n render() {\n const { isAcceptedBrowser } = this.state;\n\n if ( isAcceptedBrowser === null ) {\n return null;\n }\n\n return (\n \n \n \n \n \n Indiana State Department of Health\n \n \n Syringe Service Program\n \n
\n
\n

The app is currently down for maintenance!

\n
\n \n { !this.state.appLoading\n ? \n { isAcceptedBrowser\n ?
\n (\n \n )}\n />\n (\n \n )}\n />\n \n (\n \n
\n \n )}\n />\n (\n \n )}\n />\n \n
\n : \n
\n

You are using an unsupported browser!

\n
\n
\n

The following browsers are supported:

\n
    \n
  • Chrome - version 74 and up
  • \n
  • Firefox - version 66 and up
  • \n
  • Safari - version 11 and up
  • \n
  • Edge - version 18 and up
  • \n
  • Internet Explorer - version 11 and up
  • \n
\n
\n
\n }\n \n : \n \n \n }\n \n );\n }\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n// import './Scss/index.scss';\nimport 'semantic-ui-css/semantic.css';\nimport 'react-table/react-table.css';\nimport App from './App';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport \"react-toastify/dist/ReactToastify.css\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}