{"version":3,"sources":["QuestionnaireContext.tsx","components/core/Header.tsx","common/formComponents/FTextField.tsx","components/muiCore/TextField.tsx","components/Icons/DoHIcons.tsx","data/api.ts","state/State.model.ts","state/Reducer.tsx","state/Store.tsx","components/core/forms/ValidatedForm.tsx","auth/useAuth.tsx","views/Registration.tsx","components/core/QuestionSlider/QuestionItemHeader.tsx","components/core/QuestionSlider/QuestionItemSubQuestion.tsx","components/core/QuestionSlider/QuestionItemRadioButton.tsx","components/core/QuestionSlider/QuestionItemCheckbox.tsx","components/core/QuestionSlider/QuestionItemTextField.tsx","components/core/QuestionSlider/RadioButtonWithAdditionalInfoTextField.tsx","components/core/QuestionSlider/QuestionItemYesNoButtons.tsx","components/core/forms/Dependants.tsx","components/core/QuestionSlider/QuestionItemNextSkipButton.tsx","common/client.ts","common/apiclients.ts","common/debounce.ts","components/core/Address/AddressComplete.tsx","components/core/forms/ValidatedFormWithDateFormatting.tsx","components/core/Buttons/CommonBTN.tsx","components/core/Questionnaire/Search.tsx","components/core/QuestionSlider/RenderNestedQuestion.tsx","components/core/QuestionSlider/QuestionItem.tsx","components/core/QuestionSlider/QuestionItemSlider.tsx","components/muiCore/Dialog.tsx","components/muiCore/Typograpy.tsx","components/muiCore/ListItem.tsx","components/core/dialogs/AuthorisationDeclaration.tsx","common/dates.ts","components/core/Questionnaire/index.ts","components/core/QuestionSlider/QuestionItemStepper.tsx","components/core/QuestionSlider/Questionnaire.tsx","views/Questionnaire.tsx","components/core/Questionnaire/QuestionnaireAnswers.tsx","components/core/PDFGenerator/GeneratePDF.tsx","components/core/PDFGenerator/PDFDataConverter.tsx","views/Finalisation.tsx","data/listItems.tsx","components/muiCore/Avatar.tsx","modules/admin/views/Questionnaire/QuestionnaireList.tsx","modules/admin/views/QueueManagement/QueueList.tsx","modules/admin/Routes.tsx","common/formComponents/FCheckbox.tsx","modules/admin/views/QueueManagement/QueueEditor.tsx","components/muiCore/Paper.tsx","components/muiCore/InputBase.tsx","components/muiCore/DateRangePicker.tsx","components/muiCore/Container.tsx","components/muiCore/List.tsx","components/muiCore/Card.tsx","components/muiCore/Drawer.tsx","components/muiCore/Button.tsx","components/muiCore/TimeLine.tsx","modules/admin/views/QueueWorkItem/QueueWorkItemFiles.tsx","components/core/PDFGenerator/SaveQuestionnairePDF.tsx","modules/admin/views/QueueWorkItem/QueueWorkItemResponses.tsx","common/signalr.ts","modules/admin/views/QueueWorkItem/QueueWorkItemTabs.tsx","components/muiCore/ToggleButton.tsx","common/formComponents/FRadioList.tsx","common/formComponents/FCheckList.tsx","modules/admin/views/Queue/AssignToQueueDialog.tsx","components/core/Manager/SubComponents/CheckboxTree.tsx","components/core/forms/UserRegistration.tsx","modules/admin/views/Queue/QueueQuestionnaireDrawer.tsx","components/core/forms/PersonDetails.tsx","modules/utils/permissions.ts","modules/admin/views/Queue.tsx","modules/admin/views/SummaryView.tsx","modules/utils/signalr.ts","common/formComponents/FNumberField.tsx","modules/admin/views/Questionnaire/ChoiceEditor.tsx","common/formComponents/FIconSelector.tsx","modules/admin/views/Questionnaire/SubQuestionEditor.tsx","modules/admin/views/Questionnaire/QuestionEditor.tsx","modules/admin/views/Questionnaire/QuestionOptions.tsx","common/arrays.ts","modules/admin/views/Questionnaire/QuestionnaireEditor.tsx","components/core/Manager/SubComponents/FormWithValidation.tsx","components/core/Manager/SubComponents/ValidationTextField.tsx","components/core/Manager/SubComponents/ManagerForm.tsx","components/core/Manager/SubComponents/Drawer.tsx","components/core/Manager/SubComponents/Search.tsx","components/core/Manager/SubComponents/Card.tsx","components/core/Manager/SubComponents/DrawerSearch.tsx","components/core/Manager/SubComponents/ItemSearch.tsx","components/core/Manager/Icons/Icons.tsx","components/core/Manager/SubComponents/ManagerToolBar.tsx","components/core/Manager/SubComponents/ResultList.tsx","components/core/Manager/Manager.tsx","modules/admin/views/RoleManager/RoleManager.tsx","components/core/dialogs/InputDialog.tsx","modules/admin/views/OutcomeManagement/OutcomeAccess.tsx","modules/admin/views/Dashboard.tsx","views/Routes.tsx","components/core/Footer.tsx","App.tsx","reportWebVitals.ts","themes/DoHScreeningTheme.tsx","index.tsx"],"names":["QuestionnaireContext","createContext","questionnaireTitle","setQuestionnaireTitle","QuestionnaireProvider","_ref","children","_useState","useState","_useState2","_slicedToArray","_jsx","Provider","value","MenuDialog","useStyles","makeStyles","theme","_KOTOCLogo","_tasGovLogo","_tasGovLogoMenu","_span","_heading","_icon","_subSmallHeader","createStyles","root","_defineProperty","display","minWidth","borderBottom","concat","palette","primary","main","breakpoints","down","position","top","zIndex","focusVisible","outline","paper","backgroundColor","backgroundRepeat","backgroundSize","height","KOTOCLogo","width","tasGovLogo","tasGovLogoMenu","mgAuto","margin","img","heading","opacity","color","contrastText","WebkitFontSmoothing","fontWeight","marginTop","up","fontSize","paddingTop","paddingLeft","marginLeft","drawerMenuIcon","padding","list","fullList","version","appBar","title","spacing","flex","text","textAlign","paddingBottom","noBg","noHover","cursor","alignItemsLeft","alignItems","noBorder","border","noPadding","mt_15","mb_15","marginBottom","avatar","heading2","lineHeight","letterSpacing","icon","maxWidth","maxHeight","tasLogo","bgc","welcome","lh_05","uatHeader","justifyContent","subSmallHeader","fontStyle","Transition","React","forwardRef","props","ref","Slide","_objectSpread","direction","Header","classes","history","useHistory","_React$useState","left","bottom","right","_React$useState2","drawerState","setdrawerState","url","window","location","href","_React$useState3","_React$useState4","open","setOpen","_React$useState5","None","_React$useState6","activeDialog","_React$useState7","_React$useState8","UAT","setUAT","handleClose","useEffect","includes","context","useContext","undefined","Error","useQuestionnaireContext","_jsxs","className","Box","Grid","container","md","xs","item","ButtonBase","focusVisibleClassName","onClick","push","src","alt","Typography","style","whiteSpace","Drawer","anchor","onClose","event","type","key","toggleDrawer","Dialog","fullScreen","TransitionComponent","AppBar","Toolbar","IconButton","edge","CloseIcon","clsx","FTextField","createRenderer","_ref2","state","helperText","_objectWithoutProperties","_excluded","errorText","formProps","_excluded2","TextField","variant","error","Boolean","FDateField","_ref3","_ref4","_excluded3","_excluded4","_ref5","_ref6","_excluded5","_excluded6","InputLabelProps","shrink","inputProps","max","onChange","e","val","target","setValue","FSelectField","_ref7","_ref8","_excluded7","_excluded8","select","SelectProps","displayEmpty","StyledTextField","withStyles","_root","StyledFTextField","_root2","StyledCalenderTextField","transform","ValidationTextField","CalendarTextField","CircleQuestionSolid","SvgIcon","viewBox","d","UserNurseIcon","FeverIcon","LungsIcon","C19ContactIcon","RunnyNoseIcon","LossOfSmellIcon","TravelIcon","TravelContactIcon","HomeIsolationIcon","PenFancySolid","UserSolid","MaskSolid","PdfFileRegular","EditSolid","BASE_URL","postJson","route","data","token","fetch","method","body","JSON","stringify","headers","Authorization","then","res","response","parse","status","errors","console","log","Object","keys","forEach","o","catch","err","getJson","ok","redirected","json","getUserInfo","getJwtToken","firstName","lastName","contactNumber","kind","additionalData","searchAddresses","query","encodeURIComponent","getQueueMetrics","queueId","before","arguments","length","after","outcomes","SaveWorkItemNote","workItemId","note","global","UpdateQueueWorkItemStatus","getRoleMembers","roleId","removeRoleMember","personId","deleteJson","QueueWorkItem","UserPermissions","PersonKind","Reducer","action","_action$payload","_action$payload2","_action$payload4","_action$payload3","payload","rememberMe","localStorage","setItem","user","removeItem","initialState","userToken","getItem","personaType","loggedIn","roles","getSavedUserInfo","Context","dispatch","Store","_useReducer","useReducer","_useReducer2","form","ValidatedForm","Children","element","formChildren","map","child","cloneElement","onSubmit","preventDefault","authContext","flexDirection","Registration","region","URLSearchParams","useLocation","search","get","_useContext","setFirstName","_useState3","_useState4","setLastName","_useState5","_useState6","setContactNumber","_useState7","_useState8","dateOfBirth","setDateOfBirth","_useState9","_useState10","address","setAddress","_useState11","_useState12","longitude","_useState13","_useState14","latitude","_useState15","_useState16","gpPractice","setGPPractice","_useState17","_useState18","gpName","setGPName","addressOptions","setAddressOptions","_useState19","_useState20","_useState21","_useState22","loading","setLoading","_useState23","mobile","valid","errorMessage","_useState24","formErrors","setFormErrors","dobValidator","dob","Date","addressValidator","charAt","test","isFormValid","Public","_d$user","activePass","Container","component","Avatar","fullWidth","id","label","name","autoFocus","required","disabled","validation","Autocomplete","options","noOptionsText","freeSolo","renderInput","params","Button","CircularProgress","Divider","StyledTypography","_body","body1","paddingRight","StyledListItemText","ListItemText","StyledListItemIcon","alignContent","ListItemIcon","StyledListItemIconRepeater","QuestionHeaderBox","light","boxShadow","minHeight","typography","QuestionRepeaterHeaderBox","QuestionHeader","index","ArrowBackIosIcon","onBack","QuestionRepeaterHeader","row","readonly","_Fragment","Tooltip","PlaylistAddOutlinedIcon","onAddRow","DeleteSweepOutlinedIcon","onRemoveRow","SubQuestionListIcon","marginRight","SubQuestionNestedListIcon","secondary","SubQuestionIcon","RecordVoiceOverSharpIcon","QuestionItemSubQuestion","subQuestions","sub","i","ListItem","dangerouslySetInnerHTML","__html","QuestionItemNestedSubQuestion","QuestionSubQuestion","useTheme","overrides","MuiListItem","gutters","MuiListItemText","MuiTypography","ThemeProvider","DoH","fail","_box","box","btnActive","btnStartIcon","QuestionItemRadioButton","selectedRadioButton","setSelectedRadioButton","radioButtons","radioButton","selected","button","onSelected","RadioButtonCheckedOutlinedIcon","RadioButtonUncheckedOutlinedIcon","QuestionItemNestedRadioButton","control","selectedChoice","useControlValue","backdrop","drawer","QuestionItemCheckBox","choices","setSelectedCheckBox","checkBoxes","checkBox","visible","CheckBoxOutlinedIcon","CheckBoxOutlineBlankOutlinedIcon","QuestionItemTextField","TextFieldProps","textFieldErrors","setTextFieldErrors","textFieldValue","setTextFieldValue","checkValidation","isValid","multiline","focused","RadioButtonsWithAdditionalInfoTextField","textFieldRef","useRef","additionalInfoRequired","setAdditionalInfoRequired","additionalInformation","setAdditionalInformation","setRadioButtons","findIndex","rBtn","current","clearTextField","Collapse","in","onExited","ButtonGroup","validate","dark","w50","QuestionItemNestedYesNoButtons","buttons","QuestionItemYesNoButtons","selectedButton","setSelectedButton","startIcon","hideCheckbox","CheckBoxOutlineBlankIcon","_textField","btnCheckbox","textField","Dependant","txtFirstName","txtLastName","setIsAddingDependant","isAddingDependant","setTxtFirstName","setTxtLastName","submit","collapsedHeight","justify","QuestionItemNextSkipButton","skipQuestion","QuestionItemChoiceButton","AddressClient","baseUrl","http","_classCallCheck","jsonParseReviver","this","_createClass","q","_this","url_","replace","_response","processSearch","_this2","_headers","v","k","_responseText","throwException","Promise","resolve","_this3","processSearchFull","_this4","QuestionnaireClient","_this29","processGetQuestionnaires","_this30","_this31","processGetQuestions","_this32","responseID","_this33","processGetQuestionnaireByResponse","_this34","viewModel","_this35","options_","processCreateResponse","contentDisposition","fileNameMatch","exec","fileName","decodeURIComponent","blob","questionnaireId","_this36","processCreateNewResponse","_this37","queueWorkItemId","_this38","processCreateNewResponseForQueueWorkItem","_this39","dependantId","_this40","processAttachDependant","_this41","processDeleteDependant","questionId","vm","_this42","processAddQuestionChoice","_this43","processAddQuestionChoiceByAdmin","_this44","processFinaliseQuestionnaire","_this45","_this46","processFinaliseQuestionnaireByAdmin","_this47","responseId","_this48","processValidateQuestionnaire","_this49","AudiencesClient","_this55","processGetAudiences","_this56","PersonsClient","_this64","processGetPerson","_this65","editModel","_this66","processEditPerson","_this67","processSearchPersons","_this68","_this69","processRegisterUser","_this70","QuestionnairesClient","_this71","_this72","edit","_this73","processCreateQuestionnaire","_this74","_this75","processGetQuestionnaire","_this76","_this77","processEditQuestionnaire","_this78","processCloneQuestionnaire","_this79","processPublishQuestionnaire","questionnaireResponseId","_this80","_this81","personKind","_this82","processGetQuestionnaireForPersonKind","_this83","_this84","processGetQuestionsByQuestionnaireId","_this85","_this86","processUpdateQuestion","_this87","processDeleteQuestion","_this88","processCreateQuestion","_this89","processCreateNewQuestionChoice","choiceId","_this90","processUpdateQuestionChoice","_this91","processDeleteQuestionChoice","_this92","processCreateUpdateQuestionChoiceAlertPOST","_this93","processCreateUpdateQuestionChoiceAlertPATCH","_this94","processDeleteQuestionChoiceAlert","nextQuestionId","_this95","processCreateResponseMapping","_this96","processDeleteResponseMapping","userId","_this97","processGetQuestionnaireResponsesForUser","_this98","_this99","processAdminSearchPerson","_this100","_this101","processGetExports","queueWorkItemIds","_this102","processGetExportsForWorkItems","csvExport","_this103","processGetCSVExportForWorkItemId","_this104","QueueClient","_this105","processGetAllQueues","_this106","start","end","_this107","processGetQueueWorkItems","_this108","_this109","processGetQueueWorkItem","_this110","_this111","processGetQueueMetrics","_this112","processGetAllQueueMetrics","_this113","processAssignQueueWorkItem","_this114","processUnAssignQueueWorkItem","_this115","processUnassignItemFromQueue","_this116","processUpdateQueueWorkItemStatus","_this117","_this118","processQueueWorkItemOnHold","_this119","processSaveQueueWorkItemNote","preQueueId","assignment","_this120","processAssignItemToNewQueue","_this121","_this122","processGetQueueWorkItemNotes","_this123","processGetQueueWorkItemQuestions","_this124","_this125","processGetQueueWorkItemAuditEvents","_this126","processGetWorkItemFiles","_this127","filename","_this128","processAddFile","_this129","_this130","processGetFile","_this131","processDeleteFile","_this132","processGetAllQueuesForEdit","_this133","_this134","processGetQueueForEdit","_this135","vw","_this136","processEditQueue","_this137","processAddQueue","_this138","processGetQueueOutcomes","_this139","outcomeId","_this140","processGetUserOutcomesOutcome","_this141","_this142","processSetUserOutcomes","_this143","_this144","processRemoveUserOutcome","_this145","_this146","processSetFileFlags","_this147","processGetQueueOutcomesByQueueId","_this148","_this149","processGetQuestionnaireByQueueId","_this150","_this151","processGetAllQuestionnaireResponse","_this152","_this153","processGetQuestionnaireResponse","_this154","person","_this155","processCreateNewQueueWorkItem","_this156","_this157","processSendEmailNotification","QuestionType","QuestionIntent","ChoiceResult","TextType","QueueWorkItemStatus","ApiException","_Error","_inherits","_super","_createSuper","message","result","_this166","call","isApiException","obj","_wrapNativeSuper","useApiClient","client","useToken","addToken","TokenContext","init","_init","Headers","append","useDebounce","delay","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout","makeAddressFormDef","c","buildGroup","addressUnit","addressLine","suburb","postcode","AddressComplete","_props$query","toFullAddressLine","toObject","addressText","setAddressText","addressQuery","addressClient","fields","_doSearch","apply","doSearch","inputValue","getOptionLabel","a","_a$formattedAddress","formattedAddress","onInputChange","reason","change","_postalCode","_addressLine","_adminDistrict","_locality","postalCode","adminDistrict","locality","_props$label","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","t0","searchFull","t1","sent","stop","filter","join","RenderAddressFields","datemask","inputRef","other","MaskedInput","mask","guide","ValidatedformWithDateFormatting","_props$date$error","date","setDate","InputProps","inputComponent","autoComplete","CommonBTN","BtnText","borderRadius","shape","fade","common","black","searchIcon","pointerEvents","inputRoot","inputInput","transition","transitions","create","StyledListItem","ChoiceFilter","SearchIcon","InputBase","placeholder","input","RenderNestedQuestion","question","forceShow","parentHidden","fc","hidden","searchQuery","setSearchQuery","filteredChoices","setFilteredChoices","renderByType","DateField","DateTimeField","RadioButtons","Grouped","NestedQuestions","nestedQuestions","Repeater","RepeaterQuestion","parentQuestion","Address","AddressQuestion","YesNo","RadioButtonsWithLocationHelper","sort","b","localeCompare","MultiLineTextField","rows","setError","choice","toString","toLowerCase","controlAndQuestions","useMemo","order","showMap","m","_question$responseMap","responseMappings","mapping","showMapping","existing","viewableControlList","useControlStateVersion","_showMap$question$id","find","elems","add","sortedQuestions","_toConsumableArray","FormArray","idx","remove","my","uniqueId","addressForm","useControlChangeEffect","ControlChange","Value","QuestionCard","Card","QuestionCardContent","MuiCardContent","QuestionContent","List","QuestionItem","controls","selectedItem","items","isMobileDevice","useMediaQuery","validateAndChoose","setTouched","onResult","RadioButtonsWithAddInfo","HasDependants","Fade","timeout","QuestionTypeRender","Question","currentIndex","QuestionItemSlider","_props$maxWidth","questions","slideIn","setSlideIn","slideDirection","setSlideDirection","questionIndex","setCurrentIndex","backRef","toDir","goingLeft","transitionForward","onChoiceSelected","selectedChoiceId","nextQuestionIndex","_backRef$current$ques","getPreviousQuestionIndex","getNextQuestionIndex","onIndexChange","MuiDialog","DialogContent","dividers","MuiDialogContent","DialogActions","MuiDialogActions","DialogTitle","MuiDialogTitle","StyledOutcomeHeaderTypography","OutcomeHeaderTypography","_infoIcon","_header","_infoHeader","subQuestionIcon","InfoActionIcon","infoLink","textDecoration","infoIcon","w100","header","warning","exemption","pass","infoHeader","pLR_15","OutcomeHeaderListItem","_props$variant3","StyledIcon","_props$variant2","OutcomeDetailsListItem","_props$editor","disableGutters","editor","textVariant","divider","_slideContainer","transitionWrapper","slideContainer","menuButton","flexGrow","subBox","content","grey","btnLeft","borderColor","btnRight","btn","btnGroup","iconContrast","iconblack","iconMargin","innerHeading","lowerLatin","listStyleType","dayPassStyles","_card","_cardContent","_cardHeader","_heading2","_box2","card","cardContent","cardHeader","failed","conditional","cardHeaderText","cardListItem","cardListItemAlt","cardListItemText","textTransform","textLeft","cardListItemTextAlt","fab","AuthorisationDialog","_state$user","_state$user2","styles","isMobile","handleCancel","handleSubmit","privacy","isoToDate","dateIso","format","parseISO","createControl","makeNestedGroup","arrayControl","makeQuestionnaireControl","answers","qv","groupControl","parseAnswers","responses","ans","qid","_responses$qid","selectedChoiceNestedValue","parentValue","childValue","RadioButtonsWithSearchFilter","questionAnswerText","betweenRepeater","textNode","_isoDateToDisplay","_isoDateTimeToDisplay","_choice$text","isoDateToDisplay","dateTimeIso","isoDateTimeToDisplay","t","h","groupText","answerText","visitQuestions","visit","every","visitRecurse","autoSelectChoice","_q$choices$","QuestionItemStepper","Stepper","activeStep","nonLinear","orientation","_props$invalidQuestio","Step","completed","StepButton","StepLabel","invalidQuestions","Questionnaire","currentPageRef","stepper","authOpen","setAuthOpen","_useState2$","NavComponent","reduce","tlqs","tlq","findTopLevelQuestion","tlc","errControl","repeaterPaths","recurse","childGroup","nestedQ","found","childArray","_repeaterPaths","_toArray","arrayIndex","nextPaths","slice","indexedControl","findNestedQuestionControl","repeaterPath","scrollTo","_x","_x2","_indexChange","newValue","onQuestionnaireFinalised","forward","onSaveResponse","overrideSubmit","qvm","PublicQuestionnaire","InnerQuestionnaire","questionsAndControls","setQuestionsAndControls","setQuestionnaireResponseId","questionnaireClient","questionClient","setErrors","validateAll","setValidateAll","_handleQuestionnaireFinalisation","finalise","_finalise","_callee2","_context2","finaliseQuestionnaire","_handleQuestionnaireResponse","_callee3","_controls$fields$ques","_choiceId","valueAndChoice","_context3","dirty","addQuestionChoice","markAsClean","_startQuestionnaire","_callee4","_context4","getQuestions","setRegionResponse","startQuestionnaire","_saveAndValidate","Backdrop","_callee5","_context5","abrupt","_validate","_callee6","showErrors","_context6","validateQuestionnaire","_x3","_x4","_x5","_setRegionResponse","_callee8","p","_context8","questionKey","preFill","QuestionnaireAnswers","RenderQuestion","questionsWithAnswers","qav","answer","selChoice","pdfStyles","StyleSheet","page","section","line","imageLiL","float","imageCFLC","blueText","grouped","nested","topLevel","topLevelHeading","GenerateQuestionnairePDF","completedAt","Document","Page","size","View","Text","RenderQuestionPDF","isNested","nq","useSortedNestedQuestions","topLevelStyle","parent","groupValue","some","rm","renderNested","repeaterValue","rowValue","repeaterView","vals","n","borderTop","PDFDataConverter","questionnairResponseId","questionnairesClient","setAnswers","setQuestions","dataLoaded","setDataLoaded","setCompletedAt","_setData","setData","questionnaireData","useGeneralCardStyles","alignSelf","Btn","Finalisation","FinalisationWindow","email","setEmail","getEmail","_getEmail","getQuestionnaireEmailByResponse","_fetchEmail","fetchEmail","Paper","elevation","PDFDownloadLink","document","MainListItems","_ref$queueItems","queueItems","onItemClick","ViewListIcon","CustomAvatar","ListSubheader","AssignmentIcon","caption","PersonAvatar","initials","fullName","QuestionnaireList","questionnaires","setQuestionnaires","loadQuestionnaires","published","publishQuestionnaire","duplicateQuestionnaire","Link","questionnaireHref","_loadQuestionnaires","getQuestionnaires","_duplicateQuestionnaire","cloneQuestionnaire","_publishQuestionnaire","QueueList","queues","setQueues","_loadQueues","loadQueues","getAllQueuesForEdit","FCheckbox","FormControlLabel","Checkbox","checked","_","choiceForm","description","notificationEmail","grouping","filterable","assignable","QueueFormDef","defaultForm","canAccessGlobalFiles","queueOutcomes","canCreateForm","launchForm","formCreateHelpText","defaultCSVQuestionnaireId","canExportCSV","QueueEditor","useParams","saving","setSaving","setQueue","qsclient","allQ","_loadQueue","loadQueue","MenuItem","qaires","_saveQueue","saveQueue","queue","getQueueForEdit","editQueue","addQueue","AppBarDivider","AppBarSearch","onKeyDown","StyledDateRangePicker","overflowX","DateRangePicker","CalendarsDateRangePicker","today","addDays","isDatePickerExpanded","onOpen","startOfYear","endOfToday","onRangeChange","formatISO","startOfDay","endOfDay","AttributeController","renderLoading","calendars","startProps","endProps","DateRangeDelimiter","StyledContainer","StyledOutcomeContentList","OutcomeList","_messageAvatar","contentIcon","body2","alert","info","alertBox","clickable","messageIcon","messageAvatar","informationAvatar","optionStyle","textColor","cardContantStyle","fontFamily","bannerControlStyle","bannerPlayButtonStyle","bannerPreviousNextButtonStyle","bannerDivStyle","details","noIcon","StyledCard","WebkitTransition","StyledStatisticCard","background","webkitBoxOrient","webkitBoxDirection","msFlexDirection","wordWrap","backgroundClip","SelectableStatisticCardHeader","CardHeader","StyledBox","StyledStatisticBox","StyledOutcomeCard","StyledOutcomeCardContent","_root4","CardContent","SelectableCard","iconStyle","_root5","severity","CardMedia","InfoOutlinedIcon","ErrorOutlineIcon","WarningRoundedIcon","getVariantIcon","SelectableCardIconContentItem","SelectableStatisticCard","cardClassName","subheader","OutcomeCard","tabIndex","SkeletonCard","skeletons","count","Skeleton","StyledDrawer","paperAnchorDockedRight","borderLeft","MuiDrawer","setDrawerState","useImperativeHandle","openDrawer","closeDrawer","showToolBar","StyledIconButton","StyledTextButton","ToggleButton","AppBarIconButton","AppBarTextButton","TimelineItemFullWidth","missingOppositeContent","TimelineItem","SkeletonTimeLine","CommentsTimeLine","Timeline","comments","comment","TimelineSeparator","TimelineDot","PublicIcon","CommentIcon","TimelineConnector","TimelineContent","PersonIcon","AccessTimeIcon","createdAt","AuditTimeLine","align","auditEvents","ListAltIcon","QueueWorkItemFiles","files","setFiles","fileRef","_loadFiles","loadFiles","uploadFileList","multiple","FileDropArea","_fileRef$current","click","onDragOver","onDrop","_e$dataTransfer","dataTransfer","dense","f","_downloadFile","downloadFile","fileSize","ListItemSecondaryAction","Switch","_setGlobal","setGlobal","_deleteFile","deleteFile","DeleteIcon","updateFile","update","fi","uploadOne","_uploadOne","uploadingFile","newFile","addFile","getWorkItemFiles","getFile","saveAs","fl","f1","setFileFlags","styled","SaveQuestionnairePDF","saved","BlobProvider","QueueWorkItemResponses","questionnaire","showTop","setShowTop","hasMore","_useInfiniteScroll","useInfiniteScroll","hasNextPage","onLoadMore","useCallback","rootMargin","sentryRef","questionsRenders","QueueWorkItemQuestions","showing","queueClient","qClient","loadingQuestions","setLoadingQuestions","setQuestionnaire","qrl","setQrl","selectedQuestionnaire","setSelectedQuestionnaire","anchorEl","setAnchorEl","savePdf","setSavePdf","_loadResponses","_loadResponseList","getAllQuestionnaireResponse","queueWorkItem","workItem","loadResponseList","loadResponses","flexItem","currentTarget","admin","onEdit","s","onViewPDF","Menu","keepMounted","qr","questionnaireName","useHubHandlers","hubConnection","handlers","handlersRef","actualHandlers","staticHandler","_len","args","Array","_key","on","HubConnectionState","Disconnected","off","TabPanel","overflowY","role","a11yProps","QueueWorkItemTabs","notes","setNotes","setAuditEvents","updateWorkItemNotes","setUpdateWorkItemNotes","srQWI","setsrQWI","_React$useState9","_React$useState10","questionResponses","setQuestionResponses","api","Tabs","indicatorColor","Tab","QuestionAnswerIcon","SwipeableViews","axis","onChangeIndex","dir","StyledToggleButton","TooltipToggleButton","FRadioList","genericProps","FC","FormLabel","FormHelperText","FCheckList","isSelected","dialogRoot","FormDef","outcomeIds","newQueueId","AssignToQueueDialog","onAssignAndClose","currentQueueId","currentQueueName","enqueueSnackbar","useSnackbar","selectedQueueId","setOutcomes","getQueueOutcomes","ClosableDialogTitle","checkProps","x","_outcomes$x$id","Radio","mx","cp","onAssignFormSubmit","_onAssignFormSubmit","closeWorkitem","_outcomes$newQueueId","_form$toObject","allowedOutcomes","assignItemToNewQueue","useTreeItemStyles","TreeView","TreeItem","group","expanded","labelRoot","labelIcon","labelText","GeneralCard","CbxTree","setChecked","setExpanded","nodes","setNodes","isLoaded","setIsLoaded","flatten","arr","parentLocationId","regionId","accessible","deletedAt","_ref2$children","flattenGeneric","parentId","_ref3$children","generic","node","_arr$i","genericListToTree","_arr$i2","listToTree","y","onChecked","icons","check","CheckBoxIcon","uncheck","halfCheck","expandClose","ChevronRightIcon","expandOpen","KeyboardArrowDownIcon","expandAll","collapseAll","parentClose","parentOpen","leaf","notFoundContent","CheckboxTree","checkModel","multiSelect","getChecked","onCheck","difference","onExpand","UserRegistration","_useState25","_useState26","sex","_useState27","_useState28","emailAddress","dobObj","startDate","allDetails","addressFull","Visitor","QueueQuestionnaireDrawer","questionnaireSideDrawer","drawerTitle","formFinalised","show","registerFormUser","allFormDetails","adminQuestionClient","referralPerson","setReferralPerson","handleQuestionnaireResponse","addQuestionChoiceByAdmin","_closeQuestionnaire","_loadQuestionnaire","_questionnaireSideDra2","_yield$adminQuestionC","_questionnaireSideDra","loadQuestionnaire","PersonDetailsFormDef","generalPractitionerName","generalPractitionerPractice","Permissions","hasPermission","permission","_user$roles","_step","_iterator","_createForOfIteratorHelper","done","permissions","SuperUser","ItemsPerPage","CSVExportFormDef","reExportRecords","endDateTime","startDateTime","Queue","_currentQueue$formCre","_currentQueue$formCre2","currentQueue","loadingMore","setLoadingMore","setOnFirstPage","csvLoading","setCsvLoading","queueWorkItems","setQueueWorkItems","setQueueWorkItem","setQueueWorkItemStatus","metrics","setMetrics","queryText","New","searchFilters","_setSearchFilters","setSearchFilters","newFilter","sf","deepEqual","setHasMore","setIsDatePickerExpanded","setIsUpdateFromDatePicker","hasDateChanged","setHasDateChanged","_useState29","_useState30","queueWorkItemStatusChanged","setQueueWorkItemStatusChanged","_useState31","_useState32","isInitialApiCalled","_useState33","_useState34","setIsFilterChanged","_useState35","_useState36","setDrawerTitle","_useState37","_useState38","setToken","_useState39","_useState40","queueWorkItemLoading","setQueueWorkItemLoading","_useState41","_useState42","showQuestionnaire","setShowQuestionnaire","_useState43","_useState44","setQueueChanged","_useState45","_useState46","assignToQueueMode","_useState47","_useState48","referralFormInitiated","_useState49","_useState50","referralFormFinalised","setReferralFormFinalised","_useState51","_useState52","metricCatSelect","setMetricCatSelect","sideDrawer","toggleSideDrawer","_useState53","_useState54","toggleQuestionnaireSideDrawer","_useState55","_useState56","updateQueueData","setUpdateQueueData","_useState57","_useState58","updateQueueAssignemnt","setUpdateQueueAssignemnt","_useState59","_useState60","_useState61","_useState62","_useState63","_useState64","updateMetricsFromApi","setUpdateMetricsFromApi","_useState65","_useState67","_useState68","setEditPerson","_useState69","_useState70","noteMode","_setNoteMode","_useState71","_useState72","csvExportMode","setCSVExportMode","_useState73","startDateFieldValue","endDateFieldValue","_loadMore","_useState75","_useState76","treeData","setTreeData","hub","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","build","Connected","Connecting","useHubConnection","MetricCategories","AllQueueWorkItems","wi","QueueWorkItemStatuses","_formFinalised","finaliseQuestionnaireByAdmin","showWorkItem","qwi","_registerFormUser","newPerson","newWorkItem","createNewQueueWorkItem","doItemQuery","_doItemQuery","offset","_queueData$queueWorkI","_queueData$queueWorkI2","queueData","getQueueWorkItems","queueWorkItemStatuses","isSuperUser","loadQueueData","apiCalls","getQueueOutcomesByQueueId","all","_res","getQueueDataWithoutRestriction","_res2","WorkItemIcon","ErrorOutlineOutlinedIcon","Viewed","PlayCircleOutlineIcon","PDFDownloaded","CheckCircleOutlineIcon","_state$user3","_searchFilters$after","_searchFilters$before","onWorkItemReset","personAssignedTo","RestoreIcon","noteKey","EventIcon","HomeIcon","onWorkItemEdited","downloadPDF","totals","category","_metrics$totals","metric","newFormats","PostAddIcon","SearchAppBar","queryChanged","range","ToggleButtonGroup","newStatuses","_retrieveCSVExportRecords","_exportRecordsToCSV","exportMode","toRender","_q$outcomes","r","_searchFilters$outcom","workItemStatusChanged","nurse","toUpperCase","renderCards","AddNoteDialog","submitNote","noteTextField","globalNote","queueWorkItemNote","onWorkItemNoteAdded","DialogContentText","_callee7","csvExportData","csvQueueWorkItems","_context7","getCSVExportForWorkItemId","defaultExportQuestionnaireId","ids","getExportsForWorkItems","closeButton","disableTypography","_useState77","_useState78","setQuery","debounced","_useState79","_useState80","setNoteTextField","_useState81","_useState82","setGlobalNote","MetricView","_metrics$queueWorkIte","SummaryView","allMetric","setAllMetric","receivedSignal","setReceivedSignal","refreshMetrics","getAllQueueMetrics","FNumberField","num","parseFloat","isNaN","ChoiceFormDef","outcomeResult","exportValue","queueOutcomeChoiceId","onAssignment","ChoiceEditor","onDelete","otherQuestions","onUp","onDown","others","useControlState","newone","_ref2$fields","qo","UpIcon","DownIcon","AllIcons","FIconSelector","SubQuestionFormDef","SubQuestionEditor","DateConstraintFormDef","days","fixed","ValidationFormDef","notAfter","notBefore","textType","BaseQuestionForm","intentKey","intent","exportKey","QuestionFormDef","addFields","ArrayControl","toDateConstraintForm","toQuestionForm","sortedNested","_q$responseMappings$f","QuestionEdit","openOptions","WithType","useControlStateComponent","_useDrag","useDrag","_useDrag2","collected","drag","ml","Droppable","QuestionOptions","outcomeResults","questionType","renderDateConstraint","Phone","Email","moveUp","moveDown","QuestionnaireFormDef","audiences","QuestionnaireEditor","_id","audienceClient","setAudiences","optionsQuestion","setOptionsQuestion","showingOptions","setShowingOptions","setQueueOutcomes","router","_loadAudiences","loadAudiences","DndProvider","backend","HTML5Backend","qs","q1","_saveQuestionnaire","saveQuestionnaire","getQuestionnaire","audienceId","getAudiences","newId","setDisabled","editQuestionnaire","createQuestionnaire","questionnaireEditUrl","_useDrop","useDrop","accept","canDrop","isChildOf","drop","outArray","indIns","indexOf","splice","collect","monitor","isOver","_useDrop2","_useDrop2$","py","questionList","dq","FormWithValidation","isValidElement","TeamForm","onSucceed","teamName","setTeamName","_event$target","modal","toolbar","randomColor","Math","floor","random","SelectableCardHeader","StyledListCard","StyledListCardContent","_root3","StyledAvatar","getSeverityIcon","SelectableCardSkeleton","CardList","overflow","SelectableCardListItem","_props$checked","pressed","setPressed","setPreviousPressedState","ItemSearch","timeoutId","setTimeoutId","searchResults","setSearchResults","selectedUsers","setSelectedUsers","onItemSearch","selectableCardOnClickHandler","u","filteredArr","membersCompareTo","nameA","nameB","combinedArr","seletableCards","member","avatarColor","mountOnEnter","unmountOnExit","onAddMembers","UserMinusSolid","UserPlusSolid","TeamTieSolid","UserTeamPermissionSolid","RolesSoild","ManagerToolbar","onSearch","onAdd","onRefresh","onRemove","renderExtraActions","members","auditAlert","getMemberInitial","memberName","split","MemberList","selectedMembers","canManageTeamMembers","canViewTeam","VisibilityIcon","Manager","appbarExtraComponents","appbarRightComponents","_ref$disableToolBar","disableToolBar","onSearchBarSearch","currentItems","selectedItems","onResultSelect","onCheckBoxChecked","_ref$checkBoxTreeMult","checkBoxTreeMultiSelect","noResultsMessage","formDrawer","ManagerForm","mb","ResultList","RoleManager","setRoles","currentRole","setCurrentRole","setCurrentItems","setSelectedItems","currentArr","roleDataMapper","newName","newQuery","matcher","promises","accountType","searchStaffMembers","InputDialog","_ref$title","_ref$confirmButtonNam","confirmButtonName","_ref$cancelButtonName","cancelButtonName","_ref$inputPlaceholder","inputPlaceholder","_ref$value","setText","OutcomeAccess","searchBarText","setSearchBarText","setCurrentMembers","selectedNode","setGrouping","managerName","setManagerName","teams","setOutcomeId","editTeamNameOpen","personsClient","inputDialogData","alignment","setAlignment","handleAlignment","newAlignment","changeGrouping","newGrouping","AppBarComponents","exclusive","_loadData","treeDataMapper","values","loadData","_onAdd","persons","userOutcomes","setUserOutcomes","getUserOutcomesOutcome","_onRemove","removeUserOutcome","appBarRightComponents","selectedId","searchString","searchPersons","AdminRoutes","Route","exact","path","Redirect","to","toolbarIcon","mixins","easing","sharp","duration","leavingScreen","appBarShift","enteringScreen","menuButtonHidden","drawerPaper","drawerPaperClose","appBarSpacer","fixedHeight","Dashboard","_state$user14","_state$user15","_state$user16","queueMatch","useRouteMatch","loggedInUser","setLoggedInUser","_state$user4","_state$user5","userInfo","_state$user6","Staff","queueOutcomeChoices","hash","_state$user7","_state$user8","_state$user9","_state$user10","_state$user11","_state$user12","_state$user13","CssBaseline","MenuIcon","noWrap","ChevronLeftIcon","Routes","footer","cflcImg","contentText","Footer","isThemeDown","lg","inputMode","headerStyles","_headerPlaceHolder","headerPlaceHolder","App","authToken","setAuthToken","_useSnackbar","closeSnackbar","shouldHideFooter","setShouldHideFooter","screen","availWidth","scr","setScr","addEventListener","pathname","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","createMuiTheme","h1","h2","h4","TimeLine","DayPassCard","Metric","SearchBar","MetricTitle","elevation1","AdminPortal","DrawerMenu","borderTopRightRadius","borderBottomRightRadius","fontWeightMedium","fontWeightRegular","TimelineOppositeContent","borderStyle","_theme$typography$bod","ineHeight","h3","h5","h6","subtitle1","MuiListItemIcon","MuiButton","MuiButtonBase","MuiIconButton","MuiSvgIcon","MuiAccordion","MuiPaper","MuiAvatar","colorDefault","DoHScreeningTheme","_document$getElements","getElementsByTagName","getAttribute","ReactDOM","render","Router","basename","LocalizationProvider","dateAdapter","DateFnsUtils","dateFormats","normalDate","keyboardDate","SnackbarProvider","maxSnack","getElementById"],"mappings":"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","file":"static/js/main.935c2472.chunk.js","sourcesContent":["import { createContext, useContext, useState, Dispatch, SetStateAction } from 'react';\r\n\r\ntype QuestionnaireContextType = {\r\n questionnaireTitle: string;\r\n setQuestionnaireTitle: Dispatch>;\r\n};\r\n\r\nexport const QuestionnaireContext = createContext({\r\n questionnaireTitle: \"\",\r\n setQuestionnaireTitle: () => { }\r\n});\r\n\r\nexport const QuestionnaireProvider = ({ children }: any) => {\r\n const [questionnaireTitle, setQuestionnaireTitle] = useState(\"\");\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useQuestionnaireContext = () => {\r\n const context = useContext(QuestionnaireContext);\r\n if (context === undefined) {\r\n throw new Error('useQuestionnaireContext must be used within a QuestionnaireProvider');\r\n }\r\n return context;\r\n};\r\n","import React, {useEffect} from 'react';\r\nimport {makeStyles, createStyles, Theme} from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ButtonBase from '@material-ui/core/ButtonBase';\r\nimport {AppBar, Box, Dialog, Drawer, IconButton, Paper, Slide, Toolbar} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {TransitionProps} from \"@material-ui/core/transitions\";\r\nimport {useHistory} from \"react-router\";\r\nimport { useQuestionnaireContext } from '../../QuestionnaireContext';\r\n\r\nenum MenuDialog {\r\n Privacy = 'Privacy',\r\n About = 'About',\r\n None = 'None'\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n minWidth: '100vw',\r\n borderBottom: `10px solid ${theme.palette.primary.main}`,//#bad97c',\r\n [theme.breakpoints.down('sm')]: {\r\n position: 'fixed',\r\n top: 0,\r\n zIndex: 20,\r\n borderBottom: 'none'\r\n },\r\n },\r\n focusVisible: {\r\n outline: '-webkit-focus-ring-color auto 1px',\r\n },\r\n paper: {\r\n minWidth: '100vw',\r\n backgroundColor: theme.palette.primary.main,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundSize: 'cover',\r\n [theme.breakpoints.down('sm')]: {\r\n height: '70px',\r\n },\r\n },\r\n KOTOCLogo: {\r\n \r\n [theme.breakpoints.down('sm')]: {\r\n // display: 'none',\r\n width: '60px',\r\n\r\n },\r\n // TODO the tab index\r\n // tabindex:'0',\r\n width: '128px',\r\n // Thomas commoned 28/06/21\r\n // filter: 'invert(100%)',\r\n //margin: '30px 0 30px 10px',\r\n margin: '3px 0 3px 10px',\r\n float: 'right',\r\n\r\n },\r\n tasGovLogo: {\r\n // thomas commoned out\r\n [theme.breakpoints.down('sm')]: {\r\n // display: 'none',\r\n width: '60px',\r\n\r\n },\r\n width: '128px',\r\n // Thomas commoned 28/06/21\r\n // filter: 'invert(100%)',\r\n //margin: '30px 0 30px 10px',\r\n margin: '3px 0 3px 0px',\r\n float: 'right',\r\n\r\n },\r\n tasGovLogoMenu: {\r\n [theme.breakpoints.down('sm')]: {\r\n //display: 'none',\r\n },\r\n width: '128px',\r\n //Thomas commoned 28/06/21\r\n // filter: 'invert(100%)',\r\n margin: '10px 0 10px 10px',\r\n float: 'right',\r\n\r\n },\r\n mgAuto: {\r\n margin: 'auto'\r\n },\r\n img: {\r\n height: '10rem',\r\n backgroundColor: theme.palette.primary.main,\r\n // thomas added\r\n [theme.breakpoints.down('sm')]: {\r\n height: '4rem',\r\n },\r\n },\r\n heading: {\r\n opacity: '80%',\r\n color: theme.palette.primary.contrastText,\r\n WebkitFontSmoothing: 'antialiased',\r\n fontWeight: 500,\r\n position: 'relative',\r\n marginTop: '2px!Important',\r\n '& p': {\r\n [theme.breakpoints.up('md')]: {\r\n fontSize: '2.5rem!important',\r\n paddingTop: '120px',\r\n },\r\n },\r\n '& span': {\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n //bottom: '-50px',\r\n //left: '10px',\r\n //position: 'absolute',\r\n\r\n // Thomas changed 2 to 1.3 added the padding left 20px\r\n // remove the padding20px changed font size to 1.3 to 1.0\r\n fontSize: '1.0rem!important',\r\n paddingLeft: '20px',\r\n },\r\n\r\n\r\n [theme.breakpoints.up('md')]: {\r\n marginLeft: '40px',\r\n color: theme.palette.primary.contrastText,\r\n },\r\n\r\n }\r\n\r\n },\r\n drawerMenuIcon: {\r\n padding: 'unset!important',\r\n fontSize: '2.5rem',\r\n color: theme.palette.primary.contrastText,\r\n paddingLeft: '15px!important',\r\n paddingTop: '5px!important',\r\n opacity: ' 80%',\r\n '&:focus': {\r\n outline: 'none !important'\r\n },\r\n },\r\n list: {\r\n width: 250,\r\n },\r\n fullList: {\r\n width: 'auto',\r\n },\r\n version: {\r\n fontSize: '0.8em!important',\r\n },\r\n appBar: {\r\n position: 'relative',\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n text: {\r\n textAlign: 'justify',\r\n padding: '10px',\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: '0.9rem!important',\r\n paddingBottom: '10px',\r\n },\r\n\r\n\r\n },\r\n noBg: {\r\n backgroundColor: 'unset',\r\n },\r\n noHover: {\r\n '&:hover': {\r\n backgroundColor: 'inherit',\r\n cursor: 'inherit'\r\n }\r\n },\r\n alignItemsLeft: {\r\n alignItems: 'flex-start!important'\r\n },\r\n noBorder: {\r\n border: 'none',\r\n },\r\n noPadding: {\r\n padding: '0px!important',\r\n },\r\n mt_15: {\r\n marginTop: '15px'\r\n },\r\n mb_15: {\r\n marginBottom: '15px'\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.primary.main,\r\n // thomas changed 60 to 100\r\n width: '60px',\r\n height: '60px',\r\n\r\n },\r\n heading2: {\r\n textAlign: 'left',\r\n paddingBottom: '15px',\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: '1rem!important',\r\n paddingBottom: '10px',\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: '1.2rem!important',\r\n fontWeight: '600!important',\r\n lineHeight: ' 1.4375rem',\r\n letterSpacing: '-.01875rem'\r\n },\r\n\r\n },\r\n icon: {\r\n color: theme.palette.primary.contrastText,\r\n maxWidth: 'unset',\r\n maxHeight: 'unset',\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: '3rem!important',\r\n margin: '10pxImportant'\r\n },\r\n fontSize: '3rem!important',\r\n margin: '10pxImportant'\r\n\r\n },\r\n tasLogo: {\r\n fontSize: '4.2em!important',\r\n marginTop: '15px',\r\n },\r\n bgc: {\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n welcome: {\r\n fontSize: '1.5em!important'\r\n },\r\n lh_05: {\r\n lineHeight: '0.5',\r\n [theme.breakpoints.down(\"md\")]: {\r\n lineHeight: '0.4',\r\n paddingTop: '30px',\r\n color: theme.palette.primary.contrastText,\r\n },\r\n },\r\n uatHeader: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n color: \"red\",\r\n fontSize: '2.5rem',\r\n marginTop: '-100px',\r\n },\r\n subSmallHeader: {\r\n fontSize: '1rem!important',\r\n color: theme.palette.primary.contrastText,\r\n marginBottom: '10px',\r\n marginLeft: '380px',\r\n fontStyle: 'italic',\r\n lineHeight: '0.6',\r\n opacity: '80%',\r\n\r\n WebkitFontSmoothing: 'antialiased',\r\n fontWeight: 500,\r\n position: 'relative',\r\n [theme.breakpoints.down(\"sm\")]: {\r\n lineHeight: 2,\r\n marginLeft: '10px'\r\n },\r\n '& span': {\r\n\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '0.7rem!important'\r\n },\r\n }\r\n }\r\n }),\r\n);\r\ntype Anchor = 'top' | 'left' | 'bottom' | 'right';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n props: TransitionProps & { children?: React.ReactElement },\r\n ref: React.Ref,\r\n) {\r\n return ;\r\n});\r\n\r\nexport const Header = () => {\r\n const classes = useStyles();\r\n //GLOBAL STATE STORE\r\n //const {state, dispatch} = useContext(Context);\r\n const history = useHistory();\r\n // const location = useLocation();\r\n\r\n const [drawerState, setdrawerState] = React.useState({\r\n top: false,\r\n left: false,\r\n bottom: false,\r\n right: false,\r\n });\r\n const url = window.location.href;\r\n const [open, setOpen] = React.useState(false);\r\n const [activeDialog, setActiveDialog] = React.useState(MenuDialog.None);\r\n const [ UAT, setUAT] = React.useState(false);\r\n const handleClickOpen = (activeDialog: MenuDialog) => {\r\n setOpen(true);\r\n setActiveDialog(activeDialog)\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n const toggleDrawer = (anchor: Anchor, open: boolean) => (\r\n event: React.KeyboardEvent | React.MouseEvent,\r\n ) => {\r\n if (\r\n event.type === 'keydown' &&\r\n ((event as React.KeyboardEvent).key === 'Tab' ||\r\n (event as React.KeyboardEvent).key === 'Shift')\r\n ) {\r\n return;\r\n }\r\n\r\n setdrawerState({...drawerState, [anchor]: open});\r\n };\r\n \r\n useEffect(() => {\r\n if (url.includes('.uat.')) {\r\n setUAT(true);\r\n }\r\n }, [url])\r\n\r\n\r\n const { questionnaireTitle } = useQuestionnaireContext();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n history.push('/')}>\r\n \r\n \r\n \r\n \r\n \r\n {questionnaireTitle != \"\" ? questionnaireTitle + \" Referral Form\" : \"CHaPS to LiL/CFLC or WT Referral Form\"} {UAT && (
Do not enter referrals here – Test site only
) }
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {/*{list('left')}*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {activeDialog}\r\n \r\n \r\n \r\n {/*{dialog(activeDialog)}*/}\r\n \r\n
\r\n );\r\n}","import { createRenderer } from \"@react-typed-forms/core\";\r\nimport { TextFieldProps } from \"@material-ui/core/TextField\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nexport const FTextField = createRenderer<\r\n string | undefined | null,\r\n TextFieldProps\r\n>(({ state, helperText, ...props }, { errorText, value, ...formProps }) => (\r\n \r\n));\r\n\r\nexport const FDateTextField = createRenderer<\r\n string | undefined | null,\r\n TextFieldProps\r\n>(({ state, helperText, ...props }, { errorText, value, ...formProps }) => (\r\n \r\n));\r\n\r\nexport const FDateField = createRenderer<\r\n string | undefined | null,\r\n TextFieldProps\r\n>(({ state, helperText, ...props }, { errorText, value, ...formProps }) => (\r\n {\r\n const val = e.target.value;\r\n state.setValue(!val ? undefined : val);\r\n }}\r\n />\r\n));\r\n\r\nexport const FSelectField = createRenderer<\r\n string | undefined | null,\r\n TextFieldProps\r\n>(({ state, helperText, ...props }, { errorText, value, ...formProps }) => (\r\n \r\n));\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport TextField, { TextFieldProps } from \"@material-ui/core/TextField\";\r\nimport { FTextField } from \"../../common/formComponents/FTextField\";\r\n\r\nexport const StyledTextField = withStyles((theme) => ({\r\n root: {\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n fontSize: \"1.25rem\",\r\n lineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"1.25rem\",\r\n lineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n \"& .MuiFormLabel-root\": {\r\n fontSize: \"1rem!Important\",\r\n },\r\n \"& .MuiOutlinedInput-root \": {\r\n fontSize: \"1rem!Important\",\r\n },\r\n },\r\n },\r\n}))(TextField);\r\nexport const StyledFTextField = withStyles((theme) => ({\r\n root: {\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n fontSize: \"1.25rem\",\r\n lineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"1.25rem\",\r\n lineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n \"& .MuiFormLabel-root\": {\r\n fontSize: \"1rem!Important\",\r\n },\r\n \"& .MuiOutlinedInput-root \": {\r\n fontSize: \"1rem!Important\",\r\n },\r\n },\r\n },\r\n}))(FTextField);\r\nconst StyledCalenderTextField = withStyles({\r\n root: {\r\n \"& input, label \": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n \"& label.MuiInputLabel-outlined \": {\r\n transform: \" translate(14px, 7px) scale(1)!important\",\r\n },\r\n \"& label.MuiInputLabel-outlined.MuiInputLabel-shrink \": {\r\n transform: \" translate(14px, -6px) scale(0.75)!important\",\r\n },\r\n \"& .MuiOutlinedInput-root > .MuiOutlinedInput-input\": {\r\n padding: \"5px!important\",\r\n width: \"110px\",\r\n },\r\n \"& .MuiFormHelperText-root\": {\r\n display: \"none!important\",\r\n },\r\n \"& .MuiTypography-root\": {\r\n margin: \"0 5px!important\",\r\n },\r\n },\r\n})(TextField);\r\n\r\nexport const ValidationTextField = React.forwardRef(function TextField(\r\n props: TextFieldProps & { children?: React.ReactElement } & any,\r\n ref: React.Ref\r\n) {\r\n return ;\r\n});\r\n\r\nexport const CalendarTextField = React.forwardRef(function TextField(\r\n props: TextFieldProps & { children?: React.ReactElement } & any,\r\n ref: React.Ref\r\n) {\r\n return ;\r\n});\r\n","import React from \"react\";\r\nimport SvgIcon, {\r\n SvgIconProps,\r\n SvgIconTypeMap,\r\n} from \"@material-ui/core/SvgIcon\";\r\nimport { OverridableComponent } from \"@material-ui/core/OverridableComponent\";\r\n\r\nexport const CircleQuestionSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const UserNurseIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const FeverIcon = (props: SvgIconProps) => {\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\nexport const LungsIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const C19ContactIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const RunnyNoseIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const LossOfSmellIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const TravelIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const HandStopIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const TravelContactIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const HomeIsolationIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const ShortnessOfBreathIcon = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport const TasGovIcon = (props: SvgIconProps) => {\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\nexport const MapMarkerAltSolid: OverridableComponent = (\r\n props: SvgIconProps\r\n) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const StreetViewSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const PenFancySolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const MapPinSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const UserSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const QuestionSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const UserTieSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const UserInjuredSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const MaskSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const CalendarPlus = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const UserShieldSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const NarrowArrowForward = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const ExclamationSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const CarSideSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const UserMinusSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const UserPlusSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n{\r\n /*Thomas 06/24/21*/\r\n}\r\n\r\nexport const CarSideSolidInformation = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const DollarSignSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const ClockSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n// thomas added\r\nexport const AngleRight = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const AngleLeft = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const PlayCircle = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const PauseCircle = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\nexport const FileCSVSolid = (props: SvgIconProps) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const UserMdSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n );\r\n}\r\nexport const ClinicMedicalSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n );\r\n}\r\nexport const PdfFileRegular = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\nexport const EditSolid = (props: SvgIconProps) => {\r\n return (\r\n \r\n \r\n );\r\n}\r\n//end of add\r\n","import { PersonKind, QueueWorkItem } from \"../state/State.model\";\r\n\r\nconst BASE_URL = \"/api/\";\r\nconst postJson = (route: string, data: any, token?: string) =>\r\n fetch(`${BASE_URL}${route}`, {\r\n method: \"POST\",\r\n body: data != null ? JSON.stringify(data) : null,\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=UTF-8\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((res) => {\r\n return res.text();\r\n })\r\n .then((data) => {\r\n let response = data ? JSON.parse(data) : {};\r\n if (response) {\r\n if (response?.status != 200 && response?.errors) {\r\n console.log(Object.keys(response?.errors));\r\n Object.keys(response?.errors).forEach((o) => {\r\n console.log(response.errors[o]);\r\n });\r\n }\r\n }\r\n\r\n return response;\r\n })\r\n .catch((err) => {\r\n throw new Error(err);\r\n });\r\n\r\nconst getJson = (route: string, token?: string) =>\r\n fetch(`${BASE_URL}${route}`, {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=UTF-8\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((res) => {\r\n console.log(res);\r\n if (!res.ok) {\r\n throw new Error(JSON.stringify(res));\r\n }\r\n\r\n if (!res.redirected) {\r\n return res.json();\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n throw new Error(err);\r\n });\r\n\r\nconst deleteJson = (route: string, data: any, token?: string) =>\r\n fetch(`${BASE_URL}${route}`, {\r\n method: \"DELETE\",\r\n body: data != null ? JSON.stringify(data) : null,\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=UTF-8\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((res) => {\r\n return res.text();\r\n })\r\n .then((data) => {\r\n let response = data ? JSON.parse(data) : {};\r\n if (response) {\r\n if (response?.status != 200 && response?.errors) {\r\n console.log(Object.keys(response?.errors));\r\n Object.keys(response?.errors).forEach((o) => {\r\n console.log(response.errors[o]);\r\n });\r\n }\r\n }\r\n\r\n return response;\r\n })\r\n .catch((err) => {\r\n throw new Error(err);\r\n });\r\n\r\nexport const getUserInfo = (token: string) => getJson(\"user/info\", token);\r\n\r\nexport const getJwtToken = (\r\n firstName: string,\r\n lastName: string,\r\n contactNumber: string,\r\n kind: PersonKind,\r\n additionalData?: any\r\n) =>\r\n postJson(\"user/gate\", {\r\n firstName,\r\n lastName,\r\n contactNumber,\r\n kind,\r\n ...additionalData,\r\n });\r\nexport const registerUser = (\r\n firstName: string,\r\n lastName: string,\r\n contactNumber: string,\r\n kind: PersonKind,\r\n additionalData?: any,\r\n token?: string\r\n) =>\r\n postJson(\r\n \"_admin/persons/register\",\r\n {\r\n firstName,\r\n lastName,\r\n contactNumber,\r\n kind,\r\n ...additionalData,\r\n },\r\n token\r\n );\r\nexport const searchAddresses = (query: string) =>\r\n getJson(`address/search?q=${encodeURIComponent(query)}`);\r\nexport const startQuestionnaire = (locationId: string, token?: string) =>\r\n postJson(\r\n \"questionnaire\",\r\n {\r\n locationId,\r\n },\r\n token\r\n );\r\nexport const createQuestionnaireResponse = (\r\n questionnaireId: string,\r\n personId: string,\r\n token?: string\r\n) =>\r\n postJson(\r\n `questionnaire/${questionnaireId}/createResponse/${personId}`,\r\n {},\r\n token\r\n );\r\nexport const saveQuestionResponse = (\r\n questionnaireId: string,\r\n questionId: string,\r\n choiceId: string,\r\n token?: string\r\n) =>\r\n postJson(\r\n `questionnaire/${questionnaireId}/${questionId}`,\r\n {\r\n choiceId,\r\n },\r\n token\r\n );\r\nexport const saveQuestionResponseByAdmin = (\r\n questionnaireId: string,\r\n questionId: string,\r\n choiceId: string,\r\n personId: string,\r\n token?: string\r\n) =>\r\n postJson(\r\n `questionnaire/${questionnaireId}/${questionId}/${personId}`,\r\n {\r\n choiceId,\r\n },\r\n token\r\n );\r\nexport const finaliseQuestionnaire = (\r\n questionnaireId: string,\r\n token?: string\r\n) => postJson(`questionnaire/${questionnaireId}/finalise`, {}, token);\r\nexport const finaliseQuestionnaireByAdmin = (\r\n questionnaireId: string,\r\n personId: string,\r\n token?: string\r\n) =>\r\n postJson(`questionnaire/${questionnaireId}/${personId}/finalise`, {}, token);\r\nexport const getQuestions = (token?: string) => getJson(`questionnaire`, token);\r\nexport const getQuestionsByPersona = (personKind: PersonKind, token?: string) =>\r\n getJson(`_admin/questionnaires/${personKind}/questions`, token);\r\nexport const getDependants = (token?: string) => getJson(\"dependants\", token);\r\nexport const getQueueWorkItems = (\r\n queueId: string,\r\n queueWorkItemStatuses: QueueWorkItem[],\r\n query: string,\r\n before: any = null,\r\n after: any = null,\r\n outcomes: string[],\r\n token?: string\r\n) =>\r\n postJson(\r\n `_admin/queue/${queueId}/workitems`,\r\n {\r\n queueWorkItemStatuses,\r\n query,\r\n before,\r\n after,\r\n outcomes,\r\n },\r\n token\r\n );\r\nexport const getQueueWorkItem = (\r\n queueId: string,\r\n workItemId: string,\r\n token?: string\r\n) => getJson(`_admin/queue/${queueId}/workItems/${workItemId}`, token);\r\nexport const getQueueMetrics = (\r\n queueId: string,\r\n before: any = null,\r\n after: any = null,\r\n outcomes: string[] = [],\r\n token?: string\r\n) =>\r\n postJson(\r\n `_admin/queue/${queueId}/metrics`,\r\n {\r\n before,\r\n after,\r\n outcomes,\r\n },\r\n token\r\n );\r\nexport const getQueues = (token?: string) => getJson(`_admin/queue`, token);\r\nexport const AssignWorkItemToMe = (\r\n queueId: string,\r\n workItemId: string,\r\n token?: string\r\n) =>\r\n getJson(`_admin/queue/${queueId}/workItems/${workItemId}/assignToMe`, token);\r\nexport const UnAssignWorkItem = (\r\n queueId: string,\r\n workItemId: string,\r\n token?: string\r\n) => getJson(`_admin/queue/${queueId}/workItems/${workItemId}/unassign`, token);\r\nexport const SaveWorkItemNote = (\r\n queueId: string,\r\n workItemId: string,\r\n note: string,\r\n global: boolean,\r\n token?: string\r\n) =>\r\n postJson(\r\n `_admin/queue/${queueId}/workItems/${workItemId}/saveNote`,\r\n { note, global },\r\n token\r\n );\r\nexport const UpdateQueueWorkItemStatus = (\r\n queueId: string,\r\n workItemId: string,\r\n note: string,\r\n status: QueueWorkItem,\r\n token?: string\r\n) =>\r\n postJson(\r\n `_admin/queue/${queueId}/workItems/${workItemId}/updateStatus`,\r\n { note, status },\r\n token\r\n );\r\nexport const getQueueWorkItemNotes = (\r\n queueId: string,\r\n workItemId: string,\r\n token?: string\r\n) => getJson(`_admin/queue/${queueId}/workItems/${workItemId}/notes`, token);\r\nexport const getQueueWorkItemQuestions = (\r\n queueId: string,\r\n workItemId: string,\r\n token?: string\r\n) =>\r\n getJson(`_admin/queue/${queueId}/workItems/${workItemId}/questions`, token);\r\nexport const getQueueWorkItemAuditEvents = (\r\n queueId: string,\r\n workItemId: string,\r\n token?: string\r\n) =>\r\n getJson(`_admin/queue/${queueId}/workItems/${workItemId}/auditEvents`, token);\r\n\r\nexport const getAllQueueMetrics = (\r\n before: any = null,\r\n after: any = null,\r\n token?: string\r\n) => postJson(`_admin/queue/metrics`, { before, after }, token);\r\n\r\nexport const unassignItemFromQueue = (\r\n queueId: string,\r\n workItemId: string,\r\n token?: string\r\n) =>\r\n postJson(\r\n `_admin/queue/${queueId}/workItems/${workItemId}/unassign`,\r\n {},\r\n token\r\n );\r\n\r\nexport const getRoles = (token?: string) => getJson(\"_admin/roles\", token);\r\n\r\nexport const getRoleMembers = (roleId: string, token?: string) =>\r\n getJson(`_admin/roles/${roleId}/members`, token);\r\n\r\nexport const removeRoleMember = (\r\n roleId: string,\r\n personId: string,\r\n token?: string\r\n) => deleteJson(`_admin/roles/${roleId}/members/${personId}`, null, token);\r\n\r\nexport const searchStaffMembers = (query: string, token: string) =>\r\n postJson(`_admin/persons/search`, { query, accountType: 2 }, token);\r\n\r\nexport const addRoleMember = (\r\n roleId: string,\r\n personId: string,\r\n token?: string\r\n) => postJson(`_admin/roles/${roleId}/members/${personId}`, null, token);\r\n\r\nexport const ResendEamilNotification = (\r\n emailDestination: string,\r\n destinationName: string,\r\n token?: string\r\n) =>\r\n postJson(\r\n `_admin/queue/resendemail/${emailDestination}/${destinationName}`,\r\n {\r\n emailDestination,\r\n destinationName,\r\n },\r\n token\r\n );\r\n","export enum QueueWorkItem {\r\n New,\r\n Viewed,\r\n PDFDownloaded,\r\n}\r\nexport enum UserPermissions {\r\n SuperUser = 0x1,\r\n /// \r\n /// provides edit access for all roles & users\r\n /// \r\n ModifyRoles = 0x2,\r\n ModifyLocations = 0x4,\r\n ModifyQuestions = 0x8,\r\n ModifyAudiences = 0x10,\r\n\r\n IgnoreLocationConstraints = 0x20,\r\n IgnoreAudienceConstraints = 0x40,\r\n ModifyDayPasses = 0x80,\r\n ViewQuestionnaire = 0x100,\r\n}\r\n\r\nexport interface BasicRole {\r\n id: string;\r\n name: string;\r\n permissions: UserPermissions;\r\n}\r\nexport enum PersonKind {\r\n None,\r\n Visitor,\r\n Patient,\r\n Staff,\r\n Quarantine,\r\n QuarantineWorkerStaff,\r\n HotLineStaff,\r\n Public,\r\n CentralHubStaff,\r\n PHEOCStaff\r\n}\r\n\r\nexport interface Credentials {\r\n firstName: string;\r\n lastName: string;\r\n contactNumber: string;\r\n dateOfBirth?: string;\r\n address?: string;\r\n latitude?: number;\r\n longitude?: number;\r\n gpName?: string;\r\n gpPractice?: string;\r\n emailAddress?: string;\r\n sex?: string;\r\n //lastLocation: { id: string, name: string }[] | null;\r\n //metadataQuestions:any;\r\n kind: PersonKind | number | null;\r\n}\r\nexport interface Person {\r\n id: string;\r\n firstName: string;\r\n lastName: string;\r\n contactNumber: string;\r\n currentAudience: {\r\n id: string;\r\n name: string;\r\n };\r\n}\r\nexport interface User extends Credentials {\r\n //activePass: ActivePass | null;\r\n personaType: PersonKind;\r\n loggedIn: boolean;\r\n token: string;\r\n roles: BasicRole[];\r\n outcomes: string[];\r\n}\r\n\r\nexport default interface StateModel {\r\n user: User | null;\r\n}\r\n\r\nexport interface AuthContext {\r\n user: User | null;\r\n signIn?: (\r\n firstName: string,\r\n lastName: string,\r\n contactNumber: string,\r\n dob: string,\r\n address: string\r\n ) => any;\r\n signOut?: () => void;\r\n}\r\n\r\nexport enum Outcome {\r\n Normal,\r\n Invalid,\r\n Fail,\r\n Exemption,\r\n Conditional,\r\n}\r\n\r\nexport interface QueueItem {\r\n id: string;\r\n name: string;\r\n questoinChoiceResult: number;\r\n}\r\n","import StateModel from \"./State.model\";\r\nimport {IDispatchAction} from \"./Store\";\r\n\r\nexport const Reducer = (state: StateModel, action: IDispatchAction) => {\r\n \r\n switch (action.type){\r\n case 'SET_USERINFO':\r\n if(action.payload?.token && action.payload?.rememberMe)\r\n {\r\n localStorage.setItem('user:authtoken', action.payload?.token);\r\n }\r\n return {\r\n ...state,\r\n user:action.payload,\r\n };\r\n case 'SET_TOKEN':\r\n localStorage.setItem('user:authtoken', action.payload?.token);\r\n return {\r\n ...state,\r\n user: action.payload,\r\n };\r\n case 'LOGOUT_USER':\r\n localStorage.removeItem('user:authtoken');\r\n localStorage.removeItem('user:locations');\r\n return {\r\n ...state,\r\n user: null,\r\n };\r\n default:\r\n return state;\r\n }\r\n};","import React, {createContext, useReducer} from 'react';\r\n\r\nimport StateModel, {PersonKind, User} from \"./State.model\";\r\nimport {Reducer} from \"./Reducer\";\r\n\r\nconst getSavedUserInfo = (): User => {\r\n const userToken = localStorage.getItem('user:authtoken');\r\n console.log(`CHECK LOCAL STORAGE FOR USER`);\r\n\r\n return {\r\n //activePass: null,\r\n personaType: PersonKind.None,\r\n loggedIn: false,\r\n token: userToken || '',\r\n firstName: '',\r\n lastName: '',\r\n contactNumber: '',\r\n //lastLocation: null,\r\n //metadataQuestions:null,\r\n kind: 0,\r\n roles: [],\r\n outcomes: []\r\n };\r\n}\r\n\r\nconst initialState: StateModel = {\r\n user: getSavedUserInfo()\r\n};\r\n\r\nconst Store = (props: any) => {\r\n const [state, dispatch] = useReducer(Reducer, initialState);\r\n\r\n const value = { state, dispatch };\r\n\r\n return (\r\n // @ts-ignore\r\n \r\n { props.children }\r\n \r\n );\r\n};\r\n\r\nexport interface IDispatchAction {\r\n type: string,\r\n payload: any\r\n}\r\n\r\nexport const Context = createContext({\r\n state: initialState,\r\n dispatch: (action: any) => null,\r\n});\r\nexport default Store;","import React, {useEffect} from \"react\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n form: {\r\n width: '99%', // Fix IE11 issue.\r\n margin:'auto',\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1)\r\n },\r\n}))\r\n\r\nexport const ValidatedForm = (props: any) => {\r\n const classes = useStyles();\r\n\r\n useEffect(()=>{\r\n React.Children.forEach(props.children, element => {\r\n if (!React.isValidElement(element)) return\r\n })\r\n },[])\r\n\r\n const isFormValid = (): boolean => {\r\n return true\r\n }\r\n\r\n const formChildren = React.Children.map(props.children, child => {\r\n if(child)\r\n return React.cloneElement(child);\r\n });\r\n\r\n return (\r\n {\r\n event.preventDefault();\r\n }}>\r\n {formChildren}\r\n \r\n )\r\n}","//Hook useAuth\r\nimport React, {createContext, useContext, useEffect, useState} from 'react'\r\nimport StateModel, {AuthContext, User} from \"../state/State.model\";\r\nimport * as api from '../data/api'\r\nimport {PersonKind} from \"../state/State.model\";\r\n\r\n\r\n\r\nconst initialState: AuthContext = {\r\n user: null\r\n};\r\n\r\n\r\nconst authContext = createContext(initialState);\r\n\r\n// Provider component that wraps your app and makes auth object ...\r\n// ... available to any child component that calls useAuth().\r\nexport const ProvideAuth = (props:any) => {\r\n const auth = useProvideAuth();\r\n return {props.children};\r\n}\r\n// Hook for child components to get the auth object ...\r\n// ... and re-render when it changes.\r\nexport const useAuth = () => {\r\n return useContext(authContext);\r\n};\r\n// Provider hook that creates auth object and handles state\r\nconst useProvideAuth = ():AuthContext => {\r\n const [user, setUser] = useState(null);\r\n // Wrap any Firebase methods we want to use making sure ...\r\n // ... to save the user to state.\r\n const signIn = (firstName:string, lastName:string, contactNumber:string, dob:string, address:string):any => {\r\n return api\r\n .getJwtToken(firstName, lastName, contactNumber, 6, {\r\n dateOfBirth: dob,\r\n address: address\r\n })\r\n .then((response) => {\r\n setUser(response.user);\r\n return { user: response.user};\r\n });\r\n };\r\n const signOut = () => {\r\n setUser(null);\r\n };\r\n // Subscribe to user on mount\r\n // Because this sets state in the callback it will cause any ...\r\n // ... component that utilizes this hook to re-render with the ...\r\n // ... latest auth object.\r\n // useEffect(() => {\r\n // const unsubscribe = () => {\r\n // if (user) {\r\n // setUser(user);\r\n // } else {\r\n // setUser(null);\r\n // }\r\n // };\r\n // // Cleanup subscription on unmount\r\n // return () => unsubscribe();\r\n // }, [user]);\r\n // Return the user object and auth methods\r\n return {\r\n user,\r\n signIn,\r\n signOut,\r\n };\r\n}","import React, { useContext, useEffect, useState } from \"react\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ValidationTextField } from \"../components/muiCore/TextField\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { CircularProgress, Divider } from \"@material-ui/core\";\r\nimport { MaskSolid } from \"../components/Icons/DoHIcons\";\r\nimport { getJwtToken, searchAddresses } from \"../data/api\";\r\nimport { PersonKind } from \"../state/State.model\";\r\nimport { Context } from \"../state/Store\";\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { ValidatedForm } from \"../components/core/forms/ValidatedForm\";\r\nimport { useAuth } from \"../auth/useAuth\";\r\nimport { googleMaps } from \"../components/core/maps/maps\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(8),\r\n marginBottom: theme.spacing(2),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.primary.main,\r\n // Thomas changed teh 60 to 100\r\n width: \"100px\",\r\n height: \"100px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: \"64px\",\r\n height: \"64px\",\r\n },\r\n },\r\n heading: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: \"1.3rem!important\",\r\n // added the center\r\n textAlign: \"center\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"1.3rem!important\",\r\n fontWeight: \"600!important\",\r\n lineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n },\r\n },\r\n icon: {\r\n //fontSize: '2rem!important',\r\n color: theme.palette.primary.contrastText,\r\n //maxWidth: 'unset',\r\n //minWidth: '40px',\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"3rem!important\",\r\n margin: \"10pxImportant\",\r\n },\r\n fontSize: \"3rem!important\",\r\n margin: \"10pxImportant\",\r\n },\r\n}));\r\n\r\nexport const Registration = (props: any) => {\r\n const classes = useStyles();\r\n let history = useHistory();\r\n const region = new URLSearchParams(useLocation().search).get(\"region\");\r\n useEffect(() => {\r\n if (!region) {\r\n history.push(\"/\");\r\n }\r\n });\r\n\r\n const { state, dispatch } = useContext(Context);\r\n // Get auth state and re-render anytime it changes\r\n const auth = useAuth();\r\n\r\n const [firstName, setFirstName] = useState(\"\");\r\n const [lastName, setLastName] = useState(\"\");\r\n const [contactNumber, setContactNumber] = useState(\"\");\r\n const [dateOfBirth, setDateOfBirth] = useState(\"\");\r\n const [address, setAddress] = useState(\"\");\r\n const [longitude, setLongitude] = useState();\r\n const [latitude, setLatitude] = useState();\r\n const [gpPractice, setGPPractice] = useState(\"\");\r\n const [gpName, setGPName] = useState(\"\");\r\n const [addressOptions, setAddressOptions] = React.useState([]);\r\n\r\n const [cbxRememberMe, setCbxRememberMe] = useState(true);\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({\r\n mobile: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n firstName: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n lastName: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n dateOfBirth: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n address: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\r\n const handleChange = (event: React.ChangeEvent) => {\r\n setCbxRememberMe(event.target.checked);\r\n };\r\n\r\n useEffect(() => {\r\n if (address && address.length > 3) {\r\n searchAddresses(address)\r\n .then((d) => setAddressOptions(d))\r\n .catch((e) => setAddressOptions([]));\r\n }\r\n }, [address]);\r\n\r\n const isFormValid = (): boolean => {\r\n let valid = true;\r\n let errors = { ...formErrors };\r\n\r\n if (!firstName) {\r\n errors.firstName.valid = false;\r\n errors.firstName.errorMessage = \"First name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.firstName.valid = true;\r\n errors.firstName.errorMessage = \"\";\r\n }\r\n\r\n if (!lastName) {\r\n errors.lastName.valid = false;\r\n errors.lastName.errorMessage = \"Last name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.lastName.valid = true;\r\n errors.lastName.errorMessage = \"\";\r\n }\r\n\r\n if (!contactNumber) {\r\n errors.mobile.valid = false;\r\n errors.mobile.errorMessage = \"Contact number can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.mobile.valid = true;\r\n errors.mobile.errorMessage = \"\";\r\n\r\n if (!/^[0][0-9]{9}$|^[1300][0-9]{9}$/.test(contactNumber)) {\r\n errors.mobile.valid = false;\r\n errors.mobile.errorMessage =\r\n \"Please provide valid contact number 10 digits with no spaces - eg. 0400123456 or 0362291643\";\r\n valid = false;\r\n }\r\n }\r\n\r\n if (!dateOfBirth) {\r\n errors.dateOfBirth.valid = false;\r\n errors.dateOfBirth.errorMessage = \"Date Of Birth can not be blank\";\r\n valid = false;\r\n } else if (!dobValidator(dateOfBirth)) {\r\n errors.dateOfBirth.valid = false;\r\n errors.dateOfBirth.errorMessage = \"Date Of Birth invalid\";\r\n valid = false;\r\n } else {\r\n errors.dateOfBirth.valid = true;\r\n errors.dateOfBirth.errorMessage = \"\";\r\n }\r\n\r\n if (!address) {\r\n errors.address.valid = false;\r\n errors.address.errorMessage = \"Address can not be blank\";\r\n valid = false;\r\n } else if (!addressValidator(address)) {\r\n errors.address.valid = false;\r\n errors.address.errorMessage = \"Address can not start with space\";\r\n valid = false;\r\n } else {\r\n errors.address.valid = true;\r\n errors.address.errorMessage = \"\";\r\n }\r\n\r\n setFormErrors(errors);\r\n return valid;\r\n };\r\n\r\n const dobValidator = (dob: string): boolean => {\r\n let dobObj = new Date(dob);\r\n let today = new Date();\r\n\r\n if (dobObj > today) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n const addressValidator = (address: string): boolean => {\r\n if (address.charAt(0) === \" \") {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n function addressAutocomplete(htmlElelment: HTMLDivElement | null) {\r\n if (htmlElelment) {\r\n googleMaps().then(() => {\r\n const autocomplete = new google.maps.places.Autocomplete(\r\n htmlElelment as HTMLInputElement,\r\n {\r\n componentRestrictions: { country: \"au\" },\r\n fields: [\"formatted_address\", \"geometry\", \"name\"],\r\n strictBounds: false,\r\n types: [\"address\"],\r\n }\r\n );\r\n autocomplete.addListener(\"place_changed\", () => {\r\n if (autocomplete.getPlace().geometry) {\r\n setLongitude(autocomplete.getPlace().geometry?.location?.lng());\r\n setLatitude(autocomplete.getPlace().geometry?.location?.lat());\r\n }\r\n\r\n if (autocomplete.getPlace().formatted_address)\r\n setAddress(autocomplete.getPlace().formatted_address!);\r\n });\r\n });\r\n }\r\n }\r\n\r\n const onSubmit = () => {\r\n if (isFormValid()) {\r\n getJwtToken(firstName, lastName, contactNumber, PersonKind.Public, {\r\n dateOfBirth: dateOfBirth,\r\n address: address,\r\n latitude: latitude,\r\n longitude: longitude,\r\n gpName: gpName,\r\n gpPractice: gpPractice,\r\n })\r\n .then((d) => {\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n ...d.user,\r\n token: d.token,\r\n },\r\n });\r\n if (d.user?.activePass != null) {\r\n } else {\r\n history.push(\r\n \"/questionnaire?region=\" + encodeURIComponent(region!)\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n // console.log(err);\r\n // console.debug(`PersonasContainer::Dispatch::SET_ERROR`);\r\n setLoading(false);\r\n });\r\n } else {\r\n //console.log(auth);\r\n setLoading(false);\r\n }\r\n };\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n COVID-19 Test Registration Information\r\n \r\n \r\n {\r\n setFirstName(e.target.value);\r\n }}\r\n variant=\"outlined\"\r\n disabled={loading}\r\n />\r\n {\r\n setLastName(e!.target.value);\r\n }}\r\n variant=\"outlined\"\r\n validation={{ required: true }}\r\n disabled={loading}\r\n />\r\n {\r\n setContactNumber(e.target.value);\r\n }}\r\n //value={txtMobile || ''}\r\n type={\"tel\"}\r\n disabled={loading}\r\n />\r\n {\r\n setDateOfBirth(e.target.value);\r\n }}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n type={\"date\"}\r\n disabled={loading}\r\n />\r\n {\r\n console.log(val);\r\n setAddress(val);\r\n }}\r\n //onSelect={(event: any, value: string) => setAddress(value)}\r\n renderInput={(params) => (\r\n {\r\n setAddress(e.target.value);\r\n }}\r\n //value={address}\r\n />\r\n )}\r\n />\r\n {\r\n setGPName(e.target.value);\r\n }}\r\n disabled={loading}\r\n />\r\n {\r\n setGPPractice(e.target.value);\r\n }}\r\n disabled={loading}\r\n />\r\n
\r\n \r\n ) => {\r\n event.preventDefault();\r\n setLoading(true);\r\n onSubmit();\r\n }}\r\n >\r\n {loading && }\r\n {!loading && \"Next\"}\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport {\r\n Box,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText, Tooltip,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\nimport {createStyles, Theme, withStyles} from \"@material-ui/core/styles\";\r\nimport DeleteSweepOutlinedIcon from '@material-ui/icons/DeleteSweepOutlined';\r\nimport PlaylistAddOutlinedIcon from '@material-ui/icons/PlaylistAddOutlined';\r\n\r\nconst StyledTypography = withStyles((theme: Theme) =>\r\n createStyles({\r\n body1: {\r\n fontSize: \"20px!important\",\r\n color: \"#FFF\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n paddingRight: \"10px\",\r\n paddingLeft: \"10px\",\r\n fontSize: \"18px\",\r\n color: \"#fff\",\r\n // color:'#133650',\r\n // Thomas added the marginTop\r\n marginTop: \"10px\",\r\n },\r\n \"& .ml15\": {\r\n marginLeft: \"15px\",\r\n },\r\n \"& .ml20\": {\r\n marginLeft: \"20px\",\r\n },\r\n },\r\n })\r\n)(Typography);\r\nconst StyledListItemText = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n })\r\n)(ListItemText);\r\nconst StyledListItemIcon = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n //marginRight: \"-15px\",\r\n marginLeft: \"15px\",\r\n color: \"#FFF!important\",\r\n justifyContent: \"center\",\r\n display: \"grid\",\r\n alignContent: \"center\",\r\n },\r\n })\r\n)(ListItemIcon);\r\nconst StyledListItemIconRepeater = withStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n //marginRight: \"-15px\",\r\n marginLeft: \"15px\",\r\n color: \"#FFF!important\",\r\n justifyContent: \"center\",\r\n display: \"grid\",\r\n alignContent: \"center\",\r\n fontSize:'3rem!important'\r\n },\r\n })\r\n)(ListItemIcon);\r\nconst QuestionHeaderBox = withStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n paddingTop: \"20px\",\r\n\r\n paddingLeft: \"5px\",\r\n backgroundColor: theme.palette.primary.light,\r\n\r\n boxShadow:\r\n \"0 2px 4px -2px rgba(0,0,0,0.24), 0 4px 24px -2px rgba(0, 0, 0, 0.2)\",\r\n minHeight: \"70px\",\r\n fontWeight: 550,\r\n fontSize: theme.typography.fontSize,\r\n padding: \"0.5em 0 0.5em 0.25em\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"0.5em 0 0.5em 0.25em\",\r\n },\r\n },\r\n}))(Box);\r\nconst QuestionRepeaterHeaderBox = withStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n //paddingTop: \"20px\",\r\n\r\n paddingLeft: \"5px\",\r\n backgroundColor: theme.palette.primary.main,\r\n\r\n boxShadow:\r\n \"0 2px 4px -2px rgba(0,0,0,0.24), 0 4px 24px -2px rgba(0, 0, 0, 0.2)\",\r\n //minHeight: \"70px\",\r\n fontWeight: 550,\r\n fontSize: theme.typography.fontSize,\r\n //padding: \"0.5em 0 0.5em 0.25em\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"0.5em 0 0.5em 0.25em\",\r\n },\r\n },\r\n}))(Box);\r\nconst QuestionNestedHeaderBox = withStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n paddingTop: \"20px\",\r\n\r\n paddingLeft: \"5px\",\r\n //backgroundColor: theme.palette.primary.main,\r\n\r\n //boxShadow: '0 2px 4px -2px rgba(0,0,0,0.24), 0 4px 24px -2px rgba(0, 0, 0, 0.2)',\r\n\r\n minHeight: \"30px\",\r\n fontWeight: 550,\r\n fontSize: theme.typography.fontSize,\r\n padding: \"0.5em 0 0.5em 1em\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: \"0.5em 0 0.5em 0.25em\",\r\n },\r\n },\r\n}))(Box);\r\n\r\nexport const QuestionHeader = (props: any) => {\r\n return (\r\n \r\n {props.index != 0 && (\r\n \r\n {\r\n props.onBack();\r\n }}\r\n />\r\n \r\n )}\r\n 0 ? \"5px\" : \"20px\"}`}}\r\n // className={`${props.index > 0 ? \"ml20\" : \"ml15\"}`}\r\n // color=\"textPrimary\" Thomas commoned\r\n >\r\n {props.text}\r\n \r\n }\r\n />\r\n \r\n );\r\n};\r\nexport const QuestionRepeaterHeader = (props: any) => {\r\n return (\r\n \r\n\r\n \r\n {props.row >= 1 ? `${props.text} ${props.row + 1}` : props.text}\r\n \r\n }\r\n />\r\n {!props.readonly && (<>\r\n \r\n {\r\n props.onAddRow();\r\n }}\r\n />\r\n \r\n {props.row >= 1 && (\r\n \r\n {\r\n props.onRemoveRow();\r\n }}\r\n />\r\n \r\n )})}\r\n \r\n );\r\n};\r\nexport const QuestionNestedHeader = (props: any) => {\r\n return (\r\n \r\n {props.index != 0 && (\r\n \r\n {\r\n props.onBack();\r\n }}\r\n />\r\n \r\n )}\r\n \r\n {props.text}\r\n \r\n }\r\n />\r\n \r\n );\r\n};\r\n","import React, { ReactElement } from \"react\";\r\nimport {\r\n withStyles,\r\n makeStyles,\r\n Theme,\r\n createStyles,\r\n useTheme,\r\n} from \"@material-ui/core/styles\";\r\nimport {\r\n Divider,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n} from \"@material-ui/core\";\r\nimport { ThemeProvider, createMuiTheme } from \"@material-ui/core/styles\";\r\nimport {\r\n C19ContactIcon,\r\n CircleQuestionSolid,\r\n FeverIcon,\r\n HomeIsolationIcon,\r\n LossOfSmellIcon,\r\n LungsIcon,\r\n RunnyNoseIcon,\r\n TravelContactIcon,\r\n TravelIcon,\r\n UserNurseIcon,\r\n} from \"../../Icons/DoHIcons\";\r\nimport RecordVoiceOverSharpIcon from \"@material-ui/icons/RecordVoiceOverSharp\";\r\nimport { SubQuestion } from \"../../../common/client\";\r\n\r\nconst SubQuestionListIcon = withStyles((theme) => ({\r\n root: {\r\n marginRight: \"18px\",\r\n \"& :hover\": {\r\n color: theme.palette.primary.main,\r\n cursor: \"default\",\r\n },\r\n },\r\n}))(ListItemIcon);\r\nconst SubQuestionNestedListIcon = withStyles((theme) => ({\r\n root: {\r\n marginRight: \"18px\",\r\n fontSize: \"2.5rem!important\",\r\n \"& :hover\": {\r\n color: theme.palette.primary.main,\r\n cursor: \"default\",\r\n },\r\n },\r\n}))(ListItemIcon);\r\nconst QuestionSubQuestionListIcon = withStyles((theme) => ({\r\n root: {\r\n marginRight: \"18px\",\r\n \"& :hover\": {\r\n color: theme.palette.secondary.main,\r\n cursor: \"default\",\r\n },\r\n },\r\n}))(ListItemIcon);\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n icon: {\r\n color: theme.palette.primary.light,\r\n maxWidth: \"unset\",\r\n maxHeight: \"unset\",\r\n fontSize: \"2.5rem!important\",\r\n },\r\n })\r\n);\r\n\r\nexport const SubQuestionIcon = (icon: any): ReactElement => {\r\n switch (icon) {\r\n case \"breath\":\r\n return ;\r\n case \"fever\":\r\n return ;\r\n case \"smell\":\r\n return ;\r\n case \"nose\":\r\n return ;\r\n case \"contact\":\r\n return ;\r\n case \"travel\":\r\n return ;\r\n case \"travelContact\":\r\n return ;\r\n case \"homeIsolation\":\r\n return ;\r\n case \"interpreter\":\r\n return ;\r\n case \"UserNurseIcon\":\r\n return ;\r\n default:\r\n return ;\r\n }\r\n};\r\n\r\nexport const QuestionItemSubQuestion = (props: any) => {\r\n return props.subQuestions.map((sub: any, i: number) => (\r\n
\r\n \r\n {SubQuestionIcon(sub.icon)}\r\n }\r\n />\r\n \r\n \r\n
\r\n ));\r\n};\r\n\r\nexport const QuestionItemNestedSubQuestion = (props: any) => {\r\n return props.subQuestions.map((sub: any, i: number) => (\r\n
\r\n \r\n \r\n {SubQuestionIcon(sub.icon)}\r\n \r\n }\r\n />\r\n \r\n \r\n
\r\n ));\r\n};\r\n\r\nexport interface SubQuestionDetails {\r\n icon?: string;\r\n text: string;\r\n}\r\n\r\nexport interface QuestionSubQuestionProps {\r\n subQuestions: SubQuestionDetails[];\r\n required?: boolean;\r\n}\r\n\r\nexport const QuestionSubQuestion = (props: QuestionSubQuestionProps) => {\r\n const theme = useTheme();\r\n\r\n theme.overrides = {\r\n ...theme.overrides,\r\n MuiListItem: {\r\n //...theme.MuiListItem,\r\n root: {\r\n backgroundColor: \"#e9ebed\", //theme.palette.secondary.main,\r\n },\r\n gutters: {\r\n padding: \"0.5em 0 0.5em 1em\",\r\n },\r\n },\r\n MuiListItemText: {\r\n root: {\r\n color: theme.palette.primary.contrastText,\r\n },\r\n },\r\n MuiTypography: {\r\n body1: {\r\n color: theme.palette.primary.light,\r\n },\r\n },\r\n };\r\n const classes = useStyles();\r\n\r\n const StyledIcon = (subQuestionIcon: ReactElement): JSX.Element | null => {\r\n if (subQuestionIcon)\r\n return React.cloneElement(subQuestionIcon as JSX.Element, {\r\n className: classes.icon,\r\n });\r\n return null;\r\n };\r\n return (\r\n \r\n {props.subQuestions.map((sub: SubQuestionDetails, i: number) => (\r\n
\r\n \r\n \r\n {/* \r\n {StyledIcon(SubQuestionIcon(sub.icon))}\r\n */}\r\n \r\n {sub.text}\r\n {props.required && (\r\n *\r\n )}\r\n \r\n }\r\n />\r\n \r\n \r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport {\r\n Divider,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n makeStyles,\r\n useTheme,\r\n} from \"@material-ui/core\";\r\nimport RadioButtonCheckedOutlinedIcon from \"@material-ui/icons/RadioButtonCheckedOutlined\";\r\nimport RadioButtonUncheckedOutlinedIcon from \"@material-ui/icons/RadioButtonUncheckedOutlined\";\r\nimport { QuestionChoice } from \"../../../common/client\";\r\nimport { FormControl, useControlValue } from \"@react-typed-forms/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n maxWidth: \"660px\", //Default width overriden by props.maxWidth\r\n margin: \"auto\",\r\n },\r\n btnActive: {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\r\n color: theme.palette.primary.main,\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\r\n },\r\n },\r\n btnStartIcon: {\r\n width: \"35px\",\r\n height: \"35px\",\r\n },\r\n}));\r\n\r\nexport const QuestionItemRadioButton = (props: {\r\n radioButtons: QuestionChoice[] | undefined;\r\n onSelected: (selected: QuestionChoice) => void;\r\n readonly?: boolean;\r\n selected?: string;\r\n}) => {\r\n const classes = useStyles();\r\n const [selectedRadioButton, setSelectedRadioButton] = useState();\r\n\r\n return (\r\n <>\r\n {props.radioButtons &&\r\n props.radioButtons.map((radioButton: QuestionChoice, i: number) => {\r\n const selected = props.selected\r\n ? props.selected === radioButton.id\r\n : (radioButton as any).selected;\r\n return (\r\n
\r\n {\r\n if (!props.readonly) {\r\n setSelectedRadioButton(radioButton);\r\n if (props.onSelected) {\r\n props.onSelected(radioButton);\r\n }\r\n }\r\n }}\r\n >\r\n \r\n {selected ||\r\n selectedRadioButton?.text === radioButton.text ? (\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 const QuestionItemNestedRadioButton = ({\r\n control,\r\n ...props\r\n}: {\r\n radioButtons: QuestionChoice[] | undefined;\r\n control: FormControl;\r\n readonly?: boolean;\r\n}) => {\r\n const classes = useStyles();\r\n const selectedChoice = useControlValue(control);\r\n const theme = useTheme();\r\n\r\n theme.overrides = {\r\n ...theme.overrides,\r\n MuiListItem: {\r\n gutters: {\r\n padding: \"1em 0 1em 1em\",\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <>\r\n {props.radioButtons &&\r\n props.radioButtons.map((radioButton, i: number) => {\r\n const selected = radioButton.id === selectedChoice;\r\n return (\r\n
\r\n {\r\n control.setValue(\r\n selectedChoice === radioButton.id\r\n ? undefined\r\n : radioButton.id\r\n );\r\n }}\r\n >\r\n \r\n {selected ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Divider,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n makeStyles,\r\n} from \"@material-ui/core\";\r\nimport { Dependant } from \"../forms/Dependants\";\r\nimport CheckBoxOutlinedIcon from \"@material-ui/icons/CheckBoxOutlined\";\r\nimport CheckBoxOutlineBlankOutlinedIcon from \"@material-ui/icons/CheckBoxOutlineBlankOutlined\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n maxWidth: \"660px\", //Default width overriden by props.maxWidth\r\n margin: \"auto\",\r\n },\r\n btnActive: {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\r\n color: theme.palette.primary.main,\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\r\n },\r\n },\r\n btnStartIcon: {\r\n width: \"35px\",\r\n height: \"35px\",\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"rgba(0, 0, 0, 0.64)\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nexport const QuestionItemCheckBox = (props: any) => {\r\n console.log(props);\r\n\r\n const [selectedCheckBox, setSelectedCheckBox] = useState<\r\n { id: string; text: string; selected: boolean; visible: boolean }[]\r\n >(props.choices);\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n {props.checkBoxes &&\r\n props.checkBoxes.map((checkBox: any, i: number) => {\r\n //update selectedChoices\r\n return (\r\n checkBox.visible && (\r\n
\r\n {\r\n setSelectedCheckBox(checkBox);\r\n if (props.onSelected) {\r\n props.onSelected(checkBox);\r\n }\r\n }}\r\n >\r\n \r\n {checkBox.selected ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import React, {\r\n forwardRef,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport { ValidationTextField } from \"../../muiCore/TextField\";\r\nimport TextField, {TextFieldProps} from \"@material-ui/core/TextField\";\r\nimport { ValidatedForm } from \"../forms/ValidatedForm\";\r\n\r\nexport const QuestionItemTextField = forwardRef((props: any, TextFieldProps) => {\r\n const [textFieldErrors, setTextFieldErrors] = useState({\r\n required: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\r\n const [textFieldValue, setTextFieldValue] = useState();\r\n\r\n const isValid = (): boolean => {\r\n let valid = true;\r\n let errors = { ...textFieldErrors };\r\n\r\n if (props.required) {\r\n if (!textFieldValue) {\r\n errors.required.valid = false;\r\n errors.required.errorMessage = \"Please provide additional information.\";\r\n valid = false;\r\n } else {\r\n errors.required.valid = true;\r\n errors.required.errorMessage = \"\";\r\n }\r\n }\r\n\r\n setTextFieldErrors(errors);\r\n return valid;\r\n };\r\n // useImperativeHandle(ref, () => ({\r\n // resetValidationErrors: () => {\r\n // setTextFieldErrors({\r\n // ...textFieldErrors,\r\n // required: { valid: true, errorMessage: \"This is a required field\" },\r\n // });\r\n // },\r\n // validate: (): boolean => {\r\n // //console.log(textFieldValue)\r\n // return isValid();\r\n // },\r\n // clearTextField: () => {\r\n // setTextFieldValue(\"\");\r\n // },\r\n // text: (): string => textFieldValue,\r\n // id: (): string => props.id,\r\n // }));\r\n\r\n useEffect(() => {\r\n setTextFieldValue(props.value);\r\n }, [props.value]);\r\n useEffect(() => {\r\n if (props.checkValidation) {\r\n props.isValid(isValid());\r\n }\r\n }, [props.checkValidation]);\r\n\r\n return (\r\n \r\n {\r\n props.onChange(e.target.value);\r\n }}\r\n //value={textFieldValue}\r\n variant=\"outlined\"\r\n />\r\n \r\n );\r\n});\r\n","import React, {useEffect, useRef, useState} from \"react\";\r\nimport {\r\n Button,\r\n ButtonGroup,\r\n Collapse,\r\n Divider,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n makeStyles, Typography\r\n} from \"@material-ui/core\";\r\nimport RadioButtonCheckedOutlinedIcon from \"@material-ui/icons/RadioButtonCheckedOutlined\";\r\nimport RadioButtonUncheckedOutlinedIcon from \"@material-ui/icons/RadioButtonUncheckedOutlined\";\r\nimport {QuestionItemTextField} from \"./QuestionItemTextField\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: '0px',\r\n left: '0px',\r\n width: '100%'\r\n },\r\n display: \"flex!important\",\r\n textAlign: 'center',\r\n maxWidth: '660px',//Default width overriden by props.maxWidth\r\n margin: \"auto\",\r\n },\r\n btnActive: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n color: theme.palette.primary.main,\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n },\r\n },\r\n btnStartIcon: {\r\n width: '35px',\r\n height: '35px'\r\n }\r\n}));\r\n\r\nexport const RadioButtonsWithAdditionalInfoTextField = (props: any) => {\r\n\r\n const classes = useStyles();\r\n const [selectedRadioButton, setSelectedRadioButton] = useState();\r\n\r\n const textFieldRef = useRef(null);\r\n const [additionalInfoRequired, setAdditionalInfoRequired] = React.useState(false);\r\n const [additionalInformation, setAdditionalInformation] = useState('')\r\n const [radioButtons, setRadioButtons] = useState()\r\n\r\n useEffect(() => {\r\n setRadioButtons(props.radioButtons)\r\n }, [props.radioButtons])\r\n\r\n useEffect(() => {\r\n console.log('radioButtons_ONCHANGE')\r\n console.log(radioButtons)\r\n if (radioButtons) {\r\n let index = radioButtons!.findIndex((radioButton: any) => radioButton.selected)\r\n\r\n if (index != -1) {\r\n\r\n setAdditionalInformation(radioButtons[index].additionalInformation)\r\n setAdditionalInfoRequired(radioButtons[index].additionalInfoRequired)\r\n setSelectedRadioButton(radioButtons[index])\r\n }\r\n }\r\n\r\n }, [radioButtons])\r\n\r\n return (\r\n <>\r\n {radioButtons?.length > 0 && radioButtons.map((radioButton: any, i: number) => {\r\n return (\r\n
\r\n {\r\n \r\n setSelectedRadioButton(radioButton);\r\n\r\n setRadioButtons(radioButtons.map((rBtn: any) => (rBtn.id != radioButton.id ? {\r\n ...rBtn,\r\n selected: false,\r\n additionalInformation: null\r\n } : radioButton\r\n )))\r\n\r\n if (radioButton.additionalInfoRequired) {\r\n setAdditionalInfoRequired(true)\r\n } \r\n else {\r\n textFieldRef?.current.clearTextField()\r\n setAdditionalInfoRequired(false)\r\n if (props.onSelected) {\r\n props.onSelected(radioButton)\r\n }\r\n }\r\n }}>\r\n \r\n {\r\n radioButton.selected || selectedRadioButton?.text === radioButton.text ?\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}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n Divider,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport CheckBoxOutlinedIcon from \"@material-ui/icons/CheckBoxOutlined\";\r\nimport CheckBoxOutlineBlankIcon from \"@material-ui/icons/CheckBoxOutlineBlank\";\r\nimport cx from \"clsx\";\r\nimport { QuestionChoice } from \"../../../common/client\";\r\nimport RadioButtonCheckedOutlinedIcon from \"@material-ui/icons/RadioButtonCheckedOutlined\";\r\nimport RadioButtonUncheckedOutlinedIcon from \"@material-ui/icons/RadioButtonUncheckedOutlined\";\r\nimport { FormControl, useControlValue } from \"@react-typed-forms/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n margin: \"unset\",\r\n maxWidth: \"unset!important\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n },\r\n btnActive: {\r\n backgroundColor: theme.palette.primary.dark,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n btnStartIcon: {\r\n width: \"35px\",\r\n height: \"35px\",\r\n },\r\n w50: {\r\n width: \"50%\",\r\n },\r\n}));\r\n\r\nexport const QuestionItemNestedYesNoButtons = ({\r\n buttons,\r\n control,\r\n readonly,\r\n ...props\r\n}: {\r\n buttons: QuestionChoice[] | undefined;\r\n control: FormControl;\r\n readonly?: boolean;\r\n maxWidth?: string;\r\n hideCheckbox?: boolean;\r\n}) => {\r\n const classes = useStyles();\r\n const selectedChoice = useControlValue(control);\r\n\r\n return (\r\n \r\n \r\n {buttons &&\r\n buttons.map((button: QuestionChoice, i: number) => {\r\n const selected = button.id === selectedChoice;\r\n return (\r\n {\r\n control.setValue(\r\n selectedChoice === button.id ? undefined : button.id\r\n );\r\n }}\r\n >\r\n \r\n {selected ? (\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 const QuestionItemYesNoButtons = (props: {\r\n buttons: QuestionChoice[] | undefined;\r\n onSelected: (selected: QuestionChoice) => void;\r\n selected?: string;\r\n readonly?: boolean;\r\n maxWidth?: string;\r\n hideCheckbox?: boolean;\r\n}) => {\r\n const classes = useStyles();\r\n const [selectedButton, setSelectedButton] = useState();\r\n\r\n useEffect(() => {\r\n if (selectedButton && props.onSelected) {\r\n props.onSelected(selectedButton);\r\n }\r\n }, [selectedButton]);\r\n\r\n return (\r\n \r\n \r\n {props.buttons &&\r\n props.buttons.map((button: QuestionChoice, i: number) => {\r\n const selected = props.selected\r\n ? props.selected === button.id\r\n : (button as any).selected;\r\n return (\r\n {\r\n setSelectedButton(button);\r\n }}\r\n startIcon={\r\n !props.hideCheckbox ? (\r\n selected ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n <>\r\n )\r\n }\r\n >\r\n {button.text}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { ListItem, ListItemIcon, ListItemText, Divider, makeStyles, withStyles, Grid, Button, ButtonGroup, Typography, Collapse } from \"@material-ui/core\";\r\nimport AddOutlinedIcon from '@material-ui/icons/AddOutlined';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n\r\n\r\n//A version of QuestionChoiceCheckBox that will be adding our dependants \r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btnCheckbox: {\r\n paddingBottom: 16,\r\n },\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: '0px',\r\n left: '0px',\r\n width: '100%'\r\n },\r\n display: \"flex!important\",\r\n textAlign: 'center',\r\n maxWidth: '660px',//Default width overriden by props.maxWidth\r\n margin: \"auto\",\r\n },\r\n btnActive: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n color: theme.palette.primary.main,\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n },\r\n },\r\n btnStartIcon: {\r\n width: '35px',\r\n height: '35px'\r\n }, textField: {\r\n fontSize: '1.25rem',\r\n lineHeight: ' 1.4375rem',\r\n letterSpacing: '-.01875rem',\r\n\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: '1.25rem',\r\n lineHeight: ' 1.4375rem',\r\n letterSpacing: '-.01875rem'\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: '16px!important',\r\n }\r\n\r\n }\r\n}));\r\n\r\n\r\n\r\nconst ValidationTextField = withStyles({\r\n root: {\r\n '& .MuiFormHelperText-root': {\r\n fontSize: '0.9rem!Important'\r\n }\r\n },\r\n})(TextField);\r\n\r\nexport const Dependant = (props: any) => {\r\n\r\n const isFormValid = (): boolean => {\r\n let valid = true;\r\n let errors = { ...formErrors }\r\n\r\n if (!txtFirstName) {\r\n errors.firstName.valid = false;\r\n errors.firstName.errorMessage = 'First name can not be blank';\r\n valid = false\r\n }\r\n else {\r\n errors.firstName.valid = true;\r\n errors.firstName.errorMessage = '';\r\n }\r\n\r\n if (!txtLastName) {\r\n errors.lastName.valid = false;\r\n errors.lastName.errorMessage = 'Last name can not be blank';\r\n valid = false\r\n }\r\n else {\r\n errors.lastName.valid = true;\r\n errors.lastName.errorMessage = '';\r\n }\r\n\r\n setFormErrors(errors);\r\n return valid;\r\n }\r\n\r\n const onSubmit = () => {\r\n if (isFormValid()) {\r\n console.log('form valid');\r\n setIsAddingDependant(!isAddingDependant);\r\n setTxtFirstName(\"\");\r\n setTxtLastName(\"\");\r\n\r\n if (props.submit) {\r\n props.submit(txtFirstName, txtLastName);\r\n }\r\n }\r\n else {\r\n console.log('form not valid')\r\n }\r\n }\r\n\r\n //Component State\r\n const [txtFirstName, setTxtFirstName] = useState();\r\n const [txtLastName, setTxtLastName] = useState();\r\n const [formErrors, setFormErrors] = useState({\r\n firstName: {\r\n valid: true,\r\n errorMessage: ''\r\n },\r\n lastName: {\r\n valid: true,\r\n errorMessage: ''\r\n }\r\n });\r\n const classes = useStyles();\r\n\r\n const [isAddingDependant, setIsAddingDependant] = useState(false);\r\n\r\n const renderForm = () => {\r\n return (\r\n <>\r\n
{\r\n event.preventDefault();\r\n }}>\r\n\r\n \r\n \r\n {\r\n setTxtFirstName(e.target.value)\r\n }}\r\n variant=\"outlined\"\r\n />\r\n {\r\n setTxtLastName(e.target.value)\r\n }}\r\n />\r\n \r\n \r\n {\r\n onSubmit()\r\n }}\r\n >Save Dependant\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n }\r\n\r\n const renderAddDependantButton = () => {\r\n return (\r\n <>\r\n \r\n className={`${props.response === \"Add a Dependant\" ? classes.btnActive : ''}`}\r\n\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const render = () => {\r\n return (\r\n
\r\n \r\n {!isAddingDependant ? renderAddDependantButton() : renderForm()}\r\n \r\n \r\n
\r\n )\r\n }\r\n //{ isAddingDependant ? null : renderAddDependantButton()}\r\n\r\n return (\r\n render()\r\n );\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport CheckBoxOutlinedIcon from \"@material-ui/icons/CheckBoxOutlined\";\r\nimport CheckBoxOutlineBlankIcon from \"@material-ui/icons/CheckBoxOutlineBlank\";\r\nimport cx from \"clsx\";\r\nimport { debug } from \"console\";\r\nimport { QuestionChoice } from \"../../../common/client\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n margin: \"unset\",\r\n maxWidth: \"unset!important\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n },\r\n btnActive: {\r\n backgroundColor: theme.palette.primary.dark,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n btnStartIcon: {\r\n fontSize: \"2rem!important\",\r\n maxWidth: \"unset\",\r\n minWidth: \"40px\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"3rem!important\",\r\n },\r\n },\r\n}));\r\n\r\nexport const QuestionItemNextSkipButton = (props: any) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const QuestionItemChoiceButton = (props: {\r\n maxWidth?: number;\r\n choices: QuestionChoice[];\r\n onSelected: (s: QuestionChoice) => void;\r\n}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {props.choices &&\r\n props.choices.map((button: any, i: number) => (\r\n {\r\n props.onSelected(button);\r\n }}\r\n >\r\n {button.text}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n","//----------------------\r\n// \r\n// Generated using the NSwag toolchain v13.19.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v12.0.0.0)) (http://NSwag.org)\r\n// \r\n//----------------------\r\n\r\n/* tslint:disable */\r\n/* eslint-disable */\r\n// ReSharper disable InconsistentNaming\r\n\r\nexport class AddressClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n search(q: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Address/search?\";\r\n if (q !== undefined && q !== null)\r\n url_ += \"q=\" + encodeURIComponent(\"\" + q) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSearch(_response);\r\n });\r\n }\r\n\r\n protected processSearch(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as string[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n searchFull(q: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Address/searchFull?\";\r\n if (q !== undefined && q !== null)\r\n url_ += \"q=\" + encodeURIComponent(\"\" + q) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSearchFull(_response);\r\n });\r\n }\r\n\r\n protected processSearchFull(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as Address[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class BookingClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n addBooking(booking: CreateBookingDTO): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n const content_ = JSON.stringify(booking);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAddBooking(_response);\r\n });\r\n }\r\n\r\n protected processAddBooking(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getBookingsByDate(startDate: string, endDate: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/bydate/{startDate}/{endDate}\";\r\n if (startDate === undefined || startDate === null)\r\n throw new Error(\"The parameter 'startDate' must be defined.\");\r\n url_ = url_.replace(\"{startDate}\", encodeURIComponent(\"\" + startDate));\r\n if (endDate === undefined || endDate === null)\r\n throw new Error(\"The parameter 'endDate' must be defined.\");\r\n url_ = url_.replace(\"{endDate}\", encodeURIComponent(\"\" + endDate));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetBookingsByDate(_response);\r\n });\r\n }\r\n\r\n protected processGetBookingsByDate(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ViewBookingDTO[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getCovidBookings(): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/covid\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetCovidBookings(_response);\r\n });\r\n }\r\n\r\n protected processGetCovidBookings(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ViewBookingDTO[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getSalivaBookings(): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/saliva\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetSalivaBookings(_response);\r\n });\r\n }\r\n\r\n protected processGetSalivaBookings(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ViewBookingDTO[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getBooking(bookingId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/{bookingId}\";\r\n if (bookingId === undefined || bookingId === null)\r\n throw new Error(\"The parameter 'bookingId' must be defined.\");\r\n url_ = url_.replace(\"{bookingId}\", encodeURIComponent(\"\" + bookingId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetBooking(_response);\r\n });\r\n }\r\n\r\n protected processGetBooking(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ViewBookingDTO;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteBooking(bookingId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/{bookingId}\";\r\n if (bookingId === undefined || bookingId === null)\r\n throw new Error(\"The parameter 'bookingId' must be defined.\");\r\n url_ = url_.replace(\"{bookingId}\", encodeURIComponent(\"\" + bookingId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteBooking(_response);\r\n });\r\n }\r\n\r\n protected processDeleteBooking(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n testReferral(): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/testreferral\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processTestReferral(_response);\r\n });\r\n }\r\n\r\n protected processTestReferral(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n test(): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/test\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processTest(_response);\r\n });\r\n }\r\n\r\n protected processTest(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getAvailability(day: string, locationId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Booking/{locationId}/{day}\";\r\n if (day === undefined || day === null)\r\n throw new Error(\"The parameter 'day' must be defined.\");\r\n url_ = url_.replace(\"{day}\", encodeURIComponent(\"\" + day));\r\n if (locationId === undefined || locationId === null)\r\n throw new Error(\"The parameter 'locationId' must be defined.\");\r\n url_ = url_.replace(\"{locationId}\", encodeURIComponent(\"\" + locationId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetAvailability(_response);\r\n });\r\n }\r\n\r\n protected processGetAvailability(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AvailabilityDTO;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class DayPassClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n checkIn(viewModel: CheckInRequestViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/DayPass/CheckIn\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(viewModel);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCheckIn(_response);\r\n });\r\n }\r\n\r\n protected processCheckIn(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as Location;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class DependantsClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n createDependant(vm: CreateDependantViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/Dependants\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateDependant(_response);\r\n });\r\n }\r\n\r\n protected processCreateDependant(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getDependants(): Promise {\r\n let url_ = this.baseUrl + \"/api/Dependants\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetDependants(_response);\r\n });\r\n }\r\n\r\n protected processGetDependants(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class FormDataClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getLocations(): Promise {\r\n let url_ = this.baseUrl + \"/api/FormData/locations\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetLocations(_response);\r\n });\r\n }\r\n\r\n protected processGetLocations(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as Region[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getRegions(): Promise {\r\n let url_ = this.baseUrl + \"/api/FormData/regions\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetRegions(_response);\r\n });\r\n }\r\n\r\n protected processGetRegions(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as Region[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getLocationHierarchy(locationId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/FormData/locations/{locationId}/hierarchy\";\r\n if (locationId === undefined || locationId === null)\r\n throw new Error(\"The parameter 'locationId' must be defined.\");\r\n url_ = url_.replace(\"{locationId}\", encodeURIComponent(\"\" + locationId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetLocationHierarchy(_response);\r\n });\r\n }\r\n\r\n protected processGetLocationHierarchy(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as Location[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class QuestionnaireClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getQuestionnaires(): Promise<{ key: string; value: string; }[]> {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/GetQuestionnaires\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaires(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaires(response: Response): Promise<{ key: string; value: string; }[]> {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as NewQuestionnaireResponseVm;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve<{ key: string; value: string; }[]>(null as any);\r\n }\r\n\r\n getQuestions(): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/GetQuestions/\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\",\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestions(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestions(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as NewQuestionnaireResponseVm;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestionnaireEmailByResponse(responseID: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/GetQuestionnaireEmailByResponse/?responseId=\" + responseID;\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\",\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaireByResponse(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaireByResponse(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as string;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createResponse(viewModel: CreateQuestionnaireViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(viewModel);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateResponse(_response);\r\n });\r\n }\r\n\r\n protected processCreateResponse(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createNewResponse(questionnaireId: string, personId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{questionnaireId}/createResponse/{personId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (personId === undefined || personId === null)\r\n throw new Error(\"The parameter 'personId' must be defined.\");\r\n url_ = url_.replace(\"{personId}\", encodeURIComponent(\"\" + personId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateNewResponse(_response);\r\n });\r\n }\r\n\r\n protected processCreateNewResponse(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as NewQuestionnaireResponse;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createNewResponseForQueueWorkItem(questionnaireId: string, personId: string, queueWorkItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{questionnaireId}/createResponse/{personId}/{queueWorkItemId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (personId === undefined || personId === null)\r\n throw new Error(\"The parameter 'personId' must be defined.\");\r\n url_ = url_.replace(\"{personId}\", encodeURIComponent(\"\" + personId));\r\n if (queueWorkItemId === undefined || queueWorkItemId === null)\r\n throw new Error(\"The parameter 'queueWorkItemId' must be defined.\");\r\n url_ = url_.replace(\"{queueWorkItemId}\", encodeURIComponent(\"\" + queueWorkItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateNewResponseForQueueWorkItem(_response);\r\n });\r\n }\r\n\r\n protected processCreateNewResponseForQueueWorkItem(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as NewQuestionnaireResponse;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n attachDependant(questionnaireId: string, dependantId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{questionnaireId}/dependant/{dependantId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (dependantId === undefined || dependantId === null)\r\n throw new Error(\"The parameter 'dependantId' must be defined.\");\r\n url_ = url_.replace(\"{dependantId}\", encodeURIComponent(\"\" + dependantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAttachDependant(_response);\r\n });\r\n }\r\n\r\n protected processAttachDependant(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteDependant(questionnaireId: string, dependantId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{questionnaireId}/dependant/{dependantId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (dependantId === undefined || dependantId === null)\r\n throw new Error(\"The parameter 'dependantId' must be defined.\");\r\n url_ = url_.replace(\"{dependantId}\", encodeURIComponent(\"\" + dependantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteDependant(_response);\r\n });\r\n }\r\n\r\n protected processDeleteDependant(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n addQuestionChoice(questionnaireId: string, questionId: string, vm: QuestionResponseVm): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{questionnaireId}/{questionId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAddQuestionChoice(_response);\r\n });\r\n }\r\n\r\n protected processAddQuestionChoice(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n addQuestionChoiceByAdmin(questionnaireId: string, questionId: string, personId: string, vm: QuestionResponseVm): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{questionnaireId}/{questionId}/{personId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (personId === undefined || personId === null)\r\n throw new Error(\"The parameter 'personId' must be defined.\");\r\n url_ = url_.replace(\"{personId}\", encodeURIComponent(\"\" + personId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAddQuestionChoiceByAdmin(_response);\r\n });\r\n }\r\n\r\n protected processAddQuestionChoiceByAdmin(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n finaliseQuestionnaire(questionnaireId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{questionnaireId}/finalise\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processFinaliseQuestionnaire(_response);\r\n });\r\n }\r\n\r\n protected processFinaliseQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as FinaliseResultViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n finaliseQuestionnaireByAdmin(queueWorkItemId: string, questionnaireId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/{queueWorkItemId}/{questionnaireId}/finalise\";\r\n if (queueWorkItemId === undefined || queueWorkItemId === null)\r\n throw new Error(\"The parameter 'queueWorkItemId' must be defined.\");\r\n url_ = url_.replace(\"{queueWorkItemId}\", encodeURIComponent(\"\" + queueWorkItemId));\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processFinaliseQuestionnaireByAdmin(_response);\r\n });\r\n }\r\n\r\n protected processFinaliseQuestionnaireByAdmin(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as FinaliseResultViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n validateQuestionnaire(responseId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/validate/{responseId}\";\r\n if (responseId === undefined || responseId === null)\r\n throw new Error(\"The parameter 'responseId' must be defined.\");\r\n url_ = url_.replace(\"{responseId}\", encodeURIComponent(\"\" + responseId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processValidateQuestionnaire(_response);\r\n });\r\n }\r\n\r\n protected processValidateQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QuestionValidationError[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class ReferralClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n createReferral(referral: CreateReferralDTO): Promise {\r\n let url_ = this.baseUrl + \"/api/Referral\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(referral);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateReferral(_response);\r\n });\r\n }\r\n\r\n protected processCreateReferral(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class UserClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n userInfo(): Promise {\r\n let url_ = this.baseUrl + \"/api/User/info\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processUserInfo(_response);\r\n });\r\n }\r\n\r\n protected processUserInfo(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n authGate(viewModel: LoginUserViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/User/gate\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(viewModel);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAuthGate(_response);\r\n });\r\n }\r\n\r\n protected processAuthGate(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n login(returnUrl: string | null | undefined, kind: PersonKind | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/User/login?\";\r\n if (returnUrl !== undefined && returnUrl !== null)\r\n url_ += \"returnUrl=\" + encodeURIComponent(\"\" + returnUrl) + \"&\";\r\n if (kind === null)\r\n throw new Error(\"The parameter 'kind' cannot be null.\");\r\n else if (kind !== undefined)\r\n url_ += \"kind=\" + encodeURIComponent(\"\" + kind) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processLogin(_response);\r\n });\r\n }\r\n\r\n protected processLogin(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n loginCallback(returnUrl: string | null | undefined, kind: PersonKind | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/User/process?\";\r\n if (returnUrl !== undefined && returnUrl !== null)\r\n url_ += \"returnUrl=\" + encodeURIComponent(\"\" + returnUrl) + \"&\";\r\n if (kind === null)\r\n throw new Error(\"The parameter 'kind' cannot be null.\");\r\n else if (kind !== undefined)\r\n url_ += \"kind=\" + encodeURIComponent(\"\" + kind) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processLoginCallback(_response);\r\n });\r\n }\r\n\r\n protected processLoginCallback(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class AudiencesClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getAudiences(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Audiences\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetAudiences(_response);\r\n });\r\n }\r\n\r\n protected processGetAudiences(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AudienceViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class AuditClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getAuditReasons(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Audit/reasons\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetAuditReasons(_response);\r\n });\r\n }\r\n\r\n protected processGetAuditReasons(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class LocationsClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getLocations(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Locations\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetLocations(_response);\r\n });\r\n }\r\n\r\n protected processGetLocations(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createNewLocation(vm: NewLocationViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Locations\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateNewLocation(_response);\r\n });\r\n }\r\n\r\n protected processCreateNewLocation(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getLocation(locationId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Locations/{locationId}\";\r\n if (locationId === undefined || locationId === null)\r\n throw new Error(\"The parameter 'locationId' must be defined.\");\r\n url_ = url_.replace(\"{locationId}\", encodeURIComponent(\"\" + locationId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetLocation(_response);\r\n });\r\n }\r\n\r\n protected processGetLocation(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n editLocation(locationId: string, vm: NewLocationViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Locations/{locationId}\";\r\n if (locationId === undefined || locationId === null)\r\n throw new Error(\"The parameter 'locationId' must be defined.\");\r\n url_ = url_.replace(\"{locationId}\", encodeURIComponent(\"\" + locationId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"PATCH\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processEditLocation(_response);\r\n });\r\n }\r\n\r\n protected processEditLocation(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteLocation(locationId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Locations/{locationId}\";\r\n if (locationId === undefined || locationId === null)\r\n throw new Error(\"The parameter 'locationId' must be defined.\");\r\n url_ = url_.replace(\"{locationId}\", encodeURIComponent(\"\" + locationId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteLocation(_response);\r\n });\r\n }\r\n\r\n protected processDeleteLocation(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQrCodesDump(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Locations/qr-export\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQrCodesDump(_response);\r\n });\r\n }\r\n\r\n protected processGetQrCodesDump(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class PersonsClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getPerson(personId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Persons/{personId}\";\r\n if (personId === undefined || personId === null)\r\n throw new Error(\"The parameter 'personId' must be defined.\");\r\n url_ = url_.replace(\"{personId}\", encodeURIComponent(\"\" + personId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetPerson(_response);\r\n });\r\n }\r\n\r\n protected processGetPerson(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as PersonInfoViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n editPerson(personId: string, editModel: PersonEditModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Persons/{personId}\";\r\n if (personId === undefined || personId === null)\r\n throw new Error(\"The parameter 'personId' must be defined.\");\r\n url_ = url_.replace(\"{personId}\", encodeURIComponent(\"\" + personId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(editModel);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"PUT\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processEditPerson(_response);\r\n });\r\n }\r\n\r\n protected processEditPerson(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n searchPersons(vm: PersonSearchQueryViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Persons/search\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSearchPersons(_response);\r\n });\r\n }\r\n\r\n protected processSearchPersons(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as PersonViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n registerUser(viewModel: LoginUserViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Persons/register\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(viewModel);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processRegisterUser(_response);\r\n });\r\n }\r\n\r\n protected processRegisterUser(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UserResponse;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class QuestionnairesClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getQuestionnaires(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaires(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaires(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BasicQuestionnaireViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createQuestionnaire(edit: QuestionnaireEditModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(edit);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateQuestionnaire(_response);\r\n });\r\n }\r\n\r\n protected processCreateQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as string;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestionnaire(questionnaireId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaire(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as FullQuestionnaireViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n editQuestionnaire(questionnaireId: string, edit: QuestionnaireEditModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(edit);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"PUT\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processEditQuestionnaire(_response);\r\n });\r\n }\r\n\r\n protected processEditQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n cloneQuestionnaire(questionnaireId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/clone\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCloneQuestionnaire(_response);\r\n });\r\n }\r\n\r\n protected processCloneQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n publishQuestionnaire(questionnaireId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/publish\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"PUT\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processPublishQuestionnaire(_response);\r\n });\r\n }\r\n\r\n protected processPublishQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestions(questionnaireResponseId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/questionsAndResponses/{questionnaireResponseId}\";\r\n if (questionnaireResponseId === undefined || questionnaireResponseId === null)\r\n throw new Error(\"The parameter 'questionnaireResponseId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireResponseId}\", encodeURIComponent(\"\" + questionnaireResponseId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestions(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestions(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QuestionnaireAndResponsesVm;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestionnaireForPersonKind(personKind: PersonKind): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/questionnaireForKind/{personKind}\";\r\n if (personKind === undefined || personKind === null)\r\n throw new Error(\"The parameter 'personKind' must be defined.\");\r\n url_ = url_.replace(\"{personKind}\", encodeURIComponent(\"\" + personKind));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaireForPersonKind(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaireForPersonKind(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as string;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestionsByQuestionnaireId(id: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{id}/questionsbyquestionnaireid\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionsByQuestionnaireId(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionsByQuestionnaireId(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QuestionAdminViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n updateQuestion(questionnaireId: string, questionId: string, vm: BasicQuestionViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"PATCH\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processUpdateQuestion(_response);\r\n });\r\n }\r\n\r\n protected processUpdateQuestion(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteQuestion(questionnaireId: string, questionId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteQuestion(_response);\r\n });\r\n }\r\n\r\n protected processDeleteQuestion(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createQuestion(questionnaireId: string, vm: BasicQuestionViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateQuestion(_response);\r\n });\r\n }\r\n\r\n protected processCreateQuestion(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createNewQuestionChoice(questionnaireId: string, questionId: string, vm: BasicQuestionChoiceViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateNewQuestionChoice(_response);\r\n });\r\n }\r\n\r\n protected processCreateNewQuestionChoice(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n updateQuestionChoice(questionnaireId: string, questionId: string, choiceId: string, vm: QuestionChoiceViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices/{choiceId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (choiceId === undefined || choiceId === null)\r\n throw new Error(\"The parameter 'choiceId' must be defined.\");\r\n url_ = url_.replace(\"{choiceId}\", encodeURIComponent(\"\" + choiceId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"PATCH\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processUpdateQuestionChoice(_response);\r\n });\r\n }\r\n\r\n protected processUpdateQuestionChoice(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteQuestionChoice(questionnaireId: string, questionId: string, choiceId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices/{choiceId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (choiceId === undefined || choiceId === null)\r\n throw new Error(\"The parameter 'choiceId' must be defined.\");\r\n url_ = url_.replace(\"{choiceId}\", encodeURIComponent(\"\" + choiceId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteQuestionChoice(_response);\r\n });\r\n }\r\n\r\n protected processDeleteQuestionChoice(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createUpdateQuestionChoiceAlertPOST(questionnaireId: string, questionId: string, choiceId: string, vm: ChoiceAlert): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices/{choiceId}/alert\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (choiceId === undefined || choiceId === null)\r\n throw new Error(\"The parameter 'choiceId' must be defined.\");\r\n url_ = url_.replace(\"{choiceId}\", encodeURIComponent(\"\" + choiceId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateUpdateQuestionChoiceAlertPOST(_response);\r\n });\r\n }\r\n\r\n protected processCreateUpdateQuestionChoiceAlertPOST(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createUpdateQuestionChoiceAlertPATCH(questionnaireId: string, questionId: string, choiceId: string, vm: ChoiceAlert): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices/{choiceId}/alert\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (choiceId === undefined || choiceId === null)\r\n throw new Error(\"The parameter 'choiceId' must be defined.\");\r\n url_ = url_.replace(\"{choiceId}\", encodeURIComponent(\"\" + choiceId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"PATCH\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateUpdateQuestionChoiceAlertPATCH(_response);\r\n });\r\n }\r\n\r\n protected processCreateUpdateQuestionChoiceAlertPATCH(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteQuestionChoiceAlert(questionnaireId: string, questionId: string, choiceId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices/{choiceId}/alert\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (choiceId === undefined || choiceId === null)\r\n throw new Error(\"The parameter 'choiceId' must be defined.\");\r\n url_ = url_.replace(\"{choiceId}\", encodeURIComponent(\"\" + choiceId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteQuestionChoiceAlert(_response);\r\n });\r\n }\r\n\r\n protected processDeleteQuestionChoiceAlert(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createResponseMapping(questionnaireId: string, questionId: string, choiceId: string, nextQuestionId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices/{choiceId}/mapping/{nextQuestionId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (choiceId === undefined || choiceId === null)\r\n throw new Error(\"The parameter 'choiceId' must be defined.\");\r\n url_ = url_.replace(\"{choiceId}\", encodeURIComponent(\"\" + choiceId));\r\n if (nextQuestionId === undefined || nextQuestionId === null)\r\n throw new Error(\"The parameter 'nextQuestionId' must be defined.\");\r\n url_ = url_.replace(\"{nextQuestionId}\", encodeURIComponent(\"\" + nextQuestionId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateResponseMapping(_response);\r\n });\r\n }\r\n\r\n protected processCreateResponseMapping(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteResponseMapping(questionnaireId: string, questionId: string, choiceId: string, nextQuestionId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{questionnaireId}/questions/{questionId}/choices/{choiceId}/mapping/{nextQuestionId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n if (questionId === undefined || questionId === null)\r\n throw new Error(\"The parameter 'questionId' must be defined.\");\r\n url_ = url_.replace(\"{questionId}\", encodeURIComponent(\"\" + questionId));\r\n if (choiceId === undefined || choiceId === null)\r\n throw new Error(\"The parameter 'choiceId' must be defined.\");\r\n url_ = url_.replace(\"{choiceId}\", encodeURIComponent(\"\" + choiceId));\r\n if (nextQuestionId === undefined || nextQuestionId === null)\r\n throw new Error(\"The parameter 'nextQuestionId' must be defined.\");\r\n url_ = url_.replace(\"{nextQuestionId}\", encodeURIComponent(\"\" + nextQuestionId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteResponseMapping(_response);\r\n });\r\n }\r\n\r\n protected processDeleteResponseMapping(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestionnaireResponsesForUser(userId: string, questionnaireId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/questionnairesForUser/{userId}?\";\r\n if (userId === undefined || userId === null)\r\n throw new Error(\"The parameter 'userId' must be defined.\");\r\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\r\n if (questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' cannot be null.\");\r\n else if (questionnaireId !== undefined)\r\n url_ += \"questionnaireId=\" + encodeURIComponent(\"\" + questionnaireId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaireResponsesForUser(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaireResponsesForUser(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as KeyValuePairOfGuidAndString[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n adminSearchPerson(query: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/adminSearchPerson?\";\r\n if (query !== undefined && query !== null)\r\n url_ += \"query=\" + encodeURIComponent(\"\" + query) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAdminSearchPerson(_response);\r\n });\r\n }\r\n\r\n protected processAdminSearchPerson(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as KeyValuePairOfGuidAndString[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getExports(questionnaireId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/exports?\";\r\n if (questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' cannot be null.\");\r\n else if (questionnaireId !== undefined)\r\n url_ += \"questionnaireId=\" + encodeURIComponent(\"\" + questionnaireId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetExports(_response);\r\n });\r\n }\r\n\r\n protected processGetExports(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getExportsForWorkItems(questionnaireId: string, queueWorkItemIds: string[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/exportsforqueueworkitems/{questionnaireId}\";\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(queueWorkItemIds);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetExportsForWorkItems(_response);\r\n });\r\n }\r\n\r\n protected processGetExportsForWorkItems(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getCSVExportForWorkItemId(queueId: string, questionnaireId: string, csvExport: CSVExportViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/{queueId}/{questionnaireId}/export\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (questionnaireId === undefined || questionnaireId === null)\r\n throw new Error(\"The parameter 'questionnaireId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireId}\", encodeURIComponent(\"\" + questionnaireId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(csvExport);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetCSVExportForWorkItemId(_response);\r\n });\r\n }\r\n\r\n protected processGetCSVExportForWorkItemId(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QueueViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class QueueClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getAllQueues(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetAllQueues(_response);\r\n });\r\n }\r\n\r\n protected processGetAllQueues(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QueueViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueWorkItems(queueId: string, start: number | undefined, end: number | undefined, vm: SearchQueueWorkItemsViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems?\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (start === null)\r\n throw new Error(\"The parameter 'start' cannot be null.\");\r\n else if (start !== undefined)\r\n url_ += \"start=\" + encodeURIComponent(\"\" + start) + \"&\";\r\n if (end === null)\r\n throw new Error(\"The parameter 'end' cannot be null.\");\r\n else if (end !== undefined)\r\n url_ += \"end=\" + encodeURIComponent(\"\" + end) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueWorkItems(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueWorkItems(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QueueViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueWorkItem(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueWorkItem(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueWorkItem(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QueueWorkItemViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueMetrics(queueId: string, vm: SearchQueueWorkItemsViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/metrics\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueMetrics(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueMetrics(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getAllQueueMetrics(vm: SearchAllQueueWorkItemsViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/metrics\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetAllQueueMetrics(_response);\r\n });\r\n }\r\n\r\n protected processGetAllQueueMetrics(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n assignQueueWorkItem(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/assignToMe\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAssignQueueWorkItem(_response);\r\n });\r\n }\r\n\r\n protected processAssignQueueWorkItem(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n unAssignQueueWorkItem(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/unassign\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processUnAssignQueueWorkItem(_response);\r\n });\r\n }\r\n\r\n protected processUnAssignQueueWorkItem(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n unassignItemFromQueue(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/unassign\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processUnassignItemFromQueue(_response);\r\n });\r\n }\r\n\r\n protected processUnassignItemFromQueue(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n updateQueueWorkItemStatus(queueId: string, workItemId: string, vm: UpdateQueueWorkItemViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/updateStatus\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processUpdateQueueWorkItemStatus(_response);\r\n });\r\n }\r\n\r\n protected processUpdateQueueWorkItemStatus(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QueueWorkItemViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n queueWorkItemOnHold(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/onHold\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processQueueWorkItemOnHold(_response);\r\n });\r\n }\r\n\r\n protected processQueueWorkItemOnHold(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n saveQueueWorkItemNote(queueId: string, workItemId: string, vm: QueueWorkItemNoteViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/saveNote\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSaveQueueWorkItemNote(_response);\r\n });\r\n }\r\n\r\n protected processSaveQueueWorkItemNote(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n assignItemToNewQueue(preQueueId: string, workItemId: string, assignment: AssignToQueueViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{preQueueId}/workItems/{workItemId}/assign\";\r\n if (preQueueId === undefined || preQueueId === null)\r\n throw new Error(\"The parameter 'preQueueId' must be defined.\");\r\n url_ = url_.replace(\"{preQueueId}\", encodeURIComponent(\"\" + preQueueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(assignment);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAssignItemToNewQueue(_response);\r\n });\r\n }\r\n\r\n protected processAssignItemToNewQueue(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as number;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueWorkItemNotes(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/notes\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueWorkItemNotes(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueWorkItemNotes(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueWorkItemQuestions(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/questions\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueWorkItemQuestions(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueWorkItemQuestions(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QuestionnaireResponseViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueWorkItemAuditEvents(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/{workItemId}/auditEvents\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueWorkItemAuditEvents(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueWorkItemAuditEvents(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getWorkItemFiles(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItem/{workItemId}/files\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetWorkItemFiles(_response);\r\n });\r\n }\r\n\r\n protected processGetWorkItemFiles(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as WorkItemFileViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n addFile(queueId: string, workItemId: string, filename: string, global: boolean | undefined, body: Blob | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItem/{workItemId}/file/{filename}?\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n if (filename === undefined || filename === null)\r\n throw new Error(\"The parameter 'filename' must be defined.\");\r\n url_ = url_.replace(\"{filename}\", encodeURIComponent(\"\" + filename));\r\n if (global === null)\r\n throw new Error(\"The parameter 'global' cannot be null.\");\r\n else if (global !== undefined)\r\n url_ += \"global=\" + encodeURIComponent(\"\" + global) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = body;\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/octet-stream\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAddFile(_response);\r\n });\r\n }\r\n\r\n protected processAddFile(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as WorkItemFileViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getFile(queueId: string, workItemId: string, filename: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItem/{workItemId}/file/{filename}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n if (filename === undefined || filename === null)\r\n throw new Error(\"The parameter 'filename' must be defined.\");\r\n url_ = url_.replace(\"{filename}\", encodeURIComponent(\"\" + filename));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetFile(_response);\r\n });\r\n }\r\n\r\n protected processGetFile(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n deleteFile(queueId: string, workItemId: string, filename: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItem/{workItemId}/file/{filename}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n if (filename === undefined || filename === null)\r\n throw new Error(\"The parameter 'filename' must be defined.\");\r\n url_ = url_.replace(\"{filename}\", encodeURIComponent(\"\" + filename));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDeleteFile(_response);\r\n });\r\n }\r\n\r\n protected processDeleteFile(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getAllQueuesForEdit(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/editqueues\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetAllQueuesForEdit(_response);\r\n });\r\n }\r\n\r\n protected processGetAllQueuesForEdit(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ViewQueueViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueForEdit(queueId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/editqueues/{queueId}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueForEdit(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueForEdit(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as EditQueueViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n editQueue(queueId: string, vw: EditQueueViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/editqueue/{queueId}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vw);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processEditQueue(_response);\r\n });\r\n }\r\n\r\n protected processEditQueue(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n addQueue(vw: EditQueueViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/addqueue\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vw);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAddQueue(_response);\r\n });\r\n }\r\n\r\n protected processAddQueue(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueOutcomes(): Promise<{ [key: string]: QueueChoiceVm[]; }> {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/outcomes\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueOutcomes(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueOutcomes(response: Response): Promise<{ [key: string]: QueueChoiceVm[]; }> {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as { [key: string]: QueueChoiceVm[]; };\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve<{ [key: string]: QueueChoiceVm[]; }>(null as any);\r\n }\r\n\r\n getUserOutcomesOutcome(outcomeId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/useroutcomes/{outcomeId}\";\r\n if (outcomeId === undefined || outcomeId === null)\r\n throw new Error(\"The parameter 'outcomeId' must be defined.\");\r\n url_ = url_.replace(\"{outcomeId}\", encodeURIComponent(\"\" + outcomeId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetUserOutcomesOutcome(_response);\r\n });\r\n }\r\n\r\n protected processGetUserOutcomesOutcome(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as Person[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n setUserOutcomes(vm: UserOutcomeViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/adduseroutcomes\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSetUserOutcomes(_response);\r\n });\r\n }\r\n\r\n protected processSetUserOutcomes(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UserOutcomeViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n removeUserOutcome(vm: UserOutcomeViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/removeuseroutcomes\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"DELETE\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processRemoveUserOutcome(_response);\r\n });\r\n }\r\n\r\n protected processRemoveUserOutcome(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UserOutcomeViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n setFileFlags(queueId: string, workItemId: string, filename: string, global: boolean | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItem/{workItemId}/fileflag/{filename}?\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n if (filename === undefined || filename === null)\r\n throw new Error(\"The parameter 'filename' must be defined.\");\r\n url_ = url_.replace(\"{filename}\", encodeURIComponent(\"\" + filename));\r\n if (global === null)\r\n throw new Error(\"The parameter 'global' cannot be null.\");\r\n else if (global !== undefined)\r\n url_ += \"global=\" + encodeURIComponent(\"\" + global) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"PUT\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSetFileFlags(_response);\r\n });\r\n }\r\n\r\n protected processSetFileFlags(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQueueOutcomesByQueueId(queueId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/queueId/choices?\";\r\n if (queueId === null)\r\n throw new Error(\"The parameter 'queueId' cannot be null.\");\r\n else if (queueId !== undefined)\r\n url_ += \"queueId=\" + encodeURIComponent(\"\" + queueId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQueueOutcomesByQueueId(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueOutcomesByQueueId(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QueueChoiceVm[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestionnaireByQueueId(queueId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/questionnaireForQueue/{queueId}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaireByQueueId(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaireByQueueId(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as string;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getAllQuestionnaireResponse(queueId: string, workItemId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/questionnaireresponse/{queueId}/{workItemId}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetAllQuestionnaireResponse(_response);\r\n });\r\n }\r\n\r\n protected processGetAllQuestionnaireResponse(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QuesitonnaireResponseListViewModel[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getQuestionnaireResponse(queueId: string, workItemId: string, questionnaireResponseId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/questionnaireresponse/{queueId}/{workItemId}/{questionnaireResponseId}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n if (workItemId === undefined || workItemId === null)\r\n throw new Error(\"The parameter 'workItemId' must be defined.\");\r\n url_ = url_.replace(\"{workItemId}\", encodeURIComponent(\"\" + workItemId));\r\n if (questionnaireResponseId === undefined || questionnaireResponseId === null)\r\n throw new Error(\"The parameter 'questionnaireResponseId' must be defined.\");\r\n url_ = url_.replace(\"{questionnaireResponseId}\", encodeURIComponent(\"\" + questionnaireResponseId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetQuestionnaireResponse(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaireResponse(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QuestionnaireResponseViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createNewQueueWorkItem(queueId: string, person: LoginUserViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/newWorkItem/{queueId}\";\r\n if (queueId === undefined || queueId === null)\r\n throw new Error(\"The parameter 'queueId' must be defined.\");\r\n url_ = url_.replace(\"{queueId}\", encodeURIComponent(\"\" + queueId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(person);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateNewQueueWorkItem(_response);\r\n });\r\n }\r\n\r\n protected processCreateNewQueueWorkItem(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as QueueWorkItemViewModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n sendEmailNotification(outcomes: QueueOutcomeViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/sendNotificationEmail\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(outcomes);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSendEmailNotification(_response);\r\n });\r\n }\r\n\r\n protected processSendEmailNotification(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class RolesClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n getRoles(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Roles\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetRoles(_response);\r\n });\r\n }\r\n\r\n protected processGetRoles(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n createRole(vm: Role): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Roles\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreateRole(_response);\r\n });\r\n }\r\n\r\n protected processCreateRole(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getRole(roleId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Roles/{roleId}\";\r\n if (roleId === undefined || roleId === null)\r\n throw new Error(\"The parameter 'roleId' must be defined.\");\r\n url_ = url_.replace(\"{roleId}\", encodeURIComponent(\"\" + roleId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetRole(_response);\r\n });\r\n }\r\n\r\n protected processGetRole(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n updateRole(roleId: string, vm: Role): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Roles/{roleId}\";\r\n if (roleId === undefined || roleId === null)\r\n throw new Error(\"The parameter 'roleId' must be defined.\");\r\n url_ = url_.replace(\"{roleId}\", encodeURIComponent(\"\" + roleId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processUpdateRole(_response);\r\n });\r\n }\r\n\r\n protected processUpdateRole(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n getRoleMembers(roleId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Roles/{roleId}/members\";\r\n if (roleId === undefined || roleId === null)\r\n throw new Error(\"The parameter 'roleId' must be defined.\");\r\n url_ = url_.replace(\"{roleId}\", encodeURIComponent(\"\" + roleId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetRoleMembers(_response);\r\n });\r\n }\r\n\r\n protected processGetRoleMembers(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n addRoleMember(roleId: string, personId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Roles/{roleId}/members/{personId}\";\r\n if (roleId === undefined || roleId === null)\r\n throw new Error(\"The parameter 'roleId' must be defined.\");\r\n url_ = url_.replace(\"{roleId}\", encodeURIComponent(\"\" + roleId));\r\n if (personId === undefined || personId === null)\r\n throw new Error(\"The parameter 'personId' must be defined.\");\r\n url_ = url_.replace(\"{personId}\", encodeURIComponent(\"\" + personId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAddRoleMember(_response);\r\n });\r\n }\r\n\r\n protected processAddRoleMember(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n removeRoleMember(roleId: string, personId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Roles/{roleId}/members/{personId}\";\r\n if (roleId === undefined || roleId === null)\r\n throw new Error(\"The parameter 'roleId' must be defined.\");\r\n url_ = url_.replace(\"{roleId}\", encodeURIComponent(\"\" + roleId));\r\n if (personId === undefined || personId === null)\r\n throw new Error(\"The parameter 'personId' must be defined.\");\r\n url_ = url_.replace(\"{personId}\", encodeURIComponent(\"\" + personId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"DELETE\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processRemoveRoleMember(_response);\r\n });\r\n }\r\n\r\n protected processRemoveRoleMember(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport class TestAdminClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44357\";\r\n }\r\n\r\n debug(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/TestAdmin/debug\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/octet-stream\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processDebug(_response);\r\n });\r\n }\r\n\r\n protected processDebug(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n let fileNameMatch = contentDisposition ? /filename\\*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/g.exec(contentDisposition) : undefined;\r\n let fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[3] || fileNameMatch[2] : undefined;\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n } else {\r\n fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n }\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport interface Address {\r\n countryRegion?: string | undefined;\r\n locality?: string | undefined;\r\n adminDistrict?: string | undefined;\r\n countryRegionIso2?: string | undefined;\r\n houseNumber?: string | undefined;\r\n postalCode?: string | undefined;\r\n addressLine?: string | undefined;\r\n streetName?: string | undefined;\r\n formattedAddress?: string | undefined;\r\n}\r\n\r\nexport interface CreateBookingDTO {\r\n personId: string;\r\n thcid?: string | undefined;\r\n referralID?: string | undefined;\r\n bookingSlotId: string;\r\n bookingDate: string;\r\n type: BookingType;\r\n}\r\n\r\nexport enum BookingType {\r\n Saliva = 0,\r\n Covid = 1,\r\n}\r\n\r\nexport interface ViewBookingDTO {\r\n bookingId?: string | undefined;\r\n ipmBookingId?: string | undefined;\r\n bookingDate: string;\r\n locationId: string;\r\n locationName?: string | undefined;\r\n type: BookingType;\r\n}\r\n\r\nexport interface AvailabilityDTO {\r\n date: string;\r\n locatioName?: string | undefined;\r\n locationId: string;\r\n bookingSlots?: BookingSlotDTO[] | undefined;\r\n}\r\n\r\nexport interface BookingSlotDTO {\r\n id: string;\r\n startTime: string;\r\n endTime: string;\r\n availability: number;\r\n}\r\n\r\nexport interface Location {\r\n id: string;\r\n name?: string | undefined;\r\n parentLocationId?: string | undefined;\r\n regionId?: string | undefined;\r\n hidden: boolean;\r\n children?: Location[] | undefined;\r\n}\r\n\r\nexport interface CheckInRequestViewModel {\r\n locationId: string;\r\n}\r\n\r\nexport interface CreateDependantViewModel {\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n}\r\n\r\nexport interface Region {\r\n id: string;\r\n name?: string | undefined;\r\n locations?: Location[] | undefined;\r\n}\r\n\r\nexport interface NewQuestionnaireResponseVm {\r\n questions: QuestionAdminViewModel[];\r\n personId: string;\r\n questionnaireId: string;\r\n questionnaireResponseId: string;\r\n name: string;\r\n}\r\n\r\nexport interface QuestionAdminViewModel {\r\n id: string;\r\n heading: string;\r\n type: QuestionType;\r\n hidden: boolean;\r\n required: boolean;\r\n intent: QuestionIntent;\r\n intentKey?: string | undefined;\r\n questionKey?: string | undefined;\r\n exportKey?: string | undefined;\r\n order: number;\r\n questionnaireId?: string | undefined;\r\n deletedAt?: string | undefined;\r\n choices: QuestionChoiceViewModel[];\r\n responseMappings: ResponseMappingViewModel[];\r\n subQuestions: SubQuestion[];\r\n info: HtmlSnippetViewModel[];\r\n nestedQuestions: QuestionAdminViewModel[];\r\n validation?: QuestionValidation | undefined;\r\n}\r\n\r\nexport enum QuestionType {\r\n YesNo = 0,\r\n RadioButtons = 1,\r\n HasDependants = 2,\r\n RadioButtonsWithAddInfo = 3,\r\n TextField = 4,\r\n Repeater = 5,\r\n Grouped = 6,\r\n DateField = 7,\r\n DateTimeField = 8,\r\n Address = 9,\r\n RadioButtonsWithSearchFilter = 10,\r\n RadioButtonsWithLocationHelper = 11,\r\n MultiLineTextField = 12,\r\n}\r\n\r\nexport enum QuestionIntent {\r\n None = 0,\r\n Metadata = 1,\r\n}\r\n\r\nexport interface QuestionChoiceViewModel {\r\n id: string;\r\n text: string;\r\n outcomeResult: ChoiceResult;\r\n exportValue?: string | undefined;\r\n alert?: ChoiceAlert | undefined;\r\n order: number;\r\n deletedAt?: string | undefined;\r\n queueOutcomeChoiceId?: string | undefined;\r\n onAssignment: boolean;\r\n}\r\n\r\nexport enum ChoiceResult {\r\n None = 0,\r\n TestRequired = 1,\r\n TraceRequired = 2,\r\n TraceAndTestRequired = 3,\r\n CreateHotlineWorkItem = 4,\r\n CreateCentralHubWorkItem = 5,\r\n CreatePheocWorkItem = 6,\r\n}\r\n\r\nexport interface ChoiceAlert {\r\n id: string;\r\n title?: string | undefined;\r\n body?: string | undefined;\r\n}\r\n\r\nexport interface ResponseMappingViewModel {\r\n choiceId: string;\r\n questionId: string;\r\n nextQuestionId?: string | undefined;\r\n deletedAt?: string | undefined;\r\n}\r\n\r\nexport interface SubQuestion {\r\n id: string;\r\n text?: string | undefined;\r\n icon?: string | undefined;\r\n}\r\n\r\nexport interface HtmlSnippetViewModel {\r\n id: string;\r\n text?: string | undefined;\r\n}\r\n\r\nexport interface QuestionValidation {\r\n notBefore?: DateConstraint | undefined;\r\n notAfter?: DateConstraint | undefined;\r\n textType?: TextType | undefined;\r\n}\r\n\r\nexport interface DateConstraint {\r\n fixed?: string | undefined;\r\n days?: number | undefined;\r\n}\r\n\r\nexport enum TextType {\r\n Phone = 0,\r\n Email = 1,\r\n}\r\n\r\nexport interface CreateQuestionnaireViewModel {\r\n locationId: string;\r\n resetMetadataQuestions: boolean;\r\n}\r\n\r\nexport interface NewQuestionnaireResponse {\r\n id: string;\r\n}\r\n\r\nexport interface QuestionResponseVm {\r\n choiceId: string;\r\n value?: string | undefined;\r\n}\r\n\r\nexport interface FinaliseResultViewModel {\r\n status: QuestionnaireStatus;\r\n queueWorkItem?: QueueWorkItemViewModel | undefined;\r\n}\r\n\r\nexport enum QuestionnaireStatus {\r\n None = 0,\r\n Completed = 1,\r\n TestRequired = 2,\r\n NoTestRequired = 3,\r\n}\r\n\r\nexport interface QueueWorkItemViewModel {\r\n id: string;\r\n status: QueueWorkItemStatus;\r\n personAssignedTo?: PersonBasicViewModel | undefined;\r\n workItem: WorkItemViewModel;\r\n auditEvents?: AuditEventViewModel[] | undefined;\r\n notes?: QueueWorkItemNoteViewModel[] | undefined;\r\n queueId?: string | undefined;\r\n outcomes?: QueueOutcomeViewModel[] | undefined;\r\n nurse?: PersonViewModel | undefined;\r\n}\r\n\r\nexport enum QueueWorkItemStatus {\r\n New = 0,\r\n Viewed = 1,\r\n PDFDownloaded = 2,\r\n AdminViewed = 3,\r\n AdminDownloaded = 4,\r\n AdminEdited = 5,\r\n}\r\n\r\nexport interface PersonBasicViewModel {\r\n id: string;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n name?: string | undefined;\r\n currentAudience?: AudienceViewModel | undefined;\r\n}\r\n\r\nexport interface AudienceViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n}\r\n\r\nexport interface WorkItemViewModel {\r\n id: string;\r\n person: PersonViewModel;\r\n createdAt: string;\r\n questionnaireResponse?: QuestionnaireWorkItemResponseViewModel | undefined;\r\n questionnaireResponseId: string;\r\n}\r\n\r\nexport interface PersonViewModel {\r\n id: string;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n contactNumber?: string | undefined;\r\n shortDateOfBirth?: string | undefined;\r\n emailAddress?: string | undefined;\r\n sex?: string | undefined;\r\n currentAudience?: AudienceViewModel | undefined;\r\n}\r\n\r\nexport interface BasicQuestionnaireResponseViewModel {\r\n id: string;\r\n dayPass?: DayPassViewModel | undefined;\r\n status: QuestionnaireStatus;\r\n createdAt: string;\r\n completedAt?: string | undefined;\r\n}\r\n\r\nexport interface QuestionnaireWorkItemResponseViewModel extends BasicQuestionnaireResponseViewModel {\r\n person?: PersonViewModel | undefined;\r\n questionResponses?: QuestionResponseViewModel[] | undefined;\r\n}\r\n\r\nexport interface QuestionResponseViewModel {\r\n question?: BasicQuestionViewModel | undefined;\r\n questionChoice?: QuestionChoiceViewModel | undefined;\r\n questionChoiceId: string;\r\n createdAt: string;\r\n updatedAt?: string | undefined;\r\n value?: string | undefined;\r\n}\r\n\r\nexport interface BasicQuestionViewModel {\r\n id: string;\r\n heading?: string | undefined;\r\n intent: QuestionIntent;\r\n type: QuestionType;\r\n order: number;\r\n}\r\n\r\nexport interface DayPassViewModel {\r\n id: string;\r\n reference?: string | undefined;\r\n personId: string;\r\n type: DayPassType;\r\n additionalInstructions?: string | undefined;\r\n checkIns?: CheckInViewModel[] | undefined;\r\n createdAt: string;\r\n expires: string;\r\n}\r\n\r\nexport enum DayPassType {\r\n Fail = 0,\r\n Normal = 1,\r\n Exemption = 2,\r\n Conditional = 3,\r\n TerminatedEarly = 4,\r\n}\r\n\r\nexport interface CheckInViewModel {\r\n id: string;\r\n location?: LocationViewModel | undefined;\r\n type: CheckInType;\r\n createdAt: string;\r\n}\r\n\r\nexport interface LocationViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n parentLocationId?: string | undefined;\r\n covidLocation: boolean;\r\n hidden: boolean;\r\n}\r\n\r\nexport enum CheckInType {\r\n None = 0,\r\n AdHoc = 1,\r\n Questionnaire = 2,\r\n}\r\n\r\nexport interface AuditEventBaseViewModelOfAuditEventType {\r\n person?: PersonBasicViewModel | undefined;\r\n type: AuditEventType;\r\n message?: string | undefined;\r\n changedFields?: AuditFieldViewModel[] | undefined;\r\n auditEventReason?: AuditEventReason | undefined;\r\n createdAt: string;\r\n}\r\n\r\nexport interface AuditEventViewModel extends AuditEventBaseViewModelOfAuditEventType {\r\n}\r\n\r\nexport enum AuditEventType {\r\n None = 0,\r\n ChangedPassType = 1,\r\n LocationAdd = 2,\r\n LocationUpdate = 3,\r\n LocationRemove = 4,\r\n CreatedQuestionnaireQuestion = 5,\r\n UpdatedQuestionnaireQuestion = 6,\r\n DeletedQuestionnaireQuestion = 7,\r\n CreatedQuestionnaireChoice = 8,\r\n UpdatedQuestionnaireChoice = 9,\r\n DeletedQuestionnaireChoice = 10,\r\n CreatedQuestionnaireResponseMapping = 11,\r\n UpdatedQuestionnaireResponseMapping = 12,\r\n DeletedQuestionnaireResponseMapping = 13,\r\n CreatedChoiceAlert = 14,\r\n UpdatedChoiceAlert = 15,\r\n DeletedChoiceAlert = 16,\r\n QueueWorkItemStatusChanged = 17,\r\n QueueWorkItemAssigned = 18,\r\n QueueWorkItemUnAssigned = 19,\r\n QueueWorkItemNoteAdded = 20,\r\n QueueWorkItemCreated = 21,\r\n}\r\n\r\nexport interface AuditFieldViewModel {\r\n fieldName?: string | undefined;\r\n newValue?: string | undefined;\r\n oldValue?: string | undefined;\r\n}\r\n\r\nexport interface AuditEventReason {\r\n id: string;\r\n text?: string | undefined;\r\n additionalInformationRequired: boolean;\r\n}\r\n\r\nexport interface QueueWorkItemNoteViewModel {\r\n id: string;\r\n person?: PersonBasicViewModel | undefined;\r\n createdAt: string;\r\n note?: string | undefined;\r\n global: boolean;\r\n}\r\n\r\nexport interface QueueOutcomeViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n notificationEmail?: string | undefined;\r\n filterable: boolean;\r\n}\r\n\r\nexport interface QuestionValidationError {\r\n questionId: string;\r\n questionHeading?: string | undefined;\r\n message?: string | undefined;\r\n repeaterPath: number[];\r\n}\r\n\r\nexport interface CreateReferralDTO {\r\n personId: string;\r\n person?: Person | undefined;\r\n thcId?: string | undefined;\r\n information?: string | undefined;\r\n referralType: ReferralType;\r\n}\r\n\r\nexport interface Person {\r\n id: string;\r\n azureAdId?: string | undefined;\r\n firstName?: string | undefined;\r\n firstNameNormalised?: string | undefined;\r\n lastName?: string | undefined;\r\n lastNameNormalised?: string | undefined;\r\n contactNumber?: string | undefined;\r\n lastLocation?: Location | undefined;\r\n lastLocationId?: string | undefined;\r\n kind: PersonKind;\r\n accountType: AccountType;\r\n currentAudience?: Audience | undefined;\r\n currentAudienceId?: string | undefined;\r\n parentPersonId?: string | undefined;\r\n parentPerson?: Person | undefined;\r\n lastActive?: string | undefined;\r\n children?: Person[] | undefined;\r\n dayPasses?: DayPass[] | undefined;\r\n signIns?: SignIn[] | undefined;\r\n roles?: UserRole[] | undefined;\r\n queueOutcomeChoices?: QueueOutcomeChoice[] | undefined;\r\n dateOfBirth?: string | undefined;\r\n dependantFor?: QuestionnaireDependant[] | undefined;\r\n addresses?: PersonAddress[] | undefined;\r\n generalPractitioners?: PersonGeneralPractitioner[] | undefined;\r\n fullNameNormalised?: string | undefined;\r\n addressFull?: PersonAddress | undefined;\r\n sex?: string | undefined;\r\n emailAddress?: string | undefined;\r\n}\r\n\r\nexport enum PersonKind {\r\n None = 0,\r\n Visitor = 1,\r\n Patient = 2,\r\n Staff = 3,\r\n QuarantineWorkerContractor = 4,\r\n QuarantineWorkerStaff = 5,\r\n HotLineStaff = 6,\r\n Public = 7,\r\n CentralHubStaff = 8,\r\n PHEOCStaff = 9,\r\n}\r\n\r\nexport enum AccountType {\r\n None = 0,\r\n Guest = 1,\r\n Federated = 2,\r\n Dependant = 3,\r\n}\r\n\r\nexport interface Audience {\r\n id: string;\r\n legacyType: PersonKind;\r\n name?: string | undefined;\r\n key?: string | undefined;\r\n isStaffAudience: boolean;\r\n questionnaireAudiences?: QuestionnaireAudience[] | undefined;\r\n}\r\n\r\nexport interface QuestionnaireAudience {\r\n questionnaireId: string;\r\n questionnaire?: Questionnaire | undefined;\r\n audienceId: string;\r\n audience?: Audience | undefined;\r\n}\r\n\r\nexport interface Questionnaire {\r\n id: string;\r\n name?: string | undefined;\r\n published: boolean;\r\n createdAt: string;\r\n updatedAt?: string | undefined;\r\n publishedAt?: string | undefined;\r\n audiences?: QuestionnaireAudience[] | undefined;\r\n roles?: QuestionnaireRole[] | undefined;\r\n questions?: Question[] | undefined;\r\n questionnaireQueues?: QuestionnaireQueue[] | undefined;\r\n questionnaireResponses?: QuestionnaireResponse[] | undefined;\r\n}\r\n\r\nexport interface QuestionnaireRole {\r\n questionnaireId: string;\r\n questionnaire?: Questionnaire | undefined;\r\n roleId: string;\r\n role?: Role | undefined;\r\n}\r\n\r\nexport interface Role {\r\n id: string;\r\n name?: string | undefined;\r\n permissions: Permissions;\r\n}\r\n\r\nexport enum Permissions {\r\n SuperUser = 1,\r\n ModifyRoles = 2,\r\n ModifyLocations = 4,\r\n ModifyQuestions = 8,\r\n ModifyAudiences = 16,\r\n IgnoreLocationConstraints = 32,\r\n IgnoreAudienceConstraints = 64,\r\n ModifyDayPasses = 128,\r\n ViewQueues = 256,\r\n}\r\n\r\nexport interface Question {\r\n id: string;\r\n heading?: string | undefined;\r\n type: QuestionType;\r\n intent: QuestionIntent;\r\n intentKey?: string | undefined;\r\n questionKey?: string | undefined;\r\n exportKey?: string | undefined;\r\n order: number;\r\n questionnaire?: Questionnaire | undefined;\r\n questionnaireId?: string | undefined;\r\n choices?: QuestionChoice[] | undefined;\r\n responseMappings?: ResponseMapping[] | undefined;\r\n subQuestions?: SubQuestion[] | undefined;\r\n info?: HtmlSnippet[] | undefined;\r\n nestedQuestions?: Question[] | undefined;\r\n parentQuestion?: Question | undefined;\r\n parentQuestionId?: string | undefined;\r\n required: boolean;\r\n hidden: boolean;\r\n validation?: QuestionValidation | undefined;\r\n}\r\n\r\nexport interface QuestionChoice {\r\n id: string;\r\n text?: string | undefined;\r\n exportValue?: string | undefined;\r\n alert?: ChoiceAlert | undefined;\r\n queueOutcomeChoiceId?: string | undefined;\r\n queueOutcomeChoice?: QueueOutcomeChoice | undefined;\r\n onAssignment: boolean;\r\n}\r\n\r\nexport interface QueueOutcomeChoice {\r\n id: string;\r\n queueId: string;\r\n queue?: Queue | undefined;\r\n name: string;\r\n description?: string | undefined;\r\n notificationEmail?: string | undefined;\r\n filterable: boolean;\r\n grouping?: string | undefined;\r\n assignable: boolean;\r\n createdAt: string;\r\n deletedAt?: string | undefined;\r\n}\r\n\r\nexport interface Queue {\r\n id: string;\r\n name?: string | undefined;\r\n questionChoiceResult: ChoiceResult;\r\n queueWorkItems?: QueueWorkItem[] | undefined;\r\n outcomeChoices?: QueueOutcomeChoice[] | undefined;\r\n canAccessGlobalFiles: boolean;\r\n questionnaireQueues?: QuestionnaireQueue[] | undefined;\r\n canCreateForm: boolean;\r\n launchForm: boolean;\r\n formCreateHelpText?: string | undefined;\r\n canExportCSV: boolean;\r\n defaultExportQuestionnaireId?: string | undefined;\r\n}\r\n\r\nexport interface QueueWorkItem {\r\n id: string;\r\n workItemId: string;\r\n workItem?: WorkItem | undefined;\r\n queue?: Queue | undefined;\r\n queueId: string;\r\n status: QueueWorkItemStatus;\r\n personAssignedTo?: Person | undefined;\r\n personAssignedToId?: string | undefined;\r\n auditEvents?: AuditEvent[] | undefined;\r\n notes?: QueueWorkItemNote[] | undefined;\r\n outcomes?: QueueWorkItemOutcome[] | undefined;\r\n queueWorkItemQuestionnaireResponses?: QueueWorkItemQuestionnaireResponse[] | undefined;\r\n parentGuardian?: Person | undefined;\r\n}\r\n\r\nexport interface WorkItem {\r\n id: string;\r\n status: WorkItemStatus;\r\n createdAt: string;\r\n updatedAt?: string | undefined;\r\n queueWorkItems?: QueueWorkItem[] | undefined;\r\n questionnaireResponse?: QuestionnaireResponse | undefined;\r\n questionnaireResponseId: string;\r\n}\r\n\r\nexport enum WorkItemStatus {\r\n None = 0,\r\n New = 1,\r\n Review = 2,\r\n Assigned = 3,\r\n Completed = 4,\r\n}\r\n\r\nexport interface QuestionnaireResponse {\r\n id: string;\r\n person?: Person | undefined;\r\n personId: string;\r\n status: QuestionnaireStatus;\r\n audience?: Audience | undefined;\r\n audienceId?: string | undefined;\r\n questionnaire?: Questionnaire | undefined;\r\n questionnaireId?: string | undefined;\r\n createdAt: string;\r\n completedAt?: string | undefined;\r\n exportedAt?: string | undefined;\r\n exportId?: number | undefined;\r\n questionResponses?: QuestionResponse[] | undefined;\r\n questionnaireAudits?: AuditEvent[] | undefined;\r\n dependants?: QuestionnaireDependant[] | undefined;\r\n queueWorkItemQuestionnaireResponses?: QueueWorkItemQuestionnaireResponse[] | undefined;\r\n}\r\n\r\nexport interface QuestionResponse {\r\n questionnaireResponse?: QuestionnaireResponse | undefined;\r\n questionnaireResponseId: string;\r\n question?: Question | undefined;\r\n questionId: string;\r\n questionChoice?: QuestionChoice | undefined;\r\n questionChoiceId: string;\r\n value?: string | undefined;\r\n createdAt: string;\r\n updatedAt?: string | undefined;\r\n}\r\n\r\nexport interface AuditEvent {\r\n id: string;\r\n person?: Person | undefined;\r\n personId: string;\r\n type: AuditEventType;\r\n message?: string | undefined;\r\n queueWorkItem?: QueueWorkItem | undefined;\r\n queueWorkItemId?: string | undefined;\r\n questionnaireResponse?: QuestionnaireResponse | undefined;\r\n questionnaireResponseId?: string | undefined;\r\n questionnaire?: Questionnaire | undefined;\r\n questionnaireId?: string | undefined;\r\n auditEventReason?: AuditEventReason | undefined;\r\n auditEventReasonId?: string | undefined;\r\n changedFields?: AuditField[] | undefined;\r\n createdAt: string;\r\n}\r\n\r\nexport interface AuditField {\r\n id: string;\r\n fieldName?: string | undefined;\r\n newValue?: string | undefined;\r\n oldValue?: string | undefined;\r\n}\r\n\r\nexport interface QuestionnaireDependant {\r\n questionnaireResponseId: string;\r\n questionnaireResponse?: QuestionnaireResponse | undefined;\r\n dependantId: string;\r\n dependant?: Person | undefined;\r\n createdAt: string;\r\n deletedAt?: string | undefined;\r\n}\r\n\r\nexport interface QueueWorkItemQuestionnaireResponse {\r\n id: string;\r\n questionnaireResponseId: string;\r\n questionnaireResponse?: QuestionnaireResponse | undefined;\r\n queueWorkItemId: string;\r\n queueWorkItem?: QueueWorkItem | undefined;\r\n}\r\n\r\nexport interface QueueWorkItemNote {\r\n id: string;\r\n note?: string | undefined;\r\n global: boolean;\r\n person?: Person | undefined;\r\n personId: string;\r\n queueWorkItemId: string;\r\n queueWorkItem?: QueueWorkItem | undefined;\r\n createdAt: string;\r\n}\r\n\r\nexport interface QueueWorkItemOutcome {\r\n queueWorkItemId: string;\r\n queueWorkItem?: QueueWorkItem | undefined;\r\n queueOutcomeChoiceId: string;\r\n queueOutcomeChoice?: QueueOutcomeChoice | undefined;\r\n}\r\n\r\nexport interface QuestionnaireQueue {\r\n id: string;\r\n questionnaireId: string;\r\n questionnaire?: Questionnaire | undefined;\r\n queueId: string;\r\n queue?: Queue | undefined;\r\n}\r\n\r\nexport interface ResponseMapping {\r\n choiceId: string;\r\n nextQuestionId?: string | undefined;\r\n}\r\n\r\nexport interface HtmlSnippet {\r\n id: string;\r\n text?: string | undefined;\r\n}\r\n\r\nexport interface DayPass {\r\n id: string;\r\n reference?: string | undefined;\r\n additionalInstructions?: string | undefined;\r\n person?: Person | undefined;\r\n personId: string;\r\n type: DayPassType;\r\n checkIns?: CheckIn[] | undefined;\r\n createdAt: string;\r\n expires: string;\r\n}\r\n\r\nexport interface CheckIn {\r\n id: string;\r\n location?: Location | undefined;\r\n locationId: string;\r\n dayPassId: string;\r\n dayPass?: DayPass | undefined;\r\n type: CheckInType;\r\n createdAt: string;\r\n}\r\n\r\nexport interface SignIn {\r\n id: string;\r\n person?: Person | undefined;\r\n personId: string;\r\n userAgent?: string | undefined;\r\n ipAddressRaw?: string | undefined;\r\n ipAddress?: IPAddress | undefined;\r\n ipAddressValue?: string | undefined;\r\n}\r\n\r\nexport interface IPAddress {\r\n addressFamily: AddressFamily;\r\n scopeId: number;\r\n isIPv6Multicast: boolean;\r\n isIPv6LinkLocal: boolean;\r\n isIPv6SiteLocal: boolean;\r\n isIPv6Teredo: boolean;\r\n isIPv4MappedToIPv6: boolean;\r\n address: number;\r\n}\r\n\r\nexport enum AddressFamily {\r\n Unspecified = 0,\r\n Unix = 1,\r\n InterNetwork = 2,\r\n ImpLink = 3,\r\n Pup = 4,\r\n Chaos = 5,\r\n NS = 6,\r\n Ipx = 6,\r\n Osi = 7,\r\n Iso = 7,\r\n Ecma = 8,\r\n DataKit = 9,\r\n Ccitt = 10,\r\n Sna = 11,\r\n DecNet = 12,\r\n DataLink = 13,\r\n Lat = 14,\r\n HyperChannel = 15,\r\n AppleTalk = 16,\r\n NetBios = 17,\r\n VoiceView = 18,\r\n FireFox = 19,\r\n Banyan = 21,\r\n Atm = 22,\r\n InterNetworkV6 = 23,\r\n Cluster = 24,\r\n Ieee12844 = 25,\r\n Irda = 26,\r\n NetworkDesigners = 28,\r\n Max = 29,\r\n Packet = 65536,\r\n ControllerAreaNetwork = 65537,\r\n Unknown = -1,\r\n}\r\n\r\nexport interface UserRole {\r\n person?: Person | undefined;\r\n personId: string;\r\n role?: Role | undefined;\r\n roleId: string;\r\n canManageRoleMembers: boolean;\r\n}\r\n\r\nexport interface PersonAddress {\r\n id: string;\r\n person?: Person | undefined;\r\n personId: string;\r\n createdAt: string;\r\n formattedAddress?: string | undefined;\r\n addressUnit?: string | undefined;\r\n addressLine?: string | undefined;\r\n suburb?: string | undefined;\r\n postcode?: string | undefined;\r\n state?: string | undefined;\r\n longitude: number;\r\n latitude: number;\r\n}\r\n\r\nexport interface PersonGeneralPractitioner {\r\n id: string;\r\n person?: Person | undefined;\r\n personId: string;\r\n createdAt: string;\r\n name?: string | undefined;\r\n practice?: string | undefined;\r\n}\r\n\r\nexport enum ReferralType {\r\n Saliva = 0,\r\n Covid = 1,\r\n}\r\n\r\nexport interface LoginUserViewModel {\r\n firstName: string;\r\n lastName: string;\r\n contactNumber: string;\r\n dateOfBirth?: string | undefined;\r\n address?: string | undefined;\r\n addressFull?: AddressViewModel | undefined;\r\n gpName?: string | undefined;\r\n gpPractice?: string | undefined;\r\n longitude: number;\r\n latitude: number;\r\n kind: PersonKind;\r\n sex?: string | undefined;\r\n emailAddress?: string | undefined;\r\n}\r\n\r\nexport interface AddressViewModel {\r\n addressUnit?: string | undefined;\r\n addressLine?: string | undefined;\r\n suburb?: string | undefined;\r\n postcode?: string | undefined;\r\n state?: string | undefined;\r\n}\r\n\r\nexport interface NewLocationViewModel {\r\n name?: string | undefined;\r\n parentLocationId?: string | undefined;\r\n regionId?: string | undefined;\r\n}\r\n\r\nexport interface PersonInfoViewModel {\r\n person?: PersonViewModel | undefined;\r\n questionnaires?: BasicQuestionnaireResponseViewModel[] | undefined;\r\n}\r\n\r\nexport interface PersonSearchQueryViewModel {\r\n query?: string | undefined;\r\n accountType?: AccountType | undefined;\r\n}\r\n\r\nexport interface UserResponse {\r\n user?: UserInfoViewModel | undefined;\r\n}\r\n\r\nexport interface UserInfoViewModel {\r\n id: string;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n contactNumber?: string | undefined;\r\n lastLocation?: Location[] | undefined;\r\n activePass?: DayPassViewModel2 | undefined;\r\n metadataQuestions?: MetadataQuestionsViewModel[] | undefined;\r\n kind: PersonKind;\r\n roles?: Role[] | undefined;\r\n futureBookings?: ViewBookingDTO[] | undefined;\r\n queueOutcomeChoices?: string[] | undefined;\r\n}\r\n\r\nexport interface DayPassViewModel2 {\r\n reference?: string | undefined;\r\n createdAt: string;\r\n expires: string;\r\n type: DayPassType;\r\n sites?: string[] | undefined;\r\n dependants?: string[] | undefined;\r\n}\r\n\r\nexport interface MetadataQuestionsViewModel {\r\n question?: Question | undefined;\r\n questionChoice?: QuestionChoice | undefined;\r\n}\r\n\r\nexport interface PersonEditModel {\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n contactNumber?: string | undefined;\r\n dateOfBirth: string;\r\n address?: string | undefined;\r\n addressFull?: AddressViewModel | undefined;\r\n generalPractitionerName?: string | undefined;\r\n generalPractitionerPractice?: string | undefined;\r\n}\r\n\r\nexport interface BasicQuestionnaireViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n published: boolean;\r\n createdAt: string;\r\n updatedAt: string;\r\n publishedAt: string;\r\n}\r\n\r\nexport interface FullQuestionnaireViewModel {\r\n id: string;\r\n name: string;\r\n published: boolean;\r\n createdAt: string;\r\n updatedAt: string;\r\n publishedAt: string;\r\n audiences: QuestionnaireAudienceViewModel[];\r\n questions: QuestionAdminViewModel[];\r\n queueOutcomes?: QueueOutcomeViewModel[] | undefined;\r\n}\r\n\r\nexport interface QuestionnaireAudienceViewModel {\r\n audienceId: string;\r\n audience?: AudienceViewModel | undefined;\r\n}\r\n\r\nexport interface QuestionnaireEditModel {\r\n name: string;\r\n audiences: string[];\r\n questions: QuestionEditModel[];\r\n}\r\n\r\nexport interface QuestionEditModel {\r\n id?: string | undefined;\r\n heading: string;\r\n type: QuestionType;\r\n intent: QuestionIntent;\r\n intentKey?: string | undefined;\r\n questionKey?: string | undefined;\r\n exportKey?: string | undefined;\r\n hidden: boolean;\r\n required: boolean;\r\n choices: QuestionChoiceEditModel[];\r\n subQuestions: SubQuestionEditModel[];\r\n nestedQuestions?: QuestionEditModel[] | undefined;\r\n validation?: QuestionValidation | undefined;\r\n}\r\n\r\nexport interface QuestionChoiceEditModel {\r\n id?: string | undefined;\r\n text: string;\r\n outcomeResult: ChoiceResult;\r\n nextQuestionId?: string | undefined;\r\n exportValue?: string | undefined;\r\n queueOutcomeChoiceId?: string | undefined;\r\n onAssignment: boolean;\r\n}\r\n\r\nexport interface SubQuestionEditModel {\r\n id?: string | undefined;\r\n text?: string | undefined;\r\n icon?: string | undefined;\r\n}\r\n\r\nexport interface QuestionnaireAndResponsesVm {\r\n questions: QuestionAdminViewModel[];\r\n personId: string;\r\n questionnaireId: string;\r\n name: string;\r\n responses: { [key: string]: QuestionResponseVm; };\r\n completedAt?: string | undefined;\r\n}\r\n\r\nexport interface BasicQuestionChoiceViewModel {\r\n id: string;\r\n text: string;\r\n outcomeResult: ChoiceResult;\r\n}\r\n\r\nexport interface KeyValuePairOfGuidAndString {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport interface QueueViewModel {\r\n id: string;\r\n name: string;\r\n queueWorkItems?: QueueWorkItemViewModel[] | undefined;\r\n canCreateForm: boolean;\r\n launchForm: boolean;\r\n formCreateHelpText?: string | undefined;\r\n canExportCSV: boolean;\r\n defaultExportQuestionnaireId?: string | undefined;\r\n}\r\n\r\nexport interface CSVExportViewModel {\r\n startDateTime: string;\r\n endDateTime: string;\r\n reExportRecords: boolean;\r\n}\r\n\r\nexport interface SearchQueueWorkItemsViewModel {\r\n query?: string | undefined;\r\n queueWorkItemStatuses?: QueueWorkItemStatus[] | undefined;\r\n before?: string | undefined;\r\n after?: string | undefined;\r\n outcomes?: string[] | undefined;\r\n currentUserViewableOutcomes?: string[] | undefined;\r\n isSuperUser: boolean;\r\n}\r\n\r\nexport interface SearchAllQueueWorkItemsViewModel {\r\n before?: string | undefined;\r\n after?: string | undefined;\r\n}\r\n\r\nexport interface UpdateQueueWorkItemViewModel {\r\n note?: string | undefined;\r\n status: QueueWorkItemStatus;\r\n}\r\n\r\nexport interface AssignToQueueViewModel {\r\n newQueueId: string;\r\n outcomeIds: string[];\r\n}\r\n\r\nexport interface QuestionnaireResponseViewModel extends BasicQuestionnaireResponseViewModel {\r\n person?: PersonViewModel | undefined;\r\n questionResponses?: QuestionResponseViewModel[] | undefined;\r\n questionnaireAudits?: AuditEventViewModel[] | undefined;\r\n dependants?: QuestionnaireDependantViewModel[] | undefined;\r\n}\r\n\r\nexport interface QuestionnaireDependantViewModel {\r\n dependant?: PersonViewModel | undefined;\r\n createdAt: string;\r\n deletedAt?: string | undefined;\r\n}\r\n\r\nexport interface WorkItemFileViewModel {\r\n filename: string;\r\n length: number;\r\n global: boolean;\r\n queueId: string;\r\n}\r\n\r\nexport interface ViewQueueViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n}\r\n\r\nexport interface EditQueueViewModel {\r\n name?: string | undefined;\r\n canAccessGlobalFiles: boolean;\r\n queueOutcomes?: EditQueueChoiceVm[] | undefined;\r\n defaultForm?: string | undefined;\r\n canCreateForm: boolean;\r\n launchForm: boolean;\r\n formCreateHelpText?: string | undefined;\r\n questionnaires: string[];\r\n canExportCSV: boolean;\r\n defaultCSVQuestionnaireId?: string | undefined;\r\n notificationEmail?: string | undefined;\r\n}\r\n\r\nexport interface EditQueueChoiceVm {\r\n id?: string | undefined;\r\n name: string;\r\n description?: string | undefined;\r\n notificationEmail?: string | undefined;\r\n filterable: boolean;\r\n assignable: boolean;\r\n grouping?: string | undefined;\r\n}\r\n\r\nexport interface QueueChoiceVm {\r\n id: string;\r\n name: string;\r\n description?: string | undefined;\r\n filterable: boolean;\r\n assignable: boolean;\r\n grouping?: string | undefined;\r\n children?: QueueChoiceVm[] | undefined;\r\n parentId?: string | undefined;\r\n}\r\n\r\nexport interface UserOutcomeViewModel {\r\n queueOutcomeChoiceId: string;\r\n personId: string;\r\n}\r\n\r\nexport interface QuesitonnaireResponseListViewModel {\r\n id: string;\r\n questionnaireName?: string | undefined;\r\n}\r\n\r\nexport interface FileParameter {\r\n data: any;\r\n fileName: string;\r\n}\r\n\r\nexport interface FileResponse {\r\n data: Blob;\r\n status: number;\r\n fileName?: string;\r\n headers?: { [name: string]: any };\r\n}\r\n\r\nexport class ApiException extends Error {\r\n message: string;\r\n status: number;\r\n response: string;\r\n headers: { [key: string]: any; };\r\n result: any;\r\n\r\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\r\n super();\r\n\r\n this.message = message;\r\n this.status = status;\r\n this.response = response;\r\n this.headers = headers;\r\n this.result = result;\r\n }\r\n\r\n protected isApiException = true;\r\n\r\n static isApiException(obj: any): obj is ApiException {\r\n return obj.isApiException === true;\r\n }\r\n}\r\n\r\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\r\n if (result !== null && result !== undefined)\r\n throw result;\r\n else\r\n throw new ApiException(message, status, response, headers, null);\r\n}","import { createContext, useContext } from \"react\";\r\n\r\nconst BASE_URL = \"\";\r\n\r\ntype ApiClientClass = new (\r\n baseUrl?: string,\r\n http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }\r\n) => A;\r\n\r\nexport function useApiClient(client: ApiClientClass) {\r\n const token = useToken();\r\n return new client(BASE_URL, token ? { fetch: addToken(token) } : undefined);\r\n}\r\n\r\nexport function useToken() {\r\n return useContext(TokenContext);\r\n}\r\n\r\nexport const TokenContext = createContext(undefined);\r\n\r\nfunction addToken(token: string): (url: RequestInfo, init?: RequestInit) => Promise {\r\n return (url, init) => {\r\n init = init ?? {};\r\n const headers = new Headers(init.headers);\r\n headers.append(\"Authorization\", \"Bearer \" + token);\r\n init.headers = headers;\r\n return window.fetch(url, init);\r\n };\r\n}\r\n","// Hook\r\nimport { useEffect, useState } from \"react\";\r\n\r\nexport function useDebounce(value: A, delay: number): A {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n useEffect(\r\n () => {\r\n // Update debounced value after delay\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n },\r\n [value, delay] // Only re-call effect if value or delay changes\r\n );\r\n return debouncedValue;\r\n}\r\n","import { buildGroup, control, ControlType } from \"@react-typed-forms/core\";\r\nimport { Box, Grid } from \"@material-ui/core\";\r\nimport React, { ChangeEvent, useEffect, useState } from \"react\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { StyledTextField, ValidationTextField } from \"../../muiCore/TextField\";\r\nimport {\r\n Address,\r\n AddressClient,\r\n AddressViewModel,\r\n} from \"../../../common/client\";\r\nimport { useApiClient } from \"../../../common/apiclients\";\r\nimport { useDebounce } from \"../../../common/debounce\";\r\nimport { FTextField } from \"../../../common/formComponents/FTextField\";\r\n\r\nexport function makeAddressFormDef(required: boolean) {\r\n const validate = required\r\n ? (c: string) =>\r\n !c\r\n ? \"Cannot be blank\"\r\n : c.charAt(0) === \" \"\r\n ? \"Cannot start with a space\"\r\n : undefined\r\n : undefined;\r\n return buildGroup()({\r\n addressUnit: \"\",\r\n addressLine: control(\"\", validate),\r\n suburb: control(\"\", validate),\r\n postcode: control(\"\", validate),\r\n state: control(\"\", validate),\r\n });\r\n}\r\n\r\ntype AddressControl = ControlType>;\r\n\r\nexport function AddressComplete(props: {\r\n state: AddressControl;\r\n query?: string;\r\n label?: string;\r\n required?: boolean;\r\n}) {\r\n const [addressText, setAddressText] = useState(\r\n props.query ?? toFullAddressLine(props.state.toObject())\r\n );\r\n const [loading, setLoading] = useState(false);\r\n const addressQuery = useDebounce(addressText, 500);\r\n const [addressOptions, setAddressOptions] = useState();\r\n const addressClient = useApiClient(AddressClient);\r\n const fields = props.state.fields;\r\n useEffect(() => {\r\n if (addressQuery) {\r\n doSearch();\r\n }\r\n }, [addressQuery]);\r\n\r\n return (\r\n \r\n a.formattedAddress ?? \"\"}\r\n onInputChange={(e, val, reason) => {\r\n if (reason !== \"reset\") {\r\n setAddressText(val);\r\n }\r\n }}\r\n onChange={(event: any, val: string | Address | null, change) => {\r\n if (typeof val === \"object\" && change === \"select-option\") {\r\n fields.addressUnit.setValue(\"\");\r\n fields.postcode.setValue(val!.postalCode ?? \"\");\r\n fields.addressLine.setValue(val!.addressLine ?? \"\");\r\n fields.state.setValue(val!.adminDistrict ?? \"\");\r\n fields.suburb.setValue(val!.locality ?? \"\");\r\n setAddressText(toFullAddressLine(props.state.toObject()));\r\n }\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n );\r\n\r\n async function doSearch() {\r\n setLoading(true);\r\n setAddressOptions(await addressClient.searchFull(addressQuery));\r\n setLoading(false);\r\n }\r\n}\r\n\r\nexport function toFullAddressLine({\r\n addressUnit,\r\n addressLine,\r\n suburb,\r\n postcode,\r\n state,\r\n}: AddressViewModel) {\r\n return [addressUnit, addressLine, suburb, postcode, state]\r\n .filter((d) => Boolean(d))\r\n .join(\", \");\r\n}\r\n\r\nexport function RenderAddressFields({\r\n state: { fields },\r\n readonly,\r\n}: {\r\n state: AddressControl;\r\n readonly?: boolean;\r\n}) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {makeStyles, Theme} from \"@material-ui/core/styles\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n form: {\r\n width: \"99%\", // Fix IE11 issue.\r\n marginTop: \"6px\",\r\n marginLeft: \"4px\",\r\n marginBottom: \"6px\",\r\n border: \"1px 1px !important\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n \r\n },\r\n}));\r\n\r\nconst datemask = (props: any) => {\r\n let date = \"\";\r\n const { inputRef, ...other } = props;\r\n\r\n const checkDays = () => {\r\n return date[0] === \"3\" ? /[0-1]/ : /[0-9]/;\r\n };\r\n\r\n const checkMonths = () => {\r\n return date[3] === \"1\" ? /[0-2]/ : /[0-9]/;\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const ValidatedformWithDateFormatting = (props: any) => {\r\n const classes = useStyles();\r\n const handleChange = (event: any) => {\r\n props.setDate(event.target.value);\r\n };\r\n console.log(\"props\", props)\r\n // if (props.required){\r\n // props.date.value.value === undefined ? error = true : error = false\r\n // }\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n color:\" #FFF!important\",\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n margin: \"unset\",\r\n maxWidth: \"unset!important\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n fontSize: \"1rem\",\r\n maxHeight: \"50px\",\r\n color:\" #FFF!important\",\r\n },\r\n btnActive: {\r\n backgroundColor: theme.palette.primary.dark,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n btnStartIcon: {\r\n color:\" #FFF!important\",\r\n fontSize: \"1rem!important\",\r\n maxWidth: \"400px\",\r\n minWidth: \"40px\",\r\n maxHeight: \"50px\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"3rem!important\",\r\n },\r\n },\r\n typography: {\r\n color: \"#FFF!important\",\r\n }\r\n\r\n}));\r\n\r\ninterface ICommonBTN {\r\n BtnText: string;\r\n onClick: () => void;\r\n maxWidth: string; \r\n}\r\n\r\nexport const CommonBTN = (props: ICommonBTN) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};","import React, {ChangeEvent, useState} from 'react'\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport {Divider, fade, InputBase, ListItem, TextField} from \"@material-ui/core\";\r\nimport MuiListItem from \"@material-ui/core/List\";\r\nimport {createStyles, makeStyles, Theme, withStyles} from \"@material-ui/core/styles\";\r\n\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n search: {\r\n position: 'relative',\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.black, 0.03),\r\n '&:hover': {\r\n backgroundColor: fade(theme.palette.common.black, 0.05),\r\n },\r\n marginLeft: 0,\r\n width: '100%',\r\n height:'60px',\r\n [theme.breakpoints.up('sm')]: {\r\n //margin: theme.spacing(1),\r\n // width: 'auto',\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: '100%',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color:theme.palette.primary.main,\r\n fontSize:'3rem',\r\n paddingLeft: `10px`,\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n padding:'15px 0 0 15px',\r\n width: '100%',\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create('width'),\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n //width: '12ch',\r\n '&:focus': {\r\n //width: '20ch',\r\n },\r\n },\r\n },\r\n })\r\n)\r\n\r\nconst StyledListItem = withStyles((theme:Theme) => ({\r\n root: {\r\n padding:'5px'\r\n },\r\n}))(MuiListItem);\r\n\r\nexport const ChoiceFilter = (props: any) => {\r\n\r\n const classes = useStyles();\r\n const [searchFilters, setSearchFilters] = useState()\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n \r\n
\r\n ) => {\r\n //setLoading(true)\r\n props.onChange(e)\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n )\r\n}","import React, {\r\n ChangeEvent,\r\n Fragment,\r\n ReactElement,\r\n ReactNode,\r\n useEffect,\r\n useMemo,\r\n useState,\r\n} from \"react\";\r\nimport {\r\n ArrayControl,\r\n BaseControl,\r\n ControlChange,\r\n FormArray,\r\n FormControl,\r\n GroupControl,\r\n useControlChangeEffect,\r\n useControlState,\r\n useControlStateVersion,\r\n useControlValue,\r\n} from \"@react-typed-forms/core\";\r\nimport { IQuestion } from \"../../../models/Question\";\r\nimport { QuestionItemNestedRadioButton } from \"./QuestionItemRadioButton\";\r\nimport { StyledFTextField } from \"../../muiCore/TextField\";\r\nimport { ValidatedForm } from \"../forms/ValidatedForm\";\r\nimport {\r\n AddressViewModel,\r\n QuestionAdminViewModel,\r\n QuestionChoice,\r\n QuestionType,\r\n} from \"../../../common/client\";\r\nimport {\r\n QuestionItemNestedSubQuestion,\r\n QuestionItemSubQuestion,\r\n QuestionSubQuestion,\r\n} from \"./QuestionItemSubQuestion\";\r\nimport { Box, Collapse } from \"@material-ui/core\";\r\nimport { QuestionRepeaterHeader } from \"./QuestionItemHeader\";\r\nimport {\r\n AddressComplete,\r\n makeAddressFormDef,\r\n RenderAddressFields,\r\n} from \"../Address/AddressComplete\";\r\nimport {\r\n QuestionItemNestedYesNoButtons,\r\n QuestionItemYesNoButtons,\r\n} from \"./QuestionItemYesNoButtons\";\r\nimport { ValidatedformWithDateFormatting } from \"../forms/ValidatedFormWithDateFormatting\";\r\nimport { CommonBTN } from \"../Buttons/CommonBTN\";\r\nimport { ChoiceFilter } from \"../Questionnaire/Search\";\r\n\r\ntype NestedGroupControl = GroupControl<{ [id: string]: BaseControl }>;\r\n\r\nexport function RenderNestedQuestion({\r\n question,\r\n control,\r\n forceShow,\r\n readonly,\r\n parentHidden,\r\n}: {\r\n question: IQuestion;\r\n control: BaseControl;\r\n parentHidden: boolean;\r\n forceShow: boolean;\r\n readonly: boolean;\r\n}): ReactElement {\r\n const MIN_SEARCH_LIMIT = 15;\r\n const fc = control as FormControl;\r\n const hidden = parentHidden || (question.hidden && !forceShow);\r\n const [searchQuery, setSearchQuery] = useState(undefined);\r\n const [filteredChoices, setFilteredChoices] = useState([]);\r\n useEffect(() => {\r\n if (hidden) {\r\n fc.setError(undefined);\r\n fc.setValue(undefined);\r\n return;\r\n }\r\n // const validator = (c: FormControl) => {\r\n // if (question.required && !c.value) {\r\n // c.setError(`${question.heading} can not be blank`);\r\n // }\r\n // };\r\n // fc.addChangeListener(validator);\r\n // return () => fc.removeChangeListener(validator);\r\n }, [fc, hidden]);\r\n useEffect(() => {\r\n console.log(searchQuery);\r\n if (searchQuery && searchQuery != \"\") {\r\n let choices = question.choices.filter((choice: any) =>\r\n choice.text\r\n .toString()\r\n .toLowerCase()\r\n .includes(searchQuery.toString().toLowerCase())\r\n );\r\n setFilteredChoices(choices);\r\n } else {\r\n setFilteredChoices(question.choices);\r\n }\r\n }, [searchQuery]);\r\n\r\n function renderByType() {\r\n switch (question.type) {\r\n case QuestionType.TextField:\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n case QuestionType.DateField:\r\n return (\r\n <>\r\n \r\n {\r\n console.log(\"user entered date: \", date);\r\n fc.setValue(date);\r\n }}\r\n />\r\n \r\n );\r\n case QuestionType.DateTimeField:\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n case QuestionType.RadioButtons:\r\n return (\r\n <>\r\n \r\n \r\n {question.choices.length > MIN_SEARCH_LIMIT && !readonly && (\r\n \r\n ) => {\r\n //setLoading(true)\r\n\r\n setSearchQuery(e.target.value);\r\n }}\r\n />\r\n )}\r\n \r\n \r\n );\r\n case QuestionType.Grouped:\r\n return (\r\n
(\r\n// q: QuestionAdminViewModel,\r\n// value: GroupAnswerValue,\r\n// childId: string,\r\n// visit: (\r\n// q: QuestionAdminViewModel,\r\n// choice: QuestionChoiceViewModel | undefined,\r\n// value: any\r\n// ) => A\r\n// ): A | undefined {\r\n// const nestQuestion = q.nestedQuestions.find((q) => q.id === childId);\r\n// if (!nestQuestion) return undefined;\r\n// const nestValue = value[nestId];\r\n// let choice = selectedChoiceNestedValue(nestQuestion, value);\r\n// switch (nestQuestion.type) {\r\n// case QuestionType.RadioButtons:\r\n// case QuestionType.YesNo:\r\n// choice = nestQuestion.choices.find((q) => q.id === nestValue);\r\n// break;\r\n// }\r\n// return visit(nestQuestion, choice, nestValue);\r\n// }\r\n//\r\n// export function renderGroupElement(\r\n// q: QuestionAdminViewModel,\r\n// value: any,\r\n// nestId: string,\r\n// RenderQuestion: FC\r\n// ): ReactElement {\r\n// return (\r\n// withGroupElement(q, value, nestId, (question, choice, value) => (\r\n// \r\n// )) ||

Missing Question

\r\n// );\r\n// }\r\n","import React, { ReactElement, ReactNode } from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { Document, Page, StyleSheet, Text, View } from \"@react-pdf/renderer\";\r\nimport {\r\n PersonViewModel,\r\n QuestionAdminViewModel,\r\n QuestionChoiceViewModel,\r\n QuestionType,\r\n} from \"../../../common/client\";\r\nimport {\r\n QuestionnaireAnswers,\r\n RenderQuestionAnswerProps,\r\n} from \"../Questionnaire/QuestionnaireAnswers\";\r\nimport {\r\n AnswersState,\r\n GroupAnswerValue,\r\n isGroupElementVisible,\r\n questionAnswerText,\r\n RepeaterAnswerValue,\r\n selectedChoiceNestedValue,\r\n useSortedNestedQuestions,\r\n} from \"../Questionnaire\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst pdfStyles = StyleSheet.create({\r\n page: {\r\n flexDirection: \"row\",\r\n backgroundColor: \"#fafafa\",\r\n },\r\n section: {\r\n margin: 10,\r\n padding: 10,\r\n flexGrow: 1,\r\n },\r\n header: {\r\n flexDirection: \"row\",\r\n justifyContent: \"space-evenly\",\r\n },\r\n title: {\r\n textAlign: \"center\",\r\n fontSize: 24,\r\n },\r\n line: {\r\n fontSize: 12,\r\n },\r\n imageLiL: {\r\n height: \"50\",\r\n width: \"50\",\r\n float: \"left\",\r\n },\r\n imageCFLC: {\r\n height: \"40\",\r\n width: \"60\",\r\n float: \"right\",\r\n },\r\n blueText: {\r\n color: \"#005A96\",\r\n },\r\n grouped: {\r\n marginLeft: \"20\",\r\n },\r\n nested: {\r\n border: 1,\r\n marginLeft: 10,\r\n marginBottom: 5,\r\n },\r\n topLevel: {\r\n marginBottom: 20,\r\n },\r\n topLevelHeading: {\r\n fontWeight: 900,\r\n },\r\n});\r\n\r\nexport function GenerateQuestionnairePDF({\r\n questions,\r\n answers,\r\n title,\r\n person,\r\n completedAt,\r\n}: {\r\n questions: QuestionAdminViewModel[];\r\n answers: AnswersState;\r\n title: string;\r\n person: PersonViewModel;\r\n completedAt: string | undefined;\r\n}) {\r\n return (\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {completedAt && (\r\n \r\n Date Completed:{\" \"}\r\n {format(new Date(completedAt!), \"dd-MM-yyyy HH:mm \")}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {\"First Name\"}:{\" \"}\r\n {person.firstName}\r\n \r\n \r\n {\"Last Name\"}:{\" \"}\r\n {person.lastName}\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\nfunction RenderQuestionPDF({\r\n choice,\r\n question: q,\r\n value,\r\n isNested,\r\n}: RenderQuestionAnswerProps & {\r\n isNested?: boolean;\r\n}): ReactElement {\r\n const nested = useSortedNestedQuestions(q);\r\n const topLevelStyle = !isNested ? pdfStyles.topLevel : undefined;\r\n switch (q.type) {\r\n case QuestionType.Grouped:\r\n return (\r\n \r\n
\r\n {q.heading}:\r\n
\r\n {renderNested(value ?? {})}\r\n
\r\n );\r\n case QuestionType.Repeater:\r\n const repeaterValue: RepeaterAnswerValue = value ?? [];\r\n return (\r\n \r\n
\r\n {q.heading}:\r\n
\r\n \r\n \r\n {nested.map((nq) => (\r\n \r\n {nq.heading}\r\n \r\n ))}\r\n \r\n {repeaterValue.map((rowValue) => (\r\n \r\n {nested.map((nq) => (\r\n \r\n {questionAnswerText(\r\n nq,\r\n selectedChoiceNestedValue(nq, rowValue),\r\n rowValue[nq.id],\r\n repeaterView,\r\n (text) => (\r\n {text}\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 \r\n {q.heading}\r\n \r\n :{\" \"}\r\n \r\n {questionAnswerText(q, choice, value, repeaterView, (text) => text)}\r\n \r\n \r\n \r\n );\r\n\r\n function repeaterView(vals: ReactNode[]) {\r\n return (\r\n \r\n {vals.map((n, i) => (\r\n
\r\n {n}\r\n
\r\n ))}\r\n
\r\n );\r\n }\r\n\r\n function renderNested(value: GroupAnswerValue) {\r\n console.log(value)\r\n return nested\r\n .filter((nq) => isGroupElementVisible(q, value, nq))\r\n .map((nq) => (\r\n \r\n ));\r\n }\r\n}\r\n","import { GenerateQuestionnairePDF } from \"./GeneratePDF\";\r\nimport { parseAnswers } from \"../Questionnaire\";\r\nimport {\r\n QuestionAdminViewModel,\r\n QuestionnairesClient,\r\n PersonViewModel\r\n} from \"../../../common/client\";\r\nimport { useApiClient } from \"../../../common/apiclients\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\n\r\n\r\ntype AnswersState = {\r\n [questionId: string]: { choiceId: string; value: any };\r\n};\r\n\r\nconst PDFDataConverter = ({ questionnairResponseId, firstName, lastName }: { questionnairResponseId: string, firstName: string, lastName: string }) => {\r\n const questionnairesClient = useApiClient(QuestionnairesClient);\r\n\r\n const title = \"CHaPS LiL/CFLC Referral Form\";\r\n const [answers, setAnswers] = useState({});\r\n const [questions, setQuestions] = useState([]);\r\n const [dataLoaded, setDataLoaded] = useState(false);\r\n const [completedAt, setCompletedAt] = useState(\"\")\r\n\r\n useEffect(() => {\r\n if (questions.length === 0) setData();\r\n }, []);\r\n \r\n const person: PersonViewModel = {\r\n id: \"\",\r\n firstName: firstName,\r\n lastName: lastName\r\n }\r\n\r\n async function setData() {\r\n const questionnaireData = await questionnairesClient.getQuestions(\r\n questionnairResponseId\r\n );\r\n setAnswers(parseAnswers(questionnaireData.responses));\r\n setQuestions(questionnaireData.questions);\r\n setCompletedAt(questionnaireData.completedAt as string); \r\n setDataLoaded(true)\r\n }\r\n\r\n return (\r\n <>\r\n {dataLoaded &&\r\n GenerateQuestionnairePDF({\r\n questions,\r\n answers,\r\n title,\r\n person,\r\n completedAt,\r\n })}\r\n \r\n );\r\n};\r\nexport default PDFDataConverter;\r\n","import {\r\n Backdrop,\r\n CircularProgress,\r\n Paper,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { CommonBTN } from \"../components/core/Buttons/CommonBTN\";\r\nimport { useHistory } from \"react-router\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { PDFDownloadLink } from \"@react-pdf/renderer\";\r\nimport { useApiClient, TokenContext } from \"../common/apiclients\";\r\nimport PDFDataConverter from \"../components/core/PDFGenerator/PDFDataConverter\";\r\nimport { format } from \"date-fns\";\r\nimport { Context } from \"../state/Store\";\r\nimport { QuestionnaireClient } from \"../common/client\";\r\n\r\nconst useGeneralCardStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n header: {\r\n padding: \"5px 5px 5px 10px\",\r\n borderBottom: \"1px inset\",\r\n marginBottom: \"10px\",\r\n fontSize: \"2rem\",\r\n },\r\n root: {\r\n height: 380,\r\n flexGrow: 1,\r\n maxWidth: 500,\r\n position: \"absolute\",\r\n left: \"50%\",\r\n top: \"41.5%\",\r\n transform: \"translate(-50%, -50%)\",\r\n },\r\n content: {\r\n alignSelf: \"center\",\r\n textAlign: \"center\",\r\n marginTop: \"12px\",\r\n },\r\n Btn: {\r\n padding: \"25px 10px 10px 50px\",\r\n alignContent: \"center\",\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#ffffff\",\r\n },\r\n })\r\n);\r\n\r\nexport const Finalisation = () => {\r\n const { state } = useContext(Context);\r\n \r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst FinalisationWindow = () => {\r\n const questionnaireClient = useApiClient(QuestionnaireClient);\r\n const classes = useGeneralCardStyles();\r\n const { state } = useContext(Context);\r\n const [loading, setLoading] = useState(false);\r\n const history = useHistory();\r\n const questionnairResponseId = window.location.href.slice(-36);\r\n const [email, setEmail] = useState(\"\");\r\n\r\n const downlaodPDF = () => {\r\n console.log(\"downloading pdf\", state);\r\n };\r\n const submitAnotherReferral = () => {\r\n history.push(\"/\");\r\n setLoading(true);\r\n };\r\n\r\n async function getEmail(): Promise {\r\n return await questionnaireClient.getQuestionnaireEmailByResponse(questionnairResponseId)\r\n }\r\n\r\n useEffect(() => {\r\n async function fetchEmail() {\r\n const result = await getEmail();\r\n setEmail(result);\r\n }\r\n\r\n fetchEmail();\r\n }, []);\r\n\r\n return (\r\n <>\r\n {loading ? (\r\n { }}>\r\n \r\n \r\n ) : (\r\n \r\n
\r\n \r\n Thanks!\r\n \r\n \r\n Thank you, the form was submited successfully Please contact {email} for any issues.\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n }\r\n fileName={`CHaPS_LiL_CFLC_WT_Referral_${format(\r\n new Date(),\r\n \"dd-MM-yyyy\"\r\n )}.pdf`}\r\n >\r\n downlaodPDF()}\r\n />\r\n \r\n
\r\n
\r\n submitAnotherReferral()}\r\n />\r\n
\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};","import React from \"react\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport ListSubheader from \"@material-ui/core/ListSubheader\";\r\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\r\nimport LabelOutlinedIcon from '@material-ui/icons/LabelOutlined';\r\nimport AssignmentIcon from \"@material-ui/icons/Assignment\";\r\nimport ViewListIcon from \"@material-ui/icons/ViewList\";\r\n\r\ninterface IMainListItems {\r\n\tqueueItems?: any[];\r\n\tonItemClick?: (item: any) => void;\r\n\tselectedItem?: any;\r\n}\r\n\r\nexport const MainListItems = ({\r\n\tqueueItems = [],\r\n\tonItemClick,\r\n\tselectedItem,\r\n}: IMainListItems) => {\r\n return (\r\n
\r\n {queueItems.map((q: any) => (\r\n onItemClick && onItemClick(q)}\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 const secondaryListItems = (\r\n\t
\r\n\t\tSaved reports\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t
\r\n);\r\n\r\nexport const DummyQuestions = (): any[] => [\r\n\t{\r\n\t\tid: \"816a739f-31a1-4bdb-d8ba-08d9560f2620\",\r\n\t\theading: \"Referral Person Registration\",\r\n\t\ttype: 6,\r\n\t\t//intent: 0,\r\n\t\t//intentKey: null,\r\n\t\t//order: 0,\r\n\t\t//questionnaireId: \"3dcbd0af-ac9e-4152-8503-0c4f95609030\",\r\n\t\t//deletedAt: null,\r\n\t\tchoices: [\r\n\t\t\t{\r\n\t\t\t\tid: \"55faf17e-d10a-4476-f1f4-08d9560f884d\",\r\n\t\t\t\ttext: \"Submit\",\r\n\t\t\t\t//outcomeResult: 4,\r\n\t\t\t\t//alert: null,\r\n\t\t\t\t//order: 0,\r\n\t\t\t\t//deletedAt: null\r\n\t\t\t},\r\n\t\t\t// {\r\n\t\t\t// id: \"946df91a-0e50-403a-f1f5-08d9560f884d\",\r\n\t\t\t// text: \"No\",\r\n\t\t\t// //outcomeResult: 4,\r\n\t\t\t// //alert: null,\r\n\t\t\t// //order: 0,\r\n\t\t\t// //deletedAt: null\r\n\t\t\t// },\r\n\t\t],\r\n\t\tresponseMappings: [\r\n\t\t\t{\r\n\t\t\t\tchoiceId: \"55faf17e-d10a-4476-f1f4-08d9560f884d\",\r\n\t\t\t\t//Id: '816a739f-31a1-4bdb-d8ba-08d9560f2620',\r\n\t\t\t\tnextQuestionId: \"1ff51566-ee3b-496b-d8bb-08d9560f2620\",\r\n\t\t\t\t//deletedAt: null\r\n\t\t\t},\r\n\t\t\t// {\r\n\t\t\t// choiceId: \"946df91a-0e50-403a-f1f5-08d9560f884d\",\r\n\t\t\t// //Id: '816a739f-31a1-4bdb-d8ba-08d9560f2620',\r\n\t\t\t// nextQuestionId: \"1ff51566-ee3b-496b-d8bb-08d9560f2620\",\r\n\t\t\t// //deletedAt: null\r\n\t\t\t// },\r\n\t\t],\r\n\t\tsubQuestions: [],\r\n\t\tnestedQuestions: [\r\n\t\t\t{\r\n\t\t\t\tid: \"816a739f-31a1-4bdb-d8ba-08d9560f2123\",\r\n\t\t\t\theading: \"First Name\",\r\n\t\t\t\ttype: 4,\r\n\t\t\t\trequired: true,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"816a739f-31a1-4bdb-d8ba-08d9560f2456\",\r\n\t\t\t\theading: \"Last Name\",\r\n\t\t\t\ttype: 4,\r\n\t\t\t\trequired: true,\r\n\t\t\t},\r\n\t\t],\r\n\t\tinfo: [],\r\n\t\tpreviousQuestionId: \"\",\r\n\t\tresponse: \"\",\r\n\t},\r\n];\r\n","import {withStyles} from \"@material-ui/core/styles\";\r\nimport {Avatar, Box, Typography} from \"@material-ui/core\";\r\n\r\nconst CustomAvatar = withStyles((theme) => ({\r\n root: {\r\n marginLeft:'0px',\r\n width:'30px',\r\n height:'30px',\r\n fontSize:theme.typography.caption.fontSize\r\n }\r\n}))(Avatar);\r\n\r\nexport const PersonAvatar = (props:any) => {\r\n \r\n return )=>props.onClick(event)}\r\n >\r\n \r\n {props.initials}\r\n \r\n {props.fullName}\r\n \r\n} ","import { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n BasicQuestionnaireViewModel,\r\n QuestionnairesClient,\r\n} from \"../../../../common/client\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Button, Link } from \"@material-ui/core\";\r\nimport { questionnaireHref } from \"../../Routes\";\r\n\r\nexport function QuestionnaireList() {\r\n const client = useApiClient(QuestionnairesClient);\r\n const [questionnaires, setQuestionnaires] =\r\n useState();\r\n\r\n useEffect(() => {\r\n loadQuestionnaires();\r\n }, []);\r\n\r\n return questionnaires ? showQuestionnaires(questionnaires) :
;\r\n\r\n function showQuestionnaires(list: BasicQuestionnaireViewModel[]) {\r\n return (\r\n <>\r\n

Published

\r\n
    \r\n {list.filter(q => q.published === true).map((q) => (\r\n
  • \r\n \r\n \r\n {q.name}\r\n
  • \r\n ))}\r\n
\r\n

Drafts

\r\n
    \r\n {list.filter(q => q.published === false).map((q) => (\r\n
  • \r\n \r\n \r\n {/**/}\r\n {q.name}\r\n
  • \r\n ))}\r\n
\r\n \r\n );\r\n }\r\n\r\n async function loadQuestionnaires() {\r\n setQuestionnaires(await client.getQuestionnaires());\r\n }\r\n\r\n async function deleteQuestionnaire(id: string) {\r\n const questionnaire = await client.getQuestionnaire(id);\r\n questionnaire.questions.forEach((question) => {\r\n deleteQuestion(id, question.id);\r\n });\r\n loadQuestionnaires();\r\n }\r\n\r\n async function deleteQuestion(id: string, questionID: string) {\r\n await client.deleteQuestion(id, questionID);\r\n }\r\n\r\n async function duplicateQuestionnaire(id:string) {\r\n await client.cloneQuestionnaire(id);\r\n loadQuestionnaires();\r\n }\r\n\r\n async function publishQuestionnaire(id: string) {\r\n await client.publishQuestionnaire(id);\r\n loadQuestionnaires();\r\n }\r\n}\r\n","import { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n BasicQuestionnaireViewModel,\r\n QuestionnairesClient,\r\n QueueClient,\r\n ViewQueueViewModel,\r\n} from \"../../../../common/client\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Button, Link } from \"@material-ui/core\";\r\nimport { editQueueLink } from \"../../Routes\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nexport function QueueList() {\r\n const client = useApiClient(QueueClient);\r\n const [queues, setQueues] = useState();\r\n\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n loadQueues();\r\n }, []);\r\n\r\n return queues ? showQueues(queues) :
;\r\n\r\n function showQueues(list: ViewQueueViewModel[]) {\r\n return (\r\n <>\r\n
    \r\n {list.map((q) => (\r\n
  • \r\n {q.name}\r\n
  • \r\n ))}\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n function addQueue() {\r\n history.push(\"/admin/queue\");\r\n }\r\n\r\n async function loadQueues() {\r\n setQueues(await client.getAllQueuesForEdit());\r\n }\r\n}\r\n","import React, {useContext} from \"react\";\r\nimport {Redirect, Route, Switch, useRouteMatch} from \"react-router\";\r\nimport {QuestionnaireList} from \"./views/Questionnaire/QuestionnaireList\";\r\nimport {QueueList} from \"./views/QueueManagement/QueueList\";\r\nimport {QueueEditor} from \"./views/QueueManagement/QueueEditor\";\r\nimport {Queue} from \"./views/Queue\";\r\nimport SummaryView from \"../../modules/admin/views/SummaryView\";\r\nimport {QuestionnaireEditor} from \"./views/Questionnaire/QuestionnaireEditor\";\r\nimport RoleManager from \"./views/RoleManager/RoleManager\";\r\nimport {Context} from \"../../state/Store\";\r\nimport {UserPermissions} from \"../../state/State.model\";\r\nimport {OutcomeAccess} from \"./views/OutcomeManagement/OutcomeAccess\";\r\n\r\nexport function questionnaireHref(id: string) {\r\n return `/admin/questionnaire/${id}`;\r\n}\r\n\r\nexport function editQueueLink(id: string) {\r\n return `/admin/queue/${id}`;\r\n}\r\n\r\nexport function AdminRoutes(queues: any[]) {\r\n\r\n const { state } = useContext(Context);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {state.user?.roles.find(\r\n (x) => x.permissions == UserPermissions.SuperUser\r\n ) && (\r\n \r\n \r\n \r\n )}\r\n {state.user?.roles.find(\r\n (x) => x.permissions == UserPermissions.SuperUser\r\n ) && (\r\n \r\n \r\n \r\n )}\r\n\r\n {queues && (\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 function viewQueueUrl(queueId: string) {\r\n return \"/admin/view/\" + queueId;\r\n}\r\n\r\nexport function useViewQueueMatch() {\r\n return useRouteMatch<{ queueId: string }>(\"/admin/view/:queueId\");\r\n}\r\n\r\nexport function questionnaireListUrl() {\r\n return \"/admin/questionnaires\";\r\n}\r\n\r\nexport function questionnaireEditUrl(id: string) {\r\n return \"/admin/questionnaire/\" + id;\r\n}\r\n","import { createRenderer } from \"@react-typed-forms/core\";\r\nimport {\r\n Checkbox,\r\n FormControlLabel,\r\n FormControlLabelProps,\r\n} from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nexport const FCheckbox = createRenderer<\r\n boolean,\r\n Omit\r\n>(({ state, ...props }, { errorText, value, onChange, ...formProps }) => (\r\n state.setValue(v)}\r\n {...formProps}\r\n />\r\n }\r\n />\r\n));\r\n","import { useHistory, useParams } from \"react-router\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n BasicQuestionnaireViewModel,\r\n EditQueueChoiceVm,\r\n EditQueueViewModel,\r\n QuestionnairesClient,\r\n QueueClient,\r\n} from \"../../../../common/client\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n arrayControl,\r\n buildGroup,\r\n control,\r\n ControlType,\r\n FormArray,\r\n} from \"@react-typed-forms/core\";\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Grid,\r\n MenuItem,\r\n} from \"@material-ui/core\";\r\nimport { FTextField } from \"../../../../common/formComponents/FTextField\";\r\nimport { FCheckbox } from \"../../../../common/formComponents/FCheckbox\";\r\n\r\nconst choiceForm = buildGroup()({\r\n name: \"\",\r\n description: \"\",\r\n notificationEmail: \"\",\r\n grouping: \"\",\r\n id: control(undefined),\r\n filterable: false,\r\n assignable: false,\r\n});\r\n\r\nexport const QueueFormDef = buildGroup()({\r\n name: \"\",\r\n defaultForm: control(undefined),\r\n canAccessGlobalFiles: false,\r\n queueOutcomes: arrayControl(choiceForm),\r\n canCreateForm: true,\r\n questionnaires: arrayControl(control(\"\")),\r\n launchForm: false,\r\n formCreateHelpText: \"\",\r\n defaultCSVQuestionnaireId: control(undefined),\r\n canExportCSV: false,\r\n notificationEmail: \"\"\r\n});\r\n\r\nexport type QueueForm = ControlType;\r\n\r\nexport function QueueEditor() {\r\n const client = useApiClient(QueueClient);\r\n const [form] = useState(QueueFormDef);\r\n const fields = form.fields;\r\n const { id } = useParams<{ id: string | undefined }>();\r\n const [saving, setSaving] = useState(false);\r\n const [queue, setQueue] = useState();\r\n const history = useHistory();\r\n const qsclient = useApiClient(QuestionnairesClient);\r\n const [questionnaires, setQuestionnaires] =\r\n useState();\r\n\r\n useEffect(() => {\r\n if (id) {\r\n loadQueue(id);\r\n }\r\n }, [id]);\r\n\r\n useEffect(() => {\r\n loadQuestionnaires();\r\n }, []);\r\n\r\n async function loadQuestionnaires() {\r\n const allQ = await qsclient.getQuestionnaires();\r\n setQuestionnaires(allQ);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {questionnaires ? (\r\n \r\n \r\n {questionnaires.map((q) => (\r\n {q.name}\r\n ))}\r\n \r\n \r\n ): (\r\n \r\n )}\r\n \r\n \r\n \r\n {(outcomes) =>\r\n outcomes.map((o, i) => (\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 fields.queueOutcomes.add();\r\n }}\r\n >\r\n Add Queue Outcome\r\n \r\n \r\n {questionnaires ? (\r\n \r\n \r\n \r\n {(qaires) =>\r\n qaires.map((o, i) => (\r\n <>\r\n \r\n \r\n {questionnaires.map((q) => (\r\n {q.name}\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 fields.questionnaires.add();\r\n }}\r\n >\r\n Add Questionnaire\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 async function loadQueue(id: string) {\r\n const queue = await client.getQueueForEdit(id);\r\n console.log(queue)\r\n const data = {\r\n ...queue,\r\n queueOutcomes: queue.queueOutcomes ? queue.queueOutcomes : [],\r\n };\r\n form.setValue(data);\r\n setQueue(queue);\r\n }\r\n\r\n async function saveQueue() {\r\n console.log(form.toObject());\r\n setSaving(true);\r\n id\r\n ? await client.editQueue(id, form.toObject())\r\n : await client.addQueue(form.toObject());\r\n setSaving(false);\r\n\r\n history.push(\"/admin/queues\");\r\n }\r\n}\r\n","import {withStyles} from \"@material-ui/core/styles\";\r\nimport {Divider, Paper} from \"@material-ui/core\";\r\n\r\nexport const AppBar = withStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n padding: '5px',\r\n marginBottom: '10px',\r\n minHeight:'60px'\r\n \r\n }\r\n}))(Paper);\r\nexport const AppBarDivider = withStyles((theme) => ({\r\n root: {\r\n margin: theme.spacing(0, 2),\r\n\r\n }\r\n}))(Divider);","import React from \"react\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport {fade, InputBase, InputBaseProps} from \"@material-ui/core\";\r\nimport {makeStyles, Theme} from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n search: {\r\n position: 'relative',\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.black, 0.03),\r\n '&:hover': {\r\n backgroundColor: fade(theme.palette.common.black, 0.05),\r\n },\r\n marginLeft: 0,\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n margin: theme.spacing(1),\r\n width: 'auto',\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: '100%',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create('width'),\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n width: '12ch',\r\n '&:focus': {\r\n width: '20ch',\r\n },\r\n },\r\n },\r\n}))\r\n\r\nexport const AppBarSearch = (props: InputBaseProps) => {\r\n\r\n const classes = useStyles();\r\n\r\n return
\r\n
\r\n \r\n
\r\n \r\n
\r\n}","import {DateRangeDelimiter, DateRangePicker, DateRange} from \"@material-ui/pickers\";\r\nimport {CalendarTextField, ValidationTextField} from \"./TextField\"\r\nimport {CircularProgress, Typography} from \"@material-ui/core\";\r\nimport React, {useEffect} from \"react\";\r\nimport {\r\n addDays, endOfToday, startOfToday, formatISO, startOfDay, endOfDay, isValid, startOfYesterday, startOfYear\r\n} from \"date-fns\";\r\nimport {withStyles} from \"@material-ui/core/styles\";\r\n\r\n\r\nconst StyledDateRangePicker = withStyles((theme) => ({\r\n root: {\r\n \r\n '&.MuiPickersSlideTransition-root':{\r\n overflowX:'visible',\r\n }\r\n }\r\n}))(DateRangePicker);\r\n\r\nexport const CalendarsDateRangePicker = (props: any) => {\r\n const today = new Date()\r\n const yesterday = addDays(today, -1)\r\n\r\n const {disabled, isDatePickerExpanded, onClose, onOpen} = props\r\n\r\n const [value, setValue] = React.useState>([startOfYear(endOfToday()), endOfToday()]);\r\n\r\n useEffect(() => {\r\n props.onRangeChange([formatISO(startOfDay(value[0]!)), formatISO(endOfDay(value[1]!))])\r\n }, [value])\r\n\r\n const AttributeController = isDatePickerExpanded === true ? {\r\n loading: disabled\r\n } : {\r\n disabled\r\n }\r\n\r\n\r\n\r\n return (\r\n }\r\n onClose={onClose}\r\n onOpen={onOpen}\r\n {...AttributeController}\r\n calendars={1}\r\n value={value}\r\n onChange={(newValue: any) => {\r\n\r\n if(newValue.length === 2 && isValid(newValue[0]) && isValid(newValue[1]))\r\n {\r\n setValue([startOfDay(newValue[0]), endOfDay(newValue[1])])\r\n\r\n }\r\n\r\n }}\r\n renderInput={(startProps, endProps) => (\r\n
\r\n \r\n TO\r\n \r\n \r\n
\r\n )}\r\n />\r\n );\r\n}","import React from \"react\";\r\nimport {withStyles} from \"@material-ui/core/styles\";\r\nimport {Container} from \"@material-ui/core\";\r\n\r\n\r\nexport const StyledContainer = withStyles((theme) => ({\r\n root: {\r\n [theme.breakpoints.down('md')]:{\r\n width:'100%',\r\n \r\n marginTop: theme.spacing(0),\r\n paddingLeft:theme.spacing(0),\r\n paddingRight:theme.spacing(0)\r\n },\r\n //width: '700px',\r\n marginTop: theme.spacing(4),\r\n // color:'#fff',\r\n //marginBottom: theme.spacing(4)\r\n }\r\n}))(Container);","import React from 'react'\r\nimport {List} from \"@material-ui/core\";\r\nimport {withStyles} from \"@material-ui/styles\";\r\n\r\nconst StyledOutcomeContentList = withStyles((theme) => ({\r\n root: {\r\n display:'flex',\r\n flexDirection:'column',\r\n height:'100%'\r\n }\r\n}))(List);\r\n\r\nexport const OutcomeList = (props:any) => {\r\n return \r\n {props.children}\r\n \r\n}","import React, {ReactElement, useState, useEffect, CSSProperties} from \"react\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardHeader from \"@material-ui/core/CardHeader\";\r\n//Thomas Xu \r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport {useMediaQuery} from \"@material-ui/core\";\r\n//end of added\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport DriveEtaIcon from '@material-ui/icons/DriveEta';\r\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\r\nimport {\r\n CarSideSolidInformation,\r\n DollarSignSolid,\r\n ClockSolid,\r\n AngleRight,\r\n AngleLeft,\r\n PlayCircle,\r\n PauseCircle\r\n} from \"../Icons/DoHIcons\";\r\n\r\nimport {Avatar, Box, CardContent, Grid, Icon, List, Slide, Slider, Typography, useTheme} from \"@material-ui/core\";\r\nimport {createStyles, makeStyles, Theme, withStyles} from \"@material-ui/core/styles\";\r\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport WarningRoundedIcon from '@material-ui/icons/WarningRounded';\r\nimport clsx from \"clsx\";\r\nimport {Skeleton} from \"@material-ui/lab\";\r\nimport {StyledContainer} from \"./Container\";\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport CallIcon from '@material-ui/icons/Call';\r\nimport {OutcomeDetailsListItem} from \"./ListItem\";\r\nimport {OutcomeList} from \"./List\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n icon: {\r\n color: theme.palette.primary.contrastText,\r\n maxWidth: 'unset',\r\n maxHeight: 'unset',\r\n fontSize: '5rem!important',\r\n //margin: '10px!important',\r\n [theme.breakpoints.down(\"sm\")]: {\r\n pointerEvents: 'none'\r\n },\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n },\r\n contentIcon: {\r\n color: theme.palette.primary.light,\r\n maxWidth: 'unset',\r\n maxHeight: 'unset',\r\n fontSize: theme.typography.body2.fontSize,\r\n margin: '0 5px 0 0px!important',\r\n [theme.breakpoints.down(\"sm\")]: {\r\n pointerEvents: 'none'\r\n },\r\n },\r\n disabled: {\r\n \"& h1\": {\r\n color: \"gray!important\",\r\n },\r\n \"& p\": {\r\n color: \"gray!important\",\r\n },\r\n },\r\n alert: {\r\n '&.info': {\r\n boxShadow: `${theme.DoH.color.info} 0px 1px 3px 0px, ${theme.DoH.color.info} 0px 0px 0px 1px`,\r\n },\r\n '&.error': {\r\n boxShadow: `${theme.DoH.color.error} 0px 1px 3px 0px, ${theme.DoH.color.error} 0px 0px 0px 1px`,\r\n }\r\n ,\r\n '&.warning': {\r\n boxShadow: `${theme.DoH.color.warning} 0px 1px 3px 0px, ${theme.DoH.color.warning} 0px 0px 0px 1px`,\r\n },\r\n cursor: 'default',\r\n '&:hover': {\r\n boxShadow: '#2196f3 0px 1px 3px 0px, #2196f3 0px 0px 0px 1px',\r\n },\r\n '&.noHover': {\r\n pointerEvents: 'none'\r\n }\r\n },\r\n alertBox: {\r\n '&.info': {\r\n backgroundColor: theme.DoH.color.info + '!important',\r\n },\r\n '&.error': {\r\n backgroundColor: theme.DoH.color.error + '!important',\r\n },\r\n '&.warning': {\r\n backgroundColor: theme.DoH.color.warning + '!important',\r\n },\r\n '&.conditional': {\r\n backgroundColor: theme.DoH.color.conditional + '!important',\r\n },\r\n '&.New': {\r\n backgroundColor: theme.DoH.color.warning\r\n },\r\n '&.Viewed': {\r\n backgroundColor: theme.DoH.color.exemption\r\n },\r\n '&.OnHold': {\r\n backgroundColor: theme.DoH.color.fail\r\n },\r\n '&.PDFDownloaded': {\r\n backgroundColor: theme.DoH.color.pass\r\n },\r\n },\r\n clickable: {\r\n cursor: 'pointer'\r\n },\r\n messageIcon: {\r\n color: theme.palette.primary.contrastText,\r\n maxWidth: 'unset',\r\n maxHeight: 'unset',\r\n fontSize: '3.5rem!important',\r\n //margin: '25px!important',\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '2rem!important',\r\n }\r\n },\r\n options: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n // paddingLeft: theme.spacing(1),\r\n // paddingBottom: theme.spacing(1),\r\n marginTop: theme.spacing(4),\r\n //color:theme.palette.primary,\r\n [theme.breakpoints.down('sm')]: {\r\n alignItems: 'center',\r\n marginTop: theme.spacing(2),//todo use theme.spacing\r\n display: 'grid',\r\n // Thomas modified \r\n // justifyContent: 'center',\r\n alignContent: 'center',\r\n }\r\n },\r\n messageAvatar: {\r\n width: '5rem',\r\n height: '5rem',\r\n // thomas added\r\n [theme.breakpoints.down('sm')]: {\r\n width: '3rem',\r\n height: '3rem',\r\n position: 'absolute',\r\n top: '6%',\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n marginLeft: theme.spacing(1)\r\n },\r\n },\r\n informationAvatar: {\r\n width: '3rem',\r\n height: '3rem',\r\n // Thomas Commoned out\r\n // marginLeft:'30px',\r\n //Thomas 28/06/21\r\n marginTop: '5px',\r\n // Thomas change the color from theme\r\n backgroundColor: theme.palette.primary.main,\r\n [theme.breakpoints.down('sm')]: {\r\n marginLeft: theme.spacing(0),\r\n }\r\n },\r\n optionStyle: {\r\n display: 'inline-flex',\r\n },\r\n //Thomas 28/06/21\r\n textColor: {\r\n // change to theme color\r\n color: theme.palette.primary.contrastText,\r\n },\r\n // thomas added\r\n cardContantStyle: {\r\n marginLeft: '0px',\r\n marginTop: '0px',\r\n paddingLeft: '0px',\r\n paddingTop: '0px',\r\n fontFamily: 'interstate',\r\n },\r\n bannerControlStyle: {\r\n marginRight: theme.spacing(2),\r\n paddingTop: '5px',\r\n backgroundColor: 'rgba(53,53,53,0.95)',\r\n borderRadius: '0.25rem',\r\n textAlign: 'center',\r\n marginLeft: 'calc(100% - 15%)',\r\n marginBottom: '10px',\r\n position: 'inherit',\r\n maxWidth: '13%',\r\n [theme.breakpoints.down('md')]: {\r\n // marginRight:'90%'\r\n marginRight: '10px',\r\n },\r\n },\r\n bannerPlayButtonStyle: {\r\n padding: '0px',\r\n borderRadius: '999px',\r\n width: '1.5625rem',\r\n height: '1.5625rem',\r\n color: theme.palette.primary.contrastText,\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n backgroundColor: theme.palette.primary.light,\r\n cursor:'pointer'\r\n },\r\n bannerPreviousNextButtonStyle: {\r\n width: '1.5625rem',\r\n height: '1.5625rem',\r\n color: theme.palette.primary.contrastText,\r\n cursor:'pointer'\r\n },\r\n bannerDivStyle: {\r\n display: \"flex\",\r\n marginLeft: '17%',\r\n [theme.breakpoints.down('md')]: {\r\n marginLeft: '12%',\r\n },\r\n },\r\n details: {\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n noIcon:{\r\n width: '30px!important',\r\n }\r\n // end added\r\n }\r\n ))\r\nconst StyledCard = withStyles((theme) => ({\r\n root: {\r\n maxWidth: '100%!important',\r\n \r\n cursor: 'pointer',\r\n WebkitTransition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n transition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n '&:hover': {\r\n boxShadow: '0px 3px 3px -2px rgb(0 0 0 / 20%), 0px 12px 16px 0px rgb(0 0 0 / 14%), 0px 4px 32px 0px rgb(0 0 0 / 12%)',\r\n WebkitTransition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n transition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n },\r\n '&.noHover': {\r\n pointerEvents: 'none'\r\n },\r\n '&.noRadius':{\r\n borderRadius: 'unset!important',\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n borderRadius: 'unset!important',\r\n maxWidth: '95%',\r\n margin: 'auto',\r\n marginBottom: '15px',\r\n }\r\n }\r\n}))(Card);\r\nconst StyledCardBanner = withStyles((theme) => ({\r\n root: {\r\n maxWidth: '100%!important',\r\n minHeight: '120px',\r\n backgroundColor: theme.palette.primary.light,\r\n //background: rgb(0,103,102);\r\n background: 'linear-gradient(90deg, rgba(0,103,102,1) 0%, rgba(0,103,102,1) 35%, rgba(0,129,128,1) 100%)',\r\n //Thomas 28/06/21\r\n position: 'relative',\r\n display: 'flex',\r\n webkitBoxOrient: 'vertical',\r\n webkitBoxDirection: 'normal',\r\n msFlexDirection: 'column',\r\n flexDirection: 'column',\r\n minWidth: 0,\r\n wordWrap: 'break-word',\r\n backgroundClip: 'border-box',\r\n // \r\n // border: '0 solid rgba(0,0,0,0.125)',\r\n borderRadius: 0,\r\n //boxShadow: '0 0 10px 0 rgba(0,0,0,0.15)',\r\n\r\n\r\n }\r\n}))(Card);\r\nconst StyledCardMessage = withStyles((theme) => ({\r\n root: {\r\n maxWidth: '100%!important',\r\n minHeight: '150px',\r\n position: 'relative',\r\n display: 'flex',\r\n webkitBoxOrient: 'vertical',\r\n webkitBoxDirection: 'normal',\r\n msFlexDirection: 'column',\r\n flexDirection: 'column',\r\n wordWrap: 'break-word',\r\n backgroundClip: 'border-box',\r\n borderRadius: 0,\r\n backgroundColor: 'inherit',\r\n boxShadow: 'unset',\r\n [theme.breakpoints.down('sm')]: {\r\n minHeight: '200px',\r\n }\r\n }\r\n}))(Card);\r\nconst StyledStatisticCard = withStyles((theme) => ({\r\n root: {\r\n //marginBottom: '15px',\r\n minWidth: '200px',\r\n cursor: 'pointer',\r\n WebkitTransition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n transition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n '&:hover': {\r\n boxShadow: '0px 3px 3px -2px rgb(0 0 0 / 20%), 0px 12px 16px 0px rgb(0 0 0 / 14%), 0px 4px 32px 0px rgb(0 0 0 / 12%)',\r\n WebkitTransition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n transition: 'all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)',\r\n },\r\n '&.noHover': {\r\n pointerEvents: 'none'\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n borderRadius: 'unset!important',\r\n maxWidth: '95%',\r\n margin: 'auto',\r\n marginBottom: theme.spacing(2),\r\n }\r\n }\r\n}))(Card);\r\nconst SelectableCardHeader = withStyles((theme) => ({\r\n root: {\r\n padding: '0px!important',\r\n textAlign: 'left'\r\n },\r\n content: {\r\n padding: '10px 10px 10px 0',\r\n }\r\n}))(CardHeader);\r\nconst SelectableStatisticCardHeader = withStyles((theme) => ({\r\n root: {\r\n display: 'block',\r\n padding: '20px!important',\r\n textAlign: 'center',\r\n },\r\n avatar: {\r\n marginRight: '0px'\r\n }\r\n}))(CardHeader);\r\nconst StyledBox = withStyles((theme) => ({\r\n root: {\r\n width: '80px',\r\n height: '100%',\r\n backgroundColor: theme.palette.primary.main,\r\n position: 'relative',\r\n \r\n }\r\n}))(Box);\r\nconst StyledStatisticBox = withStyles((theme) => ({\r\n root: {\r\n marginRight: '0px'\r\n }\r\n}))(Box);\r\nconst StyledOutcomeCard = withStyles((theme) => ({\r\n root: {\r\n //height: '100%',\r\n maxWidth: '100%',\r\n margin: 'auto',\r\n display: 'flex',\r\n webkitBoxOrient: 'vertical',\r\n webkitBoxDirection: 'normal',\r\n msFlexDirection: 'column',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minWidth: 0,\r\n wordWrap: 'break-word',\r\n backgroundClip: 'border-box',\r\n border: '0 solid rgba(0,0,0,0.125)',\r\n borderRadius: 0,\r\n boxShadow: '0 0 10px 0 rgba(0,0,0,0.15)',\r\n cursor: 'default'\r\n }\r\n}))(Card);\r\nconst StyledOutcomeCardContent = withStyles((theme) => ({\r\n root: {\r\n paddingTop: '10px',\r\n height: '100%',\r\n [theme.breakpoints.down(\"sm\")]: {\r\n minWidth: '100%',\r\n margin: 'unset',\r\n },\r\n\r\n '&:last-child': {\r\n padding: 'unset'\r\n },\r\n '& .MuiList-root': {\r\n padding: '0px!important'\r\n }\r\n }\r\n}))(CardContent);\r\nconst StyledInformationCard = withStyles((theme) => ({\r\n root: {\r\n // Thomas modified\r\n // height:'100%',\r\n maxWidth: '100%',\r\n margin: 'auto',\r\n display: 'flex',\r\n webkitBoxOrient: 'vertical',\r\n webkitBoxDirection: 'normal',\r\n msFlexDirection: 'column',\r\n flexDirection: 'column',\r\n flex: 1,\r\n fontFamily: 'interstate',\r\n // thomas changed the color from theme\r\n color: theme.palette.primary.main,\r\n\r\n minWidth: 0,\r\n wordWrap: 'break-word',\r\n // THOMAS ADDED \r\n borderTop: '1px solid',\r\n marginTop: theme.spacing(2),\r\n //end of added\r\n backgroundClip: 'border-box',\r\n border: '0 solid rgba(0,0,0,0.125)',\r\n borderRadius: 0,\r\n // Thomas commont out\r\n // boxShadow: '0 0 10px 0 rgba(0,0,0,0.15)',\r\n iconStyle: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n paddingLeft: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n }\r\n }\r\n}))(Card);\r\n\r\nconst StyledInfoCard = withStyles((theme) => ({\r\n root: {\r\n height:'100%',\r\n maxWidth:'90%',\r\n margin:'auto',\r\n display: 'flex',\r\n webkitBoxOrient: 'vertical',\r\n webkitBoxDirection: 'normal',\r\n msFlexDirection: 'column',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minWidth: 0,\r\n wordWrap: 'break-word',\r\n backgroundClip: 'border-box',\r\n border: '0 solid rgba(0,0,0,0.125)',\r\n borderRadius: 0,\r\n boxShadow: '0 0 10px 0 rgba(0,0,0,0.15)',\r\n }\r\n}))(Card);\r\nconst StyledInfoCardContent = withStyles((theme) => ({\r\n root: {\r\n paddingTop: '10px',\r\n height:'100%',\r\n [theme.breakpoints.down(\"sm\")]: {\r\n minWidth: '100%',\r\n margin: 'unset',\r\n },\r\n\r\n '&:last-child': {\r\n padding: 'unset'\r\n },\r\n '& .MuiList-root': {\r\n padding: '0px!important'\r\n }\r\n }\r\n}))(CardContent);\r\n\r\n\r\nexport const SelectableInfoCard = (props: any) => {\r\n const classes = useStyles();\r\n return (\r\n props.onClick()}\r\n >\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport interface ISelectableCardProps {\r\n variant: 'alert',\r\n severity: 'info' | 'error' | 'conditional',\r\n\r\n style: React.CSSProperties\r\n}\r\n\r\nexport const SelectableCard = (props: ISelectableCardProps & any) => {\r\n\r\n const classes = useStyles();\r\n const StyledIcon = (): JSX.Element | null => {\r\n if (props.icon) return React.cloneElement((props.icon as JSX.Element), {\"className\": classes.icon,})\r\n return null;\r\n };\r\n\r\n const getVariantIcon = (): ReactElement | undefined => {\r\n switch (props.severity) {\r\n case 'info':\r\n return \r\n case 'error':\r\n return \r\n case 'warning':\r\n return \r\n }\r\n }\r\n\r\n return (\r\n
{\r\n if (props.onSelected) {\r\n props.onSelected()\r\n }\r\n }}>\r\n \r\n \r\n \r\n {props.variant ? getVariantIcon() : }\r\n \r\n \r\n
\r\n \r\n {props.content}\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport const SelectableCardIconContentItem = (props: any & CSSProperties) => {\r\n const classes = useStyles();\r\n\r\n const StyledIcon = (): JSX.Element | null => {\r\n if (props.icon) return React.cloneElement((props.icon as JSX.Element), {\"className\": classes.contentIcon, \"style\":props.style})\r\n return null;\r\n };\r\n\r\n return \r\n \r\n {props.text}\r\n \r\n}\r\nexport const SelectableStatisticCard = (props: ISelectableCardProps & any) => {\r\n\r\n const classes = useStyles();\r\n\r\n const cardClassName = `${\r\n props.disabled\r\n ? \"noHover\"\r\n : props.variant === \"alert\"\r\n ? clsx(classes.alert, props.severity, \"noHover\")\r\n : props.onSelected\r\n ? \"\"\r\n : \"noHover\"\r\n }`;\r\n\r\n return (\r\n
{\r\n if (props.onSelected && !props.disabled) {\r\n props.onSelected()\r\n }\r\n }}>\r\n \r\n \r\n {props.value}\r\n }\r\n title={props.title}\r\n subheader={props.subheader}\r\n action={props.action}\r\n />\r\n \r\n
\r\n )\r\n}\r\nexport const SelectableCardSkeleton = (props: any) => {\r\n\r\n const skeletons = []\r\n\r\n for (let i = 0; i < props.count; i++) {\r\n skeletons.push(\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 return (\r\n
\r\n {skeletons}\r\n
\r\n )\r\n}\r\nexport const OutcomeCard = (props: any) => {\r\n const classes = useStyles();\r\n return (\r\n {\r\n props.onClick && props.onClick()\r\n }}\r\n >\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n )\r\n}\r\nexport const SkeletonCard = (props: any) => {\r\n const skeletons = []\r\n\r\n for (let i = 0; i < props.count; i++) {\r\n skeletons.push(\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 return (\r\n
\r\n {skeletons}\r\n
\r\n )\r\n}\r\nexport const BannerCard = (props: any) => {\r\n\r\n\r\n const [activeIndex, setActiveIndex] = useState(0)\r\n const [elementIn, setElementIn] = useState(true);\r\n\r\n // thomas added the State\r\n const [stopTransitionTimeout, setStopTransitionTimeout] = useState(false);\r\n const transitionDuration = 10000;\r\n const [bannerTimeInterval, setBannerTimeInterval] = useState()\r\n const [slidDirection, setSlidDirection] = useState(true);\r\n const classes = useStyles();\r\n let theme = useTheme();\r\n // end added\r\n\r\n// Thomas added the funciton for banner control\r\n const handleKeyStop = (e?: any) => {\r\n if (e.keyCode === 13) {\r\n setSlidDirection(true);\r\n setStopTransitionTimeout(!stopTransitionTimeout);\r\n\r\n }\r\n }\r\n const handleStop = () => {\r\n setSlidDirection(true);\r\n setStopTransitionTimeout(!stopTransitionTimeout);\r\n }\r\n const handleButtonPre = (e?: any) => {\r\n if (e.keyCode === 13) {\r\n setSlidDirection(false);\r\n setTimeout(() => {\r\n setElementIn(false);\r\n setTimeout(() => {\r\n setElementIn(true)\r\n activeIndex == 0 ? setActiveIndex(props.children.length - 1) : setActiveIndex(activeIndex - 1)\r\n setSlidDirection(true);\r\n }, 700);\r\n }, 1000)\r\n }\r\n }\r\n const handlePre = () => {\r\n setSlidDirection(false);\r\n setTimeout(() => {\r\n setElementIn(false);\r\n setTimeout(() => {\r\n setElementIn(true)\r\n activeIndex == 0 ? setActiveIndex(props.children.length - 1) : setActiveIndex(activeIndex - 1)\r\n setSlidDirection(true);\r\n }, 700);\r\n }, 1000)\r\n }\r\n const handleButtonNext = (e?: any) => {\r\n if (e.keyCode === 13) {\r\n setTimeout(() => {\r\n setElementIn(false);\r\n setTimeout(() => {\r\n setElementIn(true)\r\n setActiveIndex((activeIndex + 1) % props.children.length)\r\n }, 700);\r\n }, 1000)\r\n }\r\n }\r\n const handleNext = () => {\r\n setTimeout(() => {\r\n setElementIn(false);\r\n setTimeout(() => {\r\n setElementIn(true)\r\n setActiveIndex((activeIndex + 1) % props.children.length)\r\n }, 700);\r\n }, 1000)\r\n }\r\n\r\n useEffect(() => {\r\n if (stopTransitionTimeout) {\r\n clearInterval(bannerTimeInterval)\r\n } else {\r\n let timeInterval = setInterval(() => {\r\n setElementIn(false);\r\n }, transitionDuration)\r\n setBannerTimeInterval(timeInterval)\r\n }\r\n }, [stopTransitionTimeout])\r\n // changed the 500 to 700\r\n useEffect(() => {\r\n if (!elementIn) {\r\n setTimeout(() => {\r\n setElementIn(true)\r\n setActiveIndex((activeIndex + 1) % props.children.length)\r\n }, 700);\r\n }\r\n }, [elementIn])\r\n// end add\r\n\r\n return (\r\n \r\n \r\n \r\n {/* thomas changed in 1/07/21*/}\r\n {props.children && slidDirection ?\r\n \r\n
{props.children[activeIndex]}
\r\n
:\r\n \r\n
{props.children[activeIndex]}
\r\n
}\r\n {/* thomas added the function */}\r\n\r\n \r\n {/* */}\r\n
\r\n
\r\n
{stopTransitionTimeout ?\r\n \r\n : }
\r\n
\r\n
\r\n {/*
*/}\r\n \r\n {/* end added */}\r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport const MessageCard = (props: any) => {\r\n const classes = useStyles();\r\n const StyledIcon = (): JSX.Element | null => {\r\n if (props.icon) return React.cloneElement((props.icon as JSX.Element), {\"className\": classes.messageIcon,})\r\n return null;\r\n };\r\n return (\r\n \r\n \r\n {/* thomas added the lg and changed the xs 1 to 2 and xs 11 to 10 \r\n added the md\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\nexport const InformationCard = (props: any) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.title}\r\n \r\n \r\n \r\n
 
\r\n
\r\n \r\n {/* thomas modified */}\r\n \r\n \r\n {props.text}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.informationOption[0]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.informationOption[1]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, {forwardRef, useImperativeHandle} from \"react\";\r\nimport {Theme, withStyles} from \"@material-ui/core/styles\";\r\nimport MuiDrawer from \"@material-ui/core/Drawer\";\r\nimport {AppBar, Dialog, IconButton, Toolbar, Typography} from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n\r\n\r\n\r\nconst StyledDrawer = withStyles((theme:Theme)=>({\r\n root:{\r\n\r\n },\r\n paper:{\r\n width: '80%',\r\n overflowX: 'hidden', /* Hide horizontal scrollbar */\r\n display:'flow-root!important'\r\n },\r\n paperAnchorDockedRight:{\r\n borderLeft:0\r\n }\r\n}))(MuiDrawer);\r\n\r\nexport const Drawer = forwardRef ((props:any, ref) => {\r\n\r\n const [drawerState, setDrawerState] = React.useState(false)\r\n \r\n const handleClose = () => {\r\n setDrawerState(false);\r\n };\r\n\r\n useImperativeHandle(ref,()=>({\r\n openDrawer:() => {\r\n setDrawerState(true)\r\n },\r\n closeDrawer:() => {\r\n setDrawerState(false)\r\n }\r\n }))\r\n\r\n return (\r\n
\r\n {\r\n props.onClose(e, reason);\r\n }}>\r\n \r\n {props.showToolBar && \r\n \r\n \r\n \r\n {props.title && \r\n {props.title}\r\n }\r\n }\r\n \r\n {props.children}\r\n \r\n
\r\n );\r\n})","import React from 'react'\r\nimport {withStyles} from \"@material-ui/core/styles\";\r\nimport {Button, Box, IconButton, Tooltip} from \"@material-ui/core\";\r\nimport shadows from '@material-ui/core/styles/shadows';\r\nimport { ToggleButton } from '@material-ui/lab';\r\n\r\nconst StyledIconButton = withStyles((theme) => ({\r\n root: {\r\n fontSize: '3rem',\r\n padding: '5px!important',\r\n color: theme.palette.primary.light\r\n },\r\n label:{\r\n '& a':{\r\n color: theme.palette.primary.light + '!important'\r\n }\r\n }\r\n \r\n}))(IconButton);\r\n\r\nconst StyledTextButton = withStyles((theme) => ({\r\n root: {\r\n fontSize: '1rem',\r\n padding: '5px!important',\r\n color: '#55437e',\r\n width: '50px',\r\n '&.Mui-selected': {\r\n backgroundColor: '#55437e',\r\n color: '#fff',\r\n '&:hover': {\r\n backgroundColor: '#55437e',\r\n color: '#fff',\r\n }\r\n },\r\n },\r\n label: {\r\n '& a': {\r\n color: theme.palette.primary.light + '!important'\r\n }\r\n }\r\n}))(ToggleButton);\r\n\r\n// @ts-ignore\r\nexport const AppBarIconButton = ({children, title, ...props}) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n)\r\n\r\n// @ts-ignore\r\nexport const AppBarTextButton = ({children, title, ...props}) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n)","import {Grid,Tooltip} from \"@material-ui/core\";\r\nimport {Skeleton} from \"@material-ui/lab\";\r\nimport Timeline from \"@material-ui/lab/Timeline\";\r\nimport TimelineItem from \"@material-ui/lab/TimelineItem\";\r\nimport TimelineOppositeContent from \"@material-ui/lab/TimelineOppositeContent\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {format} from \"date-fns\";\r\nimport TimelineSeparator from \"@material-ui/lab/TimelineSeparator\";\r\nimport TimelineDot from \"@material-ui/lab/TimelineDot\";\r\nimport CommentIcon from \"@material-ui/icons/Comment\";\r\nimport TimelineConnector from \"@material-ui/lab/TimelineConnector\";\r\nimport TimelineContent from \"@material-ui/lab/TimelineContent\";\r\nimport {SelectableCard, SelectableCardIconContentItem} from \"./Card\";\r\nimport {PersonAvatar} from \"./Avatar\";\r\nimport React from \"react\";\r\nimport ListAltIcon from \"@material-ui/icons/ListAlt\";\r\nimport LiveHelpIcon from \"@material-ui/icons/LiveHelp\";\r\nimport QuestionAnswerIcon from \"@material-ui/icons/QuestionAnswer\";\r\nimport PublicIcon from \"@material-ui/icons/Public\";\r\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport {createStyles, makeStyles, Theme, withStyles} from \"@material-ui/core/styles\";\r\n\r\nconst TimelineItemFullWidth = withStyles((theme) => ({\r\n root: {\r\n \r\n },\r\n missingOppositeContent:{\r\n '&:before':{\r\n flex:'none',\r\n content:'unset',\r\n }\r\n }\r\n}))(TimelineItem);\r\n\r\nexport const SkeletonTimeLine = (props: any) => {\r\n\r\n const skeletons = []\r\n \r\n for(let i = 0; i < props.count; i++) {\r\n skeletons.push(\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 return
{skeletons}
\r\n \r\n};\r\nexport const CommentsTimeLine = (props: any) => {\r\n return (\r\n \r\n {props.comments &&\r\n props.comments.map((comment: any) => (\r\n \r\n \r\n \r\n {comment.global ? : }\r\n \r\n \r\n \r\n \r\n \r\n : }\r\n text={comment.note}\r\n />\r\n }\r\n text={`${comment.person.firstName} ${comment.person.lastName}`}\r\n />\r\n }\r\n text={format(new Date(comment.createdAt), \"HH:mm dd-MM-yyyy\")}\r\n />\r\n \r\n }\r\n />\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\nexport const AuditTimeLine = (props: any) => {\r\n return (\r\n \r\n {props.auditEvents &&\r\n props.auditEvents.map((event: any, idx: number) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n content={\r\n <>\r\n }\r\n text={event.message}\r\n />\r\n }\r\n text={`${event.person.firstName} ${event.person.lastName}`}\r\n />\r\n }\r\n text={format(new Date(event.createdAt), \"HH:mm dd-MM-yyyy\")}\r\n />\r\n \r\n }\r\n />\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\nexport const QuestionTimeLine = (props: any) => {\r\n return (\r\n \r\n {props.questionResponses &&\r\n props.questionResponses.map((response: any) => (\r\n \r\n \r\n \r\n {format(new Date(response.createdAt), \"HH:mm dd-MM-yyyy\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n content={\r\n <>\r\n {/**/}\r\n {/* {responses.message}*/}\r\n {/**/}\r\n }\r\n text={response.question.heading}\r\n />\r\n }\r\n text={response.questionChoice.text}\r\n />\r\n \r\n }\r\n />\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n","import { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n ApiException,\r\n QueueClient,\r\n WorkItemFileViewModel,\r\n} from \"../../../../common/client\";\r\nimport React, {\r\n ChangeEvent,\r\n ChangeEventHandler,\r\n DragEvent,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { SkeletonTimeLine } from \"../../../../components/muiCore/TimeLine\";\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n FormControlLabel,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n Switch,\r\n} from \"@material-ui/core\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { styled } from \"@material-ui/core/styles\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport fileSize from \"filesize.js\";\r\nimport { control } from \"@react-typed-forms/core\";\r\nimport { FCheckbox } from \"../../../../common/formComponents/FCheckbox\";\r\n\r\ntype ItemFileModel = WorkItemFileViewModel & {\r\n action?: boolean;\r\n};\r\n\r\nexport function QueueWorkItemFiles({\r\n queueId,\r\n workItemId,\r\n}: {\r\n queueId: string;\r\n workItemId: string;\r\n}) {\r\n const client = useApiClient(QueueClient);\r\n const [files, setFiles] = useState();\r\n const [loading, setLoading] = useState(true);\r\n const fileRef = useRef(null);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n loadFiles();\r\n }, [queueId, workItemId]);\r\n\r\n return loading || !files ? (\r\n \r\n ) : (\r\n \r\n \r\n e.preventDefault()}\r\n onDrop={handleDrop}\r\n >\r\n Drag documents here\r\n \r\n \r\n {files.map((f) => (\r\n \r\n \r\n {\r\n e.preventDefault();\r\n downloadFile(f);\r\n }}\r\n >\r\n {f.filename}\r\n
\r\n {Boolean(f.action) && }\r\n \r\n }\r\n secondary={fileSize(f.length)}\r\n />\r\n\r\n {f.queueId == queueId && (\r\n \r\n setGlobal(f, global)}\r\n />\r\n }\r\n label=\"Global\"\r\n />\r\n deleteFile(f)}>\r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n );\r\n\r\n function clickFile() {\r\n fileRef.current?.click();\r\n }\r\n\r\n function uploadFiles(e: ChangeEvent) {\r\n uploadFileList(e.target.files);\r\n e.target.value = \"\";\r\n }\r\n\r\n function updateFile(\r\n f: WorkItemFileViewModel,\r\n update: (f: WorkItemFileViewModel) => WorkItemFileViewModel\r\n ) {\r\n setFiles((files) => files?.map((fi) => (fi === f ? update(f) : fi)));\r\n }\r\n\r\n function uploadFileList(files?: FileList | null) {\r\n if (!files) return;\r\n for (let i = 0; i < files.length; i++) {\r\n const f = files[i];\r\n uploadOne(f);\r\n }\r\n\r\n async function uploadOne(f: File) {\r\n const uploadingFile: ItemFileModel = {\r\n action: true,\r\n filename: f.name,\r\n length: f.size,\r\n global: false,\r\n queueId: queueId,\r\n };\r\n setFiles((files) => [...(files ?? []), uploadingFile]);\r\n try {\r\n const newFile = await client.addFile(\r\n queueId,\r\n workItemId,\r\n f.name,\r\n false,\r\n f\r\n );\r\n updateFile(uploadingFile, () => newFile);\r\n } catch (e) {\r\n if (ApiException.isApiException(e)) {\r\n if (e.status === 413) {\r\n console.log(\"File too large\");\r\n }\r\n }\r\n console.log(e);\r\n }\r\n }\r\n }\r\n\r\n async function loadFiles() {\r\n const files = await client.getWorkItemFiles(queueId, workItemId);\r\n setFiles(files);\r\n setLoading(false);\r\n }\r\n\r\n async function downloadFile(f: WorkItemFileViewModel) {\r\n const result = await client.getFile(f.queueId, workItemId, f.filename);\r\n saveAs(result.data, f.filename);\r\n }\r\n\r\n async function deleteFile(f: WorkItemFileViewModel) {\r\n await client.deleteFile(queueId, workItemId, f.filename);\r\n setFiles((fl) => fl?.filter((f1) => f1 !== f));\r\n }\r\n\r\n function handleDrop(e: DragEvent) {\r\n e.preventDefault();\r\n uploadFileList(e.dataTransfer?.files);\r\n }\r\n\r\n async function setGlobal(f: WorkItemFileViewModel, global: boolean) {\r\n await client.setFileFlags(queueId, workItemId, f.filename, global);\r\n updateFile(f, (f) => ({\r\n ...f,\r\n global,\r\n }));\r\n }\r\n}\r\n\r\nconst FileDropArea = styled(\"div\")(({ theme }) => ({\r\n width: \"98%\",\r\n border: \"2px dashed\",\r\n textAlign: \"center\",\r\n padding: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n}));\r\n","import { BlobProvider } from \"@react-pdf/renderer\";\r\nimport { GenerateQuestionnairePDF } from \"./GeneratePDF\";\r\nimport React, { useRef } from \"react\";\r\nimport { AnswersState } from \"../Questionnaire\";\r\nimport {\r\n PersonViewModel,\r\n QuestionAdminViewModel,\r\n} from \"../../../common/client\";\r\nimport { saveAs } from \"file-saver\";\r\n\r\nexport function SaveQuestionnairePDF({\r\n title,\r\n filename,\r\n completedAt,\r\n person,\r\n answers,\r\n questions,\r\n}: {\r\n title: string;\r\n filename: string;\r\n completedAt: string | undefined;\r\n person: PersonViewModel;\r\n answers: AnswersState;\r\n questions: QuestionAdminViewModel[];\r\n}) {\r\n const saved = useRef(false);\r\n return (\r\n \r\n }\r\n >\r\n {({ blob, url, loading, error }) => {\r\n if (blob && !saved.current) {\r\n saved.current = true;\r\n saveAs(blob, filename);\r\n }\r\n return
;\r\n }}\r\n \r\n );\r\n}\r\n","import {useApiClient} from \"../../../../common/apiclients\";\r\nimport {\r\n PersonViewModel,\r\n QuesitonnaireResponseListViewModel,\r\n QuestionnaireAndResponsesVm,\r\n QuestionnairesClient,\r\n QueueClient,\r\n QueueWorkItemViewModel,\r\n} from \"../../../../common/client\";\r\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { SkeletonTimeLine } from \"../../../../components/muiCore/TimeLine\";\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Divider,\r\n IconButton,\r\n Menu,\r\n MenuItem,\r\n Typography,\r\n useTheme,\r\n} from \"@material-ui/core\";\r\nimport { Question } from \"../../../../components/core/QuestionSlider/QuestionItem\";\r\nimport { AppBar, AppBarDivider } from \"../../../../components/muiCore/Paper\";\r\nimport {\r\n makeQuestionnaireControl,\r\n parseAnswers,\r\n} from \"../../../../components/core/Questionnaire\";\r\nimport { AppBarIconButton } from \"../../../../components/muiCore/Button\";\r\nimport { PdfFileRegular } from \"../../../../components/Icons/DoHIcons\";\r\nimport { SaveQuestionnairePDF } from \"../../../../components/core/PDFGenerator/SaveQuestionnairePDF\";\r\nimport useInfiniteScroll from \"react-infinite-scroll-hook\";\r\nimport { EditSolid } from \"../../../../components/Icons/DoHIcons\";\r\nimport ListAltIcon from \"@material-ui/icons/ListAlt\";\r\nimport { OutcomeHeaderListItem } from \"../../../../components/muiCore/ListItem\";\r\nimport { format } from \"date-fns\";\r\n\r\nexport function QueueWorkItemResponses({\r\n questionnaire,\r\n}: {\r\n questionnaire: QuestionnaireAndResponsesVm;\r\n}) {\r\n const [showTop, setShowTop] = useState(2);\r\n const questions = questionnaire.questions;\r\n const answers = useMemo(() => {\r\n return parseAnswers(questionnaire.responses);\r\n }, [questionnaire]);\r\n const controls = useMemo(\r\n () => makeQuestionnaireControl(questionnaire.questions, answers),\r\n [questionnaire]\r\n );\r\n\r\n const hasMore = questions.length > showTop;\r\n const [sentryRef] = useInfiniteScroll({\r\n loading: false,\r\n hasNextPage: hasMore,\r\n onLoadMore: useCallback(() => setShowTop((t) => t + 5), []),\r\n disabled: false,\r\n rootMargin: \"0px 0px 100px 0px\",\r\n });\r\n\r\n const questionsRenders = useMemo(() => {\r\n return questions.slice(0, showTop).map((question, currentIndex) => (\r\n \r\n {}}\r\n onResult={() => {}}\r\n readonly={true}\r\n />\r\n \r\n ));\r\n }, [questions, showTop]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n {questionsRenders}\r\n {hasMore && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport function QueueWorkItemQuestions({\r\n showing,\r\n ...props\r\n}: {\r\n showing: boolean;\r\n queueId: string;\r\n queueWorkItem: QueueWorkItemViewModel;\r\n onEdit: (questionnaireId: string) => void;\r\n onViewPDF: ()=>void;\r\n admin: boolean;\r\n}) {\r\n const queueClient = useApiClient(QueueClient);\r\n const qClient = useApiClient(QuestionnairesClient);\r\n const [loading, setLoading] = useState(true);\r\n const [loadingQuestions, setLoadingQuestions] = useState(false);\r\n const [questionnaire, setQuestionnaire] =\r\n useState();\r\n const [qrl, setQrl] = useState([]);\r\n const [selectedQuestionnaire, setSelectedQuestionnaire] =\r\n useState();\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [savePdf, setSavePdf] = useState(0);\r\n\r\n const answers = useMemo(() => {\r\n return questionnaire ? parseAnswers(questionnaire.responses) : {};\r\n }, [questionnaire]);\r\n\r\n const handleMenuClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n useEffect(() => {\r\n if (showing) {\r\n loadResponseList();\r\n }\r\n }, [showing]);\r\n\r\n useEffect(() => {\r\n if (selectedQuestionnaire) {\r\n loadResponses();\r\n } else {\r\n setLoadingQuestions(false);\r\n setQuestionnaire(undefined);\r\n }\r\n }, [selectedQuestionnaire]);\r\n\r\n async function loadResponses() {\r\n setLoadingQuestions(true);\r\n const q = await qClient.getQuestions(selectedQuestionnaire!.id);\r\n setQuestionnaire(q);\r\n setLoadingQuestions(false);\r\n }\r\n\r\n async function loadResponseList() {\r\n setLoading(true);\r\n const qrl = await queueClient.getAllQuestionnaireResponse(\r\n props.queueId,\r\n props.queueWorkItem.workItem.id\r\n );\r\n\r\n if (qrl && qrl.length == 1) {\r\n setSelectedQuestionnaire(qrl[0]);\r\n }\r\n setQrl(qrl);\r\n setLoading(false);\r\n }\r\n\r\n return loading ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n {qrl.length > 1 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n { props.admin && (\r\n <>\r\n \r\n props.onEdit(selectedQuestionnaire!.id)}\r\n disabled={!selectedQuestionnaire}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n {setSavePdf((s) => s + 1); props.onViewPDF();}}\r\n >\r\n \r\n \r\n {savePdf > 0 && questionnaire && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n {qrl.map((qr) => (\r\n {\r\n setSelectedQuestionnaire(qr);\r\n setAnchorEl(null);\r\n }}\r\n >\r\n {qr.questionnaireName}\r\n \r\n ))}\r\n \r\n {questionnaire && selectedQuestionnaire && (\r\n <>\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n {loadingQuestions && (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import { useEffect, useMemo, useRef } from \"react\";\r\nimport {\r\n HubConnection,\r\n HubConnectionBuilder,\r\n HubConnectionState, \r\n} from \"@microsoft/signalr\";\r\nimport { useToken } from \"./apiclients\";\r\n\r\nexport type HubHandler = [string, (...data: any[]) => void];\r\n\r\nexport function useHubConnection(url: string) {\r\n const token = useToken();\r\n const hub = useMemo(\r\n () =>\r\n new HubConnectionBuilder()\r\n .withUrl(url, {\r\n accessTokenFactory: () => token!,\r\n })\r\n .withAutomaticReconnect()\r\n .build(),\r\n [token]\r\n );\r\n useEffect(() => {\r\n return () => {\r\n console.log(\"Stopping hub\");\r\n\r\n if (\r\n hub.state === HubConnectionState.Connected ||\r\n hub.state === HubConnectionState.Connecting\r\n ) {\r\n hub.stop();\r\n }\r\n };\r\n }, [hub]);\r\n return hub;\r\n}\r\n\r\nexport function useHubHandlers(\r\n hubConnection: HubConnection,\r\n handlers: HubHandler[]\r\n) {\r\n const handlersRef = useRef(handlers);\r\n handlersRef.current = handlers;\r\n useEffect(() => {\r\n const actualHandlers = handlers.map(([method]) => {\r\n const staticHandler = function (...args: any[]) {\r\n handlersRef.current\r\n .find((h) => h[0] === method)![1]\r\n .call(null, ...args);\r\n };\r\n hubConnection.on(method, staticHandler);\r\n return [method, staticHandler] as HubHandler;\r\n });\r\n if (hubConnection.state === HubConnectionState.Disconnected) {\r\n hubConnection.start();\r\n }\r\n return () => {\r\n actualHandlers.forEach(([method, handler]) =>\r\n hubConnection.off(method, handler)\r\n );\r\n // hubConnection.stop();\r\n };\r\n }, []);\r\n}\r\n","import React, {useContext, useEffect, useState} from \"react\";\r\nimport SwipeableViews from \"react-swipeable-views\";\r\nimport {makeStyles, Theme, useTheme} from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport QuestionAnswerIcon from \"@material-ui/icons/QuestionAnswer\";\r\nimport ListAltIcon from \"@material-ui/icons/ListAlt\";\r\nimport CommentIcon from \"@material-ui/icons/Comment\";\r\nimport {AuditTimeLine, CommentsTimeLine, SkeletonTimeLine,} from \"../../../../components/muiCore/TimeLine\";\r\nimport * as api from \"../../../../data/api\";\r\nimport {Context} from \"../../../../state/Store\";\r\nimport {HubConnection} from \"@microsoft/signalr\";\r\nimport {QueueWorkItemFiles} from \"./QueueWorkItemFiles\";\r\nimport {QuestionResponseViewModel, QueueWorkItemViewModel,} from \"../../../../common/client\";\r\nimport {QueueWorkItemQuestions,} from \"./QueueWorkItemResponses\";\r\nimport {useHubHandlers} from \"../../../../common/signalr\";\r\n\r\ninterface TabPanelProps {\r\n children?: React.ReactNode;\r\n dir?: string;\r\n index: any;\r\n value: any;\r\n}\r\n\r\nfunction TabPanel(props: TabPanelProps) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n
\r\n );\r\n}\r\n\r\nfunction a11yProps(index: any) {\r\n return {\r\n id: `full-width-tab-${index}`,\r\n \"aria-controls\": `full-width-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n\r\n root: {\r\n backgroundColor: theme.palette.background.paper,\r\n width: \"100%\",\r\n\r\n transform: \"translateZ(0px)\",\r\n flexGrow: 1,\r\n }\r\n \r\n}));\r\n\r\nexport const QueueWorkItemTabs = (props: { \r\n queueId: string;\r\n queueWorkItem: QueueWorkItemViewModel;\r\n onEdit: (questionnaireResponseId: string) => void;\r\n onViewPDF: ()=>void;\r\n admin: boolean;\r\n hubConnection: HubConnection;\r\n}) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n\r\n //GLOBAL STATE\r\n const { state, dispatch } = useContext(Context);\r\n const [value, setValue] = React.useState(0);\r\n const [loading, setLoading] = React.useState(true);\r\n const [notes, setNotes] = React.useState([]);\r\n const [auditEvents, setAuditEvents] = React.useState([]);\r\n\r\n const [updateWorkItemNotes, setUpdateWorkItemNotes] = useState(false);\r\n const [srQWI, setsrQWI] = useState();\r\n const [questionResponses, setQuestionResponses] = React.useState<\r\n QuestionResponseViewModel[]\r\n >([]);\r\n\r\n // const handleSelection(id: string) = (id: string) => {\r\n // setSelectedQuestionnaireId(id);\r\n // };\r\n\r\n // const hubConn = useSignalR(\r\n // \"/api/hub/queue\",\r\n // state.user?.token,\r\n // (conn: HubConnection) => {\r\n // conn.on(\"queueitemnote-updated\", (workItem: any) => {\r\n // if (workItem) {\r\n // if (workItem.id == props.queueWorkItem.id) {\r\n // setsrQWI(workItem);\r\n // setUpdateWorkItemNotes(true);\r\n // }\r\n // }\r\n // });\r\n // }\r\n // );\r\n\r\n useHubHandlers(props.hubConnection, [\r\n [\r\n \"queueitemnote-updated\",\r\n (workItem: any) => {\r\n if (workItem) {\r\n if (workItem.id == props.queueWorkItem.id) {\r\n setsrQWI(workItem);\r\n setUpdateWorkItemNotes(true);\r\n }\r\n }\r\n },\r\n ],\r\n ]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n }, [props.queueWorkItem]);\r\n\r\n useEffect(() => {\r\n if (props.queueWorkItem) {\r\n setLoading(true);\r\n\r\n switch (value) {\r\n case 0:\r\n api\r\n .getQueueWorkItemNotes(\r\n props.queueId,\r\n props.queueWorkItem.workItem.id,\r\n state.user?.token\r\n )\r\n .then((notes: any) => {\r\n setNotes(notes);\r\n setAuditEvents([]);\r\n setQuestionResponses([]);\r\n });\r\n break;\r\n case 1:\r\n break;\r\n case 2:\r\n api\r\n .getQueueWorkItemAuditEvents(\r\n props.queueId,\r\n props.queueWorkItem.workItem.id,\r\n state.user?.token\r\n )\r\n .then((auditEvents: any) => {\r\n setNotes([]);\r\n setQuestionResponses([]);\r\n setAuditEvents(auditEvents);\r\n });\r\n break;\r\n }\r\n }\r\n }, [value, props.queueWorkItem]);\r\n\r\n useEffect(() => {\r\n if (notes) {\r\n setLoading(false);\r\n }\r\n }, [notes]);\r\n useEffect(() => {\r\n if (auditEvents) {\r\n setLoading(false);\r\n }\r\n }, [auditEvents]);\r\n useEffect(() => {\r\n if (questionResponses) {\r\n setLoading(false);\r\n }\r\n }, [questionResponses]);\r\n const handleChange = (event: React.ChangeEvent<{}>, newValue: number) => {\r\n setValue(newValue);\r\n };\r\n\r\n useEffect(() => {\r\n if (updateWorkItemNotes && srQWI) {\r\n if (updateWorkItemNotes && srQWI) {\r\n setNotes(srQWI.notes);\r\n setUpdateWorkItemNotes(false);\r\n }\r\n }\r\n }, [updateWorkItemNotes]);\r\n\r\n const handleChangeIndex = (index: number) => {\r\n setValue(index);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n } label=\"Notes\" {...a11yProps(0)} />\r\n }\r\n label=\"Questions\"\r\n {...a11yProps(1)}\r\n />\r\n } label=\"Audit\" {...a11yProps(2)} />\r\n } label=\"Documents\" {...a11yProps(3)} />\r\n \r\n \r\n \r\n \r\n {loading ? (\r\n \r\n ) : (\r\n notes.length > 0 && \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {loading ? (\r\n \r\n ) : (\r\n auditEvents.length > 0 && (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\n\r\nconst StyledToggleButton = withStyles((theme) => ({\r\n root: {\r\n fontSize: \"1.8rem!important\",\r\n padding: \"5px!important\",\r\n \"&.Mui-selected\": {\r\n border: \"1px solid white\",\r\n color: theme.palette.primary.contrastText,\r\n \"&.New\": {\r\n backgroundColor: theme.DoH.color.conditional,\r\n },\r\n \"&.OnHold\": {\r\n backgroundColor: theme.DoH.color.fail,\r\n },\r\n \"&.Viewed\": {\r\n backgroundColor: theme.DoH.color.exemption,\r\n },\r\n \"&.PDFDownloaded\": {\r\n backgroundColor: theme.DoH.color.pass,\r\n },\r\n },\r\n \"&:focus\": {\r\n outline: \"none !important\",\r\n },\r\n },\r\n}))(ToggleButton);\r\n\r\n// Unfortunately, ToggleButtonGroup uses React.children.map instead of context\r\n// so wrapping with Tooltip breaks ToggleButton functionality.\r\n// This is a workaround.\r\n\r\n// @ts-ignore\r\nconst TooltipToggleButton = ({ children, title, ...props }) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n);\r\n\r\nexport default TooltipToggleButton;\r\n","import {\r\n FormControl,\r\n genericProps,\r\n useControlStateVersion,\r\n} from \"@react-typed-forms/core\";\r\nimport {\r\n FormControl as FC,\r\n FormHelperText,\r\n FormLabel,\r\n} from \"@material-ui/core\";\r\nimport React, { ReactNode } from \"react\";\r\n\r\nexport type RadioPropsFunc = (value: A) => {\r\n checked: boolean;\r\n onChange: (\r\n event: React.ChangeEvent,\r\n checked: boolean\r\n ) => void;\r\n};\r\n\r\ninterface FRadioListProps {\r\n label: string;\r\n helperText?: string;\r\n children: (checkProps: RadioPropsFunc) => ReactNode;\r\n state: FormControl;\r\n}\r\n\r\nexport function FRadioList({\r\n state,\r\n children,\r\n label,\r\n helperText,\r\n}: FRadioListProps) {\r\n useControlStateVersion(state);\r\n const { errorText } = genericProps(state);\r\n const checkProps: RadioPropsFunc = (v: A) => {\r\n return {\r\n checked: v === state.value,\r\n onChange: (e, c) => {\r\n state.setValue(v);\r\n },\r\n };\r\n };\r\n return (\r\n \r\n {label}\r\n {children(checkProps)}\r\n {errorText ?? helperText}\r\n \r\n );\r\n}\r\n","import {\r\n FormControl,\r\n genericProps,\r\n useControlStateVersion,\r\n} from \"@react-typed-forms/core\";\r\nimport {\r\n FormControl as FC,\r\n FormHelperText,\r\n FormLabel,\r\n} from \"@material-ui/core\";\r\nimport React, { ReactNode } from \"react\";\r\n\r\nexport type CheckPropsFunc = (value: A) => {\r\n checked: boolean;\r\n onChange: (\r\n event: React.ChangeEvent,\r\n checked: boolean\r\n ) => void;\r\n};\r\n\r\ninterface FCheckListProps {\r\n label: string;\r\n helperText?: string;\r\n children: (checkProps: CheckPropsFunc) => ReactNode;\r\n state: FormControl;\r\n}\r\n\r\nexport function FCheckList({\r\n state,\r\n children,\r\n label,\r\n helperText,\r\n}: FCheckListProps) {\r\n useControlStateVersion(state);\r\n const { errorText } = genericProps(state);\r\n function isSelected(v: A) {\r\n return state.value.includes(v);\r\n }\r\n const checkProps: CheckPropsFunc = (v: A) => {\r\n return {\r\n checked: isSelected(v),\r\n onChange: (e, c) => {\r\n const current = isSelected(v);\r\n if (current !== c) {\r\n state.setValue(\r\n current ? state.value.filter((a) => a !== v) : [...state.value, v]\r\n );\r\n }\r\n },\r\n };\r\n };\r\n return (\r\n \r\n {label}\r\n {children(checkProps)}\r\n {errorText ?? helperText}\r\n \r\n );\r\n}\r\n","import Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport {\r\n Box,\r\n Button,\r\n Checkbox,\r\n FormControlLabel,\r\n Radio,\r\n} from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { ClosableDialogTitle } from \"../Queue\";\r\nimport { buildGroup, useControlValue } from \"@react-typed-forms/core\";\r\nimport {\r\n AssignToQueueViewModel,\r\n QueueChoiceVm,\r\n QueueClient,\r\n QueueWorkItemStatus,\r\n} from \"../../../../common/client\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport { FRadioList } from \"../../../../common/formComponents/FRadioList\";\r\nimport { FCheckList } from \"../../../../common/formComponents/FCheckList\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n dialogRoot: {\r\n padding: \"0 !important\",\r\n minWidth: \"400px\",\r\n },\r\n })\r\n);\r\n\r\nconst FormDef = buildGroup()({\r\n outcomeIds: [],\r\n newQueueId: \"\",\r\n});\r\n\r\nexport function AssignToQueueDialog({\r\n onClose,\r\n onAssignAndClose,\r\n open,\r\n queues,\r\n currentQueueId,\r\n workItemId,\r\n currentQueueName,\r\n}: {\r\n onClose: () => void;\r\n onAssignAndClose: () => void;\r\n queues: any[];\r\n open: boolean;\r\n workItemId?: string;\r\n currentQueueId: string;\r\n currentQueueName: string;\r\n}) {\r\n const classes = useStyles();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const [form] = useState(FormDef);\r\n const fields = form.fields;\r\n const selectedQueueId = useControlValue(fields.newQueueId);\r\n const client = useApiClient(QueueClient);\r\n const [outcomes, setOutcomes] = useState<{ [id: string]: QueueChoiceVm[] }>();\r\n\r\n useEffect(() => {\r\n if (open) {\r\n form.setValue({ outcomeIds: [], newQueueId: \"\" }, true);\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n client.getQueueOutcomes().then(setOutcomes);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n Assign to queue\r\n \r\n \r\n \r\n \r\n {(checkProps) =>\r\n queues\r\n .filter((x: any) => x.id !== currentQueueId)\r\n .map((x: any) => {\r\n if (currentQueueName == \"Hotline\" && x.name == \"IMT\") {\r\n } else {\r\n const p = checkProps(x.id);\r\n return (\r\n <>\r\n }\r\n label={x.name}\r\n />\r\n {Boolean(outcomes?.[x.id]?.length) && (\r\n \r\n \r\n {(cp) =>\r\n outcomes![x.id].filter((o)=>o.assignable).map((o) => (\r\n \r\n }\r\n label={o.name}\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 onAssignFormSubmit(false);\r\n onClose();\r\n }}\r\n disabled={!selectedQueueId && fields.newQueueId.value != \"\"}\r\n >\r\n Assign\r\n \r\n {\r\n onAssignFormSubmit(true);\r\n onAssignAndClose();\r\n }}\r\n disabled={!selectedQueueId && fields.newQueueId.value != \"\"}\r\n >\r\n Assign and Close\r\n \r\n \r\n \r\n );\r\n\r\n async function onAssignFormSubmit(closeWorkitem: boolean) {\r\n if (selectedQueueId) {\r\n const { newQueueId, outcomeIds } = form.toObject();\r\n const allowedOutcomes =\r\n (outcomes && outcomes[newQueueId]?.map((o) => o.id)) ?? [];\r\n const res = await client.assignItemToNewQueue(\r\n currentQueueId,\r\n workItemId!,\r\n {\r\n newQueueId,\r\n outcomeIds: outcomeIds.filter((o) => allowedOutcomes.includes(o)),\r\n }\r\n );\r\n\r\n if (res) {\r\n enqueueSnackbar(\"New work item assigned\", { variant: \"success\" });\r\n }\r\n // } else {\r\n // enqueueSnackbar(\"Work item already exists in the selected queue\", {\r\n // variant: \"info\",\r\n // });\r\n }\r\n }\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport CheckboxTree from \"react-checkbox-tree\";\r\nimport \"react-checkbox-tree/lib/react-checkbox-tree.css\";\r\nimport CheckBoxIcon from \"@material-ui/icons/CheckBox\";\r\nimport CheckBoxOutlineBlankIcon from \"@material-ui/icons/CheckBoxOutlineBlank\";\r\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport KeyboardArrowDownIcon from \"@material-ui/icons/KeyboardArrowDown\";\r\nimport clsx from \"clsx\";\r\nimport { Paper, Typography } from \"@material-ui/core\";\r\n\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { Divider } from \"@material-ui/core\";\r\n\r\nexport const AppBar = withStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n padding: \"10px\",\r\n marginBottom: \"10px\",\r\n minHeight: \"60px\",\r\n },\r\n}))(Paper);\r\nexport const AppBarDivider = withStyles((theme) => ({\r\n root: {\r\n margin: theme.spacing(0, 2),\r\n },\r\n}))(Divider);\r\n\r\nconst useTreeItemStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n //paper:theme.DoH.TreeView.paper,\r\n header: theme.DoH.TreeView.header,\r\n root: theme.DoH.TreeView.TreeItem.root,\r\n content: theme.DoH.TreeView.TreeItem.content,\r\n group: theme.DoH.TreeView.TreeItem.group,\r\n expanded: {},\r\n selected: theme.DoH.TreeView.TreeItem.selected,\r\n label: theme.DoH.TreeView.TreeItem.label,\r\n labelRoot: theme.DoH.TreeView.TreeItem.labelRoot,\r\n labelIcon: theme.DoH.TreeView.TreeItem.labelIcon,\r\n labelText: theme.DoH.TreeView.TreeItem.labelText,\r\n })\r\n);\r\n\r\nconst useGeneralCardStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n header: {\r\n padding: \"5px 5px 5px 10px\",\r\n borderBottom: \"1px inset\",\r\n marginBottom: \"10px\",\r\n },\r\n root: {\r\n // same as day pass card\r\n height: 80,\r\n flexGrow: 1,\r\n maxWidth: 500,\r\n },\r\n content: {\r\n alignSelf: \"center\",\r\n textAlign: \"center\",\r\n marginTop: \"12px\",\r\n },\r\n })\r\n);\r\n\r\ninterface IGeneralCard {\r\n header: string;\r\n content: string;\r\n}\r\n\r\nexport const GeneralCard = ({ header, content }: IGeneralCard) => {\r\n const classes = useGeneralCardStyles();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {header}\r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const CbxTree = (props: any) => {\r\n const classes = useTreeItemStyles();\r\n const [checked, setChecked] = useState(\r\n props.checked ? props.checked : []\r\n );\r\n const [expanded, setExpanded] = useState([]);\r\n const [nodes, setNodes] = useState([]);\r\n const [isLoaded, setIsLoaded] = useState(false);\r\n\r\n const flatten = (data: any) =>\r\n // @ts-ignore\r\n // prettier-ignore\r\n data.reduce((arr: any,{ id,name,parentLocationId, regionId,accessible,deletedAt,children = [],}) =>\r\n arr.concat([{id,name,parentLocationId,regionId,accessible,deletedAt,},],flatten(children)),[]);\r\n\r\n const flattenGeneric = (data: any) =>\r\n // @ts-ignore\r\n // prettier-ignore\r\n data.reduce(\r\n (arr: any, { id, name, parentId, children = [] }: any) =>\r\n arr.concat(\r\n [\r\n {\r\n id,\r\n name,\r\n parentId,\r\n },\r\n ],\r\n children?flattenGeneric(children):[]\r\n ),\r\n []\r\n );\r\n\r\n const genericListToTree = (arr: any = []) => {\r\n let map: any = {},\r\n node: any,\r\n res: any = [],\r\n i: number;\r\n\r\n for (i = 0; i < arr.length; i++) {\r\n arr[i] = { ...arr[i], uniqueId: i };\r\n let index = arr.findIndex((a: any) => a.id === arr[i].id);\r\n // @ts-ignore\r\n map[index] = arr[i].id;\r\n\r\n let hasChildren =\r\n arr.filter((a: any) => a.parentId === arr[i].id).length > 0;\r\n // @ts-ignore\r\n if (hasChildren) {\r\n arr[index].children = [];\r\n }\r\n }\r\n for (i = 0; i < arr.length; i += 1) {\r\n const className = classes.labelText;\r\n\r\n const { id: value, name: label, children } = arr[i];\r\n node = { value, label, children, className };\r\n // @ts-ignore\r\n if (arr[i].parentId) {\r\n // @ts-ignore\r\n let index: number = arr.findIndex((a: any) => a.id === arr[i].parentId);\r\n\r\n // if (index === -1) {\r\n // index = arr.findIndex((a: any) => a.id === arr[i].regionId)\r\n // }\r\n\r\n if(arr[index])\r\n arr[index].children.push(node);\r\n \r\n } else {\r\n res.push(node);\r\n }\r\n }\r\n\r\n return res;\r\n };\r\n\r\n const listToTree = (arr: any = []) => {\r\n let node: any,\r\n res: any = [],\r\n i: number;\r\n\r\n for (i = 0; i < arr.length; i++) {\r\n let hasChildren =\r\n arr.filter(\r\n (a: any) =>\r\n (a.parentLocationId === arr[i].id || a.regionId === arr[i].id) &&\r\n a.deletedAt === null\r\n ).length > 0;\r\n\r\n if (hasChildren) {\r\n arr[i].children = [];\r\n }\r\n }\r\n for (i = 0; i < arr.length; i++) {\r\n let className = classes.labelText;\r\n const { id: value, name: label, children } = arr[i];\r\n\r\n node = { value, label, children, className };\r\n // @ts-ignore\r\n if (\r\n (arr[i].parentLocationId || arr[i].regionId) &&\r\n arr[i].regionId != \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n // @ts-ignore\r\n let index: number = arr.findIndex(\r\n (a: any) => a.id === arr[i].parentLocationId\r\n );\r\n\r\n if (index === -1) {\r\n index = arr.findIndex((a: any) => a.id === arr[i].regionId);\r\n }\r\n\r\n if (arr[i].accessible && !arr[i].deletedAt) {\r\n arr[index].children.push(node);\r\n }\r\n } else {\r\n res.push(node);\r\n }\r\n }\r\n return res;\r\n };\r\n\r\n useEffect(() => {\r\n if (props.nodes) {\r\n if (props.generic) {\r\n setNodes(genericListToTree(flattenGeneric(props.nodes)));\r\n } else {\r\n // sort the location\r\n setNodes(\r\n listToTree(\r\n flatten(props.nodes).sort(function (a: any, b: any) {\r\n let x = a.name.toLowerCase();\r\n let y = b.name.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n })\r\n )\r\n );\r\n }\r\n }\r\n }, [props.nodes]);\r\n\r\n useEffect(() => {\r\n if (isLoaded) {\r\n props.onChecked(checked);\r\n } else {\r\n setIsLoaded(true);\r\n }\r\n }, [checked]);\r\n\r\n const icons = {\r\n check: (\r\n \r\n \r\n \r\n ),\r\n uncheck: (\r\n \r\n \r\n \r\n ),\r\n halfCheck: (\r\n \r\n \r\n \r\n ),\r\n expandClose: (\r\n \r\n \r\n \r\n ),\r\n expandOpen: (\r\n \r\n \r\n \r\n ),\r\n expandAll: (\r\n \r\n ),\r\n collapseAll: (\r\n \r\n ),\r\n parentClose: (\r\n \r\n ),\r\n parentOpen: (\r\n \r\n ),\r\n leaf: (\r\n \r\n ),\r\n };\r\n\r\n function getChecked() {\r\n if (props.multiSelect) {\r\n return checked;\r\n }\r\n\r\n if (props.nodes != undefined && checked.length != 0) {\r\n if (props.nodes.some((obj: any) => obj.value === checked[0])) {\r\n return checked;\r\n }\r\n else {\r\n setChecked([]);\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n return (\r\n <>\r\n {nodes.length === 0 ? (\r\n \r\n ) : (\r\n \r\n {props.header}\r\n {\r\n if (!props.multiSelect) {\r\n let difference = selected.filter((x) => !checked.includes(x));\r\n setChecked(difference);\r\n } else {\r\n setChecked(selected);\r\n }\r\n }}\r\n onExpand={setExpanded}\r\n icons={icons}\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CbxTree;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { User } from \"../../../state/State.model\";\r\nimport { ValidationTextField } from \"../../muiCore/TextField\";\r\nimport { ValidatedForm } from \"./ValidatedForm\";\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n FormControl,\r\n InputLabel,\r\n MenuItem,\r\n Select,\r\n} from \"@material-ui/core\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { searchAddresses } from \"../../../data/api\";\r\nimport {\r\n AddressComplete,\r\n makeAddressFormDef,\r\n RenderAddressFields,\r\n toFullAddressLine,\r\n} from \"../Address/AddressComplete\";\r\nimport { LoginUserViewModel, PersonKind } from \"../../../common/client\";\r\n\r\nexport interface IUserRegistrationProps {\r\n onSubmit: (isFormValid: boolean, user: LoginUserViewModel) => void;\r\n allDetails: boolean;\r\n}\r\n\r\nexport const UserRegistration = (props: IUserRegistrationProps) => {\r\n const [loading, setLoading] = useState(false);\r\n const [addressForm] = useState(makeAddressFormDef(true));\r\n const [formErrors, setFormErrors] = useState({\r\n mobile: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n firstName: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n lastName: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n dateOfBirth: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\r\n const [firstName, setFirstName] = useState(\"\");\r\n const [lastName, setLastName] = useState(\"\");\r\n const [contactNumber, setContactNumber] = useState(\"\");\r\n const [dateOfBirth, setDateOfBirth] = useState(\"\");\r\n const [address, setAddress] = useState(\"\");\r\n const [longitude, setLongitude] = useState();\r\n const [latitude, setLatitude] = useState();\r\n const [gpPractice, setGPPractice] = useState(\"\");\r\n const [gpName, setGPName] = useState(\"\");\r\n const [sex, setSex] = useState(\"\");\r\n const [emailAddress, setEmailAddress] = useState(\"\");\r\n const [addressOptions, setAddressOptions] = React.useState([]);\r\n\r\n const isFormValid = (): boolean => {\r\n let valid = true;\r\n let errors = { ...formErrors };\r\n\r\n if (!firstName) {\r\n errors.firstName.valid = false;\r\n errors.firstName.errorMessage = \"First name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.firstName.valid = true;\r\n errors.firstName.errorMessage = \"\";\r\n }\r\n\r\n if (!lastName) {\r\n errors.lastName.valid = false;\r\n errors.lastName.errorMessage = \"Last name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.lastName.valid = true;\r\n errors.lastName.errorMessage = \"\";\r\n }\r\n\r\n if (!contactNumber) {\r\n errors.mobile.valid = false;\r\n errors.mobile.errorMessage = \"Contact number can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.mobile.valid = true;\r\n errors.mobile.errorMessage = \"\";\r\n\r\n if (!/^[0][0-9]{9}$|^[1300][0-9]{9}$/.test(contactNumber)) {\r\n errors.mobile.valid = false;\r\n errors.mobile.errorMessage =\r\n \"Please provide valid contact number 10 digits with no spaces - eg. 0400123456 or 0362291643\";\r\n valid = false;\r\n }\r\n }\r\n\r\n if (!dateOfBirth) {\r\n errors.dateOfBirth.valid = false;\r\n errors.dateOfBirth.errorMessage = \"Date Of Birth can not be blank\";\r\n valid = false;\r\n } else if (!dobValidator(dateOfBirth)) {\r\n errors.dateOfBirth.valid = false;\r\n errors.dateOfBirth.errorMessage = \"Date Of Birth invalid\";\r\n valid = false;\r\n } else {\r\n errors.dateOfBirth.valid = true;\r\n errors.dateOfBirth.errorMessage = \"\";\r\n }\r\n\r\n addressForm.validate();\r\n addressForm.setTouched(true);\r\n\r\n setFormErrors(errors);\r\n return valid && addressForm.valid;\r\n };\r\n\r\n const dobValidator = (dob: string): boolean => {\r\n let dobObj = new Date(dob);\r\n let today = new Date();\r\n let startDate=new Date('1900-01-01');\r\n\r\n return (dobObj <= today && dobObj >=startDate);\r\n };\r\n const addressValidator = (address: string): boolean => {\r\n return address.charAt(0) !== \" \";\r\n };\r\n\r\n useEffect(() => {\r\n if (address && address.length > 3) {\r\n searchAddresses(address)\r\n .then((d) => setAddressOptions(d))\r\n .catch((e) => setAddressOptions([]));\r\n }\r\n }, [address]);\r\n\r\n return (\r\n \r\n {\r\n setFirstName(e.target.value);\r\n }}\r\n variant=\"outlined\"\r\n disabled={loading}\r\n />\r\n {\r\n setLastName(e!.target.value);\r\n }}\r\n variant=\"outlined\"\r\n validation={{ required: true }}\r\n disabled={loading}\r\n />\r\n {\r\n setContactNumber(e.target.value);\r\n }}\r\n //value={txtMobile || ''}\r\n type={\"tel\"}\r\n disabled={loading}\r\n />\r\n {\r\n setDateOfBirth(e.target.value);\r\n }}\r\n inputProps={{max: \"9999-12-12\"}}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n type={\"date\"}\r\n disabled={loading}\r\n />\r\n \r\n \r\n \r\n \r\n {/*{props.allDetails && (*/}\r\n {/* <>*/}\r\n {/* */}\r\n {/* Sex*/}\r\n {/* {*/}\r\n {/* setSex(e.target.value);*/}\r\n {/* }}*/}\r\n {/* label=\"Sex\"*/}\r\n {/* fullWidth={true}*/}\r\n {/* >*/}\r\n {/* Male*/}\r\n {/* Female*/}\r\n {/* Other*/}\r\n {/* */}\r\n {/* */}\r\n \r\n {/* {*/}\r\n {/* setEmailAddress(e.target.value);*/}\r\n {/* }}*/}\r\n {/* disabled={loading}*/}\r\n {/* />*/}\r\n {/* */}\r\n {/*)}*/}\r\n \r\n {!props.allDetails && (\r\n <>\r\n {\r\n setGPName(e.target.value);\r\n }}\r\n disabled={loading}\r\n />\r\n {\r\n setGPPractice(e.target.value);\r\n }}\r\n disabled={loading}\r\n />\r\n \r\n )}\r\n
\r\n ) => {\r\n event.preventDefault();\r\n setLoading(true);\r\n if (isFormValid()) {\r\n const addressFull = addressForm.toObject();\r\n props.onSubmit(true, {\r\n firstName: firstName,\r\n lastName: lastName,\r\n contactNumber: contactNumber,\r\n dateOfBirth: dateOfBirth,\r\n address: toFullAddressLine(addressFull),\r\n addressFull,\r\n latitude: latitude ?? 0,\r\n longitude: longitude ?? 0,\r\n gpName: gpName,\r\n gpPractice: gpPractice,\r\n sex: sex,\r\n emailAddress: emailAddress,\r\n kind: PersonKind.Visitor,\r\n });\r\n } else {\r\n setLoading(false);\r\n }\r\n }}\r\n >\r\n {loading && }\r\n {!loading && \"Next\"}\r\n \r\n
\r\n );\r\n};\r\n","import { Drawer } from \"../../../../components/muiCore/Drawer\";\r\nimport { AppBar } from \"../../../../components/muiCore/Paper\";\r\nimport { IconButton, Toolbar, useTheme } from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { QuestionHeader } from \"../../../../components/core/QuestionSlider/QuestionItemHeader\";\r\nimport { UserRegistration } from \"../../../../components/core/forms/UserRegistration\";\r\nimport { Questionnaire } from \"../../../../components/core/QuestionSlider/Questionnaire\";\r\nimport React, { MutableRefObject, useEffect, useRef, useState } from \"react\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n LoginUserViewModel,\r\n QuestionnaireClient,\r\n QuestionnairesClient,\r\n QuestionValidationError,\r\n} from \"../../../../common/client\";\r\nimport { IQuestion } from \"../../../../models/Question\";\r\nimport {\r\n autoSelectChoice,\r\n makeQuestionnaireControl,\r\n parseAnswers,\r\n QuestionnaireControls,\r\n} from \"../../../../components/core/Questionnaire\";\r\n\r\nexport function QueueQuestionnaireDrawer({\r\n questionnaireSideDrawer,\r\n questionnaireResponseId,\r\n drawerTitle,\r\n formFinalised,\r\n show,\r\n onClose,\r\n registerFormUser,\r\n allFormDetails,\r\n}: {\r\n show: boolean;\r\n drawerTitle: string;\r\n questionnaireResponseId?: string;\r\n questionnaireSideDrawer: MutableRefObject;\r\n formFinalised: () => void;\r\n registerFormUser: (user: LoginUserViewModel) => void;\r\n onClose: (event: any, reason: string) => void;\r\n allFormDetails: boolean;\r\n}) {\r\n const theme = useTheme();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const questionClient = useApiClient(QuestionnaireClient);\r\n const adminQuestionClient = useApiClient(QuestionnairesClient);\r\n\r\n const [questionsAndControls, setQuestionsAndControls] =\r\n useState<{ questions: IQuestion[]; controls: QuestionnaireControls }>();\r\n const [referralPerson, setReferralPerson] = useState();\r\n\r\n const [errors, setErrors] = useState();\r\n const [validateAll, setValidateAll] = useState(false);\r\n const currentPageRef = useRef(0);\r\n\r\n async function handleQuestionnaireResponse(questionIndex: number) {\r\n if (questionsAndControls) {\r\n const controls = questionsAndControls.controls;\r\n if (controls.dirty) {\r\n const question = questionsAndControls.questions[questionIndex];\r\n const questionId = question.id;\r\n const { choiceId: _choiceId, value } =\r\n controls.fields[questionId].toObject();\r\n const choiceId = _choiceId ?? autoSelectChoice(question);\r\n if (choiceId) {\r\n const valueAndChoice = {\r\n choiceId,\r\n value: value ? JSON.stringify(value) : undefined,\r\n };\r\n try {\r\n await questionClient.addQuestionChoiceByAdmin(\r\n questionnaireResponseId!,\r\n questionId,\r\n referralPerson!,\r\n valueAndChoice\r\n );\r\n } catch (e) {\r\n enqueueSnackbar(\"Failed to save response: \" + question.heading, {\r\n variant: \"error\",\r\n });\r\n }\r\n }\r\n if (validateAll) {\r\n await validate();\r\n }\r\n controls.markAsClean();\r\n }\r\n }\r\n }\r\n\r\n async function closeQuestionnaire() {\r\n await handleQuestionnaireResponse(currentPageRef.current);\r\n onClose({}, \"closed\");\r\n }\r\n\r\n async function loadQuestionnaire(id: string) {\r\n const { questions, responses, personId } =\r\n await adminQuestionClient.getQuestions(id);\r\n const controls = makeQuestionnaireControl(\r\n questions,\r\n parseAnswers(responses)\r\n );\r\n setQuestionsAndControls({ questions, controls });\r\n setValidateAll(false);\r\n setErrors(undefined);\r\n setReferralPerson(personId);\r\n questionnaireSideDrawer.current?.openDrawer();\r\n }\r\n\r\n useEffect(() => {\r\n if (show) {\r\n if (questionnaireResponseId) {\r\n loadQuestionnaire(questionnaireResponseId);\r\n } else {\r\n setReferralPerson(undefined);\r\n questionnaireSideDrawer.current?.openDrawer();\r\n }\r\n } else {\r\n setQuestionsAndControls(undefined);\r\n }\r\n }, [show, questionnaireResponseId]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!referralPerson ? (\r\n <>\r\n \r\n {\r\n registerFormUser(user);\r\n }}\r\n allDetails={allFormDetails}\r\n />{\" \"}\r\n \r\n ) : (\r\n questionsAndControls && (\r\n \r\n )\r\n )}\r\n \r\n );\r\n\r\n async function saveAndValidate() {\r\n return await validate();\r\n }\r\n\r\n async function validate() {\r\n const errors = await questionClient.validateQuestionnaire(\r\n questionnaireResponseId!\r\n );\r\n setValidateAll(true);\r\n setErrors(errors);\r\n questionsAndControls!.controls.setTouched(true);\r\n const showErrors = errors.length > 0;\r\n return !showErrors;\r\n }\r\n}\r\n","import { buildGroup, ControlType } from \"@react-typed-forms/core\";\r\nimport { PersonEditModel } from \"../../../common/client\";\r\nimport { makeAddressFormDef } from \"../Address/AddressComplete\";\r\n\r\nexport const PersonDetailsFormDef = buildGroup()({\r\n firstName: \"\",\r\n lastName: \"\",\r\n contactNumber: \"\",\r\n dateOfBirth: \"\",\r\n generalPractitionerName: \"\",\r\n generalPractitionerPractice: \"\",\r\n address: \"\",\r\n addressFull: makeAddressFormDef(false),\r\n});\r\n\r\nexport type PersonDetailsControls = ControlType;\r\n","import { User } from \"../../state/State.model\"\r\n\r\n\r\nexport enum Permissions {\r\n SuperUser = 0x1,\r\n /// \r\n /// provides edit access for all roles & users\r\n /// \r\n ModifyRoles = 0x2,\r\n ModifyLocations = 0x4,\r\n ModifyQuestions = 0x8,\r\n ModifyAudiences = 0x10,\r\n\r\n IgnoreLocationConstraints = 0x20,\r\n IgnoreAudienceConstraints = 0x40,\r\n ModifyDayPasses = 0x80,\r\n ModifyTeams\r\n}\r\n\r\nexport const hasPermission = (user: User | null, permission: Permissions): boolean => {\r\n if (!user) {\r\n return false;\r\n }\r\n\r\n if (user.roles?.length === 0) {\r\n return false;\r\n }\r\n\r\n for(const role of user.roles) {\r\n const p = role.permissions;\r\n\r\n if ((p & Permissions.SuperUser) > 0) {\r\n return true;\r\n }\r\n\r\n if (( p & permission ) > 0) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\n","import React, {\r\n ReactElement,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { AppBar, AppBarDivider } from \"../../../components/muiCore/Paper\";\r\nimport { AppBarSearch } from \"../../../components/muiCore/InputBase\";\r\nimport { CalendarsDateRangePicker } from \"../../../components/muiCore/DateRangePicker\";\r\nimport {\r\n Box,\r\n Button,\r\n Checkbox,\r\n CircularProgress,\r\n FormControlLabel,\r\n Grid,\r\n GridSize,\r\n IconButton,\r\n Switch,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport {\r\n OutcomeCard,\r\n SelectableCard,\r\n SelectableCardIconContentItem,\r\n SelectableStatisticCard,\r\n SkeletonCard,\r\n} from \"../../../components/muiCore/Card\";\r\nimport { Skeleton, ToggleButtonGroup } from \"@material-ui/lab\";\r\nimport ErrorOutlineOutlinedIcon from \"@material-ui/icons/ErrorOutlineOutlined\";\r\nimport {\r\n endOfToday,\r\n format,\r\n parse,\r\n parseISO, startOfYear,\r\n startOfYesterday,\r\n} from \"date-fns\";\r\nimport { Drawer } from \"../../../components/muiCore/Drawer\";\r\nimport {\r\n OutcomeDetailsListItem,\r\n OutcomeHeaderListItem,\r\n} from \"../../../components/muiCore/ListItem\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport {\r\n ClinicMedicalSolid,\r\n UserMdSolid, UserNurseIcon,\r\n UserSolid,\r\n} from \"../../../components/Icons/DoHIcons\";\r\nimport PauseCircleOutlineIcon from \"@material-ui/icons/PauseCircleOutline\";\r\nimport LocalHospitalIcon from \"@material-ui/icons/LocalHospital\";\r\nimport { ResendEamilNotification } from \"../../../data/api\";\r\nimport {\r\n createStyles,\r\n Theme,\r\n withStyles,\r\n WithStyles,\r\n} from \"@material-ui/core/styles\";\r\nimport { QueueWorkItem } from \"../../../state/State.model\";\r\nimport CommentIcon from \"@material-ui/icons/Comment\";\r\nimport HomeIcon from \"@material-ui/icons/Home\";\r\nimport PhoneIcon from \"@material-ui/icons/Phone\";\r\nimport EventIcon from \"@material-ui/icons/Event\";\r\nimport RestoreIcon from \"@material-ui/icons/Restore\";\r\nimport PlayCircleOutlineIcon from \"@material-ui/icons/PlayCircleOutline\";\r\nimport { AppBarIconButton } from \"../../../components/muiCore/Button\";\r\nimport { PersonAvatar } from \"../../../components/muiCore/Avatar\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {\r\n StyledFTextField,\r\n ValidationTextField,\r\n} from \"../../../components/muiCore/TextField\";\r\nimport PostAddIcon from \"@material-ui/icons/PostAdd\";\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 MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport InfoOutlinedIcon from \"@material-ui/icons/InfoOutlined\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { Context } from \"../../../state/Store\";\r\nimport { QueueWorkItemTabs } from \"./QueueWorkItem/QueueWorkItemTabs\";\r\nimport { SkeletonTimeLine } from \"../../../components/muiCore/TimeLine\";\r\nimport TooltipToggleButton from \"../../../components/muiCore/ToggleButton\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport { TransitionProps } from \"@material-ui/core/transitions\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport * as api from \"../../../data/api\";\r\nimport { HubConnection } from \"@microsoft/signalr\";\r\nimport { useSignalR } from \"../../utils/signalr\";\r\nimport { useApiClient } from \"../../../common/apiclients\";\r\nimport {\r\n CSVExportViewModel,\r\n LoginUserViewModel,\r\n PersonKind,\r\n PersonsClient,\r\n QuestionChoice,\r\n QuestionnaireClient,\r\n QuestionnairesClient,\r\n QueueChoiceVm,\r\n QueueClient,\r\n QueueOutcomeViewModel,\r\n QueueViewModel,\r\n QueueWorkItemStatus,\r\n QueueWorkItemViewModel,\r\n} from \"../../../common/client\";\r\nimport { AssignToQueueDialog } from \"./Queue/AssignToQueueDialog\";\r\nimport CbxTree from \"../../../components/core/Manager/SubComponents/CheckboxTree\";\r\nimport { QueueQuestionnaireDrawer } from \"./Queue/QueueQuestionnaireDrawer\";\r\nimport { useParams } from \"react-router\";\r\nimport { PersonDetailsFormDef } from \"../../../components/core/forms/PersonDetails\";\r\nimport {\r\n FDateField,\r\n FTextField,\r\n} from \"../../../common/formComponents/FTextField\";\r\nimport { QuestionItemYesNoButtons } from \"../../../components/core/QuestionSlider/QuestionItemYesNoButtons\";\r\nimport useInfiniteScroll from \"react-infinite-scroll-hook\";\r\nimport deepEqual from \"fast-deep-equal/es6\";\r\nimport { useDebounce } from \"../../../common/debounce\";\r\nimport { buildGroup, useControlValue } from \"@react-typed-forms/core\";\r\nimport { FCheckbox } from \"../../../common/formComponents/FCheckbox\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { hasPermission, Permissions } from \"../../utils/permissions\";\r\nimport { useHubConnection, useHubHandlers } from \"../../../common/signalr\";\r\nimport {\r\n AddressComplete,\r\n RenderAddressFields,\r\n toFullAddressLine,\r\n} from \"../../../components/core/Address/AddressComplete\";\r\nimport { CalendarIcon } from \"@material-ui/pickers/_shared/icons/CalendarIcon\";\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n });\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n props: TransitionProps & { children?: React.ReactElement },\r\n ref: React.Ref\r\n) {\r\n return ;\r\n});\r\n\r\ninterface SearchFilter {\r\n before?: Date;\r\n after?: Date;\r\n queryText: string;\r\n status: QueueWorkItemStatus[];\r\n outcomes?: string[];\r\n queueId: string;\r\n}\r\n\r\nconst ItemsPerPage = 10;\r\n\r\ntype CSVExportModel = CSVExportViewModel & {\r\n questionnaireId: string;\r\n};\r\n\r\nexport const CSVExportFormDef = buildGroup()({\r\n reExportRecords: false,\r\n endDateTime: \"\",\r\n startDateTime: \"\",\r\n questionnaireId: \"\",\r\n});\r\n\r\nexport function Queue({ queues }: { queues: QueueViewModel[] }) {\r\n\r\n const { enqueueSnackbar } = useSnackbar();\r\n const { queueId } = useParams<{ queueId: string }>();\r\n const currentQueue = queues.find((q) => q.id === queueId)!;\r\n\r\n const queueClient = useApiClient(QueueClient);\r\n const personsClient = useApiClient(PersonsClient);\r\n const questionClient = useApiClient(QuestionnaireClient);\r\n const adminQuestionClient = useApiClient(QuestionnairesClient);\r\n\r\n //GLOBAL STATE\r\n const { state } = useContext(Context);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [loadingMore, setLoadingMore] = useState(false);\r\n const [onFirstPage, setOnFirstPage] = useState(true);\r\n const [csvLoading, setCsvLoading] = useState(false);\r\n const [queue, setQueue] = useState();\r\n const [queueWorkItems, setQueueWorkItems] = useState();\r\n\r\n const [queueWorkItem, setQueueWorkItem] = useState();\r\n const [queueWorkItemStatus, setQueueWorkItemStatus] =\r\n useState();\r\n const [metrics, setMetrics] = useState([]);\r\n const [searchFilters, _setSearchFilters] = useState({\r\n queryText: \"\",\r\n queueId,\r\n status: [QueueWorkItemStatus.New],\r\n after: startOfYear(endOfToday()),\r\n before: endOfToday(),\r\n });\r\n\r\n function setSearchFilters(newFilter: SearchFilter) {\r\n _setSearchFilters((sf) => (deepEqual(sf, newFilter) ? sf : newFilter));\r\n }\r\n\r\n const [hasMore, setHasMore] = useState(true);\r\n const [isDatePickerExpanded, setIsDatePickerExpanded] =\r\n useState(false);\r\n const [isUpdateFromDatePicker, setIsUpdateFromDatePicker] =\r\n useState(false);\r\n const [hasDateChanged, setHasDateChanged] = useState(false);\r\n const [queueWorkItemStatusChanged, setQueueWorkItemStatusChanged] =\r\n useState(false);\r\n const [isInitialApiCalled, setIsInitialApiCalled] = useState(false);\r\n const [isFilterChanged, setIsFilterChanged] = useState(false);\r\n const [drawerTitle, setDrawerTitle] = useState();\r\n const [token, setToken] = useState(state.user?.token);\r\n const [queueWorkItemLoading, setQueueWorkItemLoading] =\r\n useState(true);\r\n\r\n const [showQuestionnaire, setShowQuestionnaire] = useState(false);\r\n const [queueChanged, setQueueChanged] = useState();\r\n const [assignToQueueMode, setAssignToQueueMode] = useState(false);\r\n\r\n const [referralFormInitiated, setReferralFormInitiated] =\r\n useState(false);\r\n const [referralFormFinalised, setReferralFormFinalised] =\r\n useState(false);\r\n\r\n const [metricCatSelect, setMetricCatSelect] = useState(false);\r\n\r\n const sideDrawer = useRef(null);\r\n const toggleSideDrawer = sideDrawer?.current;\r\n\r\n const [questionnaireResponseId, setQuestionnaireResponseId] =\r\n useState();\r\n const questionnaireSideDrawer = useRef(null);\r\n const toggleQuestionnaireSideDrawer = questionnaireSideDrawer?.current;\r\n\r\n const [updateQueueData, setUpdateQueueData] = useState(false);\r\n const [updateQueueAssignemnt, setUpdateQueueAssignemnt] = useState(false);\r\n const [srQWI, setsrQWI] = useState();\r\n const [srUAQWI, setsrUAQWI] = useState();\r\n const [updateMetricsFromApi, setUpdateMetricsFromApi] = useState(false);\r\n\r\n const [personForm] = useState(PersonDetailsFormDef);\r\n const [editPerson, setEditPerson] = useState(false);\r\n const [noteMode, _setNoteMode] = useState(false);\r\n const [csvExportMode, setCSVExportMode] = useState(false);\r\n\r\n const [form] = useState(CSVExportFormDef);\r\n const fields = form.fields;\r\n\r\n const startDateFieldValue = useControlValue(fields.startDateTime);\r\n const endDateFieldValue = useControlValue(fields.endDateTime);\r\n\r\n const [sentryRef] = useInfiniteScroll({\r\n loading,\r\n hasNextPage: hasMore,\r\n onLoadMore: loadMore,\r\n disabled: false,\r\n rootMargin: \"0px 0px 400px 0px\",\r\n });\r\n\r\n function startEditingNote() {\r\n _setNoteMode(true);\r\n noteKey++;\r\n }\r\n\r\n const [treeData, setTreeData] = useState<\r\n { name: string; value: string; label: string }[]\r\n >([]);\r\n\r\n //const [outcomeChoices, setOutcomes];\r\n\r\n // useSignalR(\"/api/hub/queue\", state.user?.token, (conn: HubConnection) => {\r\n // conn.on(\"queueitem-updated\", (workItem: any) => {\r\n // setsrQWI(workItem);\r\n // setUpdateQueueData(true);\r\n // setUpdateQueueAssignemnt(true);\r\n // });\r\n // conn.on(\"queue-updated\", (queueId: string) => {\r\n // if (currentQueue.id == queueId) {\r\n // setUpdateQueueAssignemnt(true);\r\n // }\r\n // });\r\n // conn.on(\"referral-added\", () => {\r\n // if (currentQueue.name == \"Hotline\") {\r\n // setUpdateQueueAssignemnt(true);\r\n // }\r\n // });\r\n // });\r\n\r\n const hubConnection = useHubConnection(\"/api/hub/queue\");\r\n useHubHandlers(hubConnection, [\r\n [\r\n \"queueitem-updated\",\r\n (workItem: QueueWorkItemViewModel) => {\r\n \r\n setsrQWI(workItem);\r\n setUpdateQueueData(true);\r\n setUpdateQueueAssignemnt(true);\r\n // formDef.fields.queueUpdate.setValue(new Date());\r\n \r\n },\r\n ],\r\n [\r\n \"queue-updated\",\r\n (queueId: string) => {\r\n // if (formDef.fields.currentQueue.value.id == queueId) {\r\n setUpdateQueueAssignemnt(true);\r\n // formDef.fields.queueUpdate.setValue(new Date());\r\n // }\r\n },\r\n ],\r\n [\r\n \"referral-added\",\r\n () => {\r\n if (currentQueue.name == \"Referral\") {\r\n setUpdateQueueAssignemnt(true);\r\n }\r\n },\r\n ],\r\n // [\r\n // \"person-updated\",\r\n // async (personId: string) => {\r\n // onPersonUpdated(await personsClient.getPersonById(personId));\r\n // },\r\n // ],\r\n ]);\r\n\r\n let MetricCategories = AllQueueWorkItems.map((wi) => QueueWorkItemStatus[wi]);\r\n let QueueWorkItemStatuses = AllQueueWorkItems;\r\n\r\n // let QueueWorkItemStatuses = AllQueueWorkItems.filter(x=>x!=QueueWorkItemStatus.OnHold);\r\n // let MetricCategories = QueueWorkItemStatuses.map((wi) => QueueWorkItemStatus[wi]);\r\n //\r\n // //const treeData: any[] = [];\r\n\r\n async function formFinalised() {\r\n var d = await questionClient.finaliseQuestionnaireByAdmin(\r\n queueWorkItem!.id,\r\n questionnaireResponseId!\r\n );\r\n setReferralFormFinalised(true);\r\n //setReferralPerson(undefined);\r\n setDrawerTitle(`${MetricCategories[d.queueWorkItem!.status]} Referral`);\r\n //onQueueWorkItemSelected(queueWorkItem);\r\n //setQueueWorkItemLoading(true)\r\n showWorkItem(d.queueWorkItem!);\r\n }\r\n\r\n function showWorkItem(qwi: QueueWorkItemViewModel) {\r\n setQueueWorkItem(qwi);\r\n setShowQuestionnaire(false);\r\n toggleQuestionnaireSideDrawer.closeDrawer();\r\n toggleSideDrawer.openDrawer();\r\n setQuestionnaireResponseId(undefined);\r\n }\r\n\r\n async function registerFormUser(user: LoginUserViewModel) {\r\n try {\r\n const newPerson = {\r\n ...user,\r\n kind: PersonKind.Visitor,\r\n };\r\n const newWorkItem = await queueClient.createNewQueueWorkItem(\r\n currentQueue.id,\r\n newPerson\r\n );\r\n setQueueWorkItem(newWorkItem);\r\n if (currentQueue.launchForm) {\r\n setQuestionnaireResponseId(\r\n newWorkItem.workItem.questionnaireResponseId\r\n );\r\n } else {\r\n showWorkItem(newWorkItem);\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n enqueueSnackbar(\"Failed to register person.\", { variant: \"error\" });\r\n }\r\n }\r\n\r\n async function getQuestionnaireIdForQueue() {\r\n try {\r\n //const qId = await adminQuestionClient.getQuestionnaireForPersonKind(kind);\r\n const qId = await queueClient.getQuestionnaireByQueueId(currentQueue.id);\r\n const qrId = await questionClient.createNewResponseForQueueWorkItem(\r\n qId,\r\n queueWorkItem!.workItem.person.id!,\r\n queueWorkItem!.id\r\n );\r\n setQuestionnaireResponseId(qrId.id);\r\n } catch (err) {\r\n console.log(err);\r\n enqueueSnackbar(\"Failed to register person.\", { variant: \"error\" });\r\n }\r\n }\r\n\r\n async function doItemQuery(offset?: number) {\r\n const queueData = await queueClient.getQueueWorkItems(\r\n queueId,\r\n offset ?? 0,\r\n ItemsPerPage,\r\n {\r\n after: searchFilters.after as any,\r\n before: searchFilters.before as any,\r\n query: searchFilters.queryText,\r\n queueWorkItemStatuses: searchFilters.status,\r\n outcomes: searchFilters.outcomes,\r\n isSuperUser: true,\r\n }\r\n );\r\n setHasMore((queueData.queueWorkItems?.length ?? 0) === ItemsPerPage);\r\n setOnFirstPage((offset ?? 0) === 0);\r\n return queueData;\r\n }\r\n\r\n const loadQueueData = () => {\r\n setLoading(true);\r\n let apiCalls = [];\r\n\r\n apiCalls.push(doItemQuery());\r\n\r\n apiCalls.push(queueClient.getQueueOutcomesByQueueId(queueId));\r\n\r\n if (hasDateChanged || queueWorkItemStatusChanged || !isInitialApiCalled) {\r\n apiCalls.push(\r\n api.getQueueMetrics(\r\n queueId,\r\n searchFilters.before,\r\n searchFilters.after,\r\n searchFilters.outcomes,\r\n token\r\n )\r\n );\r\n }\r\n\r\n Promise.all(apiCalls)\r\n .then((res) => {\r\n const [queue, outcomes, metrics] = res;\r\n setQueue(queue);\r\n metrics && setMetrics(metrics);\r\n setHasDateChanged(false);\r\n setQueueWorkItemStatusChanged(false);\r\n setQueueWorkItemStatus(undefined);\r\n\r\n if (outcomes) {\r\n for (let data of outcomes) {\r\n if (data.children) {\r\n data.children.sort((a:any, b:any) => a.name.localeCompare(b.name));\r\n }\r\n }\r\n setTreeData(\r\n outcomes.map((o: QueueChoiceVm) => ({\r\n name: o.name,\r\n label: o.name,\r\n value: o.id,\r\n children: o.children\r\n ? o.children.map((a: QueueChoiceVm) => ({\r\n name: a.name,\r\n label: a.name,\r\n value: a.id,\r\n parentId: a.parentId,\r\n }))\r\n : null,\r\n }))\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n const getQueueDataWithoutRestriction = () => {\r\n let apiCalls = [];\r\n apiCalls.push(doItemQuery());\r\n\r\n apiCalls.push(\r\n api.getQueueMetrics(\r\n currentQueue!.id,\r\n searchFilters.before,\r\n searchFilters.after,\r\n searchFilters.outcomes,\r\n token\r\n )\r\n );\r\n\r\n Promise.all(apiCalls)\r\n .then((res) => {\r\n const [queue, metrics] = res;\r\n setQueue(queue);\r\n metrics && setMetrics(metrics);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n\r\n if (referralFormFinalised) setReferralFormFinalised(false);\r\n };\r\n\r\n const onWorkItemAssigned = (queueWorkItem: any) => {\r\n // \tsetQueueWorkItemStatusChanged(true);\r\n // \tsetQueueWorkItemLoading(true);\r\n // \tif (\r\n // \t\tqueueWorkItem.personAssignedTo &&\r\n // \t\tqueueWorkItem.status == QueueWorkItemStatus.InProgress\r\n // \t) {\r\n // \t\t//call unassign api\r\n //\r\n // \t\tapi\r\n // \t\t\t.UnAssignWorkItem(currentQueue!.id, queueWorkItem.workItem.id, token)\r\n // \t\t\t.then((d) => {\r\n // \t\t\t\tsetQueueWorkItem(d);\r\n // \t\t\t})\r\n // \t\t\t.catch((err) => console.log(err));\r\n // \t} else {\r\n // \t\t//call assign api\r\n // \t\tapi\r\n // \t\t\t.AssignWorkItemToMe(currentQueue!.id, queueWorkItem.workItem.id, token)\r\n // \t\t\t.then((d) => {\r\n // \t\t\t\tsetQueueWorkItem(d);\r\n // \t\t\t})\r\n // \t\t\t.catch((err) => console.log(err));\r\n // \t}\r\n };\r\n const onWorkItemNoteAdded = (\r\n queueWorkItemNote: string,\r\n globalNote: boolean\r\n ) => {\r\n setQueueWorkItemLoading(true);\r\n // if (\r\n // \tqueueWorkItemStatusChanged &&\r\n // \t(queueWorkItemStatus == QueueWorkItemStatus.OnHold ||\r\n // \t\tqueueWorkItemStatus == QueueWorkItemStatus.Closed)\r\n // ) {\r\n // \tsetQueueWorkItemStatusChanged(true);\r\n // \tqueueClient\r\n // \t\t.updateQueueWorkItemStatus(\r\n // \t\t\tcurrentQueue!.id,\r\n // \t\t\tqueueWorkItem!.workItem.id,\r\n // \t\t\t{ note: queueWorkItemNote, status: queueWorkItemStatus }\r\n // \t\t)\r\n // \t\t.then((d) => {\r\n // \t\t\tsetQueueWorkItem(d);\r\n // \t\t})\r\n // \t\t.catch((err) => {\r\n // \t\t\tsetQueueWorkItemLoading(false);\r\n // \t\t\tsetQueueWorkItemStatus(queueWorkItem!.status);\r\n // \t\t\tenqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n // \t\t});\r\n // } else {\r\n api\r\n .SaveWorkItemNote(\r\n currentQueue!.id,\r\n queueWorkItem!.workItem.id,\r\n queueWorkItemNote,\r\n globalNote,\r\n token\r\n )\r\n .then((qwi) => {\r\n setQueueWorkItem(qwi);\r\n })\r\n .catch((err) => console.log(err));\r\n //}\r\n };\r\n const onDatePickerChangeHandler = (range: any) => {\r\n if (\r\n searchFilters &&\r\n (searchFilters?.after !== range[0] || searchFilters?.before !== range[1])\r\n ) {\r\n setLoading(true);\r\n setIsUpdateFromDatePicker(true);\r\n setHasDateChanged(true);\r\n setSearchFilters({\r\n ...searchFilters,\r\n before: range[1],\r\n after: range[0],\r\n });\r\n }\r\n };\r\n const handleStatusSelect = (newFormats: QueueWorkItemStatus[]) => {\r\n //setLoading(true);\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: newFormats,\r\n });\r\n setIsFilterChanged(true);\r\n setMetricCatSelect(true);\r\n };\r\n\r\n const WorkItemIcon = (state: number): JSX.Element | undefined => {\r\n switch (state) {\r\n case QueueWorkItemStatus.New:\r\n return ;\r\n case QueueWorkItemStatus.Viewed:\r\n return ;\r\n\r\n case QueueWorkItemStatus.PDFDownloaded:\r\n return ;\r\n }\r\n };\r\n\r\n function addNote(noteTextField: string, globalNote: boolean) {\r\n onWorkItemNoteAdded(noteTextField, globalNote);\r\n handleClose();\r\n }\r\n\r\n const handleClose = () => {\r\n _setNoteMode(false);\r\n setQueueWorkItemStatus(undefined);\r\n };\r\n\r\n // const handleAssignToQueueClose = () => {\r\n // \tsetAssignToQueueMode(false);\r\n // };\r\n //\r\n // const handleAssignAndCloseQueueClose = () => {\r\n // \tsetQueueWorkItemStatus(QueueWorkItemStatus.Closed);\r\n // \tsetAssignToQueueMode(false);\r\n // };\r\n\r\n const handleStatusChange = (\r\n event: React.MouseEvent,\r\n newStatuses: QueueWorkItemStatus[]\r\n ) => {\r\n setLoading(true);\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: newStatuses,\r\n });\r\n setIsFilterChanged(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (state.user?.token) {\r\n setToken(state.user?.token);\r\n }\r\n }, []);\r\n useEffect(() => {\r\n if (currentQueue) {\r\n setQueueChanged(true);\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: [QueueWorkItemStatus.New],\r\n after: searchFilters?.after ?? startOfYear(endOfToday()),\r\n before: searchFilters?.before ?? endOfToday(),\r\n outcomes: undefined,\r\n });\r\n setUpdateMetricsFromApi(true);\r\n }\r\n if (csvExportMode) {\r\n setCSVExportMode(false);\r\n fields.startDateTime.setValue(\"\");\r\n fields.endDateTime.setValue(\"\");\r\n }\r\n }, [currentQueue]);\r\n useEffect(() => {\r\n loadQueueData();\r\n }, [searchFilters]);\r\n useEffect(() => {\r\n if (!csvExportMode) loadQueueData();\r\n }, [csvExportMode]);\r\n useEffect(() => {\r\n setSearchFilters({\r\n queueId,\r\n queryText: \"\",\r\n status: [QueueWorkItemStatus.New],\r\n after: startOfYear(endOfToday()),\r\n outcomes: [],\r\n before: endOfToday(),\r\n });\r\n }, [queueId]);\r\n useEffect(() => {\r\n if (queue) {\r\n setQueueWorkItems(queue.queueWorkItems);\r\n }\r\n }, [queue]);\r\n useEffect(() => {\r\n if (queueWorkItems && queueWorkItems.length >= 0) {\r\n setLoading(false);\r\n }\r\n }, [queueWorkItems]);\r\n useEffect(() => {\r\n if (queueWorkItem) {\r\n setQueueWorkItemLoading(false);\r\n }\r\n }, [queueWorkItem]);\r\n\r\n // function setQueueWorkItemStatusMethod(status: QueueWorkItemStatus )\r\n // {\r\n // \tif(queueWorkItem && queueWorkItem.workItem){\r\n\r\n // \t\tsetQueueWorkItemStatusChanged(true);\r\n // \t\tqueueClient\r\n // \t\t\t.updateQueueWorkItemStatus(\r\n // \t\t\t\tcurrentQueue!.id,\r\n // \t\t\t\tqueueWorkItem!.workItem.id,\r\n // \t\t\t\t{ note: \"\", status: status }\r\n // \t\t\t)\r\n // \t\t\t.then((d) => {\r\n // \t\t\t\tsetQueueWorkItem(d);\r\n // \t\t\t\t//setQueueWorkItemStatus(undefined);\r\n // \t\t\t})\r\n // \t\t\t.catch((err) => {\r\n // \t\t\t\tsetQueueWorkItemLoading(false);\r\n // \t\t\t\t//setQueueWorkItemStatus(queueWorkItem!.status);\r\n // \t\t\t\tenqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n // \t\t\t});\r\n\r\n // \t}\r\n // }\r\n\r\n const workItemStatusChanged = (queueWorkItem: any) => {\r\n\r\n if (queueWorkItem.status === QueueWorkItem.New) {\r\n setQueueWorkItemStatusChanged(true);\r\n\r\n api\r\n .UpdateQueueWorkItemStatus(\r\n queueId,\r\n queueWorkItem.workItem.id,\r\n \"\",\r\n hasPermission(state.user, Permissions.SuperUser) ? 3 : 1,\r\n token\r\n )\r\n .then((d) => {\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: [0, 1, 2],\r\n });\r\n setQueueWorkItem(d);\r\n })\r\n .catch((err) => {\r\n setQueueWorkItemLoading(false);\r\n setQueueWorkItemStatus(queueWorkItem.status);\r\n enqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n });\r\n }\r\n if (queueWorkItem.status === QueueWorkItem.PDFDownloaded) {\r\n setQueueWorkItemStatusChanged(true);\r\n\r\n api\r\n .UpdateQueueWorkItemStatus(\r\n queueId,\r\n queueWorkItem.workItem.id,\r\n \"VIEWING\",\r\n hasPermission(state.user, Permissions.SuperUser) ? 4 : 2,\r\n token\r\n )\r\n .then((d) => {\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: [0, 1, 2],\r\n });\r\n setQueueWorkItem(d);\r\n })\r\n .catch((err) => {\r\n setQueueWorkItemLoading(false);\r\n setQueueWorkItemStatus(queueWorkItem.status);\r\n enqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n });\r\n }\r\n if (queueWorkItem.status === QueueWorkItem.Viewed) {\r\n setQueueWorkItemStatusChanged(true);\r\n api\r\n .UpdateQueueWorkItemStatus(\r\n queueId,\r\n queueWorkItem.workItem.id,\r\n \"VIEWING\",\r\n hasPermission(state.user, Permissions.SuperUser) ? 3 : 1,\r\n token\r\n )\r\n .then((d) => {\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: [0, 1, 2],\r\n });\r\n setQueueWorkItem(d);\r\n })\r\n .catch((err) => {\r\n setQueueWorkItemLoading(false);\r\n setQueueWorkItemStatus(queueWorkItem.status);\r\n enqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n });\r\n }\r\n };\r\n\r\n const onWorkItemEdited = (queueWorkItem: any) => {\r\n setQueueWorkItemStatusChanged(true);\r\n\r\n api\r\n .UpdateQueueWorkItemStatus(\r\n queueId,\r\n queueWorkItem.workItem.id,\r\n \"\",\r\n 5,\r\n token\r\n )\r\n .then((d) => {\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: [0, 1, 2],\r\n });\r\n setQueueWorkItem(d);\r\n })\r\n .catch((err) => {\r\n setQueueWorkItemLoading(false);\r\n setQueueWorkItemStatus(queueWorkItem.status);\r\n enqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n });\r\n };\r\n\r\n const onWorkItemReset = (queueWorkItem: any) => {\r\n if (queueWorkItem.status !== QueueWorkItem.New) {\r\n setQueueWorkItemStatusChanged(true);\r\n\r\n api\r\n .UpdateQueueWorkItemStatus(\r\n queueId,\r\n queueWorkItem.workItem.id,\r\n \"\",\r\n 0,\r\n token\r\n )\r\n .then((d) => {\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: [0, 1, 2],\r\n });\r\n setQueueWorkItem(d);\r\n })\r\n .catch((err) => {\r\n setQueueWorkItemLoading(false);\r\n setQueueWorkItemStatus(queueWorkItem.status);\r\n enqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n });\r\n }\r\n };\r\n\r\n const resendEmailNotification = (queueWorkItem: any) => {\r\n console.log(queueWorkItem);\r\n ResendEamilNotification(\r\n \"matthew.vince@dayonedigital.com.au\",\r\n \"DoESystem\",\r\n state.user!.token\r\n ).then(() => enqueueSnackbar(\"Email Resent\", { variant: \"success\" }));\r\n };\r\n\r\n const downloadPDF = (queueWorkItem: any) => {\r\n setQueueWorkItemStatusChanged(true);\r\n api\r\n .UpdateQueueWorkItemStatus(\r\n queueId,\r\n queueWorkItem.workItem.id,\r\n \"\",\r\n hasPermission(state.user, Permissions.SuperUser) ? 4 : 2,\r\n token\r\n )\r\n .then((d) => {\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: [0, 1, 2],\r\n });\r\n setQueueWorkItem(d);\r\n })\r\n .catch((err) => {\r\n setQueueWorkItemLoading(false);\r\n setQueueWorkItemStatus(queueWorkItem.status);\r\n enqueueSnackbar(\"Failed to update referral\", { variant: \"error\" });\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (updateMetricsFromApi) {\r\n api\r\n .getQueueMetrics(\r\n currentQueue!.id,\r\n searchFilters.before,\r\n searchFilters.after,\r\n searchFilters.outcomes,\r\n token\r\n )\r\n .then((m) => setMetrics(m));\r\n setUpdateMetricsFromApi(false);\r\n }\r\n }, [updateMetricsFromApi]);\r\n useEffect(() => {\r\n if (updateQueueData) {\r\n if (srQWI) {\r\n //let qwi = queue.queueWorkItems.find((q: any) => q.id == srQWI.id);\r\n\r\n // setQueueWorkItems((qwi: any) =>\r\n // qwi.map((q: any) =>\r\n // q.id == srQWI.id\r\n // ? {\r\n // ...q,\r\n // personAssignedTo: srQWI.personAssignedTo,\r\n // status: srQWI.status,\r\n // }\r\n // : q\r\n // )\r\n // );\r\n if (queueWorkItem && queueWorkItem.id == srQWI.id) {\r\n queueWorkItem.status = srQWI.status;\r\n queueWorkItem.personAssignedTo = srQWI.personAssignedTo;\r\n }\r\n }\r\n setUpdateQueueData(false);\r\n }\r\n if (updateQueueAssignemnt) {\r\n getQueueDataWithoutRestriction();\r\n setUpdateQueueAssignemnt(false);\r\n //setUpdateMetricsFromApi(true);\r\n }\r\n }, [updateQueueData, updateQueueAssignemnt]);\r\n useEffect(() => {\r\n if (referralFormFinalised) {\r\n getQueueDataWithoutRestriction();\r\n }\r\n }, [referralFormFinalised]);\r\n useEffect(() => {\r\n setMetricCatSelect(false);\r\n }, [metricCatSelect]);\r\n\r\n return (\r\n <>\r\n {\r\n toggleSideDrawer.closeDrawer();\r\n setEditPerson(false);\r\n }}\r\n title={drawerTitle}\r\n >\r\n {queueWorkItemLoading ? (\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 {/* onWorkItemAssigned(queueWorkItem)}*/}\r\n {/*\taria-label=\"Add Team\"*/}\r\n {/*\t//disabled={!toggleSideDrawer || !hasModifyTeamMemberAccess }*/}\r\n {/*>*/}\r\n {/*\t{queueWorkItem?.personAssignedTo ? (*/}\r\n {/*\t\t*/}\r\n {/*\t) : (*/}\r\n {/*\t\t*/}\r\n {/*\t)}*/}\r\n {/**/}\r\n {/**/}\r\n {/* {*/}\r\n {/*\t\tsetQueueWorkItemStatus(*/}\r\n {/*\t\t\tqueueWorkItem?.status !== QueueWorkItemStatus.OnHold*/}\r\n {/*\t\t\t\t? QueueWorkItemStatus.OnHold*/}\r\n {/*\t\t\t\t: queueWorkItem?.personAssignedTo*/}\r\n {/*\t\t\t\t? QueueWorkItemStatus.InProgress*/}\r\n {/*\t\t\t\t: QueueWorkItemStatus.New*/}\r\n {/*\t\t);*/}\r\n {/*\t}}*/}\r\n {/*>*/}\r\n {/*\t{queueWorkItem?.status == QueueWorkItemStatus.OnHold ? (*/}\r\n {/*\t\t*/}\r\n {/*\t) : (*/}\r\n {/*\t\t*/}\r\n {/*\t)}*/}\r\n {/**/}\r\n {/**/}\r\n\r\n {queueWorkItem &&\r\n queueWorkItem.status != QueueWorkItemStatus.New &&\r\n hasPermission(state.user, Permissions.SuperUser) && (\r\n <>\r\n {\r\n onWorkItemReset(queueWorkItem);\r\n }}\r\n >\r\n {\r\n onWorkItemReset(queueWorkItem);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n {\r\n setQueueWorkItemStatus(undefined);\r\n startEditingNote();\r\n }}\r\n //disabled={!toggleSideDrawer || !hasModifyTeamMemberAccess }\r\n >\r\n \r\n \r\n {/**/}\r\n {/* setAssignToQueueMode(true)}*/}\r\n {/*>*/}\r\n {/*\t*/}\r\n {/**/}\r\n\r\n {/**/}\r\n {/*{currentQueue.canCreateForm && !currentQueue.launchForm && (*/}\r\n {/*\t<>*/}\r\n {/*\t\t {*/}\r\n {/*\t\t\t\tgetQuestionnaireIdForQueue().then((d) => {*/}\r\n {/*\t\t\t\t\tsetShowQuestionnaire(true);*/}\r\n {/*\t\t\t\t});*/}\r\n {/*\t\t\t}}*/}\r\n {/*\t\t>*/}\r\n {/*\t\t\t*/}\r\n {/*\t\t*/}\r\n {/*\t\t*/}\r\n {/*\t*/}\r\n {/*)}*/}\r\n\r\n {/**/}\r\n {/* toggleSideDrawer.openDrawer()}/>*/}\r\n\r\n {/**/}\r\n {/**/}\r\n
\r\n
\r\n \r\n \r\n \r\n }\r\n divider={true}\r\n />\r\n \r\n \r\n \r\n }\r\n divider={true}\r\n />\r\n {queueWorkItem!.outcomes &&\r\n queueWorkItem!.outcomes.length > 0 && (\r\n }\r\n text={queueWorkItem!.outcomes\r\n .map((o: QueueOutcomeViewModel) => o.name)\r\n .join(\", \")}\r\n />\r\n )}\r\n
\r\n {\r\n onWorkItemEdited(queueWorkItem);\r\n setQuestionnaireResponseId(responseId);\r\n setShowQuestionnaire(true);\r\n }}\r\n onViewPDF={() => {\r\n downloadPDF(queueWorkItem);\r\n }}\r\n admin={hasPermission(state.user, Permissions.SuperUser)}\r\n />\r\n \r\n )}\r\n \r\n {\r\n if (reason != \"backdropClick\" && reason != \"escapeKeyDown\") {\r\n setShowQuestionnaire(false);\r\n toggleQuestionnaireSideDrawer.closeDrawer();\r\n setQuestionnaireResponseId(undefined);\r\n } else {\r\n }\r\n }}\r\n />\r\n \r\n {metrics.totals &&\r\n MetricCategories.map((category: any, key: number) => (\r\n \r\n \r\n {category || \"Unknown\"}\r\n \r\n }\r\n value={\r\n \r\n {metrics?.totals\r\n ?.filter((metric: any) => metric.status == key)\r\n .map((m: any) => m.count)[0] || 0}\r\n \r\n }\r\n onSelected={() => {\r\n handleStatusSelect([key]);\r\n }}\r\n />\r\n \r\n ))}\r\n \r\n \r\n <>\r\n {!csvExportMode && (\r\n <>\r\n
\r\n {currentQueue.canCreateForm && (\r\n setShowQuestionnaire(true)}\r\n >\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n setSearchFilters({ ...searchFilters, queryText: q })\r\n }\r\n />\r\n \r\n setIsDatePickerExpanded(true)}\r\n onClose={() => setIsDatePickerExpanded(false)}\r\n disabled={loading}\r\n isDatePickerExpanded={isDatePickerExpanded}\r\n onRangeChange={onDatePickerChangeHandler}\r\n />\r\n \r\n \r\n {QueueWorkItemStatuses.map((t) => (\r\n \r\n {WorkItemIcon(t as QueueWorkItemStatus)}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n\r\n {csvExportMode && (\r\n <>\r\n \r\n \r\n {/**/}\r\n \r\n \r\n Retrieve\r\n \r\n\r\n \r\n Export\r\n \r\n \r\n )}\r\n\r\n {currentQueue.canExportCSV && (\r\n <>\r\n \r\n\r\n {\r\n setCSVExportMode(exportMode);\r\n if (exportMode && queue) {\r\n setQueue({ ...queue, queueWorkItems: [] });\r\n }\r\n }}\r\n />\r\n }\r\n label=\"CSV Export\"\r\n />\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n {loading || csvLoading ? (\r\n loading ? (\r\n \r\n ) : (\r\n <>\r\n \r\n CSV Exporting...\r\n \r\n )\r\n ) : queueWorkItems.length > 0 ? (\r\n renderCards()\r\n ) : (\r\n }\r\n content={\r\n <>\r\n No Referrals Found\r\n \r\n \r\n }\r\n />\r\n )}\r\n \r\n \r\n {!csvExportMode && treeData && treeData.length > 0 && (\r\n \r\n {\r\n setSearchFilters({ ...searchFilters, outcomes: checked });\r\n setIsFilterChanged(true);\r\n\r\n //if (queue && queue.queueWorkItems) {\r\n // setQueueWorkItems(\r\n // queue.queueWorkItems.filter((q: QueueWorkItemViewModel) => {\r\n // if (q.outcomes?.some((r) => checked.includes(r.id)) == true)\r\n // return q;\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 Refferal is not finalised!\r\n \r\n \r\n \r\n Press 'Continue' to continue with Referral. Otherwise, press 'Close'\r\n to close Referral from. No Queue Referral Item will be created.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n async function loadMore() {\r\n setLoadingMore(true);\r\n setHasMore(false);\r\n const queueData = await doItemQuery(queueWorkItems.length);\r\n setQueue({\r\n ...queueData,\r\n queueWorkItems: [...queueWorkItems, ...queueData.queueWorkItems!],\r\n });\r\n setLoadingMore(false);\r\n }\r\n\r\n function renderCards() {\r\n var toRender = queueWorkItems;\r\n\r\n if (searchFilters.outcomes != undefined && searchFilters.outcomes.length > 0) {\r\n toRender = queueWorkItems.filter((q: QueueWorkItemViewModel) => {\r\n if (q.outcomes?.some((r) => searchFilters.outcomes?.includes(r.id)) == true)\r\n return q;\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {toRender!.map((queueWorkItem: any) => (\r\n {\r\n // setQueueWorkItemStatusMethod(QueueWorkItemStatus.Viewed);\r\n //setDrawerTitle(`${queueWorkItem.status} Referral`);\r\n //onQueueWorkItemSelected(queueWorkItem);\r\n //setQueueWorkItemLoading(true)\r\n //setQueueWorkItem(queueWorkItem);\r\n workItemStatusChanged(queueWorkItem);\r\n toggleSideDrawer.openDrawer();\r\n }}\r\n style={{ marginBottom: \"15px\", display: \"flex\" }}\r\n icon={WorkItemIcon(queueWorkItem.status)}\r\n severity={MetricCategories[queueWorkItem.status]}\r\n content={\r\n <>\r\n \r\n {queueWorkItem.workItem.person.firstName}{\" \"}\r\n {queueWorkItem.workItem.person.lastName}\r\n \r\n }\r\n text={format(\r\n new Date(queueWorkItem.workItem.createdAt),\r\n \"dd-MM-yyyy HH:mm:ss\"\r\n )}\r\n />\r\n\r\n {queueWorkItem.outcomes &&\r\n queueWorkItem.outcomes.length > 0 && (\r\n }\r\n text={queueWorkItem.outcomes\r\n .map((o: QueueOutcomeViewModel) => o.name)\r\n .join(\", \")}\r\n />\r\n )}\r\n {queueWorkItem.nurse && (\r\n\r\n }\r\n text={queueWorkItem.nurse.firstName+ \" \"+queueWorkItem.nurse.lastName}\r\n />\r\n \r\n )}\r\n\r\n {queueWorkItem.personAssignedTo && (\r\n <>\r\n
\r\n \r\n \r\n )}\r\n \r\n }\r\n />\r\n ))}\r\n {(loadingMore || hasMore) && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n function editor(xs: GridSize, ...fields: ReactElement[]) {\r\n if (editPerson) {\r\n return (\r\n \r\n {fields.map((f, i) => (\r\n \r\n {f}\r\n \r\n ))}\r\n \r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n // function startEditingPerson() {\r\n // const p = queueWorkItem!.workItem.person;\r\n // const d = parse(p.shortDateOfBirth!, \"dd/MM/yyyy\", new Date());\r\n // personForm.setValue({\r\n // ...p,\r\n // dateOfBirth: format(d, \"yyyy-MM-dd\"),\r\n // addressFull: p.addressFull ?? {},\r\n // });\r\n // personForm.setTouched(false);\r\n // personForm.setDisabled(false);\r\n // setEditPerson(true);\r\n // }\r\n\r\n async function savePerson() {\r\n personForm.setDisabled(true);\r\n const _personData = personForm.toObject();\r\n const personData = {\r\n ..._personData,\r\n address: toFullAddressLine(_personData.addressFull),\r\n };\r\n\r\n const existingPerson = queueWorkItem?.workItem.person;\r\n await personsClient.editPerson(existingPerson!.id, personData);\r\n const newPerson = {\r\n ...existingPerson,\r\n ...personData,\r\n shortDateOfBirth: format(parseISO(personData.dateOfBirth), \"dd/MM/yyyy\"),\r\n };\r\n setQueueWorkItem((qwi: any) => ({\r\n ...qwi,\r\n workItem: { ...qwi.workItem, person: newPerson },\r\n }));\r\n\r\n setQueueWorkItems((qwi: any) =>\r\n qwi?.map((qw: any) =>\r\n qw.id == queueWorkItem!.id\r\n ? { ...qw, workItem: { ...qw.workItem, person: newPerson } }\r\n : qw\r\n )\r\n );\r\n\r\n setEditPerson(false);\r\n }\r\n\r\n async function retrieveCSVExportRecords() {\r\n setCsvLoading(true);\r\n const csvExportData = form.toObject();\r\n const csvQueueWorkItems =\r\n await adminQuestionClient.getCSVExportForWorkItemId(\r\n queueId,\r\n currentQueue.defaultExportQuestionnaireId!,\r\n csvExportData\r\n );\r\n\r\n setQueue(csvQueueWorkItems);\r\n setCsvLoading(false);\r\n }\r\n\r\n async function exportRecordsToCSV() {\r\n setCsvLoading(true);\r\n if (queue && queue.queueWorkItems) {\r\n const ids = queue.queueWorkItems.map((x) => x.workItem!.id);\r\n\r\n if (ids) {\r\n const result = await adminQuestionClient.getExportsForWorkItems(\r\n currentQueue.defaultExportQuestionnaireId!,\r\n ids\r\n );\r\n\r\n saveAs(\r\n result.data,\r\n `eforms_export_${format(new Date(), \"dd-MM-yyyy HH:mm \")}.csv`\r\n );\r\n setCSVExportMode(false);\r\n }\r\n }\r\n setCsvLoading(false);\r\n }\r\n}\r\n\r\nconst AllQueueWorkItems = [\r\n QueueWorkItemStatus.New,\r\n QueueWorkItemStatus.Viewed,\r\n QueueWorkItemStatus.PDFDownloaded,\r\n];\r\n\r\nexport interface DialogTitleProps extends WithStyles {\r\n id: string;\r\n children: React.ReactNode;\r\n onClose: () => void;\r\n}\r\n\r\nexport const ClosableDialogTitle = withStyles(styles)(\r\n (props: DialogTitleProps) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n);\r\n\r\nfunction SearchAppBar({\r\n searchFilters,\r\n queryChanged,\r\n}: {\r\n searchFilters: SearchFilter;\r\n queryChanged: (text: string) => void;\r\n}) {\r\n const [query, setQuery] = useState(searchFilters.queryText);\r\n const debounced = useDebounce(query, 500);\r\n useEffect(() => {\r\n queryChanged(debounced);\r\n }, [debounced]);\r\n useEffect(() => {\r\n setQuery(searchFilters.queryText);\r\n }, [searchFilters.queryText]);\r\n return (\r\n setQuery(e.target.value)} />\r\n );\r\n}\r\n\r\nexport function AddNoteDialog({\r\n handleClose,\r\n noteMode,\r\n submitNote,\r\n}: {\r\n handleClose: () => void;\r\n noteMode: boolean;\r\n submitNote: (noteText: string, global: boolean) => void;\r\n}) {\r\n const [noteTextField, setNoteTextField] = useState(\"\");\r\n const [globalNote, setGlobalNote] = useState(true);\r\n\r\n const handleNoteCheckboxChange = (\r\n event: React.ChangeEvent\r\n ) => {\r\n setGlobalNote(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n Referral Notes\r\n \r\n \r\n {\r\n setNoteTextField(e.target.value);\r\n }}\r\n variant=\"outlined\"\r\n multiline={true}\r\n rows={3}\r\n />\r\n \r\n }\r\n />\r\n \r\n \r\n submitNote(noteTextField || \"\", globalNote)}\r\n disabled={noteTextField == \"\" || !noteTextField}\r\n >\r\n Save Notes\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nlet noteKey = 0;\r\n","import { Divider, Grid, Paper, Typography } from \"@material-ui/core\";\r\nimport { debug } from \"console\";\r\nimport {endOfToday, startOfYear, startOfYesterday} from \"date-fns\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { SelectableStatisticCard } from \"../../../components/muiCore/Card\";\r\nimport { CalendarsDateRangePicker } from \"../../../components/muiCore/DateRangePicker\";\r\nimport { AppBar } from \"../../../components/muiCore/Paper\";\r\nimport { HubConnection } from \"@microsoft/signalr\";\r\nimport {\r\n\tgetAllQueueMetrics,\r\n\tgetQueueMetrics,\r\n\tgetQueues,\r\n} from \"../../../data/api\";\r\nimport { QueueWorkItem } from \"../../../state/State.model\";\r\nimport { Context } from \"../../../state/Store\";\r\nimport { useSignalR } from \"../../utils/signalr\";\r\n\r\ninterface IDateRange {\r\n\tafter: Date;\r\n\tbefore: Date;\r\n}\r\n\r\nconst SummaryView = () => {\r\n\tconst { state } = useContext(Context);\r\n\r\n\tconst [isDatePickerExpanded, setIsDatePickerExpanded] =\r\n\t\tuseState(false);\r\n\tconst [allMetric, setAllMetric] = useState([]);\r\n\tconst [receivedSignal, setReceivedSignal] = useState(false);\r\n\r\n\tconst [searchFilters, setSearchFilters] = useState({\r\n\t\tafter: startOfYear(endOfToday()),\r\n\t\tbefore: endOfToday(),\r\n\t});\r\n\r\n\tconst AllQueueWorkItems = [\r\n\t\tQueueWorkItem.New,\r\n\t\tQueueWorkItem.Viewed,\r\n\t\tQueueWorkItem.PDFDownloaded,\r\n\t];\r\n\r\n\tlet MetricCategories = AllQueueWorkItems.map((wi) => QueueWorkItem[wi]);\r\n\r\n\tconst refreshMetrics = () => {\r\n\t\tgetAllQueueMetrics(\r\n\t\t\tsearchFilters.before,\r\n\t\t\tsearchFilters.after,\r\n\t\t\tstate!.user!.token!\r\n\t\t).then((r: any) => setAllMetric(r));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\trefreshMetrics();\r\n\t}, [searchFilters]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (receivedSignal) {\r\n\t\t\tconsole.log(searchFilters);\r\n\t\t\trefreshMetrics();\r\n\t\t\tsetReceivedSignal(false);\r\n\t\t}\r\n\t}, [receivedSignal]);\r\n\r\n\tuseSignalR(\"/api/hub/queue\", state.user?.token, (conn: HubConnection) => {\r\n\t\tconn.on(\"queueitem-updated\", (workItem: any) => {\r\n\t\t\tsetReceivedSignal(true);\r\n\t\t});\r\n\t});\r\n\r\n\tconst onDatePickerChangeHandler = (range: any) => {\r\n\t\tif (\r\n\t\t\tsearchFilters &&\r\n\t\t\t(searchFilters?.after !== range[0] || searchFilters?.before !== range[1])\r\n\t\t) {\r\n\t\t\tsetSearchFilters({\r\n\t\t\t\tbefore: range[1],\r\n\t\t\t\tafter: range[0],\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t setIsDatePickerExpanded(true)}\r\n\t\t\t\t\t\tonClose={() => setIsDatePickerExpanded(false)}\r\n\t\t\t\t\t\tisDatePickerExpanded={isDatePickerExpanded}\r\n\t\t\t\t\t\tonRangeChange={onDatePickerChangeHandler}\r\n\t\t\t\t\t/>\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t{allMetric.map((m, i) => (\r\n\t\t\t\t<>\r\n\t\t\t\t\t
{m.name}
\r\n\t\t\t\t\t\r\n\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);\r\n};\r\n\r\nconst MetricView = (props: any) => {\r\n\tconst { metrics, MetricCategories } = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{metrics &&\r\n\t\t\t\tMetricCategories.map((category: any, key: number) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{category || \"Unknown\"}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvalue={\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{metrics.queueWorkItems\r\n\t\t\t\t\t\t\t\t\t\t?.filter((metric: any) => metric.status == key)\r\n\t\t\t\t\t\t\t\t\t\t.map((m: any) => m.count)[0] || 0}\r\n\t\t\t\t\t\t\t\t\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\r\n\t);\r\n};\r\n\r\nexport default SummaryView;\r\n","import { HubConnection, HubConnectionBuilder, HubConnectionState } from '@microsoft/signalr';\r\nimport { useEffect, useState } from 'react';\r\n\r\nexport const useSignalR = (url: string, token?: string, eventHandler?: (conn: HubConnection) => void) => {\r\n \r\n useEffect(() => {\r\n // if( !token?.length ) {\r\n // return;\r\n // }\r\n\r\n // const conn = new HubConnectionBuilder()\r\n // .withUrl(url, {\r\n // accessTokenFactory: () => token\r\n // })\r\n // .withAutomaticReconnect()\r\n // .build();\r\n\r\n // conn.start()\r\n // .then(result => {\r\n // if(eventHandler) {\r\n // eventHandler(conn);\r\n // }\r\n // });\r\n\r\n }, []);\r\n\r\n}","import { createRenderer } from \"@react-typed-forms/core\";\r\nimport { TextFieldProps } from \"@material-ui/core/TextField\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nexport const FNumberField = createRenderer(\r\n (\r\n { state, helperText, ...props },\r\n { errorText, value, onChange, ...formProps }\r\n ) => (\r\n {\r\n const num = parseFloat(e.target.value);\r\n state.setValue(isNaN(num) ? undefined : num);\r\n }}\r\n />\r\n )\r\n);\r\n","import {\r\n ArrayControl,\r\n buildGroup,\r\n control,\r\n ControlType,\r\n FormArray,\r\n useControlState,\r\n useControlStateVersion,\r\n} from \"@react-typed-forms/core\";\r\nimport {\r\n ChoiceAlert,\r\n ChoiceResult,\r\n QuestionChoiceEditModel,\r\n QueueOutcomeViewModel,\r\n} from \"../../../../common/client\";\r\nimport { Box, Button, Grid, MenuItem } from \"@material-ui/core\";\r\nimport {\r\n FSelectField,\r\n FTextField,\r\n} from \"../../../../common/formComponents/FTextField\";\r\nimport { FNumberField } from \"../../../../common/formComponents/FNumberField\";\r\nimport { QuestionForm } from \"./QuestionEditor\";\r\nimport deepEqual from \"fast-deep-equal/es6\";\r\nimport { FCheckbox } from \"../../../../common/formComponents/FCheckbox\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport UpIcon from \"@material-ui/icons/ArrowUpward\";\r\nimport DownIcon from \"@material-ui/icons/ArrowDownward\";\r\nexport const ChoiceAlertFormDef = buildGroup()({\r\n id: \"\",\r\n body: \"\",\r\n title: \"\",\r\n});\r\n\r\nexport const ChoiceFormDef = buildGroup()({\r\n id: control(undefined),\r\n outcomeResult: ChoiceResult.None,\r\n text: \"\",\r\n exportValue: \"\",\r\n nextQuestionId: control(undefined),\r\n queueOutcomeChoiceId: control(undefined),\r\n onAssignment: false,\r\n});\r\n\r\nexport type ChoiceForm = ControlType;\r\n\r\nfunction sameAsExisting(existing: any, newone: any) {\r\n if (deepEqual(existing, newone)) {\r\n return existing;\r\n }\r\n return newone;\r\n}\r\n\r\nexport function ChoiceEditor({\r\n state,\r\n onDelete,\r\n otherQuestions,\r\n queueOutcomes,\r\n onUp,\r\n onDown,\r\n}: {\r\n state: ChoiceForm;\r\n otherQuestions: ArrayControl;\r\n onDelete: () => void;\r\n onUp: () => void;\r\n onDown: () => void;\r\n queueOutcomes: QueueOutcomeViewModel[];\r\n}) {\r\n const fields = state.fields;\r\n const others: [string | undefined, string][] = useControlState(\r\n otherQuestions,\r\n (c, p) =>\r\n sameAsExisting(\r\n p,\r\n c.elems.map(({ fields: { id, heading } }) => [id.value, heading.value])\r\n )\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n None\r\n {others.map((q) => (\r\n \r\n {q[1]}\r\n \r\n ))}\r\n \r\n \r\n {/**/}\r\n {/* */}\r\n {/* None*/}\r\n {/* Test Required*/}\r\n {/* Trace Required*/}\r\n {/* */}\r\n {/* Trace and Test Required*/}\r\n {/* */}\r\n {/* */}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n {\"None\"}\r\n {queueOutcomes.map((qo) => (\r\n {qo.name}\r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { createRenderer } from \"@react-typed-forms/core\";\r\nimport { Box, Button, Grid, ListItemIcon, Typography } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport { SubQuestionIcon } from \"../../components/core/QuestionSlider/QuestionItemSubQuestion\";\r\nimport {\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n} from \"../../components/muiCore/Dialog\";\r\n\r\nconst AllIcons = [\r\n \"breath\",\r\n \"fever\",\r\n \"smell\",\r\n \"nose\",\r\n \"contact\",\r\n \"travel\",\r\n \"travelContact\",\r\n \"homeIsolation\",\r\n \"interpreter\",\r\n \"UserNurseIcon\",\r\n];\r\n\r\nexport const FIconSelector = createRenderer(\r\n ({ state, ...props }, { errorText, value, ...formProps }) => {\r\n const [open, setOpen] = useState(false);\r\n function select(i: string) {\r\n setOpen(false);\r\n state.setValue(i);\r\n }\r\n\r\n return (\r\n <>\r\n setOpen(true)}>\r\n {SubQuestionIcon(value)}\r\n \r\n setOpen(false)}>\r\n \r\n \r\n Choose Icon\r\n \r\n \r\n \r\n \r\n \r\n {AllIcons.map((i) => (\r\n \r\n select(i)}\r\n >\r\n {SubQuestionIcon(i)}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n","import { buildGroup, control, ControlType } from \"@react-typed-forms/core\";\r\nimport { SubQuestionEditModel } from \"../../../../common/client\";\r\nimport { FTextField } from \"../../../../common/formComponents/FTextField\";\r\nimport { Box, Button, Grid } from \"@material-ui/core\";\r\nimport { FIconSelector } from \"../../../../common/formComponents/FIconSelector\";\r\n\r\nexport const SubQuestionFormDef = buildGroup()({\r\n id: control(undefined),\r\n icon: \"\",\r\n text: \"\",\r\n});\r\n\r\nexport type SubQuestionForm = ControlType;\r\n\r\nexport function SubQuestionEditor({\r\n state,\r\n onDelete,\r\n}: {\r\n state: SubQuestionForm;\r\n onDelete: () => void;\r\n}) {\r\n const fields = state.fields;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n ArrayControl,\r\n arrayControl,\r\n buildGroup,\r\n control,\r\n ControlType,\r\n FormArray,\r\n GroupControl,\r\n GroupControlFields,\r\n useControlStateComponent,\r\n ValueTypeForControl,\r\n} from \"@react-typed-forms/core\";\r\n\r\nimport {\r\n DateConstraint,\r\n QuestionAdminViewModel,\r\n QuestionEditModel,\r\n QuestionIntent,\r\n QuestionType,\r\n QuestionValidation,\r\n} from \"../../../../common/client\";\r\nimport { FTextField } from \"../../../../common/formComponents/FTextField\";\r\nimport { FNumberField } from \"../../../../common/formComponents/FNumberField\";\r\nimport { Box, Button, Grid, MenuItem } from \"@material-ui/core\";\r\nimport { ChoiceFormDef } from \"./ChoiceEditor\";\r\nimport { SubQuestionFormDef } from \"./SubQuestionEditor\";\r\nimport { useDrag } from \"react-dnd\";\r\nimport { Droppable } from \"./QuestionnaireEditor\";\r\nimport { isoToDate } from \"../../../../common/dates\";\r\n\r\nexport type QuestionForm = GroupControl<\r\n GroupControlFields> & {\r\n nestedQuestions: ArrayControl;\r\n }\r\n>;\r\n\r\nconst DateConstraintFormDef = buildGroup()({\r\n days: control(undefined),\r\n fixed: control(undefined),\r\n});\r\n\r\nexport type DateConstraintFormType = ControlType;\r\n\r\nconst ValidationFormDef = buildGroup()({\r\n notAfter: DateConstraintFormDef,\r\n notBefore: DateConstraintFormDef,\r\n textType: control(undefined),\r\n});\r\n\r\nconst BaseQuestionForm = buildGroup<\r\n Omit\r\n>()({\r\n id: control(undefined),\r\n heading: \"\",\r\n intentKey: \"\",\r\n type: QuestionType.YesNo,\r\n choices: arrayControl(ChoiceFormDef),\r\n intent: QuestionIntent.None,\r\n hidden: false,\r\n questionKey: \"\",\r\n exportKey: \"\",\r\n required: false,\r\n validation: ValidationFormDef,\r\n subQuestions: arrayControl(SubQuestionFormDef),\r\n});\r\n\r\nexport const QuestionFormDef: () => QuestionForm = () =>\r\n BaseQuestionForm().addFields({\r\n nestedQuestions: new ArrayControl(QuestionFormDef),\r\n });\r\n\r\nfunction toDateConstraintForm(v?: DateConstraint): DateConstraint {\r\n if (!v) {\r\n return { fixed: undefined, days: undefined };\r\n }\r\n return { ...v, fixed: isoToDate(v.fixed) };\r\n}\r\n\r\nfunction toValidationForm(v?: QuestionValidation) {\r\n return {\r\n notBefore: toDateConstraintForm(v?.notBefore),\r\n notAfter: toDateConstraintForm(v?.notAfter),\r\n textType: v?.textType,\r\n };\r\n}\r\n\r\nexport function toQuestionForm(\r\n q: QuestionAdminViewModel\r\n): ValueTypeForControl {\r\n const sortedNested = q.nestedQuestions.sort((a, b) => a.order - b.order);\r\n return {\r\n ...q,\r\n nestedQuestions: sortedNested.map(toQuestionForm),\r\n validation: toValidationForm(q.validation),\r\n choices: q.choices.map((c) => ({\r\n ...c,\r\n nextQuestionId: q.responseMappings.find((rm) => rm.choiceId === c.id)\r\n ?.nextQuestionId,\r\n })),\r\n };\r\n}\r\n\r\nexport function QuestionEdit({\r\n state,\r\n onDelete,\r\n otherQuestions,\r\n openOptions,\r\n}: {\r\n state: QuestionForm;\r\n onDelete: () => void;\r\n openOptions: (q: QuestionForm, others: ArrayControl) => void;\r\n otherQuestions: ArrayControl;\r\n}) {\r\n const fields = state.fields;\r\n const WithType = useControlStateComponent(fields.type, (c) => c.value);\r\n const [collected, drag, dragPreview] = useDrag(() => ({\r\n type: \"question\",\r\n item: { state, otherQuestions },\r\n }));\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Yes / No\r\n \r\n Multiple Choice\r\n \r\n Text Field\r\n Grouped\r\n Date\r\n DateTime\r\n Repeater\r\n Address\r\n Location Helper\r\n MultiLine Text Field\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 {(t) => {\r\n switch (t) {\r\n case QuestionType.Grouped:\r\n case QuestionType.Repeater:\r\n return (\r\n <>\r\n \r\n \r\n \r\n {(nestedQuestions) =>\r\n nestedQuestions.map((c, i) => (\r\n \r\n \r\n fields.nestedQuestions.remove(i)\r\n }\r\n />\r\n \r\n \r\n ))\r\n }\r\n \r\n {\r\n const nq = fields.nestedQuestions.add();\r\n nq.fields.id.setValue(nq.uniqueId.toString());\r\n }}\r\n >\r\n Add nested-question\r\n \r\n \r\n \r\n );\r\n default:\r\n return <>;\r\n }\r\n }}\r\n \r\n
\r\n \r\n );\r\n}\r\n","import { Box, Button, Grid, MenuItem } from \"@material-ui/core\";\r\nimport {\r\n ArrayControl,\r\n FormArray,\r\n useControlValue,\r\n} from \"@react-typed-forms/core\";\r\nimport { FCheckbox } from \"../../../../common/formComponents/FCheckbox\";\r\nimport { ChoiceEditor } from \"./ChoiceEditor\";\r\nimport { DateConstraintFormType, QuestionForm } from \"./QuestionEditor\";\r\nimport { SubQuestionEditor } from \"./SubQuestionEditor\";\r\nimport {\r\n QuestionType,\r\n QueueOutcomeViewModel,\r\n TextType,\r\n} from \"../../../../common/client\";\r\nimport { FDateField } from \"../../../../common/formComponents/FTextField\";\r\nimport { FNumberField } from \"../../../../common/formComponents/FNumberField\";\r\nimport { moveDown, moveUp } from \"../../../../common/arrays\";\r\n\r\nexport interface QuestionOptionsProps {\r\n state: QuestionForm;\r\n otherQuestions: ArrayControl;\r\n outcomeResults: QueueOutcomeViewModel[];\r\n}\r\n\r\nexport function QuestionOptions({\r\n state,\r\n otherQuestions,\r\n outcomeResults,\r\n}: QuestionOptionsProps) {\r\n const fields = state.fields;\r\n const questionType = useControlValue(fields.type);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {(questionType === QuestionType.DateField ||\r\n questionType === QuestionType.DateTimeField) && (\r\n \r\n {renderDateConstraint(fields.validation.fields.notBefore, \"Before\")}\r\n {renderDateConstraint(fields.validation.fields.notAfter, \"After\")}\r\n \r\n )}\r\n {questionType === QuestionType.TextField && (\r\n \r\n \r\n None\r\n Mobile Phone\r\n Email\r\n \r\n \r\n )}\r\n \r\n {(choices) =>\r\n choices.map((c, i) => (\r\n fields.choices.remove(i)}\r\n onUp={() => moveUp(fields.choices, i)}\r\n onDown={() => moveDown(fields.choices, i)}\r\n queueOutcomes={outcomeResults}\r\n />\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {(subQuestions) =>\r\n subQuestions.map((c, i) => (\r\n fields.subQuestions.remove(i)}\r\n />\r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n );\r\n\r\n function renderDateConstraint(state: DateConstraintFormType, type: string) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import { ArrayControl } from \"@react-typed-forms/core\";\r\n\r\nexport function moveUp(fields: ArrayControl, index: number) {\r\n if (index > 0 && index < fields.elems.length)\r\n fields.update((fields) =>\r\n fields.map((f, idx) =>\r\n idx === index ? fields[idx - 1] : idx === index - 1 ? fields[index] : f\r\n )\r\n );\r\n}\r\nexport function moveDown(fields: ArrayControl, index: number) {\r\n if (index >= 0 && index < fields.elems.length - 1)\r\n fields.update((fields) =>\r\n fields.map((f, idx) =>\r\n idx === index\r\n ? fields[idx + 1]\r\n : idx === index + 1\r\n ? fields[idx - 1]\r\n : f\r\n )\r\n );\r\n}\r\n","import { useHistory, useParams } from \"react-router\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n AudiencesClient,\r\n AudienceViewModel,\r\n QuestionnaireEditModel,\r\n QuestionnairesClient,\r\n QueueOutcomeViewModel,\r\n} from \"../../../../common/client\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { ArrayControl, buildGroup, FormArray } from \"@react-typed-forms/core\";\r\nimport {\r\n QuestionEdit,\r\n QuestionForm,\r\n QuestionFormDef,\r\n toQuestionForm,\r\n} from \"./QuestionEditor\";\r\nimport {\r\n Box,\r\n Button,\r\n Checkbox,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n Divider,\r\n FormControlLabel,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { FTextField } from \"../../../../common/formComponents/FTextField\";\r\nimport { FCheckList } from \"../../../../common/formComponents/FCheckList\";\r\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\r\nimport { DndProvider, useDrop } from \"react-dnd\";\r\nimport { QuestionOptions, QuestionOptionsProps } from \"./QuestionOptions\";\r\nimport { questionnaireEditUrl, questionnaireListUrl } from \"../../Routes\";\r\n\r\nexport const QuestionnaireFormDef = buildGroup<\r\n Omit\r\n>()({\r\n name: \"\",\r\n audiences: [],\r\n questions: () => new ArrayControl(QuestionFormDef),\r\n});\r\n\r\nexport function QuestionnaireEditor() {\r\n const { id: _id } = useParams<{ id: string }>();\r\n const id = _id !== \"new\" ? _id : null;\r\n const client = useApiClient(QuestionnairesClient);\r\n const audienceClient = useApiClient(AudiencesClient);\r\n const [loading, setLoading] = useState(true);\r\n const [audiences, setAudiences] = useState();\r\n const [form] = useState(QuestionnaireFormDef);\r\n const fields = form.fields;\r\n const [saving, setSaving] = useState(false);\r\n const [optionsQuestion, setOptionsQuestion] =\r\n useState();\r\n const [showingOptions, setShowingOptions] = useState(false);\r\n const [queueOutcomes, setQueueOutcomes] = useState(\r\n []\r\n );\r\n\r\n const router = useHistory();\r\n useEffect(() => {\r\n if (id) {\r\n loadQuestionnaire(id);\r\n } else {\r\n setLoading(false);\r\n }\r\n }, [id]);\r\n\r\n useEffect(() => {\r\n loadAudiences();\r\n }, []);\r\n\r\n if (loading) return

Loading

;\r\n return (\r\n \r\n {optionsQuestion && (\r\n setShowingOptions(false)}\r\n maxWidth=\"xl\"\r\n fullWidth\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 Edit Questionnaire\r\n \r\n )}\r\n />\r\n \r\n {audiences && (\r\n \r\n \r\n {(checkProps) =>\r\n audiences.map((a) => (\r\n }\r\n label={a.name}\r\n />\r\n ))\r\n }\r\n \r\n \r\n )}\r\n \r\n Questions\r\n \r\n \r\n {(qs) =>\r\n qs.map((q, i) => (\r\n \r\n {\r\n setOptionsQuestion({\r\n state: q1,\r\n otherQuestions: o,\r\n outcomeResults: queueOutcomes,\r\n });\r\n setShowingOptions(true);\r\n }}\r\n state={q}\r\n onDelete={() => fields.questions.remove(i)}\r\n />\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n {\r\n const nq = fields.questions.add();\r\n nq.fields.id.setValue(nq.uniqueId.toString());\r\n }}\r\n >\r\n Add question\r\n \r\n \r\n \r\n router.replace(questionnaireListUrl())}\r\n >\r\n Close\r\n \r\n \r\n \r\n );\r\n\r\n async function loadQuestionnaire(id: string) {\r\n const questionnaire = await client.getQuestionnaire(id);\r\n const { audiences, ...others } = questionnaire;\r\n form.setValue({\r\n ...others,\r\n questions: others.questions.map(toQuestionForm),\r\n audiences: audiences.map((a) => a.audienceId),\r\n });\r\n setQueueOutcomes(\r\n questionnaire.queueOutcomes ? questionnaire.queueOutcomes : []\r\n );\r\n setLoading(false);\r\n }\r\n\r\n async function loadAudiences() {\r\n setAudiences(await audienceClient.getAudiences());\r\n }\r\n\r\n async function saveQuestionnaire() {\r\n setSaving(true);\r\n form.setDisabled(true);\r\n try {\r\n if (id) {\r\n console.log(form.toObject());\r\n await client.editQuestionnaire(id, form.toObject());\r\n await loadQuestionnaire(id);\r\n } else {\r\n const newId = await client.createQuestionnaire(form.toObject());\r\n router.replace(questionnaireEditUrl(newId));\r\n }\r\n } catch (e) {\r\n alert(\"Failure to save\");\r\n }\r\n form.setDisabled(false);\r\n setSaving(false);\r\n }\r\n}\r\n\r\nexport function Droppable({\r\n questions,\r\n question,\r\n}: {\r\n questions: ArrayControl;\r\n question?: QuestionForm;\r\n}) {\r\n const [{ isOver, canDrop }, drop] = useDrop<\r\n { state: QuestionForm; otherQuestions: ArrayControl },\r\n any,\r\n any\r\n >(() => ({\r\n accept: \"question\",\r\n canDrop: (item) =>\r\n item.state !== question && !isChildOf(item.state, questions),\r\n drop: (item, o) => {\r\n item.otherQuestions.update((f) => f.filter((q) => q !== item.state));\r\n questions.update((f) => {\r\n const outArray = [...f];\r\n const indIns = question ? outArray.indexOf(question) : -1;\r\n outArray.splice(indIns + 1, 0, item.state);\r\n return outArray;\r\n });\r\n },\r\n collect: (monitor) => ({\r\n isOver: monitor.isOver(),\r\n canDrop: monitor.canDrop(),\r\n }),\r\n }));\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nfunction isChildOf(\r\n q: QuestionForm,\r\n questionList: ArrayControl\r\n): boolean {\r\n if (q.fields.nestedQuestions === questionList) {\r\n return true;\r\n }\r\n return q.fields.nestedQuestions.elems.some((dq) =>\r\n isChildOf(dq, questionList)\r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n form: {\r\n width: \"100%\", // Fix IE11 issue.\r\n marginTop: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst FormWithValidation = (props: any) => {\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n React.Children.forEach(props.children, (element) => {\r\n if (!React.isValidElement(element)) return;\r\n\r\n console.log(element.props);\r\n\r\n //do something with source..\r\n });\r\n }, []);\r\n\r\n const isFormValid = (): boolean => {\r\n return true;\r\n };\r\n\r\n const formChildren = React.Children.map(props.children, (child) => {\r\n return React.cloneElement(child);\r\n });\r\n\r\n return (\r\n {\r\n event.preventDefault();\r\n }}\r\n >\r\n {formChildren}\r\n \r\n );\r\n};\r\n\r\nexport default FormWithValidation;\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport TextField, { TextFieldProps } from \"@material-ui/core/TextField\";\r\n\r\nconst StyledTextField = withStyles((theme) => ({\r\n root: {\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n fontSize: \"1.25rem\",\r\n lineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"1.25rem\",\r\n lineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: \"16px!important\",\r\n },\r\n },\r\n}))(TextField);\r\n\r\nconst ValidationTextField = React.forwardRef(function TextField(\r\n props: TextFieldProps & { children?: React.ReactElement } & any,\r\n ref: React.Ref\r\n) {\r\n return ;\r\n});\r\n\r\nexport default ValidationTextField;\r\n","import React, { useContext, useState } from \"react\";\r\nimport { Button, Box } from \"@material-ui/core\";\r\nimport FormWithValidation from \"./FormWithValidation\";\r\nimport ValidationTextField from \"./ValidationTextField\";\r\n\r\ninterface IManagerForm {\r\n onSucceed?: (teamName: string) => void;\r\n}\r\n\r\nconst TeamForm = ({ onSucceed }: IManagerForm) => {\r\n const [teamName, setTeamName] = useState(\"\");\r\n const [error, setError] = useState();\r\n\r\n return (\r\n \r\n \r\n \r\n ) => {\r\n setTeamName(event.target?.value);\r\n }}\r\n variant=\"outlined\"\r\n />\r\n \r\n ) => {\r\n event.preventDefault();\r\n onSucceed && onSucceed(teamName);\r\n setTeamName(\"\");\r\n }}\r\n >\r\n Create\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamForm;\r\n","import React, { forwardRef, useImperativeHandle } from \"react\";\r\nimport { Theme, withStyles } from \"@material-ui/core/styles\";\r\nimport MuiDrawer from \"@material-ui/core/Drawer\";\r\nimport { AppBar, IconButton, Toolbar } from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n\r\nconst StyledAbsoluteDrawer = withStyles((theme: Theme) => ({\r\n paper: {\r\n position: \"absolute\",\r\n height: \"100%\",\r\n },\r\n modal: {\r\n position: \"absolute\",\r\n },\r\n}))(MuiDrawer);\r\nconst StyledDrawer = withStyles((theme: Theme) => ({\r\n root: {},\r\n paper: {\r\n width: 800,\r\n overflowX: \"hidden\" /* Hide horizontal scrollbar */,\r\n },\r\n}))(MuiDrawer);\r\nexport const DrawerBottom = (props: any) => {\r\n const { classes } = props;\r\n return (\r\n \r\n
{props.children}
\r\n
\r\n );\r\n};\r\n\r\nexport const Drawer = forwardRef((props: any, ref) => {\r\n const [drawerState, setDrawerState] = React.useState(false);\r\n const handleClose = () => {\r\n setDrawerState(false);\r\n };\r\n\r\n useImperativeHandle(ref, () => ({\r\n openDrawer: () => {\r\n setDrawerState(true);\r\n },\r\n closeDrawer: () => {\r\n setDrawerState(false);\r\n },\r\n }));\r\n\r\n return (\r\n
\r\n {\r\n props.onClose && props.onClose();\r\n setDrawerState(false);\r\n }}\r\n >\r\n {props.toolbar && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {props.children}\r\n \r\n
\r\n );\r\n});\r\n","import React from \"react\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { fade, InputBase, InputBaseProps } from \"@material-ui/core\";\r\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.black, 0.03),\r\n \"&:hover\": {\r\n backgroundColor: fade(theme.palette.common.black, 0.05),\r\n },\r\n marginLeft: 0,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n margin: theme.spacing(1),\r\n width: \"auto\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"12ch\",\r\n \"&:focus\": {\r\n width: \"20ch\",\r\n },\r\n },\r\n },\r\n}));\r\n\r\nexport const AppBarSearch = (props: InputBaseProps) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n","import React, {\r\n PropsWithoutRef,\r\n ReactElement,\r\n ReactNode,\r\n RefObject,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardHeader from \"@material-ui/core/CardHeader\";\r\nimport {\r\n Avatar,\r\n Box,\r\n CardContent,\r\n Divider,\r\n List,\r\n ListItem,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport {\r\n createStyles,\r\n makeStyles,\r\n Theme,\r\n withStyles,\r\n} from \"@material-ui/core/styles\";\r\nimport InfoOutlinedIcon from \"@material-ui/icons/InfoOutlined\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport WarningRoundedIcon from \"@material-ui/icons/WarningRounded\";\r\nimport clsx from \"clsx\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport CheckBoxOutlinedIcon from \"@material-ui/icons/CheckBoxOutlined\";\r\n\r\nconst randomColor = () => {\r\n let hex = Math.floor(Math.random() * 0xffffff);\r\n return \"#\" + hex.toString(16);\r\n};\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n icon: {\r\n color: theme.palette.primary.contrastText,\r\n maxWidth: \"unset\",\r\n maxHeight: \"unset\",\r\n fontSize: \"3rem!important\",\r\n margin: \"15px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n pointerEvents: \"none\",\r\n },\r\n },\r\n avatar: {\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: \"inherit\",\r\n width: \"unset\",\r\n height: \"unset\",\r\n fontSize: \"3rem!important\",\r\n margin: \"auto\",\r\n paddingTop: \"20px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n pointerEvents: \"none\",\r\n },\r\n },\r\n randomColor: {\r\n backgroundColor: `${randomColor()}!important`,\r\n },\r\n disabled: {\r\n //color: \"red\",\r\n \"& p\": {\r\n color: \"gray!important\",\r\n },\r\n },\r\n alert: {\r\n \"&.info\": {\r\n boxShadow: `${theme.DoH.color.info} 0px 1px 3px 0px, ${theme.DoH.color.info} 0px 0px 0px 1px`,\r\n },\r\n \"&.error\": {\r\n boxShadow: `${theme.DoH.color.error} 0px 1px 3px 0px, ${theme.DoH.color.error} 0px 0px 0px 1px`,\r\n },\r\n \"&.warning\": {\r\n boxShadow: `${theme.DoH.color.warning} 0px 1px 3px 0px, ${theme.DoH.color.warning} 0px 0px 0px 1px`,\r\n },\r\n cursor: \"default\",\r\n \"&:hover\": {\r\n boxShadow: \"#2196f3 0px 1px 3px 0px, #2196f3 0px 0px 0px 1px\",\r\n },\r\n \"&.noHover\": {\r\n //pointerEvents: 'none'\r\n },\r\n },\r\n alertBox: {\r\n \"&.info\": {\r\n backgroundColor: theme.DoH.color.info + \"!important\",\r\n },\r\n \"&.error\": {\r\n backgroundColor: theme.DoH.color.error + \"!important\",\r\n },\r\n \"&.warning\": {\r\n backgroundColor: theme.DoH.color.warning + \"!important\",\r\n },\r\n },\r\n fullWidth: {\r\n margin: \"0px!important\",\r\n },\r\n })\r\n);\r\n\r\nconst StyledCard = withStyles((theme) => ({\r\n root: {\r\n maxWidth: \"100%\",\r\n //marginBottom: '15px',\r\n cursor: \"pointer\",\r\n WebkitTransition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n transition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n \"&:hover\": {\r\n //boxShadow: '0px 3px 3px -2px rgb(0 0 0 / 20%), 0px 12px 16px 0px rgb(0 0 0 / 14%), 0px 4px 32px 0px rgb(0 0 0 / 12%)',\r\n WebkitTransition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n transition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n },\r\n \"&.noHover\": {\r\n //pointerEvents: 'none'\r\n },\r\n \"&.pressed\": {\r\n boxShadow:\r\n \"0px 0px 0px 0px rgb(0 0 0 / 20%), 0px 0px 0px 0px rgb(0 0 0 / 14%), 0px 0px 2px 0px rgb(0 0 0 / 12%)\",\r\n top: 10,\r\n transition: \"unset\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n borderRadius: \"unset!important\",\r\n maxWidth: \"95%\",\r\n margin: \"auto\",\r\n marginBottom: \"15px\",\r\n },\r\n },\r\n}))(Card);\r\nconst StyledStatisticCard = withStyles((theme) => ({\r\n root: {\r\n //marginBottom: '15px',\r\n minWidth: \"200px\",\r\n cursor: \"pointer\",\r\n WebkitTransition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n transition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n \"&:hover\": {\r\n boxShadow:\r\n \"0px 3px 3px -2px rgb(0 0 0 / 20%), 0px 12px 16px 0px rgb(0 0 0 / 14%), 0px 4px 32px 0px rgb(0 0 0 / 12%)\",\r\n WebkitTransition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n transition: \"all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)\",\r\n },\r\n \"&.noHover\": {\r\n pointerEvents: \"none\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n borderRadius: \"unset!important\",\r\n maxWidth: \"95%\",\r\n margin: \"auto\",\r\n marginBottom: \"15px\",\r\n },\r\n },\r\n}))(Card);\r\nconst SelectableCardHeader = withStyles((theme) => ({\r\n root: {\r\n padding: \"0px!important\",\r\n },\r\n}))(CardHeader);\r\nconst SelectableStatisticCardHeader = withStyles((theme) => ({\r\n root: {\r\n display: \"block\",\r\n padding: \"20px!important\",\r\n textAlign: \"center\",\r\n },\r\n avatar: {\r\n marginRight: \"0px\",\r\n },\r\n}))(CardHeader);\r\nconst StyledBox = withStyles((theme) => ({\r\n root: {\r\n width: \"80px\",\r\n height: \"80px\",\r\n backgroundColor: theme.palette.primary.main,\r\n \"&.pressed\": {\r\n backgroundColor: theme.DoH.color.pass,\r\n top: 10,\r\n transition: \"unset\",\r\n },\r\n },\r\n}))(Box);\r\nconst StyledStatisticBox = withStyles((theme) => ({\r\n root: {\r\n marginRight: \"0px\",\r\n //'& p':{color:'grey!important'},\r\n },\r\n}))(Box);\r\nconst StyledListCard = withStyles((theme) => ({\r\n root: {\r\n maxWidth: \"100%\",\r\n //marginBottom: '15px',\r\n cursor: \"pointer\",\r\n border: \"none\",\r\n //padding:'1rem',\r\n borderRadius: 0,\r\n boxShadow: \" 0 0 0px 0 rgba(0,0,0,0.3)\",\r\n backgroundColor: \"#35353\",\r\n \"&.pressed\": {\r\n //boxShadow: '0px 0px 0px 0px rgb(0 0 0 / 20%), 0px 0px 0px 0px rgb(0 0 0 / 14%), 0px 0px 2px 0px rgb(0 0 0 / 12%)',\r\n //top: 10,\r\n transition: \"unset\",\r\n },\r\n },\r\n}))(Card);\r\nconst StyledListCardContent = withStyles((theme) => ({\r\n root: {\r\n padding: \"0px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n minWidth: \"100%\",\r\n margin: \"unset\",\r\n },\r\n\r\n \"&:last-child\": {\r\n padding: \"unset\",\r\n },\r\n \"& .MuiList-root\": {\r\n padding: \"0px!important\",\r\n },\r\n },\r\n}))(CardContent);\r\n\r\nexport interface ISelectableCardProps {\r\n variant?: \"alert\" | \"selectable\";\r\n severity?: \"info\" | \"error\" | \"warning\";\r\n style?: React.CSSProperties;\r\n icon?: JSX.Element;\r\n avatar?: string;\r\n avatarColor?: string;\r\n onSelected?: (selectedId: string, selected?: boolean) => void;\r\n onClick?: () => void;\r\n title?: ReactNode;\r\n subheader?: ReactNode;\r\n action?: ReactNode;\r\n id: string;\r\n checked?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const SelectableCard = (props: ISelectableCardProps) => {\r\n const classes = useStyles();\r\n\r\n const { checked } = props;\r\n\r\n // useEffect(() => {\r\n // setPressed(false);\r\n // }, [props.title]);\r\n\r\n const StyledIcon = (): JSX.Element | null => {\r\n if (props.icon)\r\n return React.cloneElement(props.icon as JSX.Element, {\r\n className: classes.icon,\r\n });\r\n return null;\r\n };\r\n const StyledAvatar = (): JSX.Element => (\r\n \r\n {props.avatar}\r\n \r\n );\r\n const getSeverityIcon = (): ReactElement | undefined => {\r\n switch (props.severity) {\r\n case \"info\":\r\n return (\r\n \r\n );\r\n case \"error\":\r\n return (\r\n \r\n );\r\n case \"warning\":\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n {\r\n if (props.onSelected) {\r\n props.onSelected(props.id);\r\n }\r\n }}\r\n >\r\n \r\n \r\n {props.severity ? (\r\n getSeverityIcon()\r\n ) : checked ? (\r\n \r\n ) : props.icon ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {/**/}\r\n \r\n }\r\n title={props.title}\r\n subheader={props.subheader}\r\n action={props.action}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const SelectableStatisticCard = (props: ISelectableCardProps & any) => {\r\n const classes = useStyles();\r\n\r\n const cardClassName = `${\r\n props.disabled === true\r\n ? \"noHover\"\r\n : props.variant === \"alert\"\r\n ? clsx(classes.alert, props.severity, \"noHover\")\r\n : props.onSelected\r\n ? \"\"\r\n : \"noHover\"\r\n }`;\r\n\r\n return (\r\n {\r\n if (props.onSelected && !props.disabled) {\r\n props.onSelected();\r\n }\r\n }}\r\n >\r\n \r\n \r\n {props.value}\r\n \r\n }\r\n title={props.title}\r\n subheader={props.subheader}\r\n action={props.action}\r\n />\r\n \r\n
\r\n );\r\n};\r\nexport const SelectableCardSkeleton = (props: any) => {\r\n const skeletons = [];\r\n\r\n for (let i = 0; i < props.count; i++) {\r\n skeletons.push(\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 return
{skeletons}
;\r\n};\r\nexport const CardList = (props: any) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n};\r\nexport const SelectableCardListItem = (props: ISelectableCardProps) => {\r\n const classes = useStyles();\r\n\r\n const { checked = false } = props;\r\n\r\n const [pressed, setPressed] = useState(checked);\r\n const [previousPressedState, setPreviousPressedState] = useState(false);\r\n\r\n useEffect(() => {\r\n setPressed(false);\r\n }, [props.title]);\r\n\r\n // useEffect(() => {\r\n // if((pressed && !previousPressedState) && props.onSelected) {\r\n // props.onSelected(props.id, true)\r\n // }\r\n // else if((!pressed && previousPressedState) && props.onSelected){\r\n // props.onSelected(props.id, false)\r\n // }\r\n\r\n // }, [pressed])\r\n\r\n const StyledIcon = (): JSX.Element | null => {\r\n if (props.icon)\r\n return React.cloneElement(props.icon as JSX.Element, {\r\n className: classes.icon,\r\n });\r\n return null;\r\n };\r\n const StyledAvatar = (): JSX.Element => (\r\n \r\n {props.avatar}\r\n \r\n );\r\n const getSeverityIcon = (): ReactElement | undefined => {\r\n switch (props.severity) {\r\n case \"info\":\r\n return (\r\n \r\n );\r\n case \"error\":\r\n return (\r\n \r\n );\r\n case \"warning\":\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n {\r\n if (props.onSelected) {\r\n props.onSelected(props.id, false);\r\n }\r\n if (props.variant === \"selectable\") {\r\n setPreviousPressedState(pressed);\r\n setPressed(!pressed);\r\n } else {\r\n setPreviousPressedState(!pressed);\r\n setPressed(false);\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n {props.severity ? (\r\n getSeverityIcon()\r\n ) : props.checked ? (\r\n \r\n ) : props.icon ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {/**/}\r\n \r\n }\r\n title={props.title}\r\n subheader={props.subheader}\r\n action={props.action}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { ChangeEvent, useState } from \"react\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { Divider, fade, InputBase } from \"@material-ui/core\";\r\nimport MuiListItem from \"@material-ui/core/List\";\r\nimport {\r\n createStyles,\r\n makeStyles,\r\n Theme,\r\n withStyles,\r\n} from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.black, 0.03),\r\n \"&:hover\": {\r\n backgroundColor: fade(theme.palette.common.black, 0.05),\r\n },\r\n marginLeft: 0,\r\n width: \"100%\",\r\n height: \"60px\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n //margin: theme.spacing(1),\r\n // width: 'auto',\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n color: theme.palette.primary.main,\r\n fontSize: \"3rem\",\r\n paddingLeft: `10px`,\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n padding: \"15px 0 0 15px\",\r\n width: \"100%\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n //width: '12ch',\r\n \"&:focus\": {\r\n //width: '20ch',\r\n },\r\n },\r\n },\r\n })\r\n);\r\n\r\nconst StyledListItem = withStyles((theme: Theme) => ({\r\n root: {\r\n padding: \"5px\",\r\n },\r\n}))(MuiListItem);\r\n\r\nexport const ChoiceFilter = (props: any) => {\r\n const classes = useStyles();\r\n const [searchFilters, setSearchFilters] = useState();\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n ) => {\r\n //setLoading(true)\r\n props.onChange(e);\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n","import React, { ChangeEvent, useContext, useEffect, useState } from \"react\";\r\nimport {\r\n CardList,\r\n SelectableCard,\r\n SelectableCardListItem,\r\n SelectableCardSkeleton,\r\n} from \"./Card\";\r\nimport { ChoiceFilter } from \"./DrawerSearch\";\r\nimport { Paper, Slide } from \"@material-ui/core\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nexport interface Audience {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport interface BasicUser {\r\n id: string;\r\n firstName: string;\r\n lastName: string;\r\n contactNumber: string;\r\n currentAudience: Audience;\r\n}\r\n\r\nexport const ItemSearch = (props: any) => {\r\n const [loading, setLoading] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState();\r\n const [timeoutId, setTimeoutId] = useState(null);\r\n const [searchResults, setSearchResults] = useState([]);\r\n // const [checked, setChecked] = useState([])\r\n\r\n const [selectedUsers, setSelectedUsers] = useState([]);\r\n\r\n let randomColor = () => {\r\n let hex = Math.floor(Math.random() * 0xffffff);\r\n return \"#\" + hex.toString(16);\r\n };\r\n\r\n useEffect(() => {\r\n if (!searchQuery?.length) {\r\n setLoading(false);\r\n setSearchResults([]);\r\n return;\r\n }\r\n\r\n if (timeoutId !== null) {\r\n clearTimeout(timeoutId);\r\n }\r\n\r\n const id = setTimeout(() => {\r\n props.onItemSearch(searchQuery).then((d: any) => {\r\n setSearchResults(d);\r\n setLoading(false);\r\n });\r\n setTimeoutId(null);\r\n }, 250);\r\n\r\n setTimeoutId(id);\r\n }, [searchQuery]);\r\n\r\n useEffect(() => {\r\n if (loading) {\r\n }\r\n }, [searchResults]);\r\n\r\n const selectableCardOnClickHandler = (id: string): void => {\r\n // user has already been selected\r\n if (selectedUsers.map((x) => x.id).includes(id)) {\r\n setSelectedUsers([...selectedUsers.filter((u) => u.id !== id)]);\r\n } else {\r\n setSelectedUsers([\r\n ...selectedUsers,\r\n ...searchResults.filter((r) => r.id === id),\r\n ]);\r\n }\r\n };\r\n\r\n // remove duplicated items\r\n const filteredArr = searchResults.filter(\r\n (s) => !selectedUsers.map((u) => u.id).includes(s.id)\r\n );\r\n\r\n const membersCompareTo = (a: any, b: any) => {\r\n const nameA = a.firstName + a.lastName;\r\n const nameB = b.firstName + b.lastName;\r\n if (nameA === nameB) {\r\n return 0;\r\n } else if (nameA > nameB) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n };\r\n\r\n const combinedArr = [\r\n ...selectedUsers.sort(membersCompareTo),\r\n ...filteredArr.sort(membersCompareTo),\r\n ];\r\n\r\n const seletableCards = (arr: any) => {\r\n return arr.map((member: BasicUser) => (\r\n s.id).includes(member.id)}\r\n />\r\n ));\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n ) => {\r\n setLoading(true);\r\n setSearchQuery(e.target.value);\r\n }}\r\n />\r\n {loading && (\r\n
\r\n \r\n
\r\n )}\r\n {!loading && (\r\n <>\r\n {searchResults.length === 0 && searchQuery?.length ? (\r\n <>\r\n {seletableCards(selectedUsers)}\r\n \r\n \r\n ) : (\r\n seletableCards(combinedArr)\r\n )}\r\n \r\n )}\r\n
\r\n 0}\r\n mountOnEnter\r\n unmountOnExit\r\n >\r\n \r\n {\r\n props.onAddMembers(selectedUsers);\r\n setSelectedUsers([]);\r\n }}\r\n >\r\n Add Member(s)\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport SvgIcon, {\r\n\tSvgIconProps,\r\n\tSvgIconTypeMap,\r\n} from \"@material-ui/core/SvgIcon\";\r\nimport { OverridableComponent } from \"@material-ui/core/OverridableComponent\";\r\n\r\nexport const FeverIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const LungsIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const C19ContactIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const RunnyNoseIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const LossOfSmellIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const TravelIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const HandStopIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const TravelContactIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const HomeIsolationIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const ShortnessOfBreathIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const TasGovIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const MapMarkerAltSolid: OverridableComponent = (\r\n\tprops: SvgIconProps\r\n) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const StreetViewSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const PenFancySolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const MapPinSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const UserSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const QuestionSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const UserTieSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const UserInjuredSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MaskSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const CalendarPlus = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const UserShieldSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const UserMinusSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const UserPlusSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport const UserLockSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const FileCSVSolid = (props: SvgIconProps) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\nexport const CircleQuestionSolid = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const UserNurseIcon = (props: SvgIconProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const TeamTieSolid = (props: SvgIconProps) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport const TeamCreateSolid = (props: SvgIconProps) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport const UserTeamPermissionSolid = (props: SvgIconProps) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport const RolesSoild = (props: SvgIconProps) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n","import React, { useRef } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { Box, IconButton, Tooltip } from \"@material-ui/core\";\r\nimport { AppBarSearch } from \"./Search\";\r\nimport { ItemSearch } from \"./ItemSearch\";\r\nimport { Divider, Paper } from \"@material-ui/core\";\r\n\r\nimport { Drawer } from \"./Drawer\";\r\n// import { PersonSearch } from \"../Search/PersonSearch\";\r\nimport { UserMinusSolid, UserPlusSolid } from \"../Icons/Icons\";\r\n\r\nconst StyledIconButton = withStyles((theme) => ({\r\n\troot: {\r\n\t\tfontSize: \"3rem\",\r\n\t\tpadding: \"5px!important\",\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n}))(IconButton);\r\n\r\n// @ts-ignore\r\nexport const AppBarIconButton = ({ children, title, ...props }) => (\r\n\t\r\n\t\t{children}\r\n\t\r\n);\r\n\r\nexport const AppBar = withStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: \"flex\",\r\n\t\tpadding: \"10px\",\r\n\t\tmarginBottom: \"10px\",\r\n\t\tminHeight: \"60px\",\r\n\t},\r\n}))(Paper);\r\nexport const AppBarDivider = withStyles((theme) => ({\r\n\troot: {\r\n\t\tmargin: theme.spacing(0, 2),\r\n\t},\r\n}))(Divider);\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tdisplay: \"flex\",\r\n\t\tjustifyContent: \"space-between\",\r\n\t\talignItems: \"center\",\r\n\t},\r\n\tleft: {\r\n\t\tdisplay: \"flex\",\r\n\t\tflex: \"1 1 auto\",\r\n\t},\r\n\tright: {},\r\n}));\r\n\r\ninterface IMemberToolbar {\r\n\tonSearch?: React.ChangeEventHandler;\r\n\tonRefresh?: any;\r\n\tonAdd: any;\r\n\tonRemove: any;\r\n\tdisabled?: boolean;\r\n\tchildren?: JSX.Element;\r\n\trenderExtraActions?: JSX.Element;\r\n\tonItemSearch: (query: string) => Promise;\r\n}\r\n\r\nconst ManagerToolbar = ({\r\n\tonSearch,\r\n\tonRefresh,\r\n\tonAdd,\r\n\tonRemove,\r\n\tdisabled,\r\n\tchildren,\r\n\trenderExtraActions,\r\n\tonItemSearch,\r\n}: IMemberToolbar) => {\r\n\tconst classes = useStyles();\r\n\tconst sideDrawer = useRef(null);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tonAdd(members);\r\n\t\t\t\t\t\tsideDrawer.current.closeDrawer();\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonItemSearch={onItemSearch}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\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{/* \r\n \r\n */}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t sideDrawer.current.openDrawer()} />\r\n\t\t\t\t\t\r\n\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{renderExtraActions && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{renderExtraActions}\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\t{children &&
{children}
}\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ManagerToolbar;\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { SelectableCard } from \"./Card\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport { Tooltip } from \"@material-ui/core\";\r\nimport { UserTeamPermissionSolid } from \"../Icons/Icons\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\t\"& > *:not(:last-child)\": {\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tauditAlert: {\r\n\t\tmargin: \"10px!important\",\r\n\t\tcolor: theme.DoH.color.conditional,\r\n\t\tmaxWidth: \"unset\",\r\n\t\tmaxHeight: \"unset\",\r\n\t\tfontSize: \"1.5rem!important\",\r\n\t},\r\n}));\r\n\r\ninterface MemberProps {\r\n\tid: string;\r\n\tname: string;\r\n\tselected: boolean;\r\n\tcanManageTeamMembers?: boolean;\r\n\tcanViewTeam?: boolean;\r\n}\r\n\r\ntype MemberListProps = {\r\n\tmembers?: MemberProps[];\r\n\ticon?: any;\r\n\ttitle?: string;\r\n\tonSelected?: (id: string, selected?: boolean) => void;\r\n\tsubheader?: React.ReactNode;\r\n\tselectedMembers?: string[];\r\n};\r\n\r\nconst randomColor = () => {\r\n\tconst hex = Math.floor(Math.random() * 0xffffff);\r\n\treturn \"#\" + hex.toString(16);\r\n};\r\n\r\nconst membersCompareTo = (a: any, b: any) => {\r\n\tif (a.name === b.name) {\r\n\t\treturn 0;\r\n\t} else if (a.name > b.name) {\r\n\t\treturn 1;\r\n\t} else {\r\n\t\treturn -1;\r\n\t}\r\n};\r\n\r\nconst getMemberInitial = (memberName: string) => {\r\n\tif (memberName.length === 0) return \"\";\r\n\tconst name = memberName.split(\" \");\r\n\t// assume only return first and last name?\r\n\t// or perpahs return firstName and lastName instead of name\r\n\tif (name.length > 2) {\r\n\t\treturn name[0][0] + name[name.length - 1][0];\r\n\t}\r\n\treturn name.map((n) => n[0]).join(\"\");\r\n};\r\n\r\nconst MemberList = ({\r\n\tmembers,\r\n\ticon,\r\n\ttitle,\r\n\tonSelected,\r\n\tsubheader,\r\n\tselectedMembers,\r\n}: MemberListProps) => {\r\n\tconst classes = useStyles();\r\n \r\n\t// hacky way to refresh the card\r\n\r\n\tif (!members || members.length === 0) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{members.sort(membersCompareTo).map((member) => (\r\n\t\t\t\t\r\n\t\t\t\t\t\t\t{member.canManageTeamMembers && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\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\t\t\t\t)}\r\n\t\t\t\t\t\t\t{member.canViewTeam && !member.canManageTeamMembers && (\r\n\t\t\t\t\t\t\t\t\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\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\tkey={member.id}\r\n\t\t\t\t\tid={member.id}\r\n\t\t\t\t\ttitle={member.name ? member.name : (member as any).firstName + \" \" + (member as any).lastName}\r\n\t\t\t\t\tavatar={member.name ? getMemberInitial(member.name) : (member as any).firstName.charAt(0) + (member as any).lastName.charAt(0)}\r\n\t\t\t\t\tavatarColor={randomColor()}\r\n\t\t\t\t\tonSelected={onSelected}\r\n\t\t\t\t\tvariant=\"selectable\"\r\n\t\t\t\t\tchecked={selectedMembers?.includes(member.id)}\r\n\t\t\t\t\tsubheader={subheader}\r\n\t\t\t\t/>\r\n\t\t\t))}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default MemberList;\r\n","import React, { useRef, ReactElement } from \"react\";\r\nimport { Container, Grid, Box } from \"@material-ui/core\";\r\nimport ManagerForm from \"./SubComponents/ManagerForm\";\r\nimport { Drawer } from \"./SubComponents/Drawer\";\r\nimport ManagerToolbar from \"./SubComponents/ManagerToolBar\";\r\nimport CbxTree from \"./SubComponents/CheckboxTree\";\r\nimport ResultList from \"./SubComponents/ResultList\";\r\nimport { TeamTieSolid } from \"./Icons/Icons\";\r\n\r\ninterface IManager {\r\n\tname: string;\r\n\tappbarExtraComponents?: ReactElement;\r\n\tappbarRightComponents?: ReactElement;\r\n\tdisableToolBar?: boolean;\r\n\tonSearchBarSearch?: (text: string) => void;\r\n\ttreeData: any[];\r\n\tcurrentItems: any[];\r\n\tselectedItems: any[];\r\n\tonResultSelect?: (result: any) => void;\r\n\tonCheckBoxChecked?: (checked: any[]) => void;\r\n\tcheckBoxTreeMultiSelect?: boolean;\r\n\tonAdd: (items: any[]) => void;\r\n\tonRemove: () => void;\r\n\tonItemSearch: (query: string) => Promise;\r\n\tnoResultsMessage?: string;\r\n}\r\n\r\nexport const Manager = ({\r\n\tname,\r\n\tappbarExtraComponents,\r\n\tappbarRightComponents,\r\n\tdisableToolBar = false,\r\n\tonSearchBarSearch,\r\n\ttreeData,\r\n\tcurrentItems,\r\n\tselectedItems,\r\n\tonResultSelect,\r\n\tonCheckBoxChecked,\r\n\tcheckBoxTreeMultiSelect = false,\r\n\tonAdd,\r\n\tonRemove,\r\n\tonItemSearch,\r\n\tnoResultsMessage,\r\n}: IManager) => {\r\n\tconst formDrawer = useRef(null);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\tonSearchBarSearch && onSearchBarSearch(e.target.value)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tonItemSearch={onItemSearch}\r\n\t\t\t\t\tonAdd={onAdd}\r\n\t\t\t\t\tonRemove={onRemove}\r\n\t\t\t\t\tonRefresh={() => {}}\r\n\t\t\t\t\tdisabled={disableToolBar}\r\n\t\t\t\t\trenderExtraActions={appbarExtraComponents}\r\n\t\t\t\t>\r\n\t\t\t\t\t{appbarRightComponents}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tonCheckBoxChecked && onCheckBoxChecked(checked);\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\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\ttitle={name}\r\n\t\t\t\t\t\tonSelected={onResultSelect}\r\n\t\t\t\t\t\tselectedMembers={selectedItems}\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);\r\n};\r\n","import { useSnackbar } from \"notistack\";\r\nimport React, { useState, useContext, useEffect } from \"react\";\r\nimport { Manager } from \"../../../../components/core/Manager/Manager\";\r\nimport {\r\n\taddRoleMember,\r\n\tgetRoleMembers,\r\n\tgetRoles,\r\n\tremoveRoleMember,\r\n\tsearchStaffMembers,\r\n} from \"../../../../data/api\";\r\nimport { Context } from \"../../../../state/Store\";\r\n\r\nconst RoleManager = () => {\r\n\tconst { state } = useContext(Context);\r\n\r\n\tconst [roles, setRoles] = useState([]);\r\n\tconst [currentRole, setCurrentRole] = useState();\r\n\tconst [currentItems, setCurrentItems] = useState([]);\r\n\tconst [selectedItems, setSelectedItems] = useState([]);\r\n\r\n\tconst [searchQuery, setSearchQuery] = useState(\"\");\r\n\r\n\tconst { enqueueSnackbar } = useSnackbar();\r\n\r\n\tuseEffect(() => {\r\n\t\tgetRoles(state!.user!.token).then((x) => setRoles(x));\r\n\t}, []);\r\n\r\n\tconst roleDataMapper = (roles: any[]) => {\r\n\t\treturn roles.map((x: any) => {\r\n\t\t\treturn {\r\n\t\t\t\tvalue: x.id,\r\n\t\t\t\tlabel: x.name,\r\n\t\t\t};\r\n\t\t});\r\n\t};\r\n\r\n\tconst onRemoveHandler = () => {\r\n\t\tconst promises: Promise[] = [];\r\n\t\tselectedItems.forEach((x: any) =>\r\n\t\t\tpromises.push(\r\n\t\t\t\tremoveRoleMember(currentRole, x, state!.user!.token)\r\n\t\t\t\t\t.then(() => enqueueSnackbar(\"Member removed\", { variant: \"success\" }))\r\n\t\t\t\t\t.catch(() =>\r\n\t\t\t\t\t\tenqueueSnackbar(\"Failed to remove member\", { variant: \"error\" })\r\n\t\t\t\t\t)\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tPromise.all(promises).then(() => {\r\n\t\t\tgetRoleMembers(currentRole, state!.user!.token).then((x) => {\r\n\t\t\t\tsetCurrentItems(x);\r\n\t\t\t\tsetSelectedItems([]);\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tconst onResultSelectHandler = (result: any) => {\r\n\t\tif (selectedItems.includes(result)) {\r\n\t\t\tsetSelectedItems([...selectedItems].filter((x: any) => x !== result));\r\n\t\t} else {\r\n\t\t\tsetSelectedItems([...selectedItems, result]);\r\n\t\t}\r\n\t};\r\n\r\n\tconst onCheckBoxCheckedHandler = (id: any[]) => {\r\n\t\tif (id[0]) {\r\n\t\t\tsetCurrentRole(id[0]);\r\n\t\t\tsetSelectedItems([]);\r\n\t\t\tgetRoleMembers(id[0], state!.user!.token).then((x) => setCurrentItems(x));\r\n\t\t\t// uncheck\r\n\t\t} else {\r\n\t\t\tsetCurrentRole(undefined);\r\n\t\t\tsetCurrentItems([]);\r\n\t\t\tsetSelectedItems([]);\r\n\t\t}\r\n\t};\r\n\r\n\tconst onAddMemberHandler = (members: any[]) => {\r\n\t\tconst promises: Promise[] = [];\r\n\t\tmembers.forEach((x: any) =>\r\n\t\t\tpromises.push(\r\n\t\t\t\taddRoleMember(currentRole, x.id, state!.user!.token)\r\n\t\t\t\t\t.then(() => enqueueSnackbar(\"Member added\", { variant: \"success\" }))\r\n\t\t\t\t\t.catch(() =>\r\n\t\t\t\t\t\tenqueueSnackbar(\"Failed to add member\", { variant: \"error\" })\r\n\t\t\t\t\t)\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tPromise.all(promises).then(() => {\r\n\t\t\tgetRoleMembers(currentRole, state!.user!.token).then((x) => {\r\n\t\t\t\tsetCurrentItems(x);\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tconst matchQuery = (currentArr: any[]) => {\r\n\t\tconst matcher = (name: string, query: string) => {\r\n\t\t\tif (!query || query === \"\") return true;\r\n\r\n\t\t\t// remove space in name\r\n\t\t\tconst newName = name.replace(/\\s/g, \"\").toLowerCase();\r\n\t\t\tconst newQuery = query.replace(/\\s/g, \"\").toLowerCase();\r\n\t\t\treturn newName.includes(newQuery);\r\n\t\t};\r\n\r\n\t\treturn currentArr.filter((x: any) => matcher(x.name, searchQuery));\r\n\t};\r\n\r\n\tconst onItemSearchHandler = (query: string) => {\r\n\t\treturn searchStaffMembers(query, state!.user!.token);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default RoleManager;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\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\ninterface IInputDialog {\r\n open: boolean;\r\n title?: string;\r\n description?: string;\r\n confirmButtonName?: string;\r\n cancelButtonName?: string;\r\n inputPlaceholder?: string;\r\n value: string;\r\n onSubmit: (text: string) => void;\r\n onClose: () => void;\r\n}\r\n\r\nconst InputDialog = ({\r\n open,\r\n title = \"Info\",\r\n description,\r\n confirmButtonName = \"Save\",\r\n cancelButtonName = \"Cancel\",\r\n inputPlaceholder = \"\",\r\n value = \"\",\r\n onSubmit,\r\n onClose,\r\n}: IInputDialog) => {\r\n const [text, setText] = useState(value);\r\n\r\n const handleClose = () => {\r\n onClose();\r\n };\r\n\r\n useEffect(() => {\r\n setText(value);\r\n }, [value]);\r\n\r\n const handleSubmit = () => {\r\n onSubmit(text);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n {description && {description}}\r\n setText(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport const inputValidor = (text: string) => {\r\n return text && text.replace(/\\s/g, \"\") !== \"\";\r\n};\r\n\r\nexport default InputDialog;\r\n","import React, { useContext, useEffect, useRef, useState } from \"react\";\r\nimport { Drawer } from \"../../../../components/core/Manager/SubComponents/Drawer\";\r\nimport ManagerForm from \"../../../../components/core/Manager/SubComponents/ManagerForm\";\r\nimport { Manager } from \"../../../../components/core/Manager/Manager\";\r\nimport InputDialog from \"../../../../components/core/dialogs/InputDialog\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n QueueChoiceVm,\r\n QueueClient,\r\n PersonsClient,\r\n PersonSearchQueryViewModel,\r\n UserOutcomeViewModel,\r\n} from \"../../../../common/client\";\r\nimport { User } from \"../../../../state/State.model\";\r\nimport { CommonBTN } from \"../../../../components/core/Buttons/CommonBTN\";\r\nimport { Style } from \"@material-ui/icons\";\r\nimport { AppBarIconButton, AppBarTextButton } from \"../../../../components/muiCore/Button\";\r\nimport { AppBarDivider } from \"../../../../components/core/Manager/SubComponents/ManagerToolBar\";\r\nimport { fontSize, textAlign } from \"@material-ui/system\";\r\nimport { ToggleButtonGroup } from \"@material-ui/lab\";\r\nimport { searchStaffMembers } from \"../../../../data/api\";\r\nimport { Context } from \"../../../../state/Store\";\r\n\r\n//was working on showing the selected outcome in the bottom right\r\n\r\nexport const OutcomeAccess = () => {\r\n const { enqueueSnackbar } = useSnackbar();\r\n // text in search bar\r\n const [searchBarText, setSearchBarText] = useState(\"\");\r\n // current items being displayed on the bottom right section => objects\r\n const [currentItems, setCurrentMembers] = useState([]);\r\n // selected items on the bottom right section, a subset of currentItems\r\n const [selectedItems, setSelectedItems] = useState([]);\r\n // selected nodes from the check box tree component => id\r\n const [selectedNode, setSelectedNode] = useState();\r\n // selected grouping WT or Lil\r\n const [grouping, setGrouping] = useState(\"\");\r\n // name of the currently displayed manager\r\n const [managerName, setManagerName] = useState(\"\");\r\n // teams => array of objects\r\n const [teams, setTeams] = useState([]);\r\n const [outcomeId, setOutcomeId] = useState(\"\");\r\n\r\n const [editTeamNameOpen, setEditTeamNameOpen] = useState(false);\r\n const [outcomes, setOutcomes] =\r\n useState<{ [key: string]: QueueChoiceVm[] }>();\r\n\r\n // team manager form\r\n const formDrawer = useRef(null);\r\n\r\n const queueClient = useApiClient(QueueClient);\r\n const personsClient = useApiClient(PersonsClient);\r\n\r\n let inputDialogData = {\r\n value: selectedNode\r\n ? teams.filter((x: any) => x.id === selectedNode)[0].name\r\n : \"\",\r\n title: \"Edit\",\r\n inputPlaceholder: \"Team Name\",\r\n open: editTeamNameOpen,\r\n onClose: () => {},\r\n onSubmit: () => {},\r\n };\r\n\r\n const [alignment, setAlignment] = React.useState('');\r\n const handleAlignment = (\r\n event: React.MouseEvent,\r\n newAlignment: string | null,\r\n ) => {\r\n if (newAlignment !== null) {\r\n setAlignment(newAlignment);\r\n }\r\n };\r\n\r\n function changeGrouping(newGrouping: string) {\r\n setGrouping(newGrouping);\r\n if (newGrouping === 'WT') { setManagerName(newGrouping); }\r\n else { setManagerName(\"Schools/Clinics - \" + newGrouping); }\r\n }\r\n\r\n let AppBarComponents =\r\n <>\r\n
\r\n
North
\r\n \r\n changeGrouping(\"WT\")}>WT\r\n changeGrouping(\"LiL North\")}>LiL\r\n changeGrouping(\"CFLC North\")}>CFLC\r\n \r\n
\r\n \r\n
\r\n
South
\r\n \r\n changeGrouping(\"WT\")}>WT\r\n changeGrouping(\"LiL South\")}>LiL\r\n changeGrouping(\"CFLC South\")}>CFLC\r\n \r\n
\r\n ;\r\n\r\n let appBarRightComponents;\r\n let disableToolBar =\r\n !selectedNode;\r\n\r\n useEffect(() => {\r\n loadData();\r\n treeDataMapper();\r\n }, []);\r\n\r\n async function loadData() {\r\n queueClient.getQueueOutcomes().then((outcomes) => setOutcomes(outcomes));\r\n }\r\n\r\n function onAddTeamFormSubmit() {}\r\n\r\n function treeDataMapper() {\r\n let data: any[][] = [];\r\n if (outcomes !== undefined) {\r\n data = Object.values(outcomes);\r\n data[0].sort((a, b) => a.name.localeCompare(b.name));\r\n data[0] = data[0].filter(item => item.grouping === grouping);\r\n\r\n return data[0].map((x: any) => {\r\n return {\r\n value: x.id,\r\n label: x.name,\r\n };\r\n });\r\n }\r\n return [];\r\n }\r\n\r\n //function matchQuery(currentItems: any[]) {\r\n // if (currentItems.length !== 0) {\r\n // let node = treeDataMapper()\r\n // .filter((x: any) => x.value == currentItems[0].id)\r\n // .map((node) => {\r\n // console.log(node);\r\n // return node;\r\n // });\r\n // return node;\r\n // }\r\n // return [];\r\n // }\r\n\r\n const matchQuery = (currentArr: any[]) => {\r\n const matcher = (name: string, query: string) => {\r\n if (!query || query === \"\") return true;\r\n\r\n // remove space in name\r\n const newName = name.replace(/\\s/g, \"\").toLowerCase();\r\n const newQuery = query.replace(/\\s/g, \"\").toLowerCase();\r\n return newName.includes(newQuery);\r\n };\r\n\r\n return currentArr.filter((x: any) => matcher(x.firstName + x.lastName, searchBarText));\r\n };\r\n\r\n function onResultSelect(selectedId: string) {\r\n selectedItems.find((x: any) => x == selectedId)\r\n ? setSelectedItems(selectedItems.filter((x) => x !== selectedId))\r\n : setSelectedItems([...selectedItems, selectedId]);\r\n }\r\n\r\n function onCheckBoxChecked(node: any) {\r\n setSelectedItems([]);\r\n if (node[0]) {\r\n setOutcomeId(node[0]);\r\n queueClient.getUserOutcomesOutcome(node[0]).then((response) => {\r\n setCurrentMembers(response);\r\n });\r\n } else {\r\n setOutcomeId(\"\");\r\n setCurrentMembers([]);\r\n }\r\n }\r\n\r\n async function onAdd(persons: any) {\r\n const userOutcomes: UserOutcomeViewModel[] = persons.map((x: any) => {\r\n let temp: UserOutcomeViewModel = {\r\n personId: x.id,\r\n queueOutcomeChoiceId: outcomeId,\r\n };\r\n return temp;\r\n });\r\n await queueClient\r\n .setUserOutcomes(userOutcomes)\r\n .then((response) => {\r\n enqueueSnackbar(\"Person(s) successfully added\", {\r\n variant: \"success\",\r\n });\r\n })\r\n .catch((err) => {\r\n enqueueSnackbar(\"Error occourd while adding person(s)\", {\r\n variant: \"error\",\r\n });\r\n });\r\n\r\n setTimeout(() => {}, 500);\r\n queueClient.getUserOutcomesOutcome(outcomeId).then((response) => {\r\n setCurrentMembers(response);\r\n });\r\n }\r\n\r\n async function onRemove() {\r\n if (selectedItems.length > 0){\r\n const userOutcomes: UserOutcomeViewModel[] = selectedItems.map((x: any) => {\r\n let temp: UserOutcomeViewModel = {\r\n personId: x,\r\n queueOutcomeChoiceId: outcomeId,\r\n };\r\n return temp;\r\n });\r\n \r\n await queueClient\r\n .removeUserOutcome(userOutcomes)\r\n .then((response) => {\r\n enqueueSnackbar(\"Person(s) successfully removed\", {\r\n variant: \"success\",\r\n });\r\n })\r\n .catch((err) => {\r\n enqueueSnackbar(\"Error occourd while removed person(s)\", {\r\n variant: \"error\",\r\n });\r\n });\r\n\r\n setTimeout(() => {}, 500);\r\n queueClient.getUserOutcomesOutcome(outcomeId).then((response) => {\r\n setCurrentMembers(response);\r\n });\r\n setSelectedItems([]);\r\n }\r\n }\r\n\r\n function onItemSearch(searchString: string): Promise {\r\n const person: PersonSearchQueryViewModel = {\r\n query: searchString,\r\n accountType: undefined,\r\n };\r\n\r\n return personsClient.searchPersons(person);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n 0)}\r\n currentItems={matchQuery(currentItems)}\r\n selectedItems={selectedItems}\r\n onResultSelect={onResultSelect}\r\n onSearchBarSearch={setSearchBarText}\r\n onCheckBoxChecked={onCheckBoxChecked}\r\n onAdd={onAdd}\r\n onRemove={onRemove}\r\n onItemSearch={onItemSearch}\r\n noResultsMessage=\"Select Required Clinic From Menu Bar\"\r\n />\r\n \r\n );\r\n};\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport List from \"@material-ui/core/List\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport { MainListItems } from \"../../../data/listItems\";\r\nimport { PersonAvatar } from \"../../../components/muiCore/Avatar\";\r\nimport { Context } from \"../../../state/Store\";\r\nimport * as api from \"../../../data/api\";\r\nimport { getQueues } from \"../../../data/api\";\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport { PersonKind, UserPermissions } from \"../../../state/State.model\";\r\nimport { TokenContext } from \"../../../common/apiclients\";\r\n\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\r\nimport { AdminRoutes, useViewQueueMatch, viewQueueUrl } from \"../Routes\";\r\nimport { RolesSoild } from \"../../../components/core/Manager/Icons/Icons\";\r\n\r\nconst drawerWidth = 260;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: \"flex\",\r\n\t},\r\n\ttoolbar: {\r\n\t\tpaddingRight: 24, // keep right padding when drawer closed\r\n\t},\r\n\ttoolbarIcon: {\r\n\t\tdisplay: \"flex\",\r\n\t\talignItems: \"center\",\r\n\t\tjustifyContent: \"flex-end\",\r\n\t\tpadding: \"0 8px\",\r\n\t\t...theme.mixins.toolbar,\r\n\t},\r\n\tappBar: {\r\n\t\tzIndex: theme.zIndex.drawer + 1,\r\n\t\ttransition: theme.transitions.create([\"width\", \"margin\"], {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t},\r\n\tappBarShift: {\r\n\t\tmarginLeft: drawerWidth,\r\n\t\twidth: `calc(100% - ${drawerWidth}px)`,\r\n\t\ttransition: theme.transitions.create([\"width\", \"margin\"], {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t}),\r\n\t},\r\n\tmenuButton: {\r\n\t\tmarginRight: 48,\r\n\t},\r\n\tmenuButtonHidden: {\r\n\t\tdisplay: \"none\",\r\n\t},\r\n\ttitle: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tdrawerPaper: {\r\n\t\tposition: \"relative\",\r\n\t\twhiteSpace: \"nowrap\",\r\n\t\twidth: drawerWidth,\r\n\t\ttransition: theme.transitions.create(\"width\", {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t}),\r\n\t},\r\n\tuatHeader: {\r\n\t\tcolor: \"red\",\r\n\t\tfontSize: '2.5rem',\r\n\r\n\t},\r\n\tdrawerPaperClose: {\r\n\t\toverflowX: \"hidden\",\r\n\t\ttransition: theme.transitions.create(\"width\", {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t\twidth: theme.spacing(11),\r\n\t\t[theme.breakpoints.up(\"sm\")]: {\r\n\t\t\twidth: theme.spacing(11),\r\n\t\t},\r\n\t},\r\n\tappBarSpacer: theme.mixins.toolbar,\r\n\tcontent: {\r\n\t\tflexGrow: 1,\r\n\t\theight: \"100vh\",\r\n\t\toverflow: \"auto\",\r\n\t},\r\n\tcontainer: {\r\n\t\tpaddingTop: theme.spacing(4),\r\n\t\tpaddingBottom: theme.spacing(4),\r\n\t},\r\n\tpaper: {\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: \"flex\",\r\n\t\toverflow: \"auto\",\r\n\t\tflexDirection: \"column\",\r\n\t},\r\n\tfixedHeight: {\r\n\t\theight: 240,\r\n\t},\r\n}));\r\n\r\nconst Dashboard = () => {\r\n\tconst classes = useStyles();\r\n\t//GLOBAL STATE\r\n\tconst { state, dispatch } = useContext(Context);\r\n \r\n\tconst [queues, setQueues] = useState();\r\n\r\n\tuseEffect(() => {}, []);\r\n\r\n\tlet location = useLocation();\r\n\tlet history = useHistory();\r\n\tconst queueMatch = useViewQueueMatch();\r\n\tconst currentQueue =\r\n\t\tqueues && queueMatch\r\n\t\t\t? queues.find((q) => q.id === queueMatch.params.queueId)\r\n\t\t\t: undefined;\r\n\r\n\tconst [open, setOpen] = React.useState(true);\r\n\tconst [loggedInUser, setLoggedInUser] = useState();\r\n\tconst [anchorEl, setAnchorEl] = React.useState(null);\r\n\tconst url = window.location.href;\r\n\tconst handleClick = (event: React.MouseEvent) => {\r\n\t\tsetAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetAnchorEl(null);\r\n\t};\r\n\tconst handleDrawerOpen = () => {\r\n\t\tsetOpen(true);\r\n\t};\r\n\tconst handleDrawerClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\tconst [ UAT, setUAT] = React.useState(false);\r\n\tuseEffect(() => {\r\n\t\tif (url.includes('.uat.')) {\r\n\t\t\tsetUAT(true);\r\n\t\t}\r\n\t}, [url])\r\n\r\n\tuseEffect(() => {\r\n\t\r\n\t\tif (!state.user?.token) {\r\n\t\t\tconsole.log('No userToken found')\r\n\t\t\tlet token: any = null;\r\n\r\n\t\t\tif (location.hash != \"\") {\r\n\t\t\t\ttoken = location.hash.split(\"=\")[1];\r\n\t\t\t\thistory.push(\"/admin\");\r\n\t\t\t} else {\r\n\t\t\t\tif (state.user?.token) {\r\n\t\t\t\t\ttoken = state.user?.token;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (token) {\r\n\t\t\t\tapi.getUserInfo(token).then((userInfo: any) => {\r\n\t\t\t\t\tconsole.log(userInfo);\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"SET_USERINFO\",\r\n\t\t\t\t\t\tpayload: {\r\n\t\t\t\t\t\t\t...state.user,\r\n\t\t\t\t\t\t\ttoken: token,\r\n\t\t\t\t\t\t\trememberMe: true,\r\n\t\t\t\t\t\t\tfirstName: userInfo.firstName,\r\n\t\t\t\t\t\t\tlastName: userInfo.lastName,\r\n\t\t\t\t\t\t\tcontactNumber: userInfo.contactNumber,\r\n\t\t\t\t\t\t\tkind: userInfo.kind,\r\n\t\t\t\t\t\t\troles: userInfo.roles,\r\n\t\t\t\t\t\t\toutcomes: userInfo.queueOutcomeChoices\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} else {\r\n\t\t\t\twindow.location.href = \"/api/user/login\";\r\n\t\t\t}\r\n\t\t} else {\r\n\r\n\t\t\tconsole.log('Token',state.user?.token)\r\n\t\t\tapi.getUserInfo(state.user?.token).then((userInfo: any) => {\r\n\t\t\t\tif (userInfo?.kind !== PersonKind.Staff) {\r\n\t\t\t\t\tconsole.log(\"userinfo\",userInfo);\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"LOGOUT_USER\",\r\n\t\t\t\t\t});\r\n\t\t\t\t\thistory.push(\"/\");\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\ttype: \"SET_USERINFO\",\r\n\t\t\t\t\t\tpayload: {\r\n\t\t\t\t\t\t\t...state.user,\r\n\t\t\t\t\t\t\ttoken: state.user?.token,\r\n\t\t\t\t\t\t\trememberMe: true,\r\n\t\t\t\t\t\t\tfirstName: userInfo.firstName,\r\n\t\t\t\t\t\t\tlastName: userInfo.lastName,\r\n\t\t\t\t\t\t\tcontactNumber: userInfo.contactNumber,\r\n\t\t\t\t\t\t\tkind: userInfo.kind,\r\n\t\t\t\t\t\t\troles: userInfo.roles,\r\n\t\t\t\t\t\t\toutcomes: userInfo.queueOutcomeChoices\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}).catch((err) => console.log(err));\r\n\t\t}\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t\r\n\t\tsetLoggedInUser(`${state.user?.firstName} ${state.user?.lastName}`);\r\n\t\tif (state.user?.roles.find((x) => x.permissions == UserPermissions.SuperUser) || \r\n\t\tstate.user?.outcomes && state.user?.outcomes.length > 0) {\r\n\t\t\tgetQueues(state.user?.token).then((res) => {\r\n\t\t\t\tsetQueues(res);\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tif (state.user?.firstName !== \"\")\r\n\t\t\thistory.push('/')\r\n\t\t}\r\n\t\r\n\t}, [state.user?.firstName]);\r\n\r\n\tconst fixedHeightPaper = clsx(classes.paper, classes.fixedHeight);\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\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\tAdmin Dashboard\r\n\t\t\t\t\t\r\n\t\t\t\t\t{UAT && (
Do not enter referrals here – Test site only
) }\r\n\t\t\t\t\t{state.user && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t)=> handleClick(event)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tLogout\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\t\r\n\t\t\t\t
\r\n\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\t\r\n\t\t\t\t\r\n\t\t\t\t\t history.push(viewQueueUrl(item.id))}\r\n\t\t\t\t\t\tselectedItem={currentQueue}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{/*{state.user?.roles.find(*/}\r\n\t\t\t\t{/*\t(x) => x.permissions == UserPermissions.SuperUser*/}\r\n\t\t\t\t{/*) && (*/}\r\n\t\t\t\t{/*\t {*/}\r\n\t\t\t\t{/*\t\t\thistory.push(\"/admin/summary\");*/}\r\n\t\t\t\t{/*\t\t}}*/}\r\n\t\t\t\t{/*\t>*/}\r\n\t\t\t\t{/*\t\t*/}\r\n\t\t\t\t{/*\t\t\t*/}\r\n\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\t{state.user?.roles.find(\r\n\t\t\t\t\t(x) => x.permissions == UserPermissions.SuperUser\r\n\t\t\t\t) && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t history.push(\"/admin/access\")}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\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 history.push(\"/admin/roles\")}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\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)}\r\n\t\t\t\t{/* {*/}\r\n\t\t\t\t{/*\t\thistory.push(\"/admin/summary\");*/}\r\n\t\t\t\t{/*\t}}*/}\r\n\t\t\t\t{/*> */}\r\n\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{/* */}\r\n\t\t\t\t{/* \r\n\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 */}\r\n\t\t\t\t{/*{secondaryListItems} */}\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{/**/}\r\n\t\t\t\t\t{state.user?.token ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{AdminRoutes(queues!)}\r\n\t\t\t\t\t\t\r\n\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);\r\n};\r\n\r\nexport default Dashboard;\r\n","import React from \"react\";\r\nimport {Redirect, Route, Switch} from \"react-router\";\r\nimport {Registration} from \"./Registration\";\r\nimport {PublicQuestionnaire} from \"./Questionnaire\";\r\nimport {Finalisation} from \"./Finalisation\";\r\nimport Dashboard from \"../modules/admin/views/Dashboard\";\r\n\r\nexport const Routes = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, {useEffect, useState} from 'react'\r\nimport {StyledContainer} from \"../muiCore/Container\";\r\nimport {Box, ButtonBase, Grid, Paper, Typography, useTheme, useMediaQuery} from \"@material-ui/core\";\r\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\r\n// thomas added\r\nimport withWidth, {isWidthUp} from '@material-ui/core/withWidth';\r\nimport cflc from '../../assets/images/cflc.jpg';\r\n\r\nimport appBanner from \"../../assets/images/banner_covid.svg\";\r\nimport RecordVoiceOverIcon from '@material-ui/icons/RecordVoiceOver';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n footer: {\r\n //Thomas 28/06/21\r\n backgroundColor: '#353535',\r\n // backgroundColor:'#133650',\r\n //backgroundColor: theme.palette.primary.dark,\r\n color: theme.palette.primary.contrastText,\r\n minHeight: '150px',\r\n padding: theme.spacing(2, 0)\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n textAlign: \"start\",\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: 'inherit',\r\n boxShadow: 'unset',\r\n [theme.breakpoints.down('sm')]: {\r\n textAlign: 'center',\r\n }\r\n\r\n //height: \"70%\"\r\n },\r\n icon: {\r\n //color: theme.palette.primary.contrastText,\r\n maxWidth: 'unset',\r\n maxHeight: 'unset',\r\n fontSize: '4.5rem!important',\r\n //Thomas changed the color from theme\r\n color: theme.palette.primary.contrastText,\r\n //margin: '15px!important',\r\n },\r\n img: {\r\n height: '8rem',\r\n backgroundColor: 'inherit',\r\n filter: 'invert(100%)',\r\n // thomas added\r\n [theme.breakpoints.down('sm')]: {\r\n height: '4rem',\r\n },\r\n },\r\n cflcImg: {\r\n height: '12rem',\r\n backgroundColor: 'inherit',\r\n //filter:'invert(100%)',\r\n // thomas added\r\n [theme.breakpoints.down('sm')]: {\r\n height: '4rem',\r\n },\r\n },\r\n // thomas added\r\n contentText: {\r\n color: theme.palette.primary.contrastText,\r\n }\r\n }),\r\n);\r\n\r\nexport const Footer = (props: any) => {\r\n\r\n let classes = useStyles();\r\n\r\n\r\n // thomas modified\r\n let theme = useTheme();\r\n\r\n const isThemeDown = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n\r\n {/* Thomas add style */}\r\n {/*Need an interpreter?*/}\r\n {/*Phone the Translating and Interpreting Service (TIS) on
131 450 and tell them your language. Tell the interpreter your name and that you’re calling the Tasmanian Department of Health 1800 671 738. */}\r\n {/**/}\r\n {/* You are directed to the */}\r\n {/* Disclaimer and copyright notice notice*/}\r\n {/* and the */}\r\n {/* Personal Information Protection statement*/}\r\n {/* governing the information provided. */}\r\n {/**/}\r\n \r\n This page has been produced by the \r\n Department of Education\r\n .\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Header } from \"./components/core/Header\";\r\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport \"./App.css\";\r\nimport { Slide } from \"@material-ui/core\";\r\nimport { Routes } from \"./views/Routes\";\r\nimport { Footer } from \"./components/core/Footer\";\r\nimport { CustomTheme } from \"./themes/themeFactory\";\r\nimport { Context } from \"./state/Store\";\r\nimport { getUserInfo } from \"./data/api\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { useHistory } from \"react-router\";\r\nimport { useLocation } from \"react-router\";\r\n// thomas added matchPath\r\nimport { matchPath } from \"react-router\";\r\nimport { useTheme } from \"@material-ui/core\";\r\nimport { isThrowStatement } from \"typescript\";\r\nimport Hidden from \"@material-ui/core/Hidden\";\r\nimport withWidth from \"@material-ui/core/withWidth\";\r\nimport { useMediaQuery } from \"@material-ui/core\";\r\nimport { getQueues } from \"./data/api\";\r\nimport { QuestionnaireProvider } from \"./QuestionnaireContext\";\r\n\r\nconst headerStyles = makeStyles((theme: CustomTheme) =>\r\n createStyles({\r\n headerPlaceHolder: {\r\n [theme.breakpoints.down(\"md\")]: {\r\n height: \"50px\",\r\n width: \"100%\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n })\r\n);\r\n\r\nfunction App() {\r\n //GLOBAL STATE\r\n const { state, dispatch } = useContext(Context);\r\n\r\n //COMPONENT STATE\r\n const [authToken, setAuthToken] = useState();\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n // Thomas add this\r\n // let isMatch = matchPath(\"/questionnaire\",{exact:true});\r\n // console.log(isMatch)\r\n const [shouldHideFooter, setShouldHideFooter] = useState(false);\r\n\r\n const [scr, setScr] = useState(window.screen.availWidth);\r\n\r\n window.addEventListener(\"resize\", () => {\r\n setScr(window.screen.availWidth);\r\n });\r\n\r\n const location = useLocation();\r\n const history = useHistory();\r\n useEffect(() => {\r\n // console.log(window.screen.availWidth)\r\n if (\r\n location.pathname === \"/questionnaire\" &&\r\n window.screen.availWidth < 960\r\n ) {\r\n setShouldHideFooter(true);\r\n } else {\r\n setShouldHideFooter(false);\r\n }\r\n }, [location, scr]);\r\n\r\n let classes = headerStyles();\r\n let theme = useTheme();\r\n\r\n const isThemeDown = useMediaQuery(theme.breakpoints.down(\"sm\"));\r\n\r\n useEffect(() => {\r\n const url = window.location.href;\r\n console.log(\"relog\",state.user?.token)\r\n if (url.slice(-6) !== \"logout\") {\r\n if (state.user?.token) {\r\n setAuthToken(state.user?.token);\r\n } else {\r\n if (location.hash != \"\") {\r\n setAuthToken(location.hash.split(\"=\")[1]);\r\n } else if (state.user?.token) setAuthToken(state.user?.token);\r\n else window.location.href = \"/api/user/login\";\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const url = window.location.href;\r\n console.log(url)\r\n\r\n if (url.slice(-6) !== \"logout\") {\r\n if (authToken) {\r\n if (url.slice(-6) !== \"admin\" || url.slice(-15) !== \"admin/referrals\"){\r\n getUserInfo(authToken)\r\n .then((userInfo: any) => {\r\n console.log(userInfo);\r\n console.log(authToken);\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n token: authToken,\r\n rememberMe: true,\r\n firstName: userInfo.firstName,\r\n lastName: userInfo.lastName,\r\n contactNumber: userInfo.contactNumber,\r\n kind: userInfo.kind,\r\n roles: userInfo.roles,\r\n },\r\n });\r\n history.push(\"/\");\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n enqueueSnackbar(\"Not able to return user info\", {\r\n variant: \"error\",\r\n });\r\n });\r\n } else {\r\n\r\n getUserInfo(authToken)\r\n .then((userInfo: any) => {\r\n console.log(authToken);\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n token: authToken,\r\n rememberMe: true,\r\n firstName: userInfo.firstName,\r\n lastName: userInfo.lastName,\r\n contactNumber: userInfo.contactNumber,\r\n kind: userInfo.kind,\r\n roles: userInfo.roles,\r\n },\r\n });\r\n history.push(\"/admin\");\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n enqueueSnackbar(\"Not able to return user info\", {\r\n variant: \"error\",\r\n });\r\n });\r\n }\r\n } else {\r\n if (location.hash != \"\") {\r\n setAuthToken(location.hash.split(\"=\")[1]);\r\n } else {\r\n if (state.user?.token) setAuthToken(state.user?.token);\r\n }\r\n }\r\n }\r\n }, [authToken]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {state.user !== null && state.user?.token.length > 1 && (\r\n \r\n )}\r\n
\r\n {!shouldHideFooter && (\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import { createMuiTheme } from \"@material-ui/core/styles\";\r\n//import './themeModule';\r\ndeclare module \"@material-ui/core/styles/createMuiTheme\" {\r\n export interface Theme {\r\n DoH: {\r\n color: {\r\n info: string;\r\n warning: string;\r\n error: string;\r\n pass: string;\r\n fail: string;\r\n exemption: string;\r\n conditional: string;\r\n };\r\n DayPassCard: {\r\n marginBottom: string;\r\n };\r\n CardHeader: {\r\n color: string;\r\n fontSize: string;\r\n };\r\n Metric: {\r\n fontSize: string;\r\n };\r\n MetricTitle: {\r\n fontFamily: string;\r\n };\r\n SearchBar: {\r\n width: string;\r\n };\r\n AppBar: {\r\n padding: string;\r\n };\r\n paper: {\r\n welcome: {\r\n root: {};\r\n elevation1: {};\r\n };\r\n };\r\n AdminPortal: {\r\n DrawerMenu: {\r\n ListItemIcon: {\r\n root: {};\r\n };\r\n };\r\n };\r\n TreeView: {\r\n root: {};\r\n header: {};\r\n TreeItem: {\r\n root: {};\r\n content: {};\r\n expanded: {};\r\n selected: {};\r\n group: {};\r\n label: {};\r\n labelRoot: {};\r\n labelIcon: {};\r\n labelText: {};\r\n };\r\n };\r\n TimeLine: {};\r\n TimelineItem: {};\r\n TimelineOppositeContent: {\r\n location: {};\r\n };\r\n TimelineDot: {};\r\n };\r\n }\r\n // allow configuration using `createMuiTheme`\r\n export interface ThemeOptions {\r\n DoH?: {\r\n color?: {\r\n info?: string;\r\n warning?: string;\r\n error?: string;\r\n pass?: string;\r\n fail?: string;\r\n exemption?: string;\r\n conditional?: string;\r\n };\r\n DayPassCard?: {\r\n marginBottom: string;\r\n };\r\n CardHeader?: {\r\n color: string;\r\n fontSize: string;\r\n };\r\n Metric?: {\r\n fontSize: string;\r\n };\r\n SearchBar?: {\r\n width: string;\r\n };\r\n AppBar?: {\r\n padding: string;\r\n };\r\n MetricTitle?: {\r\n fontFamily: string;\r\n };\r\n paper?: {\r\n welcome?: {\r\n root?: {};\r\n elevation1?: {};\r\n };\r\n };\r\n AdminPortal?: {\r\n DrawerMenu?: {\r\n ListItemIcon?: {\r\n root?: {};\r\n };\r\n };\r\n };\r\n TreeView?: {\r\n root?: {};\r\n header?: {};\r\n TreeItem?: {\r\n root?: {};\r\n content?: {};\r\n expanded?: {};\r\n selected?: {};\r\n group?: {};\r\n label?: {};\r\n labelRoot?: {};\r\n labelIcon?: {};\r\n labelText?: {};\r\n };\r\n };\r\n TimeLine?: {};\r\n TimelineItem?: {};\r\n TimelineOppositeContent?: {\r\n location?: {};\r\n };\r\n TimelineDot?: {};\r\n };\r\n }\r\n}\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n type: \"light\",\r\n primary: {\r\n main:'#55437e',\r\n light: '#85bbe5',\r\n dark: '#54437e',\r\n contrastText:'#FFF'\r\n },\r\n secondary: {\r\n main: '#57ac47',\r\n },\r\n },\r\n typography: {\r\n \r\n //fontSize: '1.15rem',\r\n //htmlFontSize: '0.8em',\r\n h1: {\r\n fontSize: \"2.5rem\",\r\n fontWeight: 400,\r\n \r\n },\r\n h2: {\r\n fontSize: 12,\r\n fontWeight: 500,\r\n },\r\n h4: {\r\n fontSize: \"1.5rem\",\r\n fontWeight: 500,\r\n },\r\n fontFamily: [\"Quicksand\", \"sans-serif\"].join(\",\"),\r\n },\r\n});\r\ntheme.DoH = {\r\n TimeLine: {},\r\n TimelineItem: {},\r\n DayPassCard: {\r\n marginBottom: \"15px\",\r\n },\r\n color: {\r\n info: \"#2196f3\",\r\n warning: \"#FC4C1F\",\r\n error: \"#9A2102\",\r\n pass: \"#92b200\",\r\n fail: \"#9A2102\",\r\n exemption: \"#02529A\",\r\n conditional: \"#FC4C1F\",\r\n },\r\n CardHeader: {\r\n color: \"black\",\r\n fontSize: \"1.5rem\",\r\n },\r\n Metric: {\r\n fontSize: \"1.5rem\",\r\n },\r\n SearchBar: {\r\n width: \"30%\",\r\n },\r\n AppBar: {\r\n padding: \"5px\",\r\n },\r\n MetricTitle: {\r\n fontFamily: [\"Quicksand\", \"sans-serif\"].join(\",\"),\r\n },\r\n paper: {\r\n welcome: {\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n padding: \"10px\",\r\n cursor: \"pointer\",\r\n marginTop: \"15px\",\r\n },\r\n elevation1: {\r\n boxShadow: \"none\",\r\n },\r\n },\r\n },\r\n AdminPortal: {\r\n DrawerMenu: {\r\n ListItemIcon: {\r\n root: {\r\n fontSize: \"2.5rem!important\",\r\n },\r\n },\r\n },\r\n },\r\n TreeView: {\r\n root: {\r\n height: 264,\r\n flexGrow: 1,\r\n maxWidth: 400,\r\n },\r\n header: {\r\n padding: \"0 0 5px 10px\",\r\n borderBottom: \"1px inset\",\r\n marginBottom: \"10px\",\r\n },\r\n TreeItem: {\r\n root: {\r\n color: theme.palette.text.primary,\r\n padding: \"10px 0 10px 0\",\r\n // '&:hover > $content': {\r\n // backgroundColor: theme.palette.action.hover,\r\n // },\r\n // '&:focus > $content, &$selected > $content': {\r\n // backgroundColor: `var(--tree-view-bg-color, ${theme.palette.grey[400]})`,\r\n // color: 'var(--tree-view-color)',\r\n // },\r\n // '&:focus > $content $label, &:hover > $content $label, &$selected > $content $label': {\r\n // backgroundColor: 'transparent',\r\n // },\r\n },\r\n content: {\r\n color: theme.palette.text.primary,\r\n borderTopRightRadius: theme.spacing(2),\r\n borderBottomRightRadius: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightMedium,\r\n \"$expanded > &\": {\r\n fontWeight: theme.typography.fontWeightRegular,\r\n },\r\n },\r\n group: {\r\n marginLeft: 0,\r\n \"& $content\": {\r\n paddingLeft: theme.spacing(2),\r\n },\r\n },\r\n labelRoot: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: theme.spacing(0.5, 0),\r\n },\r\n labelIcon: {\r\n paddingRight: theme.spacing(0),\r\n color: theme.palette.primary.main,\r\n fontSize: \"1.5rem!Important\",\r\n },\r\n label: {\r\n fontWeight: \"inherit\",\r\n color: \"inherit\",\r\n },\r\n labelText: {\r\n fontWeight: \"inherit\",\r\n flexGrow: 1,\r\n //color: '#000000',\r\n fontSize: \"1rem!Important\",\r\n },\r\n expanded: {},\r\n selected: {\r\n // color: theme.palette.primary.contrastText,\r\n // backgroundColor:theme.palette.primary.light\r\n },\r\n },\r\n },\r\n TimelineOppositeContent: {\r\n location: {\r\n flex: \"unset!important\",\r\n },\r\n },\r\n TimelineDot: {\r\n borderStyle: \"unset\",\r\n marginTop: \"0px!important\",\r\n },\r\n};\r\ntheme.typography.body1 = {\r\n fontSize: \"1.3rem\",\r\n ineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n fontWeight: 600,\r\n color: \"#353535\", //TODO chnage to theme definition\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: \"1.2rem\",\r\n },\r\n fontFamily: [\"Quicksand\", \"sans-serif\"].join(\",\"),\r\n};\r\ntheme.typography.body2 = {\r\n fontSize: \"1.3rem !important\",\r\n ineHeight: \" 1.4375rem\",\r\n letterSpacing: \"-.01875rem\",\r\n fontWeight: 600,\r\n fontFamily: [\"Quicksand\", \"sans-serif\"].join(\",\"),\r\n};\r\ntheme.typography.h3 = {\r\n color: theme.palette.primary.contrastText + \"!important\",\r\n fontSize: \"2rem !important\",\r\n fontFamily: [\"Quicksand\", \"sans-serif\"].join(\",\"),\r\n};\r\ntheme.typography.h4 = {\r\n color: theme.palette.primary.contrastText + \"!important\",\r\n fontSize: \"1.50rem !important\",\r\n fontFamily: [\"Quicksand\", \"sans-serif\"].join(\",\") + \"!important\",\r\n \"& a\": {\r\n color: theme.palette.primary.contrastText,\r\n textDecoration: \"none\",\r\n borderBottom: \"1px solid #fff\",\r\n },\r\n \"& a:hover\": {\r\n borderBottom: \"3px solid #fff\",\r\n },\r\n};\r\ntheme.typography.h5 = {\r\n color: theme.palette.primary.light + \"!important\",\r\n fontSize: \"1.30rem !important\",\r\n fontWeight: 600,\r\n fontFamily: [\"Quicksand\", \"sans-serif\"].join(\",\"),\r\n};\r\ntheme.typography.h6 = {\r\n //color: theme.palette.primary.contrastText + \"!important\",\r\n fontSize: \"1rem !important\",\r\n fontWeight: 400,\r\n fontFamily: [\r\n \"-apple-system,BlinkMacSystemFont\",\r\n \"Segoe UI\",\r\n \"Roboto\",\r\n \"Helvetica Neue\",\r\n \"Arial\",\r\n \"Noto Sans\",\r\n \"sans-serif\",\r\n \"Apple Color Emoji\",\r\n \"Segoe UI Emoji\",\r\n \"Segoe UI Symbol\",\r\n \"Noto Color Emoj\",\r\n ].join(\",\"),\r\n};\r\ntheme.typography.subtitle1 = {\r\n color: \"black!important\",\r\n fontSize: \"1rem !important\",\r\n fontWeight: 400,\r\n fontFamily: [\r\n \"-apple-system,BlinkMacSystemFont\",\r\n \"Segoe UI\",\r\n \"Roboto\",\r\n \"Helvetica Neue\",\r\n \"Arial\",\r\n \"Noto Sans\",\r\n \"sans-serif\",\r\n \"Apple Color Emoji\",\r\n \"Segoe UI Emoji\",\r\n \"Segoe UI Symbol\",\r\n \"Noto Color Emoj\",\r\n ].join(\",\"),\r\n};\r\ntheme.typography.caption = {\r\n color: \"inherit\",\r\n fontSize: \".75rem !important\",\r\n fontWeight: 500,\r\n letterSpacing: \"-.0075rem\",\r\n marginTop: \"0\",\r\n marginBottom: \"1rem\",\r\n lineHeight: \"150%\",\r\n fontFamily: [\r\n \"-apple-system,BlinkMacSystemFont\",\r\n \"Segoe UI\",\r\n \"Roboto\",\r\n \"Helvetica Neue\",\r\n \"Arial\",\r\n \"Noto Sans\",\r\n \"sans-serif\",\r\n \"Apple Color Emoji\",\r\n \"Segoe UI Emoji\",\r\n \"Segoe UI Symbol\",\r\n \"Noto Color Emoji\",\r\n ].join(\",\"),\r\n \"& a\": {\r\n color: theme.palette.primary.contrastText,\r\n textDecoration: \"none\",\r\n borderBottom: \"1px solid #fff\",\r\n },\r\n \"& a:hover\": {\r\n borderBottom: \"3px solid #fff\",\r\n },\r\n};\r\ntheme.overrides = {\r\n ...theme.overrides,\r\n MuiListItemIcon: {\r\n //...theme.MuiListItemIcon,\r\n root: {\r\n //...theme.root,\r\n color: theme.palette.primary.main,\r\n maxWidth: \"unset\",\r\n minWidth: \"40px\",\r\n fontSize: \"3.5rem!important\",\r\n marginRight: \"10px\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"4.5rem!important\",\r\n marginRight: \"10px\",\r\n },\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n color: theme.palette.primary.dark,\r\n },\r\n \"& .selected\": {\r\n color: theme.palette.primary.main,\r\n },\r\n \"& .selected:hover\": {},\r\n },\r\n },\r\n MuiListItem: {\r\n //...theme.MuiListItem,\r\n root: {},\r\n gutters: {\r\n padding: \"1em 0 1em 1em\",\r\n },\r\n },\r\n MuiListItemText: {\r\n //...theme.MuiListItemText,\r\n root: {\r\n fontWeight: \"bolder\",\r\n //fontSize: theme.typography.body1,\r\n //Thomas 28/06/21\r\n // color:'#133650',\r\n color: \"#353535\",\r\n //lineHeight: 1.5,\r\n },\r\n },\r\n MuiButton: {\r\n root: {\r\n \r\n padding: 15,\r\n borderRadius: 0,\r\n \"&:focus\": {\r\n outline: \"none !important\",\r\n },\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.primary.light + \"!important\",\r\n [\"@media (min-width:780px)\"]: {\r\n backgroundColor: theme.palette.primary.dark + \"!important\",\r\n },\r\n },\r\n borderColor: \"unset!important\",\r\n border: \"2px solid !important\",\r\n backgroundColor: theme.palette.primary.light + \"!important\",\r\n color: theme.palette.primary.contrastText + \"!important\",\r\n boxShadow:\r\n \"0 2px 4px -2px rgba(0,0,0,0.24), 0 4px 24px -2px rgba(0, 0, 0, 0.2)!important\",\r\n },\r\n startIcon: {\r\n fontSize: \"2rem!important\",\r\n },\r\n },\r\n MuiButtonBase:{\r\n root:{\r\n marginBottom: '0px !important',\r\n }\r\n },\r\n MuiIconButton: {\r\n root: {\r\n \"&:focus\": {\r\n outline: \"none !important\",\r\n },\r\n },\r\n },\r\n MuiSvgIcon: {\r\n root: {\r\n //Thomas 28/06/21\r\n maxWidth: \"63px\",\r\n maxHeight: \"63px\",\r\n //maxWidth: '33px',\r\n //maxHeight: '24px',\r\n fontSize: \"inherit\",\r\n // Thomas 28/06/21\r\n //color:'#027e8c',\r\n },\r\n },\r\n MuiAccordion: {\r\n root: {\r\n \"&:before\": {\r\n backgroundColor: \"unset\",\r\n },\r\n },\r\n },\r\n MuiPaper: {\r\n elevation1: {\r\n boxShadow:\r\n \"0px 0px 0px 0px rgba(0,0,0,0.2), 0px 0px 0px 0px rgba(0,0,0,0.14), 1px 1px 0px 0px rgba(0,0,0,0.12)\",\r\n //boxShadow:'none'\r\n },\r\n root: {\r\n // display: 'flex',\r\n // flexDirection: 'column',\r\n // alignItems: 'center',\r\n // textAlign:'center',\r\n //padding: '10px',\r\n //marginTop: '15px'\r\n },\r\n },\r\n MuiAvatar: {\r\n root: {\r\n margin: theme.spacing(1),\r\n width: \"60px\",\r\n height: \"60px\",\r\n },\r\n colorDefault: {\r\n // Thomas 28/06/21\r\n // backgroundColor: theme.palette.primary.main,\r\n backgroundColor: theme.palette.primary.light,\r\n },\r\n },\r\n MuiTypography:{\r\n root:{\r\n '&.New':{\r\n color:theme.DoH.color.conditional\r\n },\r\n '&.OnHold':{\r\n color:theme.DoH.color.fail\r\n },\r\n '&.Viewed':{\r\n color:theme.DoH.color.exemption\r\n },\r\n '&.PDFDownloaded':{\r\n color:theme.DoH.color.pass\r\n }\r\n },\r\n },\r\n};\r\n\r\n\r\nexport const DoHScreeningTheme = theme;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport { ThemeProvider } from \"@material-ui/core/styles\";\r\nimport { DoHScreeningTheme } from \"./themes/DoHScreeningTheme\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\nimport Store from \"./state/Store\";\r\nimport { SnackbarProvider } from \"notistack\";\r\nimport Dashboard from \"./modules/admin/views/Dashboard\";\r\nimport { LocalizationProvider } from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\r\n\r\nconst baseUrl =\r\n document.getElementsByTagName(\"base\")[0].getAttribute(\"href\") ?? undefined;\r\n\r\nconst formats = {\r\n normalDate: \"d MMM yyy\",\r\n keyboardDate: \"d MMM yyy\",\r\n};\r\n\r\nReactDOM.render(\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 document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals(console.log);\r\n"],"sourceRoot":""}