{"version":3,"sources":["components/clientheader.js","components/EmailDialog.js","components/PDF.js","components/results/headerbuttons.js","components/landing.js","components/results/Speedometer.js","components/results/TextSection.js","components/InteractionHandler.js","components/results/ButtonGroup.js","components/results/Header.js","components/results/Callout.js","components/results/paragraph.js","components/results/risklist.js","components/results/riskbar.js","components/results/divider.js","components/results/section.jsx","components/results/questionlist.js","components/QuizResults.js","components/answers/Input.js","components/answers/Toggle.js","components/answers/Height.js","components/answers/DateOfBirth.js","components/answers/DropdownIncremental.js","components/Question.js","components/nextButton.js","components/answers/TableCheckbox.js","components/answers/TableToggle.js","components/answers/TableSlider.js","components/answers/TableInput.js","components/Clustered.js","components/Biometric.js","components/Quiz.js","components/PersonalInfo.js","components/AddressInfo.js","components/results/header.js","components/results/buttongroup.js","components/results/subheader.js","components/Error.js","components/QuizContainer.js","components/Assessment.js","App.js","serviceWorker.js","index.js"],"names":["ClientHeader","props","classes","this","AppBar","position","style","backgroundColor","Toolbar","flex","maxWidth","maxHeight","src","clientheader","ClientLogoSource","alt","ClientLogoAltText","id","className","quizTitle","Component","withStyles","theme","breakpoints","down","display","StyleSheet","create","page","section","textAlign","margin","PDF","ConfirmDialog","onClose","open","selectedValue","saving","handleAcceptClick","value","Dialog","aria-labelledby","flexDirection","Button","onClick","downloadPopup","Message","Grid","container","direction","justifyContent","alignItems","marginBottom","variant","color","Accept","width","marginLeft","Decline","HeaderButtons","state","saveFormat","selectedDialogValue","pdfDeprettifier","bind","pdfPrettifier","handleDownload","downloadPDF","setOpen","setSaveFormat","setSelectedDialogValue","handleClickOpen","handleClose","generateFileName","setState","window","print","expandAccordions","document","getElementsByClassName","forEach","child","boxShadow","getElementById","ms","Promise","resolve","setTimeout","name","length","replaceAll","Date","toISOString","slice","input","HTML_Width","offsetWidth","HTML_Height","offsetHeight","PDF_Width","top_left_margin","PDF_Height","canvas_image_width","canvas_image_height","totalPDFPages","Math","ceil","children","html2canvas","allowTaint","scale","then","canvas","getContext","imgData","toDataURL","pdf","jsPDF","html","x","y","addImage","i","addPage","save","logoCanvas","assessmentName","logoHeight","height","logoWidth","element","reject","opt","filename","image","type","quality","unit","format","orientation","html2pdf","from","set","toPdf","get","totalPages","internal","getNumberOfPages","setPage","setFontSize","setTextColor","text","String","pageSize","getWidth","getHeight","handlePrint","justify","noWrap","spacing","item","IconButton","fill","Landing","handleClick","isLoading","accept","hideTCContent","showTsCs","showTCContent","acceptTCCheck","acceptsTCs","fontColor","segmentLabels","segmentBreakpoints","icon","disabled","Card","card","raised","header","terms","HeaderFrame","Hook","CardContent","dangerouslySetInnerHTML","__html","About","fontStyle","textDecoration","TCContent","ReadTermsContent","FormControlLabel","control","Checkbox","checked","onChange","label","AcceptCheckboxContent","TransitionComponent","Zoom","keepMounted","DialogTitle","TermsFrame","Header","DialogContent","DialogContentText","wordWrap","TermsAndConditions","StandardContent","DialogActions","CloseButton","CardActions","center","key","StartAssessmentContent","root","padding","transition","Speedometer","SpeedometerFriendlyJSON","currentJSON","content","obj","customLabels","segmentColors","maxValue","Object","keys","Segments","k","Label","push","Color","parseInt","UpperBounds","labels","colors","console","log","newJSON","parseJSON","needleHeightRatio","labelFontSize","score","customSegmentStops","maxSegmentLabels","paddingHorizontal","paddingVertical","minValue","needleTransitionDuration","needleColor","currentValueText","screen","speedometer","segments","startColor","endColor","TextSection","fontSize","marginTop","listStylePosition","borderRadius","InteractionHandler","requestOptions","method","headers","body","JSON","stringify","groupguid","authtoken","InteractionElement","ClassKeyName","FamilyKeyName","TypeKeyName","ComponentGuid","fetch","ButtonGroup","e","Record","buttonArray","buttons","map","keyname","Visible","href","Link","indexOf","target","Text","divider","showDivider","Divider","marginRight","risktext","gradeLabel","valuegrade","Callout","color1","CallOut01","CalloutColor","color2","CallOut02","paddingBottom","xs","sm","class","calloutContainer","Typography","calloutTitle","PrimaryText","calloutText","CalloutText","calloutSubtitle","SecondaryText","calloutTextLongWord","dividerHorizontal","flexItem","dividerVertical","up","only","border","fontWeight","Paragraph","handleChange","expanded","expand","IsCollapsed","prevProps","paragraph","CanCollapse","Accordion","AccordionSummary","expandIcon","ExpandMore","AccordionDetails","Box","overflowWrap","wordBreak","Content","gutterBottom","RiskList","listItems","concat","RiskFactors","sort","a","b","Order","Visibility","filter","RiskFactorMaxItems","RiskFactorText","RiskBar","selectedSegment","marginOffset","barWidth","innerWidth","labelMargin","IsInverted","Value","segment","index","xmlns","viewBox","data-name","rx","calcStep","notch","transform","d","font-size","font-weight","barNotch","zIndex","barLabel","UpperBoundLabel","LowerBoundLabel","barDescription","barTitle","min","max","floor","dividerColor","$secondaryColor","TextDivider","Icon","IconColor","fontsize","DividerColor","$primaryColor","dividerContainer","dividerTitle","Title","borderBottom","overflow","QuestionList","toggleClick","counter","questions","Data","QuestionSets","questionSet","Questions","returnItem","alphaCounter","TableRow","TableCell","QuestionSet","question","fromCharCode","charCodeAt","paddingLeft","Question","Answer","Subheader","Table","TableBody","QuizResults","val","results","component","headerButtons","resultItems","email","setExpandAccordions","clientLogo","ComponentVisible","ComponentClass","ComponentFamily","ComponentContent","ComponentType","GradeLabel","ContentType","CallOuts","PrimaryValue","Buttons","paddingRight","CardHeader","AssessmentFrame","Score","RiskText","ScienceText","CallToActionText","InputAnswer","handleEnter","event","invalidAnswer","updateResponseValue","answer","ev","message","errorMessage","validation","isNaN","NotANumber","valMin","valMax","Number","OutOfRange","replace","valPrecision","WholeNumbers","split","InvalidPrecision","inputError","onBlur","helpOpen","Responses","Response","ValueLimitationMin","ValueLimitationMax","ValueLimitationPrecision","QuestionId","prompt","QuestionPrompt","TextField","autoFocus","textfield","error","helperText","onKeyPress","button","Toggle","AnswerId","Radio","AnswerStandardContent","Height","setInches","answerInches","answerFeet","setSavableAnswer","setFeet","Inches","Feet","createFeetArray","setInchesAndFeet","feet","inches","HeightOutOfRange","inchString","toString","FormControl","minWidth","InputLabel","prompts","HeightPrimary","Select","labelId","MenuItem","HeightSecondary","optionGenerator","start","end","dir","options","DateOfBirth","setDay","day","month","year","setMonth","days","daySelect","includes","setYear","monthSelect","yearSelect","date","moment","toDate","getDate","getMonth","getFullYear","fullDate","birthDate","today","age","m","InvalidAgeTooYoung","InvalidAgeTooOld","monthSQL","MonthSQL","MonthSequenceInYear","Month","autoWidth","labelWidth","Day","Year","DropdownIncremental","changeAnswer","answers","whiteSpace","ValueLimitationIncrement","handleMouseDown","QuestionStandardContent","answertype","QuestionTypeKeyName","Input","validationMessages","uom","questionPrompts","Dropdown","Answers","AnswerSequenceInQuestion","RadioGroup","helpIcon","QuestionHelpText","popupId","popupState","float","top","aria-label","bindTrigger","onMouseDown","Popover","bindPopover","anchorOrigin","vertical","horizontal","transformOrigin","onExited","minHeight","smallTitle","regularTitle","NextButton","buttonLabel","saveRemaining","TableCheckbox","questionSetUpdateResponseValue","yesID","noID","yes","no","AnswerName","left","scope","TableSlider","answerarray","handleSliding","answertext","answerArray","paddingTop","Slider","marks","step","onChangeCommitted","TableInput","Clustered","setCount","QuestionSetQuestions","nextbutton","size","TableHead","QuestionDisplayedFlag","TableToggle","QuestionSetHelpText","QuestionSetStandardContent","Biometric","Quiz","nextQuestion","notFound","CurrentQuestionsIndex","setCurrentIndex","CurrentQuestion","PreviousQuestionIndex","CurrentQuestionNotAnswered","CurrentRequiredQuestion","previousQuestion","Saving","responseguid","response","json","Success","Info","Changes","change","branchingLogic","updateQuestionsAnswered","QuestionsAnswered","moveToNext","questionID","prevAnswer","thisquestion","requiredQuestions","answeredQuestions","originalDisplay","DisplayFlag","QuestionRequiredFlag","RequiredFlag","questionCount","QuestionCount","updateQuestionTotal","completeAssessment","showPersonalInfoCard","getResultsViewInstance","wrappernextQuestion","wrappernextQuestionForGroup","wrapperpreviousQuestion","FirstQuestionIndex","AllVisibleQuestionsAnswered","SurveyData","questioncount","visiblequestioncount","lastquestionindex","firstquestion","QuestionSetQuestionSet","startfromBeginning","currentQuestion","isSaved","QuestionSetTypeKeyName","QuestionSetId","iphoneStyleLeft","iphoneStyleRight","navigator","platform","userAgent","cardIsAnswered","currentSet","required","answered","buttonPrevious","chrome","firefox","safari","mobile","except","ielabel","md","Slide","in","mountOnEnter","unmountOnExit","buttonNext","right","verticalAlign","PersonalInfo","handleEmailChange","handlePhoneChange","phone","handleMobilePhoneChange","mobilephone","validateEmail","test","emailError","validateFirstName","firstname","match","firstnameError","validateLastName","lastname","lastnameError","phoneError","mobilephoneError","handleFirstNameChange","handleLastNameChange","handleSubmit","hasErrors","viewInstance","FirstNameVisible","FirstNameRequired","LastNameVisible","LastNameRequired","HomePhoneVisible","HomePhoneRequired","MobilePhoneVisible","MobilePhoneRequired","updateUserEmail","participantguid","skipAddress","showresults","showAddressInfoCard","homephone","FirstNameLabel","autoComplete","LastNameLabel","visible","autocomplete","HomePhonePrompt","MobilePhonePrompt","title","CardTitle","EmailLabel","showQuiz","ButtonBackToQuiz","ButtonLabel","AddressInfo","handleScriptLoad","requirements","AddressStreetVisible","AddressCityVisible","AddressStateVisible","types","google","maps","places","Autocomplete","setFields","setComponentRestrictions","country","countryList","addListener","handlePlaceSelect","address","getPlace","address_components","address1","address2","city","zip","streetnumber","route","addressHasCity","long_name","short_name","disabledForTyping","address1Error","address2Error","cityError","stateError","zipError","canSubmit","query","handleAddressLine1Change","handleAddressLine2Change","handleCityChange","handleStateChange","handleZipChange","onKeyDown","validateZip","AddressStreetRequired","AddressCityRequired","AddressStateRequired","ZipRequired","encodeURIComponent","catch","preventDefault","url","languageISO2","Street1Label","Street2Label","CityLabel","StateLabel","inputProps","maxLength","ZipVisible","ZipLabel","onLoad","Error","errorIcon","org_guid","URLSearchParams","location","search","assmnt_guid","QuizContainer","backToQuiz","ShowPersonalInfo","StartFromBeginning","ShowQuiz","QuizsDirection","ShowAddress","PersonalDirection","showResultsCard","ResultsLoaded","AddressDirection","ShowResults","AuthToken","ResultsViewInstance","ViewInstanceData","ReportViewInstance","ReportPage","ReportFrame","CurrentIndex","num","currentIndex","QuestionTotal","TCAccepted","Username","ParticipantGuid","ResponseGuid","RequirePersonInfo","RequireAddress","TCsDirection","UnitOfMeasure","LoadingError","ErrorViewInstance","isTimedOut","timeout","userEmail","createMuiTheme","palette","primary","main","clientColor","secondary","clientColorSecondary","timer","handleOnAction","handleOnActive","handleOnIdle","redirectToLanding","idleTimer","reset","vars","UserName","AssmtGuid","SurveyPage","SessionVariableValues","checkForAddress","err","Status","errorJSON","ErrorMessage","assmtProps","values","NameFrame","progressBar","status","active","default","percent","ThemeProvider","ref","onActive","onIdle","onAction","debounce","Container","fixed","acceptTCs","ValidationMessages","QuestionPrompts","username","AddressFrame","ClientLogo","Name","DownloadPopup","onbeforeunload","returnValue","addEventListener","Assessment","isLoaded","loadingError","OrganizationSettingValues","List","secondaryColor","LandingPage","getClientColor","hex","result","substring","overflowY","App","Boolean","hostname","ReactDOM","render","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.b08f42dc.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport { Toolbar } from '@material-ui/core';\r\n\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nconst styles = theme => ({\r\n quizTitle: {\r\n [theme.breakpoints.down('xs')]: {\r\n display: 'none'\r\n }\r\n }\r\n})\r\n\r\n//TODO image handler for client image and icons\r\nclass ClientHeader extends Component {\r\n constructor(props){\r\n super(props);\r\n }\r\n//http://dev20.pdx1iis11.wellsource.com/WsWebServicePlatform/handlers/WsGetImage.ashx?img=2B37CB53-99AF-41F0-9A15-0E17BEA74B38\r\n render() {\r\n const {classes} = this.props\r\n return (\r\n \r\n \r\n
\r\n {this.props.clientheader.ClientLogoAltText} \r\n
\r\n

\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n//\r\n\r\nexport default withStyles(styles)(ClientHeader);\r\n/*\r\nconst ClientHeader = ({ clientheader }) => {\r\n\tconsole.log(\"clientHeader: \", clientheader)\r\n return (\r\n \r\n \r\n

{clientheader.Name}

\r\n Hi, Alex\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\n*/\r\n\r\n","import React, {Component} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nimport EmailIcon from '@material-ui/icons/Email';\r\n\r\nclass EmailDialog extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n open: false,\r\n email: \"\",\r\n emailBody: \"Thanks for taking our assessment\"\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n if(this.props.userEmail && this.props.userEmail.length){\r\n this.setState({email: this.props.userEmail})\r\n }\r\n if(this.props.content && this.props.length){\r\n var bodyString = \"

\" + this.props.content[0].ComponentContent.Title + \"

\"\r\n this.setState({\r\n emailBody: this.props.content[0].ComponentContent.Title\r\n })\r\n }\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n })\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({\r\n open: false\r\n })\r\n }\r\n\r\n handleUpdateEmail = (ev) => {\r\n if(ev){\r\n this.setState({\r\n email: ev.target.value\r\n })\r\n }\r\n }\r\n\r\n handleSubmit = () => {\r\n console.log('submit')\r\n\r\n const org_guid = new URLSearchParams(window.location.search).get('org')\r\n\r\n fetch(\"../../WsWebServicePlatform/Participant/SendReport/\" + org_guid + \"/\" + this.state.email + \"/1/\", {\r\n method: \"POST\",\r\n headers:{'Accept': 'application/json', 'Access-Control-Allow-Origin': '*'}\r\n })\r\n .then(response => response.json())\r\n .then(() => {\r\n this.setState({\r\n open: false\r\n })\r\n })\r\n }\r\n\r\n render(){\r\n return (\r\n
\r\n this.handleClickOpen()}>\r\n \r\n \r\n this.handleClose()} aria-labelledby=\"form-dialog-title\">\r\n Email me this report\r\n \r\n \r\n Send yourself a copy of this report for your own records or to share it with a doctor later\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n \r\n}\r\n\r\nexport default EmailDialog","import React, { Component } from 'react'\r\nimport Button from '@material-ui/Core/Button'\r\nimport { Page, Text, View, Document, Link, StyleSheet, ReactPDF, PDFViewer} from '@react-pdf/renderer'\r\n\r\nconst styles = StyleSheet.create({\r\n page: { backgroundColor: 'tomato' },\r\n section: { textAlign: 'center', margin: 30 }\r\n });\r\n\r\nconst testProps = {\r\n \"ComponentContent\": {\r\n \"Buttons\": [ {\r\n \"Text\": \"Ask a nurse\",\r\n \"Visible\": \"1\",\r\n \"Link\": \"www.web1.com\",\r\n \"Color\": \"primary\"\r\n },{\r\n \"Text\": \"Make an appointment\",\r\n \"Visible\": \"1\",\r\n \"Link\": \"www.web32.com\",\r\n \"Color\": \"primary\"\r\n },{\r\n \"Text\": \"More info\",\r\n \"Visible\": \"1\",\r\n \"Link\": \"www.web45.com\",\r\n \"Color\": \"primary\"\r\n }\r\n ]\r\n }\r\n}\r\n\r\nconst MyDocument = function(){\r\n let Views = []\r\n for(let x=0; x{testProps.ComponentContent.Buttons[x].Text})\r\n }\r\n return (\r\n \r\n \r\n \r\n no\r\n \r\n \r\n Section #2\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nfunction PDF(props){\r\n\r\n return(\r\n \r\n )\r\n \r\n}\r\n\r\nexport default PDF; ","import React, { Component } from 'react'\r\nimport Grid from '@material-ui/Core/Grid'\r\nimport Divider from '@material-ui/Core/Divider';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport { Dialog, DialogTitle, Button, ButtonGroup, DialogContentText } from '@material-ui/core'\r\nimport EmailDialog from '../../components/EmailDialog'\r\nimport PrintIcon from '@material-ui/icons/Print'; \r\nimport PDF from '../PDF';\r\n\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nimport jsPDF from 'jspdf'\r\nimport html2canvas from 'html2canvas'\r\nimport * as html2pdf from 'html2pdf.js'\r\n\r\nfunction ConfirmDialog(props) {\r\n const { onClose, selectedValue, open, saving } = props;\r\n const handleClose = () => {\r\n onClose(false);\r\n };\r\n \r\n const handleAcceptClick = (value) => {\r\n onClose(value);\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n

{props.downloadPopup.Message}

\r\n \r\n \r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n\r\nclass HeaderButtons extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n open: false,\r\n saveFormat: '',\r\n selectedDialogValue: false,\r\n saving: false\r\n }\r\n\r\n this.pdfDeprettifier = this.pdfDeprettifier.bind(this);\r\n this.pdfPrettifier = this.pdfPrettifier.bind(this);\r\n this.handleDownload = this.handleDownload.bind(this);\r\n this.downloadPDF = this.downloadPDF.bind(this);\r\n this.setOpen = this.setOpen.bind(this);\r\n this.setSaveFormat = this.setSaveFormat.bind(this);\r\n this.setSelectedDialogValue = this.setSelectedDialogValue.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.generateFileName = this.generateFileName.bind(this);\r\n }\r\n\r\n setOpen(value){\r\n this.setState({\r\n open: value\r\n })\r\n }\r\n\r\n setSaveFormat(value){\r\n this.setState({\r\n saveFormat: value\r\n })\r\n }\r\n\r\n setSelectedDialogValue(value){\r\n this.setState({\r\n selectedDialogValue: value\r\n })\r\n }\r\n\r\n handlePrint(){\r\n \r\n window.print() \r\n }\r\n\r\n pdfPrettifier(){\r\n this.props.expandAccordions(true)\r\n document.getElementsByClassName('results-button').forEach(function(child){\r\n child.style.boxShadow = \"none\";\r\n })\r\n\r\n document.getElementsByClassName('MuiAccordion-root').forEach(function(child){\r\n child.style.boxShadow = \"none\";\r\n })\r\n\r\n let input = document.getElementById('resultscontent')\r\n\r\n return input;\r\n\r\n }\r\n\r\n buffer(ms){\r\n return new Promise(resolve => setTimeout(resolve, ms))\r\n }\r\n\r\n pdfDeprettifier(){\r\n document.getElementsByClassName('results-button').forEach(function(child){\r\n child.style.boxShadow = \"0px 3px 1px -2px rgb(0 0 0 / 20%), 0px 2px 2px 0px rgb(0 0 0 / 14%), 0px 1px 5px 0px rgb(0 0 0 / 12%)\";\r\n })\r\n\r\n document.getElementsByClassName('MuiAccordion-root').forEach(function(child){\r\n child.style.boxShadow = \"0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%)\";\r\n })\r\n \r\n this.props.expandAccordions(false)\r\n }\r\n generateFileName(){\r\n let assessmentName = this.props.name.length ? this.props.name : \"\"\r\n let assessmentNameAsFileNameComponent = assessmentName.replaceAll(\" \",\"-\")\r\n let todayDate = new Date().toISOString().slice(0, 10);\r\n let fileName = assessmentNameAsFileNameComponent + '-Wellactivate-'+ todayDate + '.pdf' \r\n return fileName\r\n }\r\n \r\n\r\n handleDownload(){\r\n const input = this.pdfPrettifier();\r\n var HTML_Width = document.getElementById('resultscontent').offsetWidth;\r\n\t\t var HTML_Height = document.getElementById('resultscontent').offsetHeight;\r\n\t\t var top_left_margin = 15;\r\n\t\t var PDF_Width = HTML_Width+(top_left_margin*2);\r\n\t\t var PDF_Height = (PDF_Width*1.5)+(top_left_margin*2);\r\n\t\t var canvas_image_width = HTML_Width;\r\n var canvas_image_height = HTML_Height;\r\n var totalPDFPages = Math.ceil(HTML_Height/PDF_Height)-1;\r\n\r\n let height = 0;\r\n let doc= []\r\n input.children.forEach(function(child){\r\n if(child.id==\"#buttonGroup\"){\r\n //put the other elements into a \r\n //render the text as a button I guess???\r\n \r\n } else {\r\n\r\n }\r\n })\r\n\r\n html2canvas(input,{allowTaint:true, scale: 2})\r\n .then((canvas) => {\r\n \r\n canvas.getContext('2d');\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tvar imgData = canvas.toDataURL(\"image/jpeg\", 1.0);\r\n var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]);\r\n pdf.html(input, {x: 10, y:10})\r\n\t\t pdf.addImage(imgData, 'JPG', top_left_margin, top_left_margin,canvas_image_width,canvas_image_height);\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tfor (var i = 1; i <= totalPDFPages; i++) { \r\n\t\t\t\tpdf.addPage(\"\"+PDF_Width, \"\"+PDF_Height);\r\n\t\t\t\tpdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*4),canvas_image_width,canvas_image_height);\r\n\t\t\t}\r\n\t\t\t\r\n pdf.save(this.generateFileName());\r\n \r\n })\r\n\r\n this.pdfDeprettifier();\r\n ;\r\n \r\n }\r\n\r\n downloadPDF(){\r\n let logoCanvas\r\n let assessmentName = this.props.name.length ? this.props.name : \"\"\r\n\r\n let logoHeight = document.getElementById('logo-image').height*0.8/96\r\n let logoWidth = document.getElementById('logo-image').width*0.8/96\r\n html2canvas(document.getElementById('logo-image'), {scale:2, allowTaint:true})\r\n .then((canvas) => {\r\n \r\n canvas.getContext('2d');\r\n canvas.toDataURL('image/jpeg', 1.0);\r\n logoCanvas = canvas\r\n })\r\n\r\n const element = this.pdfPrettifier();\r\n return new Promise((resolve,reject) => {\r\n setTimeout(() => { const opt = {\r\n margin: 1,\r\n filename: this.generateFileName(),\r\n image: { type: 'jpeg', quality: 0.98 },\r\n html2canvas: { scale: 2 },\r\n jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }\r\n };\r\n html2pdf().from(element).set(opt).toPdf().get('pdf').then(function(pdf){\r\n var totalPages = pdf.internal.getNumberOfPages(); \r\n\r\n for (var i = 1; i <= totalPages; i++) {\r\n pdf.setPage(i);\r\n pdf.setFontSize(10);\r\n pdf.setTextColor(150);\r\n //divided by 2 to go center\r\n pdf.text(String(i), pdf.internal.pageSize.getWidth()-1, pdf.internal.pageSize.getHeight()-.6);\r\n pdf.text(assessmentName, pdf.internal.pageSize.getWidth()-2, .6)\r\n pdf.text(assessmentName, 1, pdf.internal.pageSize.getHeight()-.6)\r\n pdf.addImage(logoCanvas, 'JPEG', 0.1,0.1,logoWidth, logoHeight)\r\n }\r\n //\r\n \r\n }).save();\r\n }, 800)\r\n setTimeout(() => {this.pdfDeprettifier(); resolve()}, 1000);\r\n })\r\n }\r\n\r\n handleClickOpen(format){\r\n this.setOpen(true)\r\n this.setSaveFormat(format)\r\n }\r\n\r\n handleClose(value){\r\n \r\n this.setSelectedDialogValue(value);\r\n \r\n if(value){\r\n if(this.state.saveFormat==\"download\"){\r\n this.setState({\r\n saving: true\r\n })\r\n this.downloadPDF().then(() => {this.setOpen(false); this.setState({saving:false})})\r\n \r\n }\r\n if(this.state.saveFormat == \"print\"){\r\n this.setOpen(false)\r\n setTimeout(()=> {this.handlePrint()}, 400)\r\n \r\n }\r\n } else {\r\n this.setOpen(false)\r\n }\r\n }\r\n\r\n render() { \r\n return(\r\n
\r\n \r\n \r\n this.handleClickOpen('print')}>\r\n \r\n \r\n \r\n \r\n this.handleClickOpen('download')}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\n\r\n/*\r\n \r\n \r\n \r\n */\r\nexport default HeaderButtons","import React, { Component } from 'react';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Button from '@material-ui/core/Button';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener'\r\nimport Zoom from '@material-ui/core/Zoom'\r\nimport {Dialog, DialogContent, DialogTitle, DialogActions, DialogContentText} from '@material-ui/core'\r\nimport {Checkbox, FormControlLabel} from '@material-ui/core'\r\nimport EmailDialog from '../components/EmailDialog'\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\n\r\nimport ReactSpeedometer from 'react-d3-speedometer'\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport HeaderButtons from '../components/results/headerbuttons';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n \r\n },\r\n header: {\r\n textAlign: 'center',\r\n marginBottom: '0px'\r\n },\r\n card: {\r\n padding: '0 1vw 1em 1vw'\r\n },\r\n center: {\r\n textAlign: 'center',\r\n justifyContent: 'center',\r\n transition: 'color .01s'\r\n }\r\n});\r\n\r\nclass Landing extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n isLoading:false,\r\n showTsCs:false,\r\n acceptsTCs:false,\r\n fontColor: \"grey\",\r\n segmentLabels:[],\r\n segmentBreakpoints:[]\r\n }\r\n }\r\n \r\n handleClick = () => {\r\n this.setState({\r\n isLoading: true\r\n })\r\n this.props.accept()\r\n }\r\n\r\n hideTCContent = () => {\r\n this.setState({\r\n showTsCs: false\r\n })\r\n }\r\n\r\n \r\n\r\n showTCContent = () => {\r\n this.setState({\r\n showTsCs: true\r\n })\r\n }\r\n\r\n acceptTCCheck = () => {\r\n this.setState({\r\n acceptsTCs: !this.state.acceptsTCs,\r\n fontColor: this.state.acceptsTCs ? \"rgb(230, 0, 15)\" : \"rgb(230, 0, 15, 0.23)\"\r\n })\r\n }\r\n\r\n render(){\r\n const {classes} = this.props\r\n let icon = null;\r\n if(this.state.isLoading){\r\n icon = \r\n } else {\r\n icon = \r\n }\r\n\r\n //known issue in Material UI for newest version of Safari\r\n //Must change key when toggled to force a reload\r\n \r\n let disabled = !this.state.acceptsTCs\r\n return(\r\n \r\n

{this.props.terms.HeaderFrame.Hook}

\r\n \r\n

\r\n
\r\n \r\n
\r\n }\r\n label={this.props.terms.TCContent.AcceptCheckboxContent}\r\n />\r\n
\r\n\r\n
\r\n this.hideTCContent()}>\r\n {this.props.terms.TermsFrame.Header}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Landing);","import React, { Component } from 'react'\r\nimport ReactSpeedometer from 'react-d3-speedometer'\r\n\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nconst styles = theme => ({\r\n speedometer: {\r\n [theme.breakpoints.down('xs')]: {\r\n marginLeft: '-1vw'\r\n }\r\n }\r\n})\r\n\r\nclass Speedometer extends Component {\r\n\r\n constructor(props){\r\n super(props) \r\n }\r\n \r\n parseJSON(){\r\n var SpeedometerFriendlyJSON = {}\r\n var currentJSON = this.props.content;\r\n var obj = {'text': '', position: 'OUTSIDE', color:'fff', key: ''}\r\n var customLabels = []\r\n var segmentColors = []\r\n var segmentBreakpoints = [0]\r\n var maxValue = 0\r\n Object.keys(currentJSON.Segments).forEach(k => {\r\n obj.text = currentJSON.Segments[k].Label;\r\n obj.key = k;\r\n customLabels.push({'text':currentJSON.Segments[k].Label, \"position\": \"OUTSIDE\", 'color':'000'})\r\n segmentColors.push(currentJSON.Segments[k].Color)\r\n segmentBreakpoints.push(parseInt(currentJSON.Segments[k].UpperBounds))\r\n maxValue=parseInt(currentJSON.Segments[k].UpperBounds)\r\n })\r\n SpeedometerFriendlyJSON.labels = customLabels\r\n SpeedometerFriendlyJSON.colors = segmentColors\r\n SpeedometerFriendlyJSON.breakpoints = segmentBreakpoints\r\n SpeedometerFriendlyJSON.maxValue = maxValue\r\n /* segmentColors={[\"#9399ff\", \"#14ffec\", \"#00bbf0\"]}\r\n currentValueText=\"How are you?\"\r\n customSegmentLabels={[\r\n {\r\n text: \"Good\",\r\n position: \"OUTSIDE\",\r\n color: \"#fff\",\r\n },\r\n {\r\n text: \"Great\",\r\n position: \"OUTSIDE\",\r\n color: \"#d8dee9\",\r\n },\r\n {\r\n text: \"Awesome!\",\r\n position: \"OUTSIDE\",\r\n color: \"#d8dee9\",\r\n },\r\n ]} */\r\n console.log(SpeedometerFriendlyJSON)\r\n return SpeedometerFriendlyJSON;\r\n }\r\n render() {\r\n\r\n const {classes} = this.props\r\n if(this.props.type == \"SEGMENT\"){\r\n var newJSON = this.parseJSON()\r\n //customSegmentLabels={newJSON.labels}\r\n return (\r\n
\r\n \r\n
\r\n \r\n )\r\n } else {\r\n //why not style? because it has to use the width to render the segments. has to be determined before display\r\n let width = window.screen.width <= 350 ? 240 : 260;\r\n return(\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Speedometer);\r\n\r\n","import React, { Component } from 'react'\r\nimport Search from '@material-ui/icons/Search'\r\nimport AssignmentInd from '@material-ui/icons/AssignmentInd'\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport NearMeRoundedIcon from '@material-ui/icons/NearMeRounded'\r\n\r\nimport '../../dummydata/style.css';\r\n\r\n\r\nclass TextSection extends Component {\r\n constructor(props){\r\n super(props)\r\n }\r\n\r\n render(){\r\n var icon;\r\n var style={margin:'0px'};\r\n var text;\r\n if(this.props.type == 'SCIENCE' || this.props.type == 'SCIENCE TEXT'){\r\n icon = \r\n text =

\r\n }\r\n if(this.props.type == 'ACTION' || this.props.type == 'CALL TO ACTION'){\r\n icon = \r\n text =

\r\n }\r\n if(this.props.type == \"RISK\"){\r\n console.log(\"risk type\")\r\n text =

\r\n }\r\n return(\r\n
\r\n {icon}\r\n {text}\r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default TextSection;","import React from 'react'\r\n\r\n//WsWebServicePlatform/InteractionLog/Append\r\n//props:\r\n//authtoken\r\n//groupguid\r\n/* \"InteractionElement\": {\r\n \"ClassKeyName\": \"REPORT COMPONENT\",\r\n \"FamilyKeyName\": \"CLICKED\",\r\n \"TypeKeyName\": \"BUTTON\",\r\n \"ComponentGuid\": \"8982C56C-2965-4EF2-BFF2-82CE14827FA5\",\r\n \"Record\": \"1\"\r\n }\r\n */\r\nexport function InteractionHandler(props){\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json'},\r\n body: JSON.stringify(\r\n {\"ParamData\": {\r\n \"OrganizationGuid\": props.groupguid,\r\n \"AuthToken\": props.authtoken,\r\n \"InteractionClassKeyName\": props.InteractionElement.ClassKeyName,\r\n \"InteractionFamilyKeyName\": props.InteractionElement.FamilyKeyName,\r\n \"InteractionTypeKeyName\": props.InteractionElement.TypeKeyName,\r\n \"ComponentGuid\": props.InteractionElement.ComponentGuid\r\n }}\r\n )\r\n }\r\n\r\n fetch('../../WsWebServicePlatform/InteractionLog/Append', requestOptions)\r\n}","import React, { Component } from 'react'\r\nimport Grid from '@material-ui/Core/Grid'\r\nimport Button from '@material-ui/Core/Button'\r\nimport {CardActions} from '@material-ui/core'\r\nimport Divider from '@material-ui/Core/Divider';\r\nimport {InteractionHandler} from '../InteractionHandler';\r\n\r\n\r\nclass ButtonGroup extends Component {\r\n constructor(props){\r\n super(props)\r\n this.onClick = this.onClick.bind(this)\r\n }\r\n\r\n onClick(e){\r\n console.log(e)\r\n if(e.InteractionElement && e.InteractionElement.Record == \"1\"){\r\n let props={\r\n \"groupguid\": this.props.groupguid,\r\n \"authtoken\": this.props.authtoken,\r\n \"InteractionElement\": e.InteractionElement\r\n }\r\n InteractionHandler(props)\r\n return true\r\n }\r\n }\r\n\r\n render() {\r\n var buttonArray = Object.keys(this.props.buttons).map((keyname, i) => (\r\n \r\n {this.props.buttons[keyname].Visible == \"1\" ? \r\n \r\n : null }\r\n \r\n ))\r\n var divider = this.props.showDivider ? : \r\n return(\r\n
\r\n {divider}\r\n \r\n {buttonArray}\r\n\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ButtonGroup","import React, { Component } from 'react';\r\n\r\n\r\nclass Header extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n }\r\n render() {\r\n var valuegrade, text;\r\n if (this.props.gradeLabel){\r\n text = this.props.gradeLabel;\r\n } else {\r\n if(this.props.valuegrade == \"1\"){\r\n text = \"LOW\"\r\n }\r\n if(this.props.valuegrade == \"2\"){\r\n text = \"MODERATE\"\r\n }\r\n if(this.props.valuegrade == \"3\"){\r\n text = \"HIGH\"\r\n }\r\n }\r\n \r\n\r\n var risktext \r\n if(this.props.content.length){\r\n risktext = this.props.content;\r\n } else {\r\n risktext = 'Your risk is '\r\n }\r\n return(\r\n
\r\n

{risktext}

\r\n

{text}

\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Header\r\n\r\n","import React, { Component } from 'react';\r\nimport Grid from '@material-ui/core/Grid'\r\nimport Typography from '@material-ui/core/Typography'\r\n\r\nimport { withStyles } from '@material-ui/styles'\r\nimport { Divider } from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n dividerHorizontal: {\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none'\r\n },\r\n [theme.breakpoints.only('xs')]: {\r\n display: 'flex',\r\n width: '100px',\r\n marginTop: '75px',\r\n width: '2px',\r\n backgroundColor: '#e4e1e1',\r\n border: 'none'\r\n }\r\n },\r\n dividerVertical: {\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'flex',\r\n height: '100px',\r\n marginTop: '75px',\r\n width: '2px',\r\n backgroundColor: '#e4e1e1',\r\n border: 'none'\r\n },\r\n [theme.breakpoints.only('xs')]: {\r\n display: 'none'\r\n }\r\n },\r\n calloutContainer: {\r\n [theme.breakpoints.up('md')]: {\r\n marginLeft: \"25%\",\r\n marginRight: \"25%\"\r\n },\r\n [theme.breakpoints.only('sm')]: {\r\n marginLeft: \"5%\",\r\n marginRight: \"5%\"\r\n },\r\n [theme.breakpoints.only('xs')]: {\r\n marginLeft: \"0%\",\r\n marginRight: \"0%\"\r\n }\r\n },\r\n calloutText: {\r\n fontWeight:'bolder',\r\n fontSize: '47px',\r\n margin: '0px 0 10px 0'\r\n\r\n },\r\n calloutTextLongWord: {\r\n fontWeight:'bolder',\r\n fontSize: '41px',\r\n paddingBottom: '8px',\r\n margin: '0px 0 10px 0'\r\n\r\n },\r\n calloutSubtitle: {\r\n margin: '0 10px 0 10px',\r\n fontSize: '13px'\r\n },\r\n calloutTitle: {\r\n fontSize: '18px'\r\n }\r\n})\r\n\r\n\r\nclass Callout extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n }\r\n \r\n render() {\r\n \r\n const {classes} = this.props\r\n let color1 = this.props.content.CallOut01.CalloutColor.length ? this.props.content.CallOut01.CalloutColor : \"black\"\r\n let color2 = this.props.content.CallOut02.CalloutColor.length ? this.props.content.CallOut02.CalloutColor : \"black\"\r\n\r\n let components = {}\r\n\r\n\r\n if(this.props.content.CallOut02.Visible==\"0\"){\r\n return(\r\n \r\n \r\n \r\n {this.props.content.CallOut01.CalloutText}\r\n \r\n \r\n \r\n )\r\n } else {\r\n return(\r\n \r\n \r\n \r\n 5 ? classes.calloutTextLongWord : classes.calloutText} style={{color:color1}}>{this.props.content.CallOut01.CalloutText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n 5 ? classes.calloutTextLongWord : classes.calloutText} style={{color:color2}}>{this.props.content.CallOut02.CalloutText}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n \r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Callout)\r\n\r\n/*\r\n {\r\n \"ComponentClass\": \"TEXTAREA\",\r\n \"ComponentFamily\": \"VARIANT\",\r\n \"ComponentType\": \"CALLOUT\",\r\n \"ComponentVisible\": \"1\",\r\n \"ComponentContent\": {\r\n \"CallOuts\": {\r\n \"CallOut01\": {\r\n \"PrimaryText\": \"Top text\",\r\n \"CalloutText\": \"10%\",\r\n \"SecondaryText\": \"\",\r\n \"Visible\": \"1\"\r\n },\r\n \"CallOut02\": {\r\n \"PrimaryText\": \"Callout 2\",\r\n \"CalloutText\": \"50%\",\r\n \"SecondaryText\": \"\",\r\n \"Visible\": \"1\"\r\n }\r\n }\r\n }\r\n }\r\n*/","import React, { Component } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Accordion, AccordionSummary, AccordionDetails, Box } from '@material-ui/core';\r\nimport { ExpandMore } from '@material-ui/icons';\r\n\r\nclass Paragraph extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n expanded: this.props.expand\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n this.setState({\r\n expanded: this.props.content.IsCollapsed == \"1\" ? false : true\r\n })\r\n }\r\n componentDidUpdate(prevProps){\r\n if(this.props.expand !== prevProps.expand){\r\n this.setState({\r\n expanded: this.props.expand\r\n })\r\n }\r\n }\r\n handleChange = () => {\r\n this.setState({\r\n expanded: !this.state.expanded\r\n })\r\n }\r\n render() {\r\n let paragraph = []\r\n if(this.props.content.CanCollapse == \"1\"){\r\n paragraph = \r\n }>\r\n {this.props.content.Header}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n } else {\r\n paragraph = \r\n }\r\n return(\r\n \r\n {paragraph}\r\n \r\n )\r\n }\r\n}\r\n\r\n/* \r\n{\r\n \"ComponentClass\": \"TEXTAREA\",\r\n \"ComponentFamily\": \"VARIANT\",\r\n \"ComponentType\": \"PARAGRAPH\",\r\n \"ComponentContent\": {\r\n \"Content\": \"

This report is based on an assessment you took. The assessment was intended to help you determine if you may be at risk for developing breast cancer to inform breast cancer screening, chemoprevention, and genetic testing. It was created using an evidence-based approach. The assessment uses the Breast Cancer Risk Assessment (Gail model) tool to estimate your 5-year and lifetime risk for breast cancer. Your 5-year or lifetime breast cancer risk, health, and other risk factors are used to determine your risk.

References:

  1. Banegas MP, John EM, Slattery ML, et al. Projecting Individualized Absolute Invasive Breast Cancer Risk in US Hispanic Women. J Natl Cancer Inst. 2017;109(2). https://www.ncbi.nlm.nih.gov/pubmed/28003316
  2. Gail MH, Costantino JP, Pee D, et al. Projecting individualized absolute invasive breast cancer risk in African American women. J Natl Cancer Inst. 2007;99(23):1782-1792. https://www.ncbi.nlm.nih.gov/pubmed/18042936
  3. Matsuno RK, Costantino JP, Ziegler RG, et al. Projecting individualized absolute invasive breast cancer risk in Asian and Pacific Islander American women. J Natl Cancer Inst. 2011;103(12):951-961. https://www.ncbi.nlm.nih.gov/pubmed/21562243
  4. Gail MH, Brinton LA, Byar DP, et al. Projecting individualized probabilities of developing breast cancer for white females who are being examined annually. J Natl Cancer Inst. 1989;81(24):1879-1886. https://www.ncbi.nlm.nih.gov/pubmed/2593165
\",\r\n \"Visibility\": \"1\",\r\n \"Header\": \"About this Assessment\",\r\n \"Subheader\": \"\",\r\n \"IsCollapsed\": \"1\",\r\n \"CanCollapse\": \"1\"\r\n },\r\n \"ComponentVisible\": \"1\"\r\n }\r\n*/\r\n\r\nexport default Paragraph","import React, { Component } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nclass RiskList extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n }\r\n render() {\r\n let x = 0\r\n let listItems = [].concat(this.props.content.RiskFactors)\r\n .sort((a, b) => parseInt(a.Order) > parseInt(b.Order) ? 1 : -1)\r\n .map((item) => {\r\n if(item.Visibility==\"1\"){\r\n return
  • {item.Content}
  • \r\n }\r\n })\r\n .filter((item) => {\r\n if(item){\r\n return true\r\n } else return false\r\n })\r\n if(listItems.length>this.props.content.RiskFactorMaxItems){\r\n listItems = listItems.slice(0,this.props.content.RiskFactorMaxItems)\r\n }\r\n return(\r\n \r\n {this.props.content.RiskFactorText}\r\n
      \r\n {listItems}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default RiskList\r\n\r\n/* \r\n{\r\n \"ComponentClass\": \"RISKFACTOR\",\r\n \"ComponentFamily\": \"\",\r\n \"ComponentType\": \"LIST\",\r\n \"ComponentVisible\": \"\",\r\n \"ComponentContent\": {\r\n \"RiskFactorText\": \"Your risk level is based on things you reported. Some of your greatest risk factors are:\",\r\n \"RiskFactorMaxItems\": \"3\",\r\n \"RiskFactors\": [\r\n {\r\n \"Content\": \"Having a family history of breast cancer\",\r\n \"Visibility\": \"1\",\r\n \"Order\": \"1\"\r\n },\r\n {\r\n \"Content\": \"Having dense breasts\",\r\n \"Visibility\": \"1\",\r\n \"Order\": \"3\"\r\n },\r\n {\r\n \"Content\": \"Having your first child after you were 30 years old\",\r\n \"Visibility\": \"1\",\r\n \"Order\": \"1\"\r\n },\r\n {\r\n \"Content\": \"Je n'sai quoi\",\r\n \"Visibility\": \"1\",\r\n \"Order\": \"5\"\r\n },\r\n {\r\n \"Content\": \"\",\r\n \"Visibility\": \"\",\r\n \"Order\": \"\"\r\n },\r\n*/","import React, { Component } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { withStyles } from '@material-ui/styles';\r\n\r\n\r\nconst styles = theme => ({\r\n barLabel: {\r\n fontSize: '7px'\r\n },\r\n barTitle: {\r\n width:'100%',\r\n textAlign:'left'\r\n },\r\n barNotch: {\r\n zIndex: '1000',\r\n position: 'relative',\r\n marginBottom: '-20px'\r\n },\r\n barDescription: {\r\n marginTop:'10px'\r\n }\r\n })\r\nclass RiskBar extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n }\r\n\r\n render() {\r\n let segments = []\r\n let selectedSegment = -1\r\n const {classes} = this.props;\r\n\r\n let marginOffset=0\r\n let barWidth = window.innerWidth > 436 ? 100 : 60\r\n let labelMargin = window.innerWidth > 436 ? '225px' : '105px'\r\n\r\n let value = this.props.content.IsInverted == \"1\" ? 100-parseInt(this.props.content.Value) : parseInt(this.props.content.Value)\r\n\r\n if(this.props.content.Segments.length){\r\n segments = this.props.content.Segments.map((segment, index) => {\r\n if(selectedSegment < 0 && value <= parseInt(segment.UpperBounds)){\r\n selectedSegment = index\r\n }\r\n return RiskSVG(segment.Color, barWidth) \r\n })\r\n if(selectedSegment == 0){\r\n if(barWidth==100){\r\n marginOffset = -300 + calcStep(0, parseInt(this.props.content.Segments[0].UpperBounds), value, 180)\r\n\r\n } else {\r\n marginOffset = -180 + calcStep(0, parseInt(this.props.content.Segments[0].UpperBounds), value, 100)\r\n\r\n }\r\n }\r\n if(selectedSegment == 1){\r\n if(barWidth==100){\r\n marginOffset = -90 + calcStep(parseInt(this.props.content.Segments[0].UpperBounds), parseInt(this.props.content.Segments[1].UpperBounds), value, 180)\r\n\r\n } else {\r\n marginOffset = -56 + calcStep(parseInt(this.props.content.Segments[0].UpperBounds), parseInt(this.props.content.Segments[1].UpperBounds), value, 106)\r\n\r\n }\r\n \r\n }\r\n if(selectedSegment == 2){\r\n if(barWidth==100){\r\n marginOffset = 110 + calcStep(parseInt(this.props.content.Segments[1].UpperBounds), parseInt(this.props.content.Segments[2].UpperBounds), value, 180)\r\n\r\n } else {\r\n marginOffset = 70 + calcStep(parseInt(this.props.content.Segments[1].UpperBounds), parseInt(this.props.content.Segments[2].UpperBounds), value, 70)\r\n\r\n }\r\n }\r\n }\r\n \r\n let notch = []\r\n if(1>0){\r\n notch = NotchSVG(this.props.content.Segments[selectedSegment].Label)\r\n }\r\n return(\r\n \r\n\r\n
    \r\n\r\n
    \r\n {notch}\r\n
    \r\n \r\n
    \r\n {segments}\r\n
    \r\n
    \r\n \r\n {'< ' + this.props.content.UpperBoundLabel}\r\n \r\n \r\n {this.props.content.LowerBoundLabel + ' >'}\r\n \r\n
    \r\n
    \r\n {this.props.content.Label}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(RiskBar)\r\n\r\nfunction calcStep(min, max, value, width){\r\n return Math.floor(((value-min)*width)/(max-min))\r\n}\r\n\r\nfunction RiskSVG(color, width){\r\n return (\r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nfunction NotchSVG(text){\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n )\r\n}\r\n\r\n/* \r\n{\r\n \"ComponentClass\": \"CHART\",\r\n \"ComponentFamily\": \"BAR\",\r\n \"ComponentType\": \"SEGMENTED\",\r\n \"ComponentContent\": {\r\n \"Value\": \"76\",\r\n \"SecondaryValue\": \"\",\r\n \"LowerBounds\": \"0\",\r\n \"UpperBounds\": \"100\",\r\n \"LowerBoundLabel\": \"Lower Risk\",\r\n \"UpperBoundLabel\": \"Higher Risk\",\r\n \"SegmentNumber\": \"3\",\r\n \"Segments\": [\r\n {\r\n \"Label\": \"High Risk\",\r\n \"Color\": \"#FE9350\",\r\n \"UpperBounds\": \"40\"\r\n },\r\n {\r\n \"Label\": \"Medium Risk\",\r\n \"Color\": \"#FEC957\",\r\n \"UpperBounds\": \"70\"\r\n },\r\n {\r\n \"Label\": \"Low Risk\",\r\n \"Color\": \"#6CDE6C\",\r\n \"UpperBounds\": \"100\"\r\n }\r\n ],\r\n \"Label\": \"You are at low risk for breast cancer.\"\r\n },\r\n \"ComponentVisible\": \"1\"\r\n}\r\n*/","import React, { Component } from 'react'\r\nimport Grid from '@material-ui/Core/Grid'\r\nimport Divider from '@material-ui/Core/Divider';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport FlagIcon from '@material-ui/icons/Flag';\r\n\r\nimport { withStyles } from '@material-ui/styles';\r\n\r\nlet dividerColor = window.$secondaryColor\r\n\r\nconst styles = theme => ({\r\n dividerTitle: {\r\n overflow:'hidden',\r\n fontSize:'20pt',\r\n '&::after': {\r\n content:'\"\"',\r\n \r\n }\r\n },\r\n dividerContainer: {\r\n width:'100%',\r\n textAlign:'left'\r\n }\r\n })\r\n\r\nclass TextDivider extends Component {\r\n constructor(props){\r\n super(props)\r\n }\r\n\r\n render() {\r\n\r\n const {classes} = this.props\r\n\r\n //this should be a standalone component for icons\r\n let icon = []\r\n if(this.props.content.Icon.length){\r\n if(this.props.content.Icon == \"risk\"){\r\n icon = \r\n }\r\n }\r\n dividerColor = this.props.content.DividerColor == \"secondary\" ? window.$secondaryColor : window.$primaryColor\r\n return(\r\n
    \r\n \r\n \r\n {icon} {this.props.content.Title}
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TextDivider);\r\n\r\n/* \r\n\r\n \r\n{\r\n \"ComponentClass\": \"VISUAL\",\r\n \"ComponentFamily\": \"DIVIDER\",\r\n \"ComponentType\": \"TEXTDIVIDER\",\r\n \"ComponentVisible\": \"1\",\r\n \"ComponentContent\": {\r\n \"Title\": \"Overview\",\r\n \"Icon\": \"\",\r\n \"IconColor\": \"red\",\r\n \"DividerColor\": \"secondary\"\r\n }\r\n }\r\n*/","import React, { Component } from 'react'\r\nimport Grid from '@material-ui/Core/Grid'\r\nimport Divider from '@material-ui/Core/Divider';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport FlagIcon from '@material-ui/icons/Flag';\r\n\r\nimport { withStyles } from '@material-ui/styles';\r\n\r\nlet dividerColor = window.$secondaryColor\r\n\r\nconst styles = theme => ({\r\n dividerTitle: {\r\n overflow:'hidden',\r\n fontSize:'20pt',\r\n '&::after': {\r\n content:'\"\"',\r\n \r\n }\r\n },\r\n dividerContainer: {\r\n width:'100%',\r\n textAlign:'left'\r\n }\r\n })\r\n\r\nclass TextDivider extends Component {\r\n constructor(props){\r\n super(props)\r\n }\r\n\r\n render() {\r\n\r\n const {classes} = this.props\r\n\r\n //this should be a standalone component for icons\r\n let icon = []\r\n if(this.props.content.Icon.length){\r\n if(this.props.content.Icon == \"risk\"){\r\n icon = \r\n }\r\n }\r\n dividerColor = this.props.content.DividerColor == \"secondary\" ? window.$secondaryColor : window.$primaryColor\r\n return(\r\n
    \r\n \r\n \r\n {icon} {this.props.content.Title}
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TextDivider);\r\n\r\n/* \r\n\r\n \r\n{\r\n \"ComponentClass\": \"VISUAL\",\r\n \"ComponentFamily\": \"SECTION\",\r\n \"ComponentType\": \"CARDSECTION\",\r\n \"ComponentVisible\": \"1\",\r\n \"ComponentContent\": {\r\n \"Title\": \"Overview\",\r\n \"Icon\": \"\",\r\n \"IconColor\": \"red\",\r\n \"DividerColor\": \"secondary\"\r\n }\r\n }\r\n*/","import React, { Component } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Accordion, AccordionDetails, AccordionSummary, Table, TableHead, TableRow, TableCell, TableBody } from '@material-ui/core';\r\nimport { ExpandMore } from '@material-ui/icons';\r\n\r\nclass QuestionList extends Component {\r\n\r\n constructor(props){\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\texpanded: this.props.expand\r\n\t\t}\r\n\r\n\t\tthis.toggleClick = this.toggleClick.bind(this)\r\n\t}\r\n\t\r\n\ttoggleClick(){\r\n\t\tthis.setState({\r\n\t\t\texpanded: !this.state.expanded\r\n\t\t})\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps){\r\n\t\tif(this.props.expand !== prevProps.expand){\r\n\t\t\tthis.setState({\r\n\t\t\t\texpanded: this.props.expand\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\r\n render() {\r\n\t\tlet counter = 0;\r\n let questions = this.props.content.Data[0].QuestionSets.map(questionSet => {\r\n if(questionSet.Visibility == \"1\" && questionSet.Questions.length > 1){\r\n\t\t\t\t//this is the group\r\n\r\n\t\t\t\tlet returnItem = []\r\n\t\t\t\t\r\n\t\t\t\tlet alphaCounter = '`'\r\n\t\t\t\t\r\n\t\t\t\tcounter++;\r\n\r\n\t\t\t\treturnItem.push(\r\n\t\t\t\t\t\t\t\t\t{counter}. {questionSet.QuestionSet}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\treturnItem.push(questionSet.Questions.map(question => {\r\n\t\t\t\t\tif(question.Visibility == \"1\"){\r\n\t\t\t\t\t\talphaCounter = String.fromCharCode(alphaCounter.charCodeAt(0) + 1)\r\n\t\t\t\t\t\treturn \r\n\t\t\t\t\t\t\t {alphaCounter}. {question.Question}\r\n\t\t\t\t\t\t\t{question.Answer}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t\treturn returnItem\r\n\t\t\t} else {\r\n\t\t\t\tif(questionSet.Visibility == \"1\"){\r\n\t\t\t\t\tcounter++;\r\n\t\t\t\t\treturn \r\n\t\t\t\t\t\t\t{counter}. {questionSet.Questions[0].Question}\r\n\t\t\t\t\t\t\t{questionSet.Questions[0].Answer}\r\n\t\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n })\r\n\r\n return(\r\n \r\n \r\n }>\r\n {this.props.content.Header}\r\n \r\n \r\n \r\n \r\n {this.props.content.Subheader}\r\n \r\n \r\n \r\n \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{questions}\r\n\t\t\t\t\t\t\t\t\t\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default QuestionList\r\n\r\n/*\r\n\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n {this.props.content.Questions}\r\n {this.props.content.Answers}\r\n \t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n \r\n
    */\r\n/*\r\n{\r\n\t\"ComponentClass\": \"DATA\",\r\n\t\"ComponentFamily\": \"QUESTIONS\",\r\n\t\"ComponentType\": \"ACCORDION\",\r\n\t\"ComponentContent\": {\r\n\t\t\"Data\": [\r\n\t\t\t{\r\n\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\"QuestionSet\": \"TGT 27A0024 ADULT\",\r\n\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\"QuestionSets\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 DATE OF BIRTH\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"What is your birth date?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"6-12-1991\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 AGE\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"0\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 HEIGHT\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"What is your height?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"inches\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"69\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 WEIGHT\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"What is your weight?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"pounds\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"180\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 BODY MASS INDEX\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"0\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 AGE AT MENARCHE\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"How old were you when you had your first menstrual period?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"Under age 12 years\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 HAS GIVEN BIRTH\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Have you given birth to a child?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"No\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 AGE FIRST LIVE BIRTH\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"0\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 DENSE BREASTS\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Has a doctor ever told you that you have dense breasts?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"No\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 HISTORY OF BREAST CANCER\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Has a doctor ever told you that you have breast cancer including carcinoma in situ?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"Yes\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 HAD BREAST BIOPSY\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Have you ever had a breast biopsy?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"No\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 BENIGN BREAST BIOPSY\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"0\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 NUMBER OF BENIGN BREAST BIOPSIES\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"0\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 HISTORY OF ATYPICAL HYPERPLASIA\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"0\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 NUMBER OF BREAST CANCERS IN FAMILY\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"How many of your first-degree relatives (mother, sisters, daughters) have had breast cancer?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"One\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 BRCA GENE TEST\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Have you ever been tested for BRCA1/2 gene mutation?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"Never tested\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 BRCA MUTATION IN FAMILY\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Do you have a first degree relative with BRCA1/2 gene mutation?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"No\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 HAS OTHER GENETIC RISKS\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Has a doctor ever told you that you have Li-Fraumeni syndrome, Cowden syndrome, or Ruvalcaba syndrome?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"No\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 OTHER GENETIC RISKS IN FAMILY\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Do you have a first degree relative with Li-Fraumeni syndrome, Cowden syndrome, or Bannayan-Riley-Ruvalcaba syndrome?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"No\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 HAD RADIATION THERAPY TO CHEST\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Did you ever have radiation therapy to the chest when you were between ages 10 and 30 years old?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"No\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"QuestionSet\": \"\",\r\n\t\t\t\t\t\t\"QuestionSetName\": \"TGT 27A0024 RACE GAIL MODEL\",\r\n\t\t\t\t\t\t\"ShowHeader\": \"0\",\r\n\t\t\t\t\t\t\"Visibility\": \"1\",\r\n\t\t\t\t\t\t\"Questions\": [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"Question\": \"Which of the following best describes you?\",\r\n\t\t\t\t\t\t\t\t\"Prompt\": \"\",\r\n\t\t\t\t\t\t\t\t\"Answer\": \"White\",\r\n\t\t\t\t\t\t\t\t\"Visiblity\": \"1\"\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t],\r\n\t\t\"Header\": \"Your answers\",\r\n\t\t\"Subheader\": \"These results are based upon how you answered the following questions:\",\r\n\t\t\"IsCollapsed\": \"1\",\r\n \"CanCollapse\": \"1\",\r\n \"Questions\": \"Questions\",\r\n \"Answers\": \"Answers\"\r\n\t},\r\n\t\"ComponentVisible\": \"1\"\r\n}\r\n*/","import React, { Component } from 'react'\r\nimport ReactSpeedometer from 'react-d3-speedometer'\r\n\r\nimport Box, { CardActions } from '@material-ui/core'\r\nimport Card from '@material-ui/Core/Card'\r\nimport CardHeader from '@material-ui/Core/CardHeader'\r\nimport CardContent from '@material-ui/Core/CardContent'\r\nimport Button from '@material-ui/Core/Button'\r\nimport Container from '@material-ui/Core/Container'\r\nimport Grid from '@material-ui/Core/Grid'\r\n\r\nimport Speedometer from './results/Speedometer';\r\nimport TextSection from './results/TextSection';\r\nimport ButtonGroup from './results/ButtonGroup';\r\nimport Header from './results/Header';\r\nimport HeaderButtons from '../components/results/headerbuttons';\r\nimport Callout from './results/Callout';\r\nimport Paragraph from './results/paragraph';\r\nimport RiskList from './results/risklist';\r\nimport RiskBar from './results/riskbar';\r\nimport TextDivider from './results/divider';\r\nimport Section from './results/section'\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport QuestionList from './results/questionlist'\r\n\r\nimport './result.css'\r\n\r\nconst useStyles = {\r\n root: {\r\n\r\n }\r\n}\r\n\r\nclass QuizResults extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n expandAccordions: false\r\n }\r\n }\r\n\r\n setExpandAccordions(val){\r\n this.setState({\r\n expandAccordions: val\r\n })\r\n }\r\n\r\n render() {\r\n const { classes } = this.props\r\n if (this.props.results[0]){\r\n var x=0;\r\n var resultItems = [];\r\n var component;\r\n let headerButtons;\r\n if(this.props.results.length > 6){\r\n headerButtons = \r\n }\r\n while(x)\r\n }\r\n if(component.ComponentType == \"HEADER\"){\r\n resultItems.push(
    )\r\n }\r\n if(component.ComponentType == \"SUBHEADER\"){\r\n\r\n }\r\n if(component.ComponentType == \"TEXT\"){\r\n resultItems.push()\r\n }\r\n if(component.ComponentType == \"CALLOUT\"){\r\n resultItems.push()\r\n }\r\n if(component.ComponentType == \"PARAGRAPH\"){\r\n resultItems.push()\r\n }\r\n break;\r\n case \"CHART\":\r\n if (component.ComponentFamily == \"SPEEDOMETER\"){\r\n if (component.ComponentType == \"SEGMENTED\"){\r\n resultItems.push()\r\n }\r\n if (component.ComponentType == \"GRADIENT\"){\r\n resultItems.push()\r\n }\r\n }\r\n if (component.ComponentFamily == \"BAR\"){\r\n resultItems.push()\r\n }\r\n \r\n\r\n break;\r\n case \"VISUAL\":\r\n if (component.ComponentFamily == \"DIVIDER\"){\r\n resultItems.push()\r\n }\r\n if (component.ComponentFamily == \"SECTION\"){\r\n resultItems.push(
    )\r\n }\r\n break;\r\n case \"RISKFACTOR\":\r\n if (component.ComponentType == \"LIST\"){\r\n \r\n }\r\n case \"CONTROLS\":\r\n if (component.ComponentType == \"BUTTON GROUP\"){\r\n resultItems.push()\r\n }\r\n break;\r\n case \"CARD\":\r\n if(component.ComponentType == \"PARAGRAPH\"){\r\n //resultItems.push()\r\n }\r\n break;\r\n case \"DATA\":\r\n if (component.ComponentType == \"ACCORDION\"){\r\n resultItems.push()\r\n }\r\n break;\r\n }\r\n }\r\n \r\n //console.log(resultItems)\r\n //resultItems.push(resultItem);\r\n x++;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headerButtons}\r\n \r\n {resultItems}\r\n \r\n \r\n \r\n )\r\n } else{\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n } \r\n}\r\n\r\nexport default withStyles(useStyles)(QuizResults);","import React, { Component } from 'react'\r\nimport Button from '@material-ui/core/Button'\r\nimport {FormControl, Input, TextField, InputLabel} from '@material-ui/core'\r\nimport NavigateNext from '@material-ui/icons/NavigateNext'\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n textAlign:'center',\r\n padding: '15px'\r\n },\r\n textfield: {\r\n maxWidth:'100px',\r\n [theme.breakpoints.down('xs')]: {\r\n margin:'8px'\r\n }\r\n },\r\n button: {\r\n height:'56px',\r\n [theme.breakpoints.down('xs')]: {\r\n width:'100px',\r\n marginTop:'8px'\r\n }\r\n }\r\n})\r\n\r\nclass InputAnswer extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n invalidAnswer: true, //on ComponenetDidMount, put logic in to update htis based on response\r\n answer: \"\",\r\n valMin: \"\",\r\n valMax: \"\",\r\n valPrecision: \"\",\r\n errorMessage: \"\",\r\n inputError: false,\r\n saving: false\r\n }\r\n }\r\n\r\n \r\n componentDidMount() {\r\n this.setState({\r\n answer: this.props.question.Responses[0].Response,\r\n invalidAnswer: true,\r\n valMin: this.props.question.ValueLimitationMin,\r\n valMax: this.props.question.ValueLimitationMax,\r\n valPrecision: this.props.question.ValueLimitationPrecision\r\n })\r\n }\r\n\r\n componentDidUpdate(prevProps){\r\n\r\n if(prevProps.question.QuestionId !== this.props.question.QuestionId){\r\n this.setState({\r\n answer: this.props.question.Responses[0].Response,\r\n invalidAnswer: this.props.question.Responses[0].Response.length ? false : true,\r\n saving: false\r\n\r\n })\r\n console.log(this.state)\r\n }\r\n }\r\n\r\n handleEnter = (event) => {\r\n if(event.key == \"Enter\" && !this.state.invalidAnswer){\r\n this.props.updateResponseValue(this.state.answer)\r\n }\r\n }\r\n\r\n onChange = (ev) =>{\r\n let value = ev.target.value\r\n let message = this.state.errorMessage\r\n let validation = this.props.validation\r\n //validation goes here\r\n //...\r\n //...\r\n\r\n //check for numeric\r\n if(isNaN(value)){\r\n message = validation.NotANumber\r\n }\r\n\r\n //check for range\r\n else if(this.state.valMin.length && this.state.valMax.length && (Number(value) < Number(this.state.valMin) || Number(value) > Number(this.state.valMax))){\r\n console.log(\"out of range\")\r\n message = validation.OutOfRange.replace('', this.state.valMin).replace('', this.state.valMax)\r\n }\r\n\r\n //check for precision\r\n else if(Math.floor(value) != value){\r\n if(this.state.valPrecision == \"0\" || this.state.valPrecision == \"\"){\r\n message = validation.WholeNumbers\r\n } else {\r\n message = value.split('.')[1].length > this.state.valPrecision ? validation.InvalidPrecision : \"\" \r\n }\r\n } \r\n\r\n else {\r\n message = ''\r\n }\r\n\r\n this.setState({\r\n errorMessage: message,\r\n inputError: message.length ? true : false,\r\n answer: value\r\n })\r\n\r\n //then update state\r\n if (value && !message.length){\r\n this.setState({\r\n invalidAnswer: false,\r\n answer: value\r\n })\r\n } else {\r\n this.setState({\r\n invalidAnswer: true\r\n })\r\n }\r\n console.log(\"value: \" + value + \" and message: \" + message)\r\n }\r\n\r\n onBlur = (ev) => {\r\n //console.log(ev)\r\n setTimeout((ev) => {\r\n if(!this.state.invalidAnswer && !this.props.helpOpen){\r\n \r\n this.setState({saving: true})\r\n this.props.updateResponseValue(this.state.answer)\r\n }\r\n }, 100)\r\n }\r\n\r\n handleClick = (ev) => {\r\n if(!this.state.invalidAnswer && !this.state.saving){\r\n this.props.updateResponseValue(this.state.answer)\r\n }\r\n }\r\n\r\n render(){\r\n const {classes} = this.props\r\n let prompt = this.props.question.QuestionPrompt.length ? this.props.question.QuestionPrompt : \"input\"\r\n return(\r\n
    \r\n \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(InputAnswer)","import React, { Component } from 'react'\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\r\nimport Radio from '@material-ui/core/Radio'\r\n\r\nclass Toggle extends Component{\r\n constructor(props){\r\n super(props)\r\n }\r\n render(){\r\n if(this.props){\r\n let answer = this.props.answer;\r\n return(\r\n //Answer\r\n } label={answer.AnswerStandardContent} />\r\n )\r\n } else return

    nope

    \r\n \r\n }\r\n}\r\n\r\nexport default Toggle;","\r\nimport React, { Component } from 'react';\r\nimport { FormControl, Select, MenuItem, InputLabel} from '@material-ui/core'\r\n\r\n\r\n\r\nclass Height extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n invalidAnswer: true, //on ComponenetDidMount, put logic in to update htis based on response\r\n answer: \"\",\r\n answerInches: -1,\r\n answerFeet: -1,\r\n valMin: \"\",\r\n valMax: \"\",\r\n valPrecision: \"\",\r\n errorMessage: \"\",\r\n inputError: false,\r\n Inches: [0,1,2,3,4,5,6,7,8,9,10,11],\r\n Feet: [0,1,2,3,4,5,6,7,8,9]\r\n }\r\n }\r\n\r\n \r\n componentDidMount() {\r\n //gotta convert to int for all the math stuff\r\n //important for comparisons ( >0 vs .length)\r\n var answer = parseInt(this.props.question.Responses[0].Response)\r\n this.createFeetArray()\r\n this.setState({\r\n answer: answer,\r\n invalidAnswer: true,\r\n valMin: this.props.question.ValueLimitationMin,\r\n valMax: this.props.question.ValueLimitationMax,\r\n valPrecision: this.props.question.ValueLimitationPrecision,\r\n errorMessage:\"\" \r\n })\r\n if(this.props.question.Responses[0].Response > 0 ){\r\n this.setInchesAndFeet(this.props.question.Responses[0].Response)\r\n }\r\n }\r\n\r\n createFeetArray(){\r\n let max = Math.floor(this.props.question.ValueLimitationMax/12)\r\n let min = Math.floor(this.props.question.ValueLimitationMin/12)\r\n\r\n let feet = []\r\n\r\n for(var x=min; x {\r\n this.setState({\r\n answerInches: ev.target.value\r\n }, () => {\r\n if(this.state.answerFeet >= 0 && this.state.answerInches >= 0){\r\n this.setSavableAnswer()\r\n }\r\n })\r\n }\r\n\r\n setFeet = ev => {\r\n this.setState({\r\n answerFeet: ev.target.value\r\n }, () => {\r\n if(this.state.answerFeet >= 0 && this.state.answerInches >= 0){\r\n this.setSavableAnswer()\r\n }\r\n } \r\n )\r\n }\r\n\r\n setSavableAnswer(){\r\n var inches = this.state.answerInches + this.state.answerFeet*12\r\n if(inches > this.state.valMax || inches 0){\r\n var inchString = inches.toString()\r\n this.props.updateResponseValue(inchString)\r\n }\r\n }\r\n }\r\n\r\n render(){\r\n if(this.props){\r\n let answer = this.props.question.Responses[0].Response;\r\n \r\n return(\r\n //Answer\r\n
    \r\n \r\n {this.props.prompts.HeightPrimary}\r\n \r\n {this.state.Feet.map((item) => {item})}\r\n \r\n \r\n \r\n {this.props.prompts.HeightSecondary}\r\n \r\n {this.state.Inches.map((item) => {item})}\r\n \r\n \r\n

    {this.state.errorMessage}

    \r\n
    \r\n \r\n )\r\n }\r\n \r\n }\r\n}\r\n\r\nexport default Height;","\r\nimport React, { Component } from 'react';\r\nimport { FormControl, Select, MenuItem, InputLabel} from '@material-ui/core';\r\nimport moment from 'moment';\r\n\r\nclass DateOfBirth extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n invalidAnswer: true, //on ComponenetDidMount, put logic in to update htis based on response\r\n answer: \"\",\r\n valMin: \"\",\r\n valMax: \"\",\r\n valPrecision: \"\",\r\n errorMessage: \"\",\r\n year: -1,\r\n month: -1,\r\n day: -1,\r\n daySelect: null,\r\n monthSelect: null,\r\n yearSelect: null,\r\n inputError: false\r\n }\r\n }\r\n\r\n \r\n componentDidMount() {\r\n //gotta convert to int for all the math stuff\r\n //important for comparisons ( >0 vs .length)\r\n\r\n var days = optionGenerator(1, 31, \"ASC\")\r\n var year = optionGenerator(2020, 1900, 'DESC')\r\n\r\n this.setState({\r\n invalidAnswer: true,\r\n valMin: this.props.question.ValueLimitationMin,\r\n valMax: this.props.question.ValueLimitationMax,\r\n valPrecision: this.props.question.ValueLimitationPrecision,\r\n daySelect: days,\r\n yearSelect: year\r\n })\r\n\r\n if(this.props.question.Responses[0].Response.length){\r\n var date = moment(this.props.question.Responses[0].Response, 'M-D-YYYY').toDate()\r\n if(!isNaN(date.getDate())){\r\n this.setState({\r\n day: date.getDate(),\r\n month: date.getMonth() + 1,\r\n year: date.getFullYear()\r\n })\r\n }\r\n }\r\n }\r\n\r\n setDay = ev => {\r\n this.setState({\r\n day: ev.target.value\r\n }, () => {\r\n if(this.state.day > 0 && this.state.month >= 0 && this.state.year >= 0){\r\n this.setSavableAnswer()\r\n }\r\n })\r\n }\r\n\r\n setMonth = ev => {\r\n var thirtyDays = [4, 6, 9, 11]\r\n var days = this.state.daySelect\r\n //February\r\n if(ev.target.value == 2){\r\n if(this.state.year > -1 && (this.state.year%4 == 0)){\r\n days = optionGenerator(1, 29, \"ASC\")\r\n } else {\r\n days = optionGenerator(1, 28, \"ASC\")\r\n }\r\n \r\n }\r\n //30 Day months \r\n if(thirtyDays.includes(ev.target.value)){\r\n days = optionGenerator(1, 30, \"ASC\")\r\n }\r\n this.setState({\r\n month: ev.target.value,\r\n daySelect: days\r\n }, () => {\r\n if(this.state.day > 0 && this.state.month >= 0 && this.state.year >= 0){\r\n this.setSavableAnswer()\r\n }\r\n })\r\n }\r\n\r\n setYear = ev => {\r\n var days = this.state.daySelect\r\n if((ev.target.value%4) == 0 && this.state.month == 2){\r\n days = optionGenerator(1, 29, \"ASC\")\r\n }\r\n this.setState({\r\n year: ev.target.value,\r\n daySelect: days\r\n }, () => {\r\n if(this.state.day > 0 && this.state.month >= 0 && this.state.year >= 0){\r\n this.setSavableAnswer()\r\n }\r\n })\r\n }\r\n\r\n setSavableAnswer() {\r\n var fullDate = \"\" + this.state.month + \"-\" + this.state.day + \"-\" + this.state.year\r\n var birthDate = moment(\"\" + this.state.month + \"-\" + this.state.day + \"-\" + this.state.year, 'MM-DD-YYYY').toDate()\r\n var today = new Date()\r\n var age = today.getFullYear() - birthDate.getFullYear();\r\n var m = today.getMonth() - birthDate.getMonth();\r\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\r\n age = age - 1;\r\n }\r\n \r\n if(isNaN(birthDate.getDate())){\r\n this.setState({\r\n errorMessage: \"Invalid Date\"\r\n })\r\n } \r\n //if child's age range\r\n else if(age < this.props.question.ValueLimitationMin){\r\n this.setState({\r\n errorMessage: this.props.validation.InvalidAgeTooYoung.replace(\"\",this.props.question.ValueLimitationMin)\r\n })\r\n } \r\n //if adult age range\r\n else if(age > this.props.question.ValueLimitationMax){\r\n this.setState({\r\n errorMessage: this.props.validation.InvalidAgeTooOld.replace(\"\",this.props.question.ValueLimitationMax)\r\n })\r\n }\r\n \r\n else {\r\n this.props.updateResponseValue(fullDate)\r\n }\r\n console.log(fullDate)\r\n\r\n }\r\n\r\n \r\n\r\n render(){\r\n if(this.props){\r\n let answer = this.props.question.Responses[0].Response;\r\n\r\n // Fetch the month content from the inbound JSON. Order the incoming list by MonthSequenceInYear. Ultimately map the resultant array to the MenuItem JSX object. \r\n let monthSQL = this.props.prompts.MonthSQL;\r\n monthSQL.sort((a, b) => parseInt(a.MonthSequenceInYear) - parseInt(b.MonthSequenceInYear));\r\n \r\n return(\r\n //Answer\r\n
    \r\n \r\n {this.props.prompts.Month}\r\n \r\n {monthSQL.map(month => {month.StandardContent})}\r\n \r\n \r\n \r\n {this.props.prompts.Day}\r\n \r\n {this.state.daySelect}\r\n \r\n \r\n \r\n {this.props.prompts.Year}\r\n \r\n {this.state.yearSelect}\r\n \r\n \r\n

    {this.state.errorMessage}

    \r\n
    \r\n \r\n )\r\n }\r\n \r\n }\r\n}\r\n\r\n//helps generate an array of Dropdown items within a number range\r\nfunction optionGenerator(start, end, dir){\r\n var options = []\r\n\r\n if(dir==\"ASC\"){\r\n while (start <= end){\r\n options.push({start})\r\n start++\r\n }\r\n } else{\r\n while (start >= end){\r\n options.push({start})\r\n start--\r\n }\r\n }\r\n return options\r\n}\r\n\r\n\r\n\r\nexport default DateOfBirth;","import React, { Component } from 'react'\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Select from \"@material-ui/core/Select\";\r\n\r\nclass DropdownIncremental extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n answer: \"\"\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n if(this.props.question.Responses[0].Response.length){\r\n this.setState({\r\n answer: this.props.questions.Responses[0].Response\r\n })\r\n }\r\n }\r\n\r\n changeAnswer = (ev) => {\r\n console.log(\"dropdown answer: \", ev.target.value)\r\n this.setState({\r\n answer: ev.target.value\r\n })\r\n this.props.updateResponseValue(ev.target.value)\r\n }\r\n render(){\r\n if(this.props){\r\n let answer = this.props.question.Responses[0].Response;\r\n console.log(\"Dropdown answer: \" + answer)\r\n\r\n var answers = []\r\n var value;\r\n value = parseInt(this.props.question.ValueLimitationMin)\r\n while(value <= parseInt(this.props.question.ValueLimitationMax)){\r\n answers.push({value})\r\n value += parseInt(this.props.question.ValueLimitationIncrement)\r\n }\r\n return(\r\n //Answer\r\n\r\n \r\n \r\n \r\n {answers}\r\n \r\n \r\n )\r\n } else return

    nope

    \r\n \r\n }\r\n}\r\n\r\nexport default DropdownIncremental;","import Card from '@material-ui/core/Card';\r\nimport React, { Component } from 'react';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport CardActions from '@material-ui/core/CardActions'\r\nimport { FormControl, Select, MenuItem, InputLabel, Popover, IconButton, Typography, CardContent} from '@material-ui/core'\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport PopupState, { bindTrigger, bindPopover} from 'material-ui-popup-state'\r\n\r\nimport InputAnswer from './answers/Input'\r\nimport Toggle from './answers/Toggle'\r\nimport Height from './answers/Height'\r\nimport DateOfBirth from './answers/DateOfBirth'\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport DropdownIncremental from './answers/DropdownIncremental';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n \r\n },\r\n header: {\r\n textAlign: 'center',\r\n marginBottom: '0px'\r\n },\r\n card: {\r\n padding: '0 1vw 1em 1vw'\r\n },\r\n center: {\r\n textAlign: 'center',\r\n justifyContent: 'center'\r\n },\r\n smallTitle: {\r\n fontSize: '1.3em'\r\n },\r\n regularTitle: {\r\n fontSize: '1.5em'\r\n }\r\n});\r\n\r\nclass Question extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n answer: props.question[0].Responses[0].Response,\r\n helpOpen: false\r\n }\r\n\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if(this.props.question[0].QuestionStandardContent !== prevProps.question[0].QuestionStandardContent){\r\n this.setState({answer: this.props.question[0].Responses[0].Response})\r\n }\r\n }\r\n\r\n changeAnswer = ev => {\r\n console.log(ev.target.value)\r\n this.setState({answer: ev.target.value})\r\n this.props.updateResponseValue(ev.target.value)\r\n }\r\n\r\n handleMouseDown = ev => {\r\n this.setState({\r\n helpOpen: !this.state.helpOpen\r\n })\r\n }\r\n\r\n handleClose = ev => {\r\n console.log(\"handleClose\")\r\n this.setState({\r\n helpOpen: false\r\n })\r\n return;\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n let answertype = null;\r\n \r\n switch(this.props.question[0].QuestionTypeKeyName){\r\n case 'INTEGER INPUT':\r\n case 'DECIMAL INPUT':\r\n answertype = \r\n break\r\n case 'HEIGHT':\r\n if(this.props.uom == \"IMPERIAL\"){\r\n answertype = \r\n }\r\n else{\r\n answertype = \r\n }\r\n \r\n break\r\n case 'DATE INPUT':\r\n answertype = \r\n break\r\n case 'DROPDOWN INCREMENTAL':\r\n answertype = \r\n break;\r\n case 'DROPDOWN':\r\n answertype = \r\n //\r\n \r\n \r\n {this.props.questionPrompts.Dropdown}\r\n \r\n {this.props.question[0].Answers.sort((a, b) => (parseInt(a.AnswerSequenceInQuestion) - parseInt(b.AnswerSequenceInQuestion))).map(item => {item.AnswerStandardContent})}\r\n \r\n \r\n break\r\n default:\r\n answertype = \r\n {this.props.question[0].Answers.sort((a, b) => (parseInt(a.AnswerSequenceInQuestion) - parseInt(b.AnswerSequenceInQuestion))).map(item => )}\r\n \r\n break\r\n }\r\n //make the icon\r\n let helpIcon = null\r\n if(this.props.question[0].QuestionHelpText.length){\r\n helpIcon = \r\n {popupState => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n\r\n //font size based on content length or help icon\r\n let fontsize = '1.5em'\r\n if (this.props.question[0].QuestionStandardContent.length >= 80 || this.props.question[0].QuestionHelpText.length){\r\n fontsize = '1.3em'\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {helpIcon}\r\n \r\n {this.props.question[0].QuestionStandardContent}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {answertype}\r\n \r\n
    \r\n )\r\n }\r\n}\r\n//\r\nexport default withStyles(styles)(Question);","import React, { Component } from 'react'\r\nimport Button from '@material-ui/Core/Button'\r\nimport NavigateNext from '@material-ui/icons/NavigateNext'\r\n\r\nclass NextButton extends Component {\r\n constructor(props){\r\n super(props)\r\n }\r\n render() {\r\n\r\n var buttonLabel = this.props.buttonLabel\r\n return \r\n }\r\n}\r\n\r\nexport default NextButton","import React, { Component } from 'react'\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\r\nimport Checkbox from '@material-ui/core/Checkbox'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport TableCell from '@material-ui/core/TableCell'\r\n\r\nimport { Popover, IconButton, Typography, CardContent} from '@material-ui/core'\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport PopupState, { bindTrigger, bindPopover} from 'material-ui-popup-state'\r\n\r\nclass TableCheckbox extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n yesID: '',\r\n noID: '', \r\n checked: false\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n var yes, no;\r\n //Assuming always that two states, Checked and Unchecked, are the only ones that are available\r\n //this is neither flexible nor good\r\n //but here we are\r\n if(this.props.question.Answers[0].AnswerName == \"Yes\"){\r\n yes = this.props.question.Answers[0].AnswerId\r\n no = this.props.question.Answers[1].AnswerId\r\n } else {\r\n yes = this.props.question.Answers[1].AnswerId\r\n no = this.props.question.Answers[0].AnswerId\r\n }\r\n\r\n if(this.props.question.Responses[0].Response == yes){\r\n this.setState({\r\n checked:true\r\n })\r\n }\r\n\r\n this.setState({\r\n yesID: yes,\r\n noID: no\r\n })\r\n }\r\n\r\n handleChange = ev => {\r\n if(ev.target.checked){\r\n this.setState({\r\n checked:true\r\n })\r\n this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, this.state.yesID)\r\n } else {\r\n this.setState({\r\n checked:false\r\n })\r\n this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, this.state.noID)\r\n }\r\n }\r\n\r\n render(){\r\n if(this.props){\r\n var helpIcon = []\r\n if(this.props.question.QuestionHelpText.length){\r\n helpIcon = \r\n {popupState => (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n return(\r\n //Answer\r\n \r\n \r\n \r\n {helpIcon}\r\n {this.props.question.QuestionStandardContent}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n } else return

    nope

    \r\n \r\n }\r\n}\r\n\r\nexport default TableCheckbox;","import React, { Component } from 'react'\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\r\nimport Radio from '@material-ui/core/Radio'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport { Popover, IconButton, Typography, CardContent} from '@material-ui/core'\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport PopupState, { bindTrigger, bindPopover} from 'material-ui-popup-state'\r\n\r\nclass Toggle extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n answer: ''\r\n }\r\n }\r\n \r\n componentDidMount(){\r\n if(this.props.question.Responses[0].Response != ''){\r\n this.setState({\r\n answer: this.props.question.Responses[0].Response,\r\n \r\n })\r\n }\r\n }\r\n\r\n handleChange = ev => {\r\n if(ev.target.value != this.state.answer){\r\n this.setState({\r\n answer:ev.target.value\r\n })\r\n this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, ev.target.value)\r\n } \r\n }\r\n\r\n render(){\r\n if(this.props){\r\n var helpIcon = []\r\n if(this.props.question.QuestionHelpText.length){\r\n helpIcon = \r\n {popupState => (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n return(\r\n //Answer\r\n \r\n \r\n {helpIcon}\r\n \r\n \r\n {this.props.question.QuestionStandardContent}\r\n \r\n {this.props.question.Answers.map(answer => (\r\n \r\n ))}\r\n \r\n )\r\n } else return

    nope

    \r\n \r\n }\r\n}\r\n\r\nexport default Toggle;","import React, { Component } from 'react'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport Slider from '@material-ui/core/Slider';\r\nimport { Popover, IconButton, Typography, CardContent} from '@material-ui/core'\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport PopupState, { bindTrigger, bindPopover} from 'material-ui-popup-state'\r\n\r\n\r\nclass TableSlider extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n answer: 0,\r\n answertext:'',\r\n answerarray: []\r\n }\r\n }\r\n \r\n componentDidMount(){\r\n var answerArray = this.props.question.Answers.sort((a,b) => a.AnswerSequenceInQuestion - b.AnswerSequenceInQuestion)\r\n //answerArray.unshift({\"AnswerStandardContent\": \"Please select an answer\"})\r\n if(this.props.question.Responses[0].Response != ''){\r\n for(var x=0; x {\r\n // if(ev.target.value != this.state.answer){\r\n // this.setState({\r\n // answer:ev.target.value\r\n // })\r\n // this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, ev.target.value)\r\n // } \r\n this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, this.state.answerarray[value].AnswerId)\r\n }\r\n\r\n handleSliding = (ev, value) => {\r\n this.setState({\r\n answer: value,\r\n answertext: this.state.answerarray[value].AnswerStandardContent\r\n })\r\n }\r\n\r\n render(){\r\n if(this.props){\r\n let helpIcon = null\r\n if(this.props.question.QuestionHelpText.length){\r\n helpIcon = \r\n {popupState => (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n return(\r\n //Answer\r\n \r\n \r\n {helpIcon}\r\n \r\n \r\n {this.props.question.QuestionStandardContent}\r\n \r\n \r\n \r\n \r\n {this.state.answertext}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n } else return

    nope

    \r\n \r\n }\r\n}\r\n\r\nexport default TableSlider;","import React, { Component } from 'react'\r\nimport Button from '@material-ui/core/Button'\r\nimport {FormControl, Input, TextField, InputLabel} from '@material-ui/core'\r\nimport NavigateNext from '@material-ui/icons/NavigateNext'\r\nimport Radio from '@material-ui/core/Radio'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport { Popover, IconButton, Typography, CardContent} from '@material-ui/core'\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport PopupState, { bindTrigger, bindPopover} from 'material-ui-popup-state'\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n textAlign:'center',\r\n padding: '15px'\r\n },\r\n textfield: {\r\n maxWidth:'100px',\r\n [theme.breakpoints.down('xs')]: {\r\n margin:'8px'\r\n }\r\n },\r\n button: {\r\n height:'56px',\r\n [theme.breakpoints.down('xs')]: {\r\n width:'100px',\r\n marginTop:'8px'\r\n }\r\n }\r\n})\r\n\r\nclass TableInput extends Component{\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n invalidAnswer: true, //on ComponenetDidMount, put logic in to update htis based on response\r\n answer: \"\",\r\n valMin: \"\",\r\n valMax: \"\",\r\n valPrecision: \"\",\r\n errorMessage: \"\",\r\n inputError: false,\r\n saving: false\r\n }\r\n }\r\n\r\n \r\n componentDidMount() {\r\n this.setState({\r\n answer: this.props.question.Responses[0].Response,\r\n invalidAnswer: true,\r\n valMin: this.props.question.ValueLimitationMin,\r\n valMax: this.props.question.ValueLimitationMax,\r\n valPrecision: this.props.question.ValueLimitationPrecision\r\n })\r\n }\r\n\r\n componentDidUpdate(prevProps){\r\n\r\n if(prevProps.question.QuestionId !== this.props.question.QuestionId){\r\n this.setState({\r\n answer: this.props.question.Responses[0].Response,\r\n invalidAnswer: this.props.question.Responses[0].Response.length ? false : true,\r\n saving: false\r\n\r\n })\r\n console.log(this.state)\r\n }\r\n }\r\n\r\n handleEnter = (event) => {\r\n if(event.key == \"Enter\" && !this.state.invalidAnswer){\r\n this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, this.state.answer)\r\n }\r\n }\r\n\r\n onChange = (ev) =>{\r\n console.log(ev)\r\n let value = ev.target.value\r\n let message = this.state.errorMessage\r\n let validation = this.props.validation\r\n console.log(value)\r\n //validation goes here\r\n //...\r\n //...\r\n\r\n //check for numeric\r\n if(isNaN(value)){\r\n message = validation.NotANumber\r\n }\r\n\r\n //check for range\r\n else if(this.state.valMin.length && this.state.valMax.length && (Number(value) < Number(this.state.valMin) || Number(value) > Number(this.state.valMax))){\r\n console.log(\"out of range\")\r\n message = validation.OutOfRange.replace('', this.state.valMin).replace('', this.state.valMax)\r\n }\r\n\r\n //check for precision\r\n else if(Math.floor(value) != value){\r\n if(this.state.valPrecision == \"0\" || this.state.valPrecision == \"\"){\r\n message = validation.WholeNumbers\r\n } else {\r\n message = value.split('.')[1].length > this.state.valPrecision ? validation.InvalidPrecision : \"\" \r\n }\r\n } \r\n\r\n else {\r\n message = ''\r\n }\r\n\r\n this.setState({\r\n errorMessage: message,\r\n inputError: message.length ? true : false,\r\n answer: value\r\n })\r\n\r\n //then update state\r\n if (value && !message.length){\r\n this.setState({\r\n invalidAnswer: false,\r\n answer: value\r\n })\r\n } else {\r\n this.setState({\r\n invalidAnswer: true\r\n })\r\n }\r\n console.log(\"value: \" + value + \" and message: \" + message)\r\n }\r\n\r\n onBlur = (ev) => {\r\n //console.log(ev)\r\n setTimeout((ev) => {\r\n if(!this.state.invalidAnswer && !this.props.helpOpen){\r\n \r\n this.setState({saving: true})\r\n this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, this.state.answer)\r\n }\r\n }, 100)\r\n }\r\n\r\n handleClick = (ev) => {\r\n if(!this.state.invalidAnswer && !this.state.saving){\r\n this.props.questionSetUpdateResponseValue(this.props.question.QuestionId, this.state.answer)\r\n }\r\n }\r\n\r\n render(){\r\n const {classes} = this.props\r\n let prompt = this.props.question.QuestionPrompt.length ? this.props.question.QuestionPrompt : \"input\"\r\n var helpIcon = []\r\n if(this.props.question.QuestionHelpText.length){\r\n helpIcon = \r\n {popupState => (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n return(\r\n \r\n \r\n {helpIcon}\r\n \r\n \r\n {this.props.question.QuestionStandardContent}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TableInput)","\r\nimport Button from '@material-ui/core/Button'\r\nimport Card from '@material-ui/Core/Card';\r\nimport React, { Component } from 'react';\r\nimport CardActions from '@material-ui/core/CardActions'\r\nimport { Popover, IconButton, Typography, CardContent} from '@material-ui/core'\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport PopupState, { bindTrigger, bindPopover} from 'material-ui-popup-state'\r\nimport NavigateNext from '@material-ui/icons/NavigateNext'\r\n\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\n\r\nimport NextButton from './nextButton'\r\nimport TableCheckbox from './answers/TableCheckbox'\r\nimport TableToggle from './answers/TableToggle'\r\nimport TableSlider from './answers/TableSlider'\r\nimport TableInput from './answers/TableInput'\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n \r\n },\r\n header: {\r\n textAlign: 'center',\r\n marginBottom: '0px'\r\n },\r\n card: {\r\n padding: '0 1vw 1em 1vw'\r\n },\r\n center: {\r\n textAlign: 'center',\r\n justifyContent: 'center'\r\n },\r\n smallTitle: {\r\n fontSize: '1.3em'\r\n },\r\n regularTitle: {\r\n fontSize: '1.5em'\r\n }\r\n});\r\n\r\nclass Clustered extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n setCount: props.question.QuestionSetQuestions.length\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n //if(this.props.question.QuestionSetQuestions[0].QuestionStandardContent !== prevProps.question.QuestionSetQuestions[0].QuestionStandardContent){\r\n // this.setState({answer: this.props.question.QuestionSetQuestions[0].Responses[0].Response})\r\n //}\r\n }\r\n\r\n changeAnswer = ev => {\r\n console.log(ev.target.value)\r\n //this.setState({answer: ev.target.value})\r\n //this.props.updateResponseValue(ev.target.value)\r\n }\r\n\r\n \r\n\r\n render() {\r\n const {classes} = this.props;\r\n let answertype = null;\r\n let nextbutton = null;\r\n //questions types word differently \r\n\r\n if(this.props.question.QuestionSetQuestions[0] && this.props.question.QuestionSetQuestions[0].QuestionTypeKeyName == \"CHECKBOX\"){\r\n answertype = \r\n \r\n {this.props.question.QuestionSetQuestions.map((question) => (\r\n \r\n ))}\r\n \r\n
    \r\n nextbutton = \r\n\r\n }\r\n if(this.props.question.QuestionSetQuestions[0] && this.props.question.QuestionSetQuestions[0].QuestionTypeKeyName == \"TOGGLE\"){\r\n console.log(\"toggle\")\r\n answertype = \r\n \r\n \r\n \r\n \r\n {this.props.question.QuestionSetQuestions[0].Answers.map(answer => (\r\n {answer.AnswerStandardContent}\r\n ))}\r\n \r\n \r\n \r\n \r\n {this.props.question.QuestionSetQuestions.map((question) => {\r\n return question.QuestionDisplayedFlag == \"1\" ? \r\n \r\n : null\r\n }\r\n \r\n )}\r\n \r\n
    \r\n }\r\n if(this.props.question.QuestionSetQuestions[0] && this.props.question.QuestionSetQuestions[0].QuestionTypeKeyName == \"SLIDER\"){\r\n console.log(\"slider\")\r\n answertype = \r\n \r\n \r\n {this.props.question.QuestionSetQuestions.map((question) => (\r\n \r\n \r\n ))}\r\n \r\n
    \r\n nextbutton = \r\n }\r\n\r\n if(this.props.question.QuestionSetQuestions[0] && (this.props.question.QuestionSetQuestions[0].QuestionTypeKeyName == \"DECIMAL INPUT\" || this.props.question.QuestionSetQuestions[0].QuestionTypeKeyName == \"INTEGER INPUT\")){\r\n answertype = \r\n \r\n {this.props.question.QuestionSetQuestions.map((question) => {\r\n return question.QuestionTypeKeyName === \"DECIMAL INPUT\" ? \r\n :\r\n <>\r\n \r\n \r\n {question.Answers.map(answer => (\r\n {answer.AnswerStandardContent}\r\n ))}\r\n \r\n \r\n \r\n })}\r\n \r\n
    \r\n nextbutton = \r\n }\r\n \r\n let helpIcon = null\r\n if(this.props.question.QuestionSetHelpText.length){\r\n helpIcon = \r\n {popupState => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n\r\n //font size based on content length or help icon\r\n let fontsize = '1.5em'\r\n if (this.props.question.QuestionSetQuestions[0].QuestionStandardContent.length >= 80 || this.props.question.QuestionSetQuestions[0].QuestionHelpText.length){\r\n fontsize = '1.3em'\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {helpIcon}\r\n \r\n {this.props.question.QuestionSetStandardContent}\r\n \r\n\r\n \r\n
    \r\n \r\n \r\n {answertype}\r\n \r\n {nextbutton}\r\n \r\n
    \r\n )\r\n }\r\n}\r\n//\r\nexport default Clustered;","\r\nimport Button from '@material-ui/core/Button'\r\nimport Card from '@material-ui/Core/Card';\r\nimport React, { Component } from 'react';\r\nimport CardActions from '@material-ui/core/CardActions'\r\nimport { Popover, IconButton, Typography, CardContent} from '@material-ui/core'\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport PopupState, { bindTrigger, bindPopover} from 'material-ui-popup-state'\r\nimport NavigateNext from '@material-ui/icons/NavigateNext'\r\nimport RadioGroup from '@material-ui/core/RadioGroup'\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\r\nimport Radio from '@material-ui/core/Radio'\r\n\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\n\r\nimport NextButton from './nextButton'\r\nimport TableCheckbox from './answers/TableCheckbox'\r\nimport TableToggle from './answers/Toggle'\r\nimport InputAnswer from './answers/Input'\r\nimport Toggle from './answers/Toggle'\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n \r\n },\r\n header: {\r\n textAlign: 'center',\r\n marginBottom: '0px'\r\n },\r\n card: {\r\n padding: '0 1vw 1em 1vw'\r\n },\r\n center: {\r\n textAlign: 'center',\r\n justifyContent: 'center'\r\n },\r\n smallTitle: {\r\n fontSize: '1.3em'\r\n },\r\n regularTitle: {\r\n fontSize: '1.5em'\r\n }\r\n});\r\n\r\nclass Biometric extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n setCount: props.question.QuestionSetQuestions.length,\r\n answer:''\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n //if(this.props.question.QuestionSetQuestions[0].QuestionStandardContent !== prevProps.question.QuestionSetQuestions[0].QuestionStandardContent){\r\n // this.setState({answer: this.props.question.QuestionSetQuestions[0].Responses[0].Response})\r\n //}\r\n }\r\n\r\n changeAnswer = ev => {\r\n console.log(ev.target.value)\r\n this.setState({answer: ev.target.value}) \r\n this.props.questionSetUpdateResponseValue(ev.target.value)\r\n }\r\n\r\n \r\n\r\n render() {\r\n const {classes} = this.props;\r\n let answertype = null;\r\n let nextbutton = null;\r\n //questions types word differently \r\n console.log(\"this.props.question\", this.props.question.QuestionSetQuestions[0])\r\n\r\n if(this.props.question.QuestionSetQuestions[this.props.question.QuestionSetQuestions.length-1].QuestionTypeKeyName == \"TOGGLE\"){\r\n answertype = \r\n {this.props.question.QuestionSetQuestions[this.props.question.QuestionSetQuestions.length-1].Answers.sort((a, b) => (parseInt(a.AnswerSequenceInQuestion) - parseInt(b.AnswerSequenceInQuestion))).map(item => } label={item.AnswerStandardContent} />)}\r\n \r\n }\r\n \r\n let helpIcon = null\r\n if(this.props.question.QuestionSetQuestions[0].QuestionHelpText.length){\r\n helpIcon = \r\n {popupState => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n\r\n //font size based on content length or help icon\r\n let fontsize = '1.5em'\r\n if (this.props.question.QuestionSetQuestions[0].QuestionStandardContent.length >= 80 || this.props.question.QuestionSetQuestions[0].QuestionHelpText.length){\r\n fontsize = '1.3em'\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {helpIcon}\r\n \r\n {this.props.question.QuestionSetQuestions[0].QuestionStandardContent}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {this.props.question.QuestionSetQuestions[this.props.question.QuestionSetQuestions.length-1].QuestionStandardContent}\r\n \r\n {answertype}\r\n \r\n {nextbutton}\r\n \r\n
    \r\n )\r\n }\r\n}\r\n//\r\nexport default Biometric;","import React, { Component } from 'react'\r\nimport RenderInBrowser from 'react-render-in-browser';\r\n\r\nimport Container from '@material-ui/core/Container'\r\nimport Slide from '@material-ui/core/Slide'\r\nimport Button from '@material-ui/core/Button'\r\nimport Card from '@material-ui/core/Card'\r\nimport Question from './Question.js'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport Divider from '@material-ui/core/Divider'\r\n\r\nimport Clustered from './Clustered.js'\r\nimport Biometric from './Biometric.js'\r\n\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport { Progress } from 'react-sweet-progress';\r\n\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport NavigateBeforeIcon from '@material-ui/icons/NavigateBefore';\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport \"react-sweet-progress/lib/style.css\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n textAlign:'center'\r\n },\r\n label: {\r\n display:'table-cell',\r\n verticalAlign: 'middle',\r\n position:\"absolute\"\r\n },\r\n ielabel: {\r\n display:'table-cell',\r\n verticalAlign: 'middle'\r\n },\r\n button: {\r\n display:'table',\r\n minHeight:'345px',\r\n width:'100%'\r\n },\r\n buttonPrevious: {\r\n [theme.breakpoints.down('xs')]: {\r\n position: \"absolute\",\r\n left: '0px',\r\n }\r\n },\r\n buttonNext: {\r\n [theme.breakpoints.down('xs')]: {\r\n position: \"absolute\",\r\n right: '-20px',\r\n }\r\n \r\n }\r\n})\r\n \r\nconst testQuiz = {\r\n \"SurveyData\": [\r\n {\r\n \"QuestionSetName\": \"DEV 0001 ADULT\",\r\n \"QuestionSetId\": \"1653\",\r\n \"QuestionSetStandardContent\": \"Me\",\r\n \"QuestionSetTypeKeyName\": \"STANDARD\",\r\n \"QuestionSetFamilyKeyName\": \"VISUAL MANAGEMENT\",\r\n \"QuestionSetSideTitle\": \"\",\r\n \"QuestionSetPrompt\": \"\",\r\n \"QuestionSetHelpText\": \"\",\r\n \"QuestionSetVisibilityFlag\": \"1\",\r\n \"QuestionSetImageLight\": \"\",\r\n \"QuestionSetImageDark\": \"\",\r\n \"QuestionSetQuestionSet\": [\r\n {\r\n \"QuestionSetName\": \"DEV 0001 NUMBER\",\r\n \"QuestionSetId\": \"1654\",\r\n \"QuestionSetStandardContent\": \"\",\r\n \"QuestionSetTypeKeyName\": \"STANDARD\",\r\n \"QuestionSetFamilyKeyName\": \"VISUAL MANAGEMENT\",\r\n \"QuestionSetSideTitle\": \"\",\r\n \"QuestionSetPrompt\": \"\",\r\n \"QuestionSetHelpText\": \"\",\r\n \"QuestionSetVisibilityFlag\": \"1\",\r\n \"QuestionSetImageLight\": \"\",\r\n \"QuestionSetImageDark\": \"\",\r\n \"QuestionSetQuestions\": [\r\n {\r\n \"QuestionName\": \"DEV 0001 NUMBER\",\r\n \"QuestionId\": \"2041\",\r\n \"QuestionTypeId\": \"2\",\r\n \"QuestionTypeKeyName\": \"INTEGER INPUT\",\r\n \"QuestionDisplayedFlag\": \"1\",\r\n \"QuestionRequiredFlag\": \"1\",\r\n \"QuestionHasBranchingLogicFlag\": \"1\",\r\n \"QuestionStandardContent\": \"Enter a number\",\r\n \"QuestionSideTitle\": \"\",\r\n \"QuestionPrompt\": \"\",\r\n \"QuestionHelpText\": \"This number will be above or below 10\",\r\n \"Saving\": \"\",\r\n \"Invalid\": \"\",\r\n \"ValueLimitationMin\": \"\",\r\n \"ValueLimitationMax\": \"\",\r\n \"ValueLimitationPrecision\": \"\",\r\n \"Answers\": [\r\n {\r\n \"AnswerName\": \"User Input\",\r\n \"AnswerId\": \"111\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"\"\r\n }\r\n ],\r\n \"Responses\": [\r\n {\r\n \"Response\": \"\",\r\n \"AnswerSequenceInQuestion\": \"0\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"QuestionSetName\": \"DEV 0001 NUMBER OVER 10\",\r\n \"QuestionSetId\": \"1655\",\r\n \"QuestionSetStandardContent\": \"\",\r\n \"QuestionSetTypeKeyName\": \"STANDARD\",\r\n \"QuestionSetFamilyKeyName\": \"VISUAL MANAGEMENT\",\r\n \"QuestionSetSideTitle\": \"\",\r\n \"QuestionSetPrompt\": \"\",\r\n \"QuestionSetHelpText\": \"\",\r\n \"QuestionSetVisibilityFlag\": \"0\",\r\n \"QuestionSetImageLight\": \"\",\r\n \"QuestionSetImageDark\": \"\",\r\n \"QuestionSetQuestions\": [\r\n {\r\n \"QuestionName\": \"DEV 0001 NUMBER OVER 10\",\r\n \"QuestionId\": \"2042\",\r\n \"QuestionTypeId\": \"11\",\r\n \"QuestionTypeKeyName\": \"TOGGLE\",\r\n \"QuestionDisplayedFlag\": \"0\",\r\n \"QuestionRequiredFlag\": \"0\",\r\n \"QuestionHasBranchingLogicFlag\": \"0\",\r\n \"QuestionStandardContent\": \"This number is over 10\",\r\n \"QuestionSideTitle\": \"\",\r\n \"QuestionPrompt\": \"\",\r\n \"QuestionHelpText\": \"\",\r\n \"Saving\": \"\",\r\n \"Invalid\": \"\",\r\n \"ValueLimitationMin\": \"\",\r\n \"ValueLimitationMax\": \"\",\r\n \"ValueLimitationPrecision\": \"\",\r\n \"Answers\": [\r\n {\r\n \"AnswerName\": \"Yes\",\r\n \"AnswerId\": \"42\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"Yes\"\r\n },\r\n {\r\n \"AnswerName\": \"No\",\r\n \"AnswerId\": \"43\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"No\"\r\n }\r\n ],\r\n \"Responses\": [\r\n {\r\n \"Response\": \"\",\r\n \"AnswerSequenceInQuestion\": \"0\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"QuestionSetName\": \"DEV 0001 NUMBER UNDER 10\",\r\n \"QuestionSetId\": \"1656\",\r\n \"QuestionSetStandardContent\": \"\",\r\n \"QuestionSetTypeKeyName\": \"STANDARD\",\r\n \"QuestionSetFamilyKeyName\": \"VISUAL MANAGEMENT\",\r\n \"QuestionSetSideTitle\": \"\",\r\n \"QuestionSetPrompt\": \"\",\r\n \"QuestionSetHelpText\": \"\",\r\n \"QuestionSetVisibilityFlag\": \"0\",\r\n \"QuestionSetImageLight\": \"\",\r\n \"QuestionSetImageDark\": \"\",\r\n \"QuestionSetQuestions\": [\r\n {\r\n \"QuestionName\": \"DEV 0001 NUMBER UNDER 10\",\r\n \"QuestionId\": \"2043\",\r\n \"QuestionTypeId\": \"11\",\r\n \"QuestionTypeKeyName\": \"TOGGLE\",\r\n \"QuestionDisplayedFlag\": \"0\",\r\n \"QuestionRequiredFlag\": \"0\",\r\n \"QuestionHasBranchingLogicFlag\": \"0\",\r\n \"QuestionStandardContent\": \"This number is less than 10\",\r\n \"QuestionSideTitle\": \"\",\r\n \"QuestionPrompt\": \"\",\r\n \"QuestionHelpText\": \"\",\r\n \"Saving\": \"\",\r\n \"Invalid\": \"\",\r\n \"ValueLimitationMin\": \"\",\r\n \"ValueLimitationMax\": \"\",\r\n \"ValueLimitationPrecision\": \"\",\r\n \"Answers\": [\r\n {\r\n \"AnswerName\": \"Yes\",\r\n \"AnswerId\": \"42\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"Yes\"\r\n },\r\n {\r\n \"AnswerName\": \"No\",\r\n \"AnswerId\": \"43\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"No\"\r\n }\r\n ],\r\n \"Responses\": [\r\n {\r\n \"Response\": \"\",\r\n \"AnswerSequenceInQuestion\": \"0\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"QuestionSetName\": \"DEV 0001 GAMES DAYS PER WEEK\",\r\n \"QuestionSetId\": \"2703\",\r\n \"QuestionSetStandardContent\": \"\",\r\n \"QuestionSetTypeKeyName\": \"STANDARD\",\r\n \"QuestionSetFamilyKeyName\": \"VISUAL MANAGEMENT\",\r\n \"QuestionSetSideTitle\": \"\",\r\n \"QuestionSetPrompt\": \"\",\r\n \"QuestionSetHelpText\": \"\",\r\n \"QuestionSetVisibilityFlag\": \"1\",\r\n \"QuestionSetImageLight\": \"\",\r\n \"QuestionSetImageDark\": \"\",\r\n \"QuestionSetQuestions\": [\r\n {\r\n \"QuestionName\": \"DEV 0001 GAMES DAYS PER WEEK\",\r\n \"QuestionId\": \"3086\",\r\n \"QuestionTypeId\": \"27\",\r\n \"QuestionTypeKeyName\": \"DROPDOWN INCREMENTAL\",\r\n \"QuestionDisplayedFlag\": \"1\",\r\n \"QuestionRequiredFlag\": \"1\",\r\n \"QuestionHasBranchingLogicFlag\": \"0\",\r\n \"QuestionStandardContent\": \"How many hours do you play video games each week?\",\r\n \"QuestionSideTitle\": \"\",\r\n \"QuestionPrompt\": \"\",\r\n \"QuestionHelpText\": \"\",\r\n \"Saving\": \"\",\r\n \"Invalid\": \"\",\r\n \"ValueLimitationMin\": \"0\",\r\n \"ValueLimitationMax\": \"200\",\r\n \"ValueLimitationPrecision\": \"0\",\r\n \"ValueLimitationIncrement\": \"1\",\r\n \"Answers\": [\r\n {\r\n \"AnswerName\": \"User Input\",\r\n \"AnswerId\": \"111\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"\"\r\n }\r\n ],\r\n \"Responses\": [\r\n {\r\n \"Response\": \"\",\r\n \"AnswerSequenceInQuestion\": \"0\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"QuestionSetName\": \"DEV 0001 FAVORITE FIFTH\",\r\n \"QuestionSetId\": \"2704\",\r\n \"QuestionSetStandardContent\": \"\",\r\n \"QuestionSetTypeKeyName\": \"STANDARD\",\r\n \"QuestionSetFamilyKeyName\": \"VISUAL MANAGEMENT\",\r\n \"QuestionSetSideTitle\": \"\",\r\n \"QuestionSetPrompt\": \"\",\r\n \"QuestionSetHelpText\": \"\",\r\n \"QuestionSetVisibilityFlag\": \"1\",\r\n \"QuestionSetImageLight\": \"\",\r\n \"QuestionSetImageDark\": \"\",\r\n \"QuestionSetQuestions\": [\r\n {\r\n \"QuestionName\": \"DEV 0001 FAVORITE FIFTH\",\r\n \"QuestionId\": \"3087\",\r\n \"QuestionTypeId\": \"27\",\r\n \"QuestionTypeKeyName\": \"DROPDOWN INCREMENTAL\",\r\n \"QuestionDisplayedFlag\": \"1\",\r\n \"QuestionRequiredFlag\": \"1\",\r\n \"QuestionHasBranchingLogicFlag\": \"0\",\r\n \"QuestionStandardContent\": \"\",\r\n \"QuestionSideTitle\": \"\",\r\n \"QuestionPrompt\": \"\",\r\n \"QuestionHelpText\": \"\",\r\n \"Saving\": \"\",\r\n \"Invalid\": \"\",\r\n \"ValueLimitationMin\": \"0\",\r\n \"ValueLimitationMax\": \"1\",\r\n \"ValueLimitationPrecision\": \"0\",\r\n \"ValueLimitationIncrement\": \"0.2\",\r\n \"Answers\": [\r\n {\r\n \"AnswerName\": \"User Input\",\r\n \"AnswerId\": \"111\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"\"\r\n }\r\n ],\r\n \"Responses\": [\r\n {\r\n \"Response\": \"\",\r\n \"AnswerSequenceInQuestion\": \"0\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"QuestionSetName\": \"DEV 0001 BANK ACCOUNT\",\r\n \"QuestionSetId\": \"2705\",\r\n \"QuestionSetStandardContent\": \"\",\r\n \"QuestionSetTypeKeyName\": \"STANDARD\",\r\n \"QuestionSetFamilyKeyName\": \"VISUAL MANAGEMENT\",\r\n \"QuestionSetSideTitle\": \"\",\r\n \"QuestionSetPrompt\": \"\",\r\n \"QuestionSetHelpText\": \"\",\r\n \"QuestionSetVisibilityFlag\": \"1\",\r\n \"QuestionSetImageLight\": \"\",\r\n \"QuestionSetImageDark\": \"\",\r\n \"QuestionSetQuestions\": [\r\n {\r\n \"QuestionName\": \"DEV 0001 BANK ACCOUNT\",\r\n \"QuestionId\": \"3088\",\r\n \"QuestionTypeId\": \"27\",\r\n \"QuestionTypeKeyName\": \"DROPDOWN INCREMENTAL\",\r\n \"QuestionDisplayedFlag\": \"1\",\r\n \"QuestionRequiredFlag\": \"1\",\r\n \"QuestionHasBranchingLogicFlag\": \"0\",\r\n \"QuestionStandardContent\": \"\",\r\n \"QuestionSideTitle\": \"\",\r\n \"QuestionPrompt\": \"\",\r\n \"QuestionHelpText\": \"\",\r\n \"Saving\": \"\",\r\n \"Invalid\": \"\",\r\n \"ValueLimitationMin\": \"-1000\",\r\n \"ValueLimitationMax\": \"1000\",\r\n \"ValueLimitationPrecision\": \"0\",\r\n \"ValueLimitationIncrement\": \"100\",\r\n \"Answers\": [\r\n {\r\n \"AnswerName\": \"User Input\",\r\n \"AnswerId\": \"111\",\r\n \"AnswerSequenceInQuestion\": \"10\",\r\n \"AnswerSideTitle\": \"\",\r\n \"AnswerStandardContent\": \"\"\r\n }\r\n ],\r\n \"Responses\": [\r\n {\r\n \"Response\": \"\",\r\n \"AnswerSequenceInQuestion\": \"0\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\nfunction iOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform)\r\n // iPad on iOS 13 detection\r\n || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n }\r\n\r\nclass Quiz extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n CurrentQuestion: [],\r\n Questions: [],\r\n CurrentQuestionsIndex: 0,\r\n PreviousQuestionIndex: -1,\r\n QuestionCount: 0,\r\n CurrentQuestionNotAnswered: true,\r\n direction: 'left',\r\n QuestionsAnswered: 0,\r\n CurrentRequiredQuestion: 0,\r\n FirstQuestionIndex:0,\r\n AllVisibleQuestionsAnswered: false,\r\n Saving: false\r\n }\r\n\r\n }\r\n\r\n componentDidMount(){\r\n let questions = this.props.questions.SurveyData[0]\r\n //let questions = testQuiz.SurveyData[0];\r\n var questioncount = 0\r\n var visiblequestioncount = 0\r\n var lastquestionindex = 0\r\n var firstquestion = -1\r\n\r\n //find the last visible question in the array and count the amount of total visible questions\r\n //\r\n while(questioncount < questions.QuestionSetQuestionSet.length){\r\n if (questions.QuestionSetQuestionSet[questioncount].QuestionSetQuestions[0].QuestionDisplayedFlag==\"1\"){\r\n visiblequestioncount++\r\n lastquestionindex = questioncount\r\n if(firstquestion<0){firstquestion = questioncount}\r\n }\r\n questioncount++\r\n }\r\n\r\n if(this.props.startfromBeginning){\r\n this.setState({\r\n Questions: questions.QuestionSetQuestionSet,\r\n CurrentQuestion: questions.QuestionSetQuestionSet[firstquestion],\r\n QuestionCount: visiblequestioncount,\r\n CurrentRequiredQuestion: firstquestion,\r\n CurrentQuestionsIndex: firstquestion,\r\n FirstQuestionIndex: firstquestion\r\n })\r\n this.props.updateQuestionTotal(visiblequestioncount)\r\n } else {\r\n\r\n this.setState({\r\n Questions: questions.QuestionSetQuestionSet,\r\n CurrentQuestion: questions.QuestionSetQuestionSet[lastquestionindex],\r\n QuestionCount: visiblequestioncount,\r\n CurrentRequiredQuestion: visiblequestioncount-1,\r\n CurrentQuestionsIndex: lastquestionindex,\r\n QuestionsAnswered: visiblequestioncount\r\n })\r\n }\r\n \r\n }\r\n\r\n nextQuestion = () => {\r\n var notFound = true\r\n var index = this.state.CurrentQuestionsIndex\r\n while(notFound){\r\n //let index = this.state.CurrentQuestionsIndex == this.state.Questions.length-1 ? this.state.CurrentQuestionsIndex : this.state.CurrentQuestionsIndex+1;\r\n if(this.state.Questions[index+1].QuestionSetQuestions[0].QuestionDisplayedFlag == 1){\r\n index++;\r\n notFound = false\r\n } else{\r\n index++\r\n }\r\n }\r\n this.props.setCurrentIndex(index)\r\n //if(this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetQuestions[0].Reponses[0].Response != \"\"){\r\n var isAnswered = false\r\n this.setState({\r\n direction: 'left',\r\n CurrentQuestion: this.state.Questions[index],\r\n PreviousQuestionIndex: this.state.CurrentQuestionsIndex,\r\n CurrentQuestionsIndex: index,\r\n CurrentQuestionNotAnswered: true,\r\n CurrentRequiredQuestion: this.state.CurrentRequiredQuestion+1\r\n })\r\n //}\r\n \r\n }\r\n\r\n previousQuestion = () => {\r\n var notFound = true\r\n var index = this.state.CurrentQuestionsIndex\r\n while(notFound){\r\n //let index = this.state.CurrentQuestionsIndex == this.state.Questions.length-1 ? this.state.CurrentQuestionsIndex : this.state.CurrentQuestionsIndex+1;\r\n if(this.state.Questions[index-1].QuestionSetQuestions[0].QuestionDisplayedFlag == 1){\r\n index--;\r\n notFound = false\r\n } else{\r\n index--\r\n }\r\n }\r\n this.setState({\r\n direction: 'right',\r\n CurrentQuestion: this.state.Questions[index],\r\n PreviousQuestionIndex: this.state.CurrentQuestionsIndex,\r\n CurrentQuestionsIndex: index,\r\n CurrentQuestionNotAnswered: true,\r\n CurrentRequiredQuestion: this.state.CurrentRequiredQuestion-1\r\n })\r\n }\r\n\r\n \r\n\r\n updateResponseValue = (value) => {\r\n if(!this.state.Saving){\r\n this.setState({Saving: true})\r\n fetch('../../WsWebServiceHra/SaveAnswer/' + \r\n this.props.authtoken + '/' +\r\n this.props.responseguid + '/' +\r\n this.state.CurrentQuestion.QuestionSetQuestions[0].QuestionId + '/' +\r\n value.toString() + '/',\r\n {\r\n method: \"POST\",\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {\r\n }\r\n }) \r\n .then(response=>response.json())\r\n .then(response => {\r\n if(response.Success){\r\n //some branching logic BS goes in here too, I guess, eventually\r\n //please don't make me do it\r\n //please\r\n //OH WE DOIN IT BOYS\r\n let questions = this.state.Questions;\r\n if(response.Info[0] && response.Info[0].Changes){\r\n let change\r\n for(var x=0; x {\r\n this.moveToNext()\r\n this.setState({\r\n Saving:false\r\n })\r\n })\r\n \r\n }\r\n \r\n })\r\n }\r\n \r\n }\r\n\r\n questionSetUpdateResponseValue = (questionID, value) => {\r\n //since saving has to be done at a higher level for QSs, \r\n //this version of UpdateResponseValue does all the other stuff.\r\n //This is called once the QS is marked as complete\r\n //QS is marked as complete when\r\n\r\n //def: value - the answer being saved\r\n //def: questionID - the index of the question in the questionSet\r\n \r\n fetch('../../WsWebServiceHra/SaveAnswer/' + \r\n this.props.authtoken + '/' +\r\n this.props.responseguid + '/' +\r\n questionID + '/' +\r\n value.toString() + '/',\r\n {\r\n method: \"POST\",\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {\r\n }\r\n })\r\n .then(response=>response.json())\r\n .then(response => {\r\n if(response.Success){\r\n //some branching logic BS goes in here too, I guess, eventually\r\n //please don't make me do it\r\n //please\r\n //OH WE DOIN IT BOYS\r\n let questions = this.state.Questions;\r\n if(response.Info[0] && response.Info[0].Changes){\r\n let change\r\n for(var x=0; x question done\r\n //Required questions answered\r\n var prevAnswer;\r\n\r\n var requiredQuestions = 0;\r\n var answeredQuestions = 0;\r\n var thisquestion;\r\n\r\n for(var x=0; x {\r\n //if(thisquestion.QuestionTypeKeyName != \"SLIDER\"){\r\n this.moveToNext();\r\n // }\r\n })\r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n })\r\n \r\n \r\n \r\n\r\n }\r\n\r\n branchingLogic = (questions, change) => {\r\n for(var y=this.state.CurrentQuestionsIndex; y {\r\n \r\n if(this.state.QuestionsAnswered==this.state.QuestionCount){\r\n this.completeAssessment()\r\n } else {\r\n setTimeout(() => {\r\n this.nextQuestion()\r\n }, 200)\r\n \r\n }\r\n }\r\n\r\n completeAssessment = () => {\r\n //complete the mini assessment\r\n this.props.setCurrentIndex(this.state.Questions.length)\r\n this.props.showPersonalInfoCard()\r\n fetch('../../WsWebServiceHra/CompleteAssessment/' + this.props.authtoken + '/' + this.props.responseguid + '/', \r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {\r\n\r\n }\r\n })\r\n .then(response=>response.json())\r\n .then(response=>{\r\n if(response.Success){\r\n console.log('hra completed', response)\r\n this.props.getResultsViewInstance()\r\n } else {\r\n console.log('hra not completed', response)\r\n }\r\n })\r\n }\r\n\r\n wrappernextQuestion = () => {\r\n if (this.state.CurrentQuestionsIndex == this.state.Questions.length-1){\r\n this.completeAssessment()\r\n } else {\r\n if(!this.state.Saving){\r\n this.setState({\r\n direction: 'right',\r\n CurrentQuestionNotAnswered: false\r\n })\r\n setTimeout(() => {\r\n this.nextQuestion()\r\n }, 200)\r\n }\r\n }\r\n \r\n }\r\n\r\n wrappernextQuestionForGroup = () => {\r\n if (this.state.CurrentQuestionsIndex == this.state.Questions.length-1){\r\n this.completeAssessment()\r\n } else {\r\n this.setState({\r\n direction: 'right',\r\n CurrentQuestionNotAnswered: false\r\n })\r\n setTimeout(() => {\r\n this.nextQuestion()\r\n }, 200)\r\n }\r\n \r\n }\r\n\r\n wrapperpreviousQuestion = () => {\r\n this.setState({\r\n direction: 'left',\r\n CurrentQuestionNotAnswered: false\r\n })\r\n setTimeout(() => {\r\n this.previousQuestion()\r\n }, 200)\r\n }\r\n\r\n async saveRemaining(){\r\n var currentQuestion\r\n if(this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetQuestions[0].QuestionTypeKeyName == \"CHECKBOX\"){\r\n var no = this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetQuestions[0].Answers[0].AnswerName == \"No\" ? this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetQuestions[0].Answers[0].AnswerId : this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetQuestions[0].Answers[1].AnswerId\r\n for(var x=0; x {\r\n\r\n if(numberSaved != 0){\r\n \r\n } else {\r\n \r\n }\r\n \r\n \r\n //}, numberSaved)\r\n }\r\n \r\n }\r\n//

    Question {this.state.CurrentRequiredQuestion+1} out of {this.state.QuestionCount}

    \r\n\r\n render() {\r\n //\r\n //\r\n //\r\n const {classes} = this.props\r\n\r\n //Single question vs question set stuffffffff\r\n var question;\r\n if (this.state.Questions[this.state.CurrentQuestionsIndex] && this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetTypeKeyName == \"STANDARD\"){\r\n question = \r\n }\r\n if (this.state.Questions[this.state.CurrentQuestionsIndex] && this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetTypeKeyName == \"CLUSTERED\"){\r\n question = \r\n }\r\n if (this.state.Questions[this.state.CurrentQuestionsIndex] && this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetTypeKeyName == \"BIOMETRIC\"){\r\n question = \r\n }\r\n //if (this.state.Questions[this.state.CurrentQuestionsIndex].QuestionSetTypeKeyName == \"BIOMETRIC\"){\r\n // question = \r\n //}\r\n\r\n \r\n var isIphone = iOS()\r\n var iphoneStyleLeft = '0px'\r\n var iphoneStyleRight = '-20px'\r\n \r\n if(isIphone){\r\n iphoneStyleRight = '0px'\r\n iphoneStyleLeft = '-5%'\r\n }\r\n if(this.state.Questions.length && this.state.CurrentQuestion){\r\n\r\n let cardIsAnswered = this.state.CurrentQuestion.QuestionSetQuestions[0].Responses[0].Response.length\r\n if(this.state.CurrentQuestion.QuestionSetQuestions.length > 0){\r\n var currentSet = this.state.CurrentQuestion.QuestionSetQuestions\r\n let required = 0;\r\n let answered = 0;\r\n for(var x=0; x\r\n \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {question}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n } else {\r\n return(\r\n EmptyCard\r\n )\r\n }\r\n }\r\n}\r\n\r\nfunction checkiPhone(){\r\n return true\r\n}\r\n\r\nexport default withStyles(styles)(Quiz);","import { statement } from \"@babel/template\";\r\nimport Card from '@material-ui/core/Card'\r\nimport React, { Component } from 'react'\r\nimport TextField from '@material-ui/core/TextField'\r\nimport Button from '@material-ui/Core/Button'\r\nimport Select from '@material-ui/Core/Select'\r\nimport { CardHeader, CardActionArea, CardActions, Grid } from \"@material-ui/Core\";\r\nimport NavigateNext from '@material-ui/icons/NavigateNext'\r\nimport NavigateBeforeIcon from '@material-ui/icons/NavigateBefore'\r\nimport ButtonGroup from '@material-ui/Core/ButtonGroup'\r\n\r\nclass PersonalInfo extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n firstname: \"\",\r\n lastname: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n mobilephone: \"\",\r\n emailError: false,\r\n lastnameError: false,\r\n firstnameError: false,\r\n phoneError: false,\r\n mobilephoneError: false,\r\n isLoading: false\r\n }\r\n this.handleFirstNameChange = this.handleFirstNameChange.bind(this);\r\n this.handleLastNameChange = this.handleLastNameChange.bind(this);\r\n this.handleEmailChange = this.handleEmailChange.bind(this);\r\n this.handlePhoneChange = this.handlePhoneChange.bind(this);\r\n this.handleMobilePhoneChange = this.handleMobilePhoneChange.bind(this);\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleFirstNameChange(event) {\r\n if(!event.target.value.match(/[!@$%^&*()\\/\\\\,?\":{}|<>]/g)){\r\n this.setState({ firstname: event.target.value, firstnameError: false})\r\n } else {\r\n this.setState({firstname: event.target.value, firstnameError:true})\r\n }\r\n }\r\n\r\n handleLastNameChange(event) {\r\n if(!event.target.value.match(/[!@$%^&*()\\/\\\\,?\":{}|<>]/g)){\r\n this.setState({ lastname: event.target.value, lastnameError:false})\r\n } else {\r\n this.setState({lastnameError:true})\r\n }\r\n \r\n }\r\n\r\n handleEmailChange = (event) => {\r\n this.setState({ email: event.target.value})\r\n }\r\n\r\n handlePhoneChange = (event) => {\r\n \r\n console.log(\"phone change: \" + event.target.value)\r\n this.setState({ phone: event.target.value})\r\n }\r\n\r\n handleMobilePhoneChange = (event) => {\r\n this.setState({ mobilephone: event.target.value})\r\n }\r\n\r\n\r\n validateEmail = (event) => {\r\n var error = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(event.target.value);\r\n this.setState({\r\n emailError: !error\r\n })\r\n }\r\n\r\n validateFirstName = (event) => {\r\n if(this.state.firstname.length && this.state.firstname.match(/^[^a-zA-Z0-9]+$/)){\r\n this.setState({\r\n firstnameError: true\r\n })\r\n }\r\n }\r\n\r\n validateLastName = (event) => {\r\n if(this.state.lastname.length && this.state.lastname.match(/^[^a-zA-Z0-9]+$/)){\r\n this.setState({\r\n lastnameError: true\r\n })\r\n }\r\n }\r\n\r\n handleSubmit(event){\r\n console.log(\"submit: \", this.state)\r\n let hasErrors=false\r\n if(!this.state.email.length || this.state.emailError){\r\n hasErrors = true\r\n this.setState({\r\n emailError: true\r\n })\r\n }\r\n if(this.state.firstnameError || (this.props.viewInstance.FirstNameVisible == \"1\" && (!this.state.firstname.length && this.props.viewInstance.FirstNameRequired == \"1\"))){\r\n hasErrors = true\r\n this.setState({\r\n firstnameError: true\r\n })\r\n }\r\n if(this.state.firstname.length && this.state.firstname.match(/^[^a-zA-Z0-9]+$/)){\r\n hasErrors = true\r\n this.setState({\r\n firstnameError: true\r\n })\r\n }\r\n if(this.state.lastnameError || (this.props.viewInstance.LastNameVisible == \"1\" && (!this.state.lastname.length && this.props.viewInstance.LastNameRequired == \"1\"))){\r\n hasErrors = true\r\n this.setState({\r\n lastnameError: true\r\n })\r\n }\r\n if(this.state.lastname.length && this.state.lastname.match(/^[^a-zA-Z0-9]+$/)){\r\n hasErrors = true\r\n this.setState({\r\n lastnameError: true\r\n })\r\n }\r\n if(this.props.viewInstance.HomePhoneVisible == \"1\" && (!this.state.phone.length && this.props.viewInstance.HomePhoneRequired == \"1\")){\r\n hasErrors = true\r\n this.setState({\r\n phoneError: true\r\n })\r\n }\r\n if(this.props.viewInstance.MobilePhoneVisible == \"1\" && !this.state.mobilephone.length && this.props.viewInstance.MobilePhoneRequired == \"1\"){\r\n hasErrors = true\r\n this.setState({\r\n mobilephoneError: true\r\n })\r\n }\r\n console.log(\"errors: \", this.state)\r\n\r\n \r\n if(!hasErrors){ \r\n this.props.updateUserEmail(this.state.email)\r\n this.setState({\r\n isLoading: true\r\n })\r\n var firstname = this.state.firstname.length ? this.state.firstname : \"~_~\";\r\n var lastname = this.state.lastname.length ? this.state.lastname : \"~_~\";\r\n \r\n fetch('../../WsWebServicePlatform/Participant/Update',\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n \"ParamData\": {\r\n \"AuthToken\": this.props.authtoken,\r\n \"ParticipantGuid\": this.props.participantguid,\r\n \"GroupGuid\": this.props.groupguid,\r\n \"FirstName\": firstname,\r\n \"LastName\": lastname,\r\n \"Email\": this.state.email\r\n }\r\n })\r\n })\r\n .then(results=>results.json())\r\n .then(results=>{\r\n //if(results.Success){\r\n if(this.props.skipAddress){\r\n this.props.showresults();\r\n } else {\r\n\r\n this.props.showAddressInfoCard();\r\n }\r\n if(this.state.phone.length){\r\n fetch('../../WsWebServicePlatform/Participant/Phone/Create/' +\r\n this.props.authtoken + '/' +\r\n this.props.participantguid + '/' +\r\n 'C05F6C51-5992-477C-BD94-7EE28E7CD4BD/' +\r\n '1' + '/' +\r\n this.state.phone\t+ '/',\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {\r\n \r\n }\r\n })\r\n }\r\n if(this.state.mobilephone.length){\r\n fetch('../../WsWebServicePlatform/Participant/Phone/Create/' +\r\n this.props.authtoken + '/' +\r\n this.props.participantguid + '/' +\r\n '9232B9CA-5C20-40C2-9190-25E302FDC0BE/' +\r\n '2' + '/' +\r\n this.state.mobilephone + '/',\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {\r\n \r\n }\r\n })\r\n }\r\n \r\n //}\r\n })\r\n }\r\n \r\n \r\n }\r\n\r\n render() {\r\n var icon = \r\n if(this.state.isLoading){\r\n icon = \r\n }\r\n var firstname, lastname, homephone, mobilephone\r\n if(this.props.viewInstance.FirstNameVisible == \"1\"){\r\n firstname = \r\n }\r\n\r\n if(this.props.viewInstance.LastNameVisible == \"1\"){\r\n lastname = \r\n }\r\n\r\n if (this.props.viewInstance.HomePhoneVisible == \"1\"){\r\n homephone = \r\n \r\n }\r\n if (this.props.viewInstance.MobilePhoneVisible == \"1\") {\r\n mobilephone = \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {firstname}\r\n {lastname}\r\n \r\n \r\n {homephone}\r\n {mobilephone}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default PersonalInfo;","import { statement } from \"@babel/template\";\r\nimport Card from '@material-ui/Core/Card'\r\nimport React, { Component } from 'react'\r\nimport TextField from '@material-ui/Core/TextField'\r\nimport Button from '@material-ui/Core/Button'\r\nimport FormControl from '@material-ui/Core/FormControl'\r\nimport InputLabel from '@material-ui/Core/InputLabel'\r\nimport Select from '@material-ui/Core/Select'\r\nimport MenuItem from '@material-ui/Core/MenuItem'\r\nimport { CardActions, CardHeader, Grid } from \"@material-ui/Core\";\r\n\r\nimport NavigateNextIcon from \"@material-ui/icons/NavigateNext\";\r\n\r\n\r\nimport Script from 'react-load-script';\r\n\r\nclass AddressInfo extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n address1: '',\r\n address2: '',\r\n city: '',\r\n state: '',\r\n zip: '',\r\n address1Error: false,\r\n address2Error: false,\r\n cityError: false,\r\n stateError: false,\r\n zipError: false,\r\n isLoading: false,\r\n canSubmit: false,\r\n address: '',\r\n query: '',\r\n disabledForTyping: false\r\n }\r\n\r\n this.handleAddressLine1Change = this.handleAddressLine1Change.bind(this)\r\n this.handleAddressLine2Change = this.handleAddressLine2Change.bind(this)\r\n this.handleCityChange = this.handleCityChange.bind(this)\r\n this.handleStateChange = this.handleStateChange.bind(this)\r\n this.handleZipChange = this.handleZipChange.bind(this)\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this)\r\n this.onKeyDown = this.onKeyDown.bind(this)\r\n \r\n this.validateZip = this.validateZip.bind(this)\r\n }\r\n\r\n handleScriptLoad = () => {\r\n // Declare Options For Autocomplete\r\n let type = ''\r\n let autocomplete = ''\r\n if(this.props.requirements.AddressStreetVisible == \"1\"){\r\n type = 'address'\r\n autocomplete = 'address1'\r\n }else if(this.props.requirements.AddressCityVisible == \"1\"){\r\n type = '(regions)'\r\n autocomplete = 'city'\r\n }else if(this.props.requirements.AddressStateVisible == \"1\"){\r\n type = '(regions)'\r\n autocomplete = 'state'\r\n } else {\r\n type = '(regions)'\r\n autocomplete = 'postal-code'\r\n }\r\n \r\n\r\n const options = {\r\n types: type,\r\n };\r\n \r\n // Initialize Google Autocomplete\r\n /*global google*/ // To disable any eslint 'google not defined' errors\r\n this.autocomplete = new google.maps.places.Autocomplete(\r\n document.getElementById(autocomplete),\r\n options,\r\n );\r\n \r\n // Avoid paying for data that you don't need by restricting the set of\r\n // place fields that are returned to just the address components and formatted\r\n // address.\r\n this.autocomplete.setFields(['address_components', 'formatted_address']);\r\n \r\n //set country codes\r\n this.autocomplete.setComponentRestrictions({\r\n country: this.props.countryList.length ? this.props.countryList.split(',') : [\"us\", \"pr\", \"vi\", \"gu\", \"mp\"],\r\n });\r\n \r\n // Fire Event when a suggested name is selected\r\n this.autocomplete.addListener('place_changed', this.handlePlaceSelect);\r\n }\r\n \r\n handlePlaceSelect = () => {\r\n \r\n // Extract City From Address Object\r\n const addressObject = this.autocomplete.getPlace();\r\n const address = addressObject.address_components;\r\n\r\n // Reset the state on new place select.\r\n\r\n this.setState({\r\n address1: '',\r\n address2: '',\r\n city: '',\r\n state: '',\r\n zip: ''\r\n })\r\n\r\n // Some addresses do not have a city attached to them- but instead a township, county, parish, etc. In these instances, we first check\r\n // if the given address does have a city- if it does not, we insert the 'administrative_area_level_3' into the city field- \r\n // these values such as 'Wayne Township', 'Bruce Township', 'Kitsap County', etc essentially function as the city in these addresses. \r\n let addressHasCity = false;\r\n\r\n // Check if address is valid\r\n let streetnumber, route; \r\n if (address) {\r\n //cycle through the returned adddress components and set those needed\r\n address.forEach(address => {\r\n switch(address.types[0]){\r\n case 'locality':\r\n this.setState({\r\n city: address.long_name\r\n })\r\n addressHasCity = true;\r\n break;\r\n case 'administrative_area_level_1':\r\n this.setState({\r\n state:address.short_name\r\n })\r\n break;\r\n case 'administrative_area_level_3':\r\n if (!addressHasCity) {\r\n this.setState({\r\n city: address.long_name\r\n })\r\n }\r\n break;\r\n case 'street_number':\r\n streetnumber = address.long_name\r\n break;\r\n case 'route':\r\n route = address.short_name\r\n break;\r\n case 'postal_code':\r\n this.setState({\r\n zip: address.long_name\r\n })\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n if(streetnumber && route && streetnumber.length && route.length){\r\n this.setState({\r\n address1: streetnumber + ' ' + route\r\n })\r\n }\r\n\r\n this.setState({disabledForTyping: true})\r\n\r\n // Set State\r\n /*this.setState(\r\n {\r\n address: address,\r\n query: addressObject.formatted_address,\r\n address1:address[0].long_name + \" \" + address[1].long_name,\r\n city: address[3].long_name,\r\n state: address[5].short_name,\r\n zip: address[7].long_name\r\n }\r\n ); */\r\n }\r\n }\r\n\r\n handleAddressLine1Change(event) {\r\n if(!event.target.value.match(/[!@$%^&*(),?\":{}|<>]/g)){\r\n this.setState({ address1: event.target.value, address1Error: false})\r\n //this.checkSubmit(true)\r\n }\r\n else if(!event.target.value.length){\r\n this.setState({ address1: \"\", address1Error: false})\r\n }\r\n else{\r\n this.setState({ address1Error: true})\r\n //this.checkSubmit(true)\r\n }\r\n\r\n }\r\n handleAddressLine2Change(event) {\r\n if(!event.target.value.match(/[!@$%^&*(),?\":{}|<>]/g)){\r\n this.setState({ address2: event.target.value, address2Error: false})\r\n }\r\n else if(!event.target.value.length){\r\n this.setState({ address2: \"\", address2Error: false})\r\n }\r\n else{\r\n this.setState({address2Error: true})\r\n }\r\n }\r\n handleCityChange(event) {\r\n if(!event.target.value.length || !event.target.value.match(/[0-9!@$%^&*(),?\":{}|<>]/g)){\r\n this.setState({ city: event.target.value, cityError: false})\r\n }\r\n else if(!event.target.value.length){\r\n this.setState({ city: \"\", cityError: false})\r\n }\r\n else{\r\n this.setState({cityError: true})\r\n }\r\n }\r\n handleStateChange(event) {\r\n if(!event.target.value.match(/[0-9!@$%^&*(),?\":{}|<>]/g)){\r\n this.setState({ state: event.target.value, stateError: false})\r\n } \r\n else if(!event.target.value.length){\r\n this.setState({ state: \"\", stateError: false})\r\n }\r\n else{\r\n this.setState({stateError: true})\r\n }\r\n }\r\n handleZipChange(event) {\r\n if(event.target.value){\r\n this.setState({ zip: event.target.value, zipError: false})\r\n }\r\n else if(!event.target.value.length){\r\n this.setState({ zip: \"\", zipError: false})\r\n }\r\n else{\r\n this.setState({zipError: true})\r\n }\r\n \r\n }\r\n\r\n validateZip(){\r\n if(this.state.zip.length && !this.state.zip.match(/^\\d{5}(?:[-\\s]\\d{4})?$/g)){\r\n this.setState({\r\n zipError: true\r\n })\r\n }\r\n }\r\n\r\n //checkSubmit(hasErrors){\r\n // //if the last update has errors\r\n // //and can currently submit\r\n // if(hasErrors && !this.state.canSubmit){\r\n // this.setState({\r\n // canSubmit: false\r\n // })\r\n // }\r\n // //if all required fields are valid\r\n // //currently all fields except address2 are required\r\n // if(){\r\n//\r\n // }\r\n//\r\n //}\r\n\r\n handleSubmit() {\r\n let hasErrors = false;\r\n\r\n if(this.state.address1Error || this.state.cityError || this.state.stateError || this.state.zipError){\r\n hasErrors = true\r\n }\r\n\r\n if((!this.state.address1.length || this.state.address1 =='~~') && this.props.requirements.AddressStreetRequired == \"1\"){\r\n hasErrors = true\r\n \r\n this.setState({\r\n address1Error:true\r\n })\r\n }\r\n\r\n if((!this.state.city.length || this.state.city =='~~') && this.props.requirements.AddressCityRequired == \"1\"){\r\n hasErrors = true\r\n \r\n if(!this.state.city.length){\r\n this.setState({city: \"~~\"})\r\n }\r\n this.setState({\r\n cityError:true\r\n })\r\n }\r\n\r\n if((!this.state.state.length || this.state.state =='~~') && this.props.requirements.AddressStateRequired == \"1\"){\r\n hasErrors = true\r\n this.setState({\r\n stateError:true\r\n })\r\n }\r\n\r\n if((!this.state.zip.length || this.state.zip =='~~') && this.props.requirements.ZipRequired == \"1\"){\r\n hasErrors = true\r\n this.setState({\r\n zipError:true\r\n })\r\n }\r\n\r\n if(!hasErrors){\r\n this.setState({\r\n isLoading:true\r\n })\r\n\r\n let address = this.state.address1.length ? encodeURIComponent(this.state.address1) : \"~~\"\r\n let address2 = this.state.address2.length ? encodeURIComponent(this.state.address2) : \"~~\"\r\n let city = this.state.city.length ? encodeURIComponent(this.state.city) : \"~~\"\r\n let state = this.state.state.length ? encodeURIComponent(this.state.state) : \"~~\"\r\n let zip = this.state.zip.length ? encodeURIComponent(this.state.zip) : \"~~\"\r\n\r\n fetch('../../WsWebServicePlatform/Participant/Address/Create/' +\r\n this.props.authtoken + '/' +\r\n this.props.participantguid + '/' +\r\n '90899741-5728-4F9C-A489-691131304962/1/' +\r\n address + '/' + \r\n address2 + '/' +\r\n '~~' + '/' +\r\n city + '/' +\r\n state + '/' +\r\n zip + '/' +\r\n 'USA/',\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {\r\n \r\n }\r\n })\r\n .then(results=>results.json())\r\n .then(results=>{\r\n console.log(\"show results\")\r\n this.props.showresults();\r\n \r\n })\r\n .catch((error) => {\r\n console.log(\"Failed to save address\")\r\n this.props.showresults();\r\n })\r\n }\r\n }\r\n\r\n onKeyDown(e) {\r\n //if an address has been selected, prevent typing\r\n if(this.state.disabledForTyping){\r\n console.log(\"prevented\", e)\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n render() {\r\n // Set the language ISO key in the URL. This allows Google's API to return values in the appropriate language.\r\n var languageISO2 = this.props.languageISO2\r\n var url = \"https://maps.googleapis.com/maps/api/js?key=AIzaSyBt491P6Oq_NBxC0mexUlLxuh5dEpryDA4&libraries=places&language=\"+languageISO2;\r\n\r\n let icon = null;\r\n if(this.state.isLoading){\r\n icon = \r\n } else {\r\n icon = \r\n }\r\n\r\n var address1, address2, city, state, zip\r\n if(this.props.requirements.AddressStreetVisible == \"1\"){\r\n address1 = \r\n }\r\n if(this.props.requirements.AddressStreetVisible == \"1\"){\r\n address2 = \r\n }\r\n if(this.props.requirements.AddressCityVisible == \"1\"){\r\n city = \r\n } \r\n if(this.props.requirements.AddressStateVisible == \"1\"){\r\n state = \r\n } \r\n if(this.props.requirements.ZipVisible == \"1\"){\r\n zip = \r\n } \r\n \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {address1}\r\n {address2}\r\n {city}\r\n {state}\r\n {zip}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n// Import React Scrit Libraray to load Google object\r\n\r\nclass Search extends Component {\r\n // Define Constructor\r\n constructor(props) {\r\n super(props);\r\n\r\n // Declare State\r\n this.state = {\r\n city: '',\r\n query: ''\r\n };\r\n\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AddressInfo;","import React, { Component } from 'react';\r\n\r\n\r\nclass Header extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n }\r\n render() {\r\n var valuegrade, text;\r\n if (this.props.gradeLabel){\r\n text = this.props.gradeLabel;\r\n } else {\r\n if(this.props.valuegrade == \"1\"){\r\n text = \"LOW\"\r\n }\r\n if(this.props.valuegrade == \"2\"){\r\n text = \"MODERATE\"\r\n }\r\n if(this.props.valuegrade == \"3\"){\r\n text = \"HIGH\"\r\n }\r\n }\r\n \r\n\r\n var risktext \r\n if(this.props.content.length){\r\n risktext = this.props.content;\r\n } else {\r\n risktext = 'Your risk is '\r\n }\r\n return(\r\n
    \r\n

    {risktext}

    \r\n

    {text}

    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default Header\r\n\r\n","import React, { Component } from 'react'\r\nimport Grid from '@material-ui/Core/Grid'\r\nimport Button from '@material-ui/Core/Button'\r\nimport {CardActions} from '@material-ui/core'\r\nimport Divider from '@material-ui/Core/Divider';\r\nimport {InteractionHandler} from '../InteractionHandler';\r\n\r\n\r\nclass ButtonGroup extends Component {\r\n constructor(props){\r\n super(props)\r\n this.onClick = this.onClick.bind(this)\r\n }\r\n\r\n onClick(e){\r\n console.log(e)\r\n if(e.InteractionElement && e.InteractionElement.Record == \"1\"){\r\n let props={\r\n \"groupguid\": this.props.groupguid,\r\n \"authtoken\": this.props.authtoken,\r\n \"InteractionElement\": e.InteractionElement\r\n }\r\n InteractionHandler(props)\r\n return true\r\n }\r\n }\r\n\r\n render() {\r\n var buttonArray = Object.keys(this.props.buttons).map((keyname, i) => (\r\n \r\n {this.props.buttons[keyname].Visible == \"1\" ? \r\n \r\n : null }\r\n \r\n ))\r\n var divider = this.props.showDivider ? : \r\n return(\r\n
    \r\n {divider}\r\n \r\n {buttonArray}\r\n\r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default ButtonGroup","import React, { Component } from 'react';\r\n\r\n\r\nclass Subheader extends Component {\r\n\r\n constructor(props){\r\n super(props)\r\n }\r\n render() {\r\n var risktext\r\n if(this.props.content.length){\r\n risktext = this.props.content;\r\n }\r\n return(\r\n
    \r\n

    {risktext}

    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default Subheader","import React, { Component } from 'react';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Button from '@material-ui/core/Button';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener'\r\nimport Zoom from '@material-ui/core/Zoom'\r\nimport {Checkbox, FormControlLabel} from '@material-ui/core'\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\n\r\nimport Header from './results/header'\r\nimport ButtonGroup from './results/buttongroup'\r\nimport Subheader from './results/subheader'\r\n\r\n\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n \r\n },\r\n header: {\r\n textAlign: 'center',\r\n marginBottom: '0px'\r\n },\r\n card: {\r\n padding: '0 1vw 1em 1vw',\r\n marginTop: '5em',\r\n textAlign: 'center'\r\n },\r\n center: {\r\n textAlign: 'center',\r\n justifyContent: 'center'\r\n },\r\n errorIcon: {\r\n color: 'red',\r\n fontSize: '150px',\r\n marginTop: '10px',\r\n marginBottom: '-20px'\r\n }\r\n});\r\n\r\nclass Error extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n showTsCs:false,\r\n acceptsTCs:false,\r\n\r\n segmentLabels:[],\r\n segmentBreakpoints:[]\r\n }\r\n console.log(props)\r\n }\r\n\r\n render(){\r\n const {classes} = this.props\r\n let resultItems = []\r\n let component, x;\r\n x=0;\r\n while(x)\r\n }\r\n if(component.ComponentType == \"SUBHEADER\"){\r\n resultItems.push()\r\n }\r\n break;\r\n case \"CONTROLS\":\r\n if (component.ComponentType == \"BUTTON GROUP\"){\r\n resultItems.push()\r\n }\r\n break;\r\n }\r\n //console.log(resultItems)\r\n //resultItems.push(resultItem);\r\n x++;\r\n }\r\n\r\n return(\r\n \r\n \r\n \r\n {resultItems}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Error);","import React, { Component } from 'react';\r\n\r\nimport Landing from './landing';\r\nimport QuizResults from './QuizResults';\r\nimport Quiz from './Quiz';\r\nimport PersonalInfo from './PersonalInfo';\r\nimport AddressInfo from './AddressInfo';\r\nimport Error from './Error';\r\nimport PDF from './PDF'\r\n\r\nimport Card from '@material-ui/core/Card';\r\nimport { Container } from '@material-ui/core';\r\nimport { log } from 'util';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Slide from '@material-ui/core/Slide'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport { Progress } from 'react-sweet-progress';\r\nimport IdleTimer from 'react-idle-timer'\r\n\r\nimport { createMuiTheme } from '@material-ui/core/styles'\r\nimport { ThemeProvider } from '@material-ui/styles';\r\nimport \"react-sweet-progress/lib/style.css\";\r\n\r\n\r\n// This holds the page content for the assessments\r\n// In the future, this could be what we embed in other websites\r\n\r\n\r\n\r\n\r\nconst org_guid = new URLSearchParams(window.location.search).get('org')\r\nconst assmnt_guid = new URLSearchParams(window.location.search).get('assmt')\r\n\r\nlet theme = null\r\n\r\nclass QuizContainer extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n TCAccepted: false,\r\n ShowQuiz: false,\r\n ShowPersonalInfo: false,\r\n ShowAddress: false,\r\n Questions: [],\r\n Username: '',\r\n AuthToken: '',\r\n ParticipantGuid: '',\r\n ResponseGuid: '',\r\n RequirePersonInfo: true,\r\n RequireAddress: true,\r\n ResultsViewInstance: '',\r\n ShowResults: false,\r\n TCsDirection:'left',\r\n QuizsDirection:'left',\r\n PersonalDirection:'left',\r\n AddressDirection:'left',\r\n StartFromBeginning: true, \r\n ResultsLoaded: false,\r\n QuestionsAnswered: 0,\r\n QuestionTotal: 1,\r\n UnitOfMeasure:'IMPERIAL',\r\n LoadingError: false,\r\n ErrorViewInstance: [],\r\n isTimedOut: false,\r\n timeout:1000*5*60,\r\n skipAddress: false,\r\n userEmail: \"\",\r\n CurrentIndex: 0\r\n }\r\n theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: this.props.clientColor\r\n },\r\n secondary: {\r\n main: this.props.clientColorSecondary\r\n }\r\n }\r\n })\r\n\r\n this.timer = null;\r\n this.handleOnAction = this.handleOnAction.bind(this)\r\n this.handleOnActive = this.handleOnActive.bind(this)\r\n this.handleOnIdle = this.handleOnIdle.bind(this)\r\n \r\n }\r\n\r\n componentDidMount(){\r\n this.setState({\r\n timeout: this.props.timeout\r\n })\r\n //this.setClientColor(this.props.clientColor)\r\n }\r\n // ********************\r\n //These are the timeout functions: \r\n\r\n redirectToLanding(){\r\n this.setState({\r\n TCAccepted: false,\r\n ShowQuiz: false,\r\n ShowPersonalInfo: false,\r\n ShowAddress: false,\r\n ShowResults: false,\r\n QuestionsAnswered: 0,\r\n userEmail: \"\",\r\n CurrentIndex: 0\r\n })\r\n }\r\n\r\n handleOnAction(e) {\r\n this.setState({\r\n isTimedOut: false\r\n })\r\n }\r\n\r\n handleOnActive(e) {\r\n this.setState({\r\n isTimedOut: false\r\n })\r\n }\r\n\r\n handleOnIdle(e) {\r\n const isTimedOut = this.state.isTimedOut\r\n if(isTimedOut){\r\n this.redirectToLanding()\r\n } else {\r\n this.idleTimer.reset();\r\n this.setState({\r\n isTimedOut: true\r\n })\r\n }\r\n \r\n }\r\n\r\n //************************* */\r\n\r\n acceptTCs() {\r\n console.log(\"acceptTCs\")\r\n //do the anon login, start assessment, get questions, then set TCAccepted to true? I guess? \r\n \r\n fetch('../../WsWebServicePlatform/LoginAnonymous',\r\n {method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json', \r\n }\r\n ,\r\n body: JSON.stringify({\r\n \"ParamData\":{\r\n \"GroupGuid\":org_guid\r\n }\r\n })})\r\n .then(response=>response.json())\r\n .then(response=>{\r\n \r\n if(response.Success){\r\n //startAssessment\r\n let vars = response.Info[0]\r\n fetch('../../WsWebServicePlatform/Participant/Setting/Set/' + vars.AuthToken + '/' + vars.ParticipantGuid + '/ASSMT%20PRODUCT%20GUID/' + assmnt_guid + '/',{\r\n method:'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {}\r\n }\r\n )\r\n .then(response=>response.json())\r\n .then(response=>{\r\n console.log(\"Post setting set: \", response)\r\n if(true){\r\n fetch('../../WsWebServiceHra/StartAssessment/' + vars.AuthToken + '/' + assmnt_guid + '/',\r\n {\r\n method:'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: {\r\n\r\n }\r\n })\r\n .then(response=>response.json())\r\n .then(response=>{\r\n if(response.Success){\r\n this.setState({\r\n Username: vars.UserName,\r\n AuthToken: vars.AuthToken,\r\n ParticipantGuid: vars.ParticipantGuid,\r\n ResponseGuid: response.Info[0].AssmtGuid\r\n }, () => {\r\n\r\n fetch('../../WsWebServiceWellSuite/GetViewInstance/' + this.state.AuthToken + '/8C292A8F-C14E-470B-A164-015F1CB2E2DD/',\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Accept': 'application/json'\r\n }\r\n })\r\n .then(response=>response.json())\r\n .then(response=>{\r\n this.setState({\r\n Questions: response.Info[0].ViewInstanceData[0].SurveyPage,\r\n StartFromBeginning: true,\r\n UnitOfMeasure: response.Info[0].ViewInstanceData[1].SessionVariableValues[\"UNIT OF MEASURE\"]\r\n }, () =>{\r\n this.setState({\r\n TCAccepted: true,\r\n \r\n TCsDirection: 'right'\r\n\r\n }, ()=>{\r\n this.checkForAddress()\r\n setTimeout(() => {\r\n this.setState({\r\n //ShowResults: true\r\n ShowQuiz: true\r\n //ShowPersonalInfo: true\r\n //ShowAddress: true\r\n })\r\n }, 300)\r\n })\r\n })\r\n })\r\n })\r\n }\r\n })\r\n }\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n })\r\n \r\n \r\n //this.updateValues(vars)\r\n \r\n }\r\n else {\r\n this.setState({\r\n LoadingError: true\r\n })\r\n if(response.Status[0].ViewInstanceData){\r\n this.setState({ErrorViewInstance: response.Status[0].ViewInstanceData[0].ErrorViewInstance})\r\n } else {\r\n var errorJSON = [{\r\n \"ComponentClass\": \"TEXTAREA\",\r\n \"ComponentFamily\": \"VARIANT\",\r\n \"ComponentType\": \"HEADER\",\r\n \"ComponentContent\": {\r\n \"Title\": \"Error\",\r\n \"GradeLabel\": \"\"\r\n }\r\n },\r\n {\r\n \"ComponentClass\": \"TEXTAREA\",\r\n \"ComponentFamily\": \"VARIANT\",\r\n \"ComponentType\": \"SUBHEADER\",\r\n \"ComponentContent\": {\r\n \"Content\": response.Status[0].ErrorMessage,\r\n \"ContentType\": \"\"\r\n }\r\n }]\r\n this.setState({\r\n ErrorViewInstance: errorJSON\r\n })\r\n }\r\n }\r\n console.log(\"response: \", response)\r\n })\r\n \r\n //this.setState(() => {\r\n // console.log(this.state)\r\n // return { TCAccepted:true }\r\n //})\r\n }\r\n\r\n setClientColor(clientColor){\r\n theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: clientColor\r\n }\r\n }\r\n })}\r\n\r\n updateValues(vars){\r\n this.setState({\r\n Username: vars.UserName,\r\n AuthToken: vars.AuthToken,\r\n ParticipantGuid: vars.ParticipantGuid\r\n })\r\n }\r\n\r\n startAssessment(assmtProps){\r\n console.log(\"assmtProps\", assmtProps)\r\n }\r\n\r\n backToQuiz = () => {\r\n this.setState({\r\n ShowPersonalInfo: false,\r\n StartFromBeginning: false\r\n }, ()=>{\r\n setTimeout(() => {\r\n this.setState({\r\n //ShowQuiz: true\r\n ShowQuiz: true\r\n //ShowPersonalInfo: true\r\n //ShowAddress: true\r\n })\r\n }, 300)\r\n })\r\n }\r\n\r\n showPersonalInfoCard = () => {\r\n this.setState({\r\n QuizsDirection: 'right',\r\n ShowAddress: false,\r\n ShowQuiz: false\r\n })\r\n setTimeout(() => {\r\n this.setState({\r\n ShowPersonalInfo: true\r\n })\r\n }, 300)\r\n }\r\n \r\n showAddressInfoCard = () => {\r\n this.setState({\r\n PersonalDirection: 'right',\r\n ShowPersonalInfo: false,\r\n ShowQuiz: false\r\n })\r\n setTimeout(() => {\r\n this.setState({\r\n ShowAddress: true\r\n })\r\n }, 300)\r\n }\r\n\r\n showResultsCard = () => {\r\n if(!this.state.ResultsLoaded){\r\n setTimeout(() => {\r\n this.showResultsCard()\r\n }, 200)\r\n } else {\r\n if(this.state.skipAddress){\r\n this.setState({\r\n PersonalDirection: 'right',\r\n ShowPersonalInfo: false,\r\n ShowQuiz: false,\r\n ShowAddress: false\r\n })\r\n }\r\n else {\r\n this.setState({\r\n AddressDirection: 'right',\r\n ShowPersonalInfo: false,\r\n ShowQuiz: false,\r\n ShowAddress: false\r\n })\r\n }\r\n setTimeout(() => {\r\n this.setState({\r\n ShowResults: true\r\n })\r\n }, 300)\r\n }\r\n \r\n }\r\n\r\n getResultsViewInstance = () => {\r\n fetch('../../WsWebServiceWellSuite/GetViewInstance/' + this.state.AuthToken + '/2c29a5b8-fe78-446c-8979-a87733232d66/', \r\n {\r\n method:'GET',\r\n headers:{\r\n 'Accept': 'application/json'\r\n }\r\n })\r\n .then(response=>response.json())\r\n .then(response=>{\r\n console.log(response)\r\n if(response.Success){\r\n this.setState({\r\n ResultsLoaded: true,\r\n ResultsViewInstance: response.Info[0].ViewInstanceData[0].ReportViewInstance.ReportPage[0].ReportFrame\r\n })\r\n }\r\n })\r\n .then(response=>{\r\n console.log(\"State is set\")\r\n console.log(this.state)\r\n })\r\n }\r\n\r\n setCurrentIndex = (index) => {\r\n this.setState({\r\n CurrentIndex: index\r\n })\r\n }\r\n\r\n updateQuestionsAnswered = (num, currentIndex) => {\r\n this.setState({\r\n QuestionsAnswered: num\r\n })\r\n }\r\n\r\n updateQuestionTotal = (num) => {\r\n this.setState({\r\n QuestionTotal: num\r\n })\r\n }\r\n\r\n checkForAddress() {\r\n var values = this.props.NameFrame;\r\n if(values.AddressCityVisible == \"0\" && values.AddressStateVisible == \"0\" && values.AddressStreetVisible == \"0\" && values.ZipVisible == \"0\"){\r\n this.setState({\r\n skipAddress: true\r\n })\r\n }\r\n }\r\n\r\n updateUserEmail(email) {\r\n this.setState({\r\n userEmail: email\r\n })\r\n }\r\n\r\n\r\n render(){\r\n let progressBar \r\n let status='active'\r\n\r\n if(!this.state.TCAccepted || this.state.ShowResults){\r\n progressBar = \r\n } else {\r\n if(this.state.QuestionsAnswered == this.state.QuestionTotal){\r\n status = 'success'\r\n \r\n } else {\r\n status = 'active'\r\n\r\n }\r\n progressBar = \r\n \r\n \r\n }\r\n if(!this.state.LoadingError){\r\n return(\r\n \r\n { this.idleTimer = ref }}\r\n element={document}\r\n onActive={this.handleOnActive}\r\n onIdle={this.handleOnIdle}\r\n onAction={this.handleOnAction}\r\n debounce={250}\r\n timeout={this.props.timeout} /> \r\n \r\n

    \r\n {progressBar}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n } else {\r\n return \r\n }\r\n \r\n }\r\n \r\n}\r\n//\r\n// \r\n \r\n//\r\n// {content}\r\n// \r\nexport default QuizContainer;","import React, { Component } from 'react';\r\nimport ClientHeader from './clientheader';\r\nimport QuizContainer from './QuizContainer'\r\nimport Container from '@material-ui/core/Container';\r\nimport { Box } from '@material-ui/core';\r\nimport Error from './Error';\r\n\r\n//import theme from './theme.js'\r\n//these will need to go elsewhere when we build out a menu and\r\n//allow users to take multiple assessments within our site\r\n//At least the assmnt_guid will, as the assessment will change. \r\n//But Perhaps at this layer it is a constant, and App.js will need to be\r\n//moved to a new component (which it should anyway, honestly)\r\nconst org_guid = new URLSearchParams(window.location.search).get('org')\r\nconst assmnt_guid = new URLSearchParams(window.location.search).get('assmt')\r\n\r\nwindow.onbeforeunload = (e) => {\r\n console.log(\"warning!\")\r\n e.preventDefault()\r\n e.returnValue = \"Are you sure you want to lose your progress?\"\r\n}\r\n\r\nwindow.addEventListener(\"pageshow\", function(){\r\n return \"null\"\r\n})\r\n\r\nclass Assessment extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n isLoaded: false,\r\n viewInstance: [],\r\n clientColor: '#158f98',\r\n clientColorSecondary: '#158f98',\r\n languageISO2:'',\r\n backgroundColor: 'rgba(19,142,152,0.3)',\r\n loadingError: false,\r\n timeout: 1000 * 5 * 60,\r\n countryList: ''\r\n }\r\n }\r\n \r\n//orgguid=896e7ab9-a3f3-43e0-88a3-6d6db08fa824\r\n//assmntguid=C3725D0B-ED29-4B9A-B943-EF9299C1B0FF\r\n\r\n\r\n\r\n componentDidMount() {\r\n \r\n if(org_guid && assmnt_guid){\r\n fetch('../../WsWebServiceWellSuite/GetViewInstancePublic/' + org_guid + '/-1/' + assmnt_guid + '/', \r\n {\r\n headers:{'Accept': 'application/json', 'Access-Control-Allow-Origin': '*'}\r\n })\r\n .then(response => response.json())\r\n .then(response => {\r\n if(response.Success){\r\n var color = response.Info[0].ViewInstanceData[1].OrganizationSettingValues[0].List['THEME COLOR'].replace('#', '')\r\n var secondaryColor = response.Info[0].ViewInstanceData[1].OrganizationSettingValues[0].List['THEME COLOR SECONDARY'].length ? \r\n response.Info[0].ViewInstanceData[1].OrganizationSettingValues[0].List['THEME COLOR SECONDARY'].replace('#', '') :\r\n response.Info[0].ViewInstanceData[1].OrganizationSettingValues[0].List['THEME COLOR'].replace('#', '')\r\n var countryList = response.Info[0].ViewInstanceData[1].OrganizationSettingValues[0].List['COUNTRY AUTOCOMPLETE LIST']\r\n\r\n\r\n // Language ISO2 is needed to send the correct URL to Google's Place API. First check the session variable. If it's empty, fallback to the organization setting.\r\n var languageISO2 = '';\r\n languageISO2 = response.Info[0].ViewInstanceData[1].SessionVariableValues[0].List['LANGUAGEISO2'];\r\n if (languageISO2 == ''){\r\n var languageISO2 = response.Info[0].ViewInstanceData[1].OrganizationSettingValues[0].List['LANGUAGEISO2'];\r\n } \r\n\r\n //easiest way to set global variables are setting windows variables\r\n window.$primaryColor = '#' + color;\r\n window.$secondaryColor = '#' + secondaryColor;\r\n //since we removed Name for a reason, and now it's back, commenting this out\r\n //Wellactivate should always be the tab name... I think \r\n //document.title = response.Info[0].ViewInstanceData[0].LandingPage.HeaderFrame.Name.length ? response.Info[0].ViewInstanceData[0].LandingPage.HeaderFrame.Name : \"WellActivate\"\r\n \r\n this.setState({viewInstance: response.Info[0].ViewInstanceData[0].LandingPage,\r\n clientColor: color,\r\n clientColorSecondary: '#' + secondaryColor,\r\n languageISO2:languageISO2,\r\n timeout: response.Info[0].ViewInstanceData[1].OrganizationSettingValues[0].List['SESSION TIMEOUT SECONDS'] * 1000,\r\n countryList: countryList})\r\n } else {\r\n \r\n if(response.Status[0].ViewInstanceData){\r\n var color = response.Status[0].ViewInstanceData[1].OrganizationSettingValues[0].List['THEME COLOR'].replace('#', '')\r\n var secondaryColor = response.Status[0].ViewInstanceData[1].OrganizationSettingValues[0].List['THEME COLOR SECONDARY'] ? response.Status[0].ViewInstanceData[1].OrganizationSettingValues[0].List['THEME COLOR SECONDARY'].replace('#', '') : color\r\n window.$primaryColor = color;\r\n window.$secondaryColor = secondaryColor\r\n this.setState({viewInstance: response.Status[0].ViewInstanceData[0].ErrorViewInstance,\r\n clientColor: color,\r\n loadingError: true})\r\n \r\n } else {\r\n var errorJSON = {\"Error\" : [{\r\n \"ComponentClass\": \"TEXTAREA\",\r\n \"ComponentFamily\": \"VARIANT\",\r\n \"ComponentType\": \"HEADER\",\r\n \"ComponentContent\": {\r\n \"Title\": \"Error\",\r\n \"GradeLabel\": \"\"\r\n }\r\n },\r\n {\r\n \"ComponentClass\": \"TEXTAREA\",\r\n \"ComponentFamily\": \"VARIANT\",\r\n \"ComponentType\": \"SUBHEADER\",\r\n \"ComponentContent\": {\r\n \"Content\": response.Status[0].ErrorMessage,\r\n \"ContentType\": \"\"\r\n }\r\n }]}\r\n this.setState({\r\n viewInstance: errorJSON,\r\n clientColor: \"158F98\",\r\n loadingError: true\r\n })\r\n }\r\n \r\n }\r\n \r\n })\r\n .then(response => {\r\n this.getClientColor()\r\n })\r\n .then(()=>{\r\n this.setState({isLoaded: true})\r\n })\r\n .catch(console.log)\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n \r\n }\r\n\r\n getClientColor(){\r\n //if default just skip\r\n if(this.state.clientColor != '#158f98'){\r\n let hex = this.state.clientColor.replace('#', '')\r\n let r = parseInt(hex.substring(0,2), 16);\r\n let g = parseInt(hex.substring(2,4), 16);\r\n let b = parseInt(hex.substring(4,6), 16);\r\n\r\n //we use rgba for IE and Edge compatibility\r\n let result = 'rgba(' + r + ',' + g + ',' + b + ',0.3)'\r\n\r\n this.setState({\r\n backgroundColor: result,\r\n clientColor: \"#\" + hex\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n var header\r\n if(this.state.viewInstance.ClientLogo){\r\n header = \r\n \r\n }\r\n if(this.state.isLoaded && !this.state.loadingError){\r\n return (\r\n
    \r\n \r\n {header}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )\r\n } if(this.state.isLoaded && this.state.loadingError){\r\n return (\r\n
    \r\n \r\n {header}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )\r\n } else {\r\n return
    Loading
    \r\n }\r\n }\r\n}\r\nexport default Assessment;\r\n","import 'react-app-polyfill/ie9';\r\nimport 'react-app-polyfill/stable';\r\n\r\nimport React, { Component } from 'react';\r\nimport Assessment from './components/Assessment';\r\n\r\nimport './components/result.css'\r\n\r\nclass App extends Component {\r\n constructor(props){\r\n super(props);\r\n \r\n }\r\n\r\n render() {\r\n return \r\n }\r\n}\r\nexport default App;\r\n ","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'react-app-polyfill/ie9';\nimport 'react-app-polyfill/stable';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport 'typeface-roboto';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}