{"version":3,"sources":["common/client.ts","common/formComponents/FTextField.tsx","components/muiCore/TextField.tsx","state/State.model.ts","state/Reducer.tsx","state/Store.tsx","common/apiclients.ts","components/core/forms/ValidatedForm.tsx","components/core/QuestionSlider/QuestionItemHeader.tsx","components/Icons/DoHIcons.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","data/api.ts","components/core/QuestionSlider/QuestionItemDropdown.tsx","components/core/Buttons/CommonBTN.tsx","components/core/File/FileUpload.tsx","components/core/QuestionSlider/QuestionItemUploadFile.tsx","components/core/QuestionSlider/RenderNestedQuestion.tsx","components/core/QuestionSlider/QuestionItem.tsx","common/dates.ts","components/core/Questionnaire/index.ts","components/core/QuestionSlider/QuestionItemSlider.tsx","components/muiCore/Dialog.tsx","components/muiCore/Typograpy.tsx","components/muiCore/ListItem.tsx","components/core/dialogs/AuthorisationDeclaration.tsx","components/core/QuestionSlider/QuestionItemStepper.tsx","common/formComponents/FSwitch.tsx","components/core/QuestionSlider/HelpMode.tsx","components/core/QuestionSlider/Questionnaire.tsx","components/core/dialogs/Message.tsx","assets/images/nyrstar1.jpg","views/Questionnaire.tsx","views/PrimaryLocation.tsx","views/Registration.tsx","assets/images/banner_covid.svg","styles/common.tsx","components/core/Templates/Details.tsx","views/Finalisation.tsx","modules/utils/permisson.ts","data/listItems.tsx","components/muiCore/Avatar.tsx","assets/images/nyrstar1.png","modules/admin/views/Questionnaire/QuestionnaireList.tsx","modules/admin/Routes.tsx","modules/admin/views/QueueManagement/QueueList.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","modules/utils/signalr.ts","components/muiCore/TimeLine.tsx","modules/admin/views/QueueWorkItem/QueueWorkItemFiles.tsx","components/core/Questionnaire/QuestionnaireAnswers.tsx","components/core/PDFGenerator/GeneratePDF.tsx","components/core/PDFGenerator/SaveQuestionnairePDF.tsx","modules/admin/views/QueueWorkItem/QueueWorkItemResponses.tsx","modules/admin/views/QueueWorkItem/QueueWorkItemTabs.tsx","common/formComponents/FCheckList.tsx","modules/admin/views/Queue/AssignToQueueDialog.tsx","components/core/Manager/SubComponents/CheckboxTree.tsx","common/debounce.ts","components/core/Manager/Icons/Icons.tsx","modules/admin/views/Queue.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/SubComponents/ManagerToolBar.tsx","components/core/Manager/SubComponents/ResultList.tsx","components/core/Manager/Manager.tsx","modules/admin/views/Departments/TeamManager.tsx","modules/admin/views/SummaryView.tsx","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","common/formComponents/FSelectAutocomplete.tsx","modules/admin/views/TEMP.tsx","components/core/dialogs/InputDialog.tsx","modules/admin/views/QueueManagement/QueueAccess.tsx","modules/admin/views/RoleManager/RoleManager.tsx","modules/admin/views/QueueManager/QueueManager.tsx","modules/admin/views/UploadCSV/UploadCSV.tsx","modules/admin/views/PrimaryLocationManager/PrimaryLocationManager.tsx","modules/admin/views/Settings/Settings.tsx","modules/admin/views/Dashboard.tsx","views/UpdateProfile.tsx","views/ErrorView.tsx","views/QRLanding.tsx","views/CurrentStatusView.tsx","views/CurrentStatus.tsx","views/AccessDenied.tsx","views/InterstateVisitorQuestionnaire.tsx","views/VisitorAppliactionHost.tsx","views/Routes.tsx","App.tsx","reportWebVitals.ts","themes/DoHScreeningTheme.tsx","VisitorQuestionnaire.tsx","index.tsx"],"names":["BookingType","DepartmentIdentifier","SiteIdentifier","PersonKind","ChoiceResult","Permissions","QuestionType","QuestionIntent","TextType","QuestionnaireStatus","AuditEventType","QuestionnaireIndex","AccountType","WorkItemStatus","QueueWorkItemStatus","QueueIndex","OutcomeIdentifier","DayPassType","ReferralType","Setting","FTextField","createRenderer","state","helperText","props","errorText","value","formProps","variant","error","Boolean","FDateField","type","InputLabelProps","shrink","inputProps","max","onChange","e","val","target","setValue","undefined","FSelectField","select","SelectProps","displayEmpty","StyledTextField","withStyles","theme","root","fontSize","lineHeight","letterSpacing","breakpoints","up","down","TextField","StyledFTextField","StyledCalenderTextField","transform","padding","width","display","margin","ValidationTextField","React","forwardRef","ref","CalendarTextField","CheckInClient","baseUrl","http","jsonParseReviver","this","window","vm","url_","replace","options_","body","JSON","stringify","method","headers","fetch","then","_response","processCheckIn","response","status","_headers","forEach","v","k","text","_responseText","parse","throwException","Promise","resolve","primaryLocationId","Error","encodeURIComponent","processSetPrimaryLocation","processGetAllTeams","personId","processGetHistroy","contentDisposition","get","fileNameMatch","exec","fileName","length","blob","data","locationId","processCheckout","processUpdate","processGetStatus","QuestionnaireClient","questionnaireIndex","processGetQuestions","viewModel","processCreateResponse","questionnaireId","processGetExistingQuestions","processCreateNewResponse","queueWorkItemId","processCreateNewResponseForQueueWorkItem","questionId","processAddQuestionChoice","processAddQuestionChoiceByAdmin","uRLData","processGetQuestionnaireData","qfId","processDeleteQuestionnaireData","processFinaliseQuestionnaire","processFinaliseQuestionnaireByAdmin","responseId","processValidateQuestionnaire","UserClient","processUserInfo","processAuthGate","returnUrl","kind","processLogin","processLoginCallback","processGetSite","AudiencesClient","processGetAudiences","PersonsClient","processGetPerson","editModel","processEditPerson","processSearchPersons","processRegisterUser","processGetUsersForPrimaryLocation","users","processAddUsersToPrimaryLocation","processRemoveUsersFromPrimaryLocation","QuestionnairesClient","processGetQuestionnaires","edit","processCreateQuestionnaire","processGetQuestionnaire","processEditQuestionnaire","processCloneQuestionnaire","questionnaireResponseId","personKind","processGetQuestionnaireForPersonKind","id","processGetQuestionsByQuestionnaireId","processUpdateQuestion","processDeleteQuestion","processCreateQuestion","processCreateNewQuestionChoice","choiceId","processUpdateQuestionChoice","processDeleteQuestionChoice","processCreateUpdateQuestionChoiceAlertPOST","processCreateUpdateQuestionChoiceAlertPATCH","processDeleteQuestionChoiceAlert","nextQuestionId","processCreateResponseMapping","processDeleteResponseMapping","userId","processGetQuestionnaireResponsesForUser","query","processAdminSearchPerson","processGetExports","timezoneOffset","queueWorkItemIds","processGetExportsForWorkItems","qwiVM","processApproveVisitorApplication","processRejectVisitorApplication","queueId","csvExport","processGetCSVExportForWorkItemId","QueueClient","processGetAllQueues","start","end","processGetQueueWorkItems","processGetTraceContacts","workItemId","processGetQueueWorkItem","processGetQueueMetrics","processGetAllQueueMetrics","processAssignQueueWorkItem","processUnAssignQueueWorkItem","processUnassignItemFromQueue","processUpdateQueueWorkItemStatus","processQueueWorkItemOnHold","processSaveQueueWorkItemNote","preQueueId","assignments","processAssignItemToNewQueue","processGetQueueWorkItemNotes","processGetQueueWorkItemQuestions","processGetQueueWorkItemAuditEvents","processGetWorkItemFiles","filename","global","processAddFile","processGetFile","processDeleteFile","peronsId","processQuestionnaireFileUpload","processGetOutcomesWithIdentifiers","siteId","processSetPrimarySiteForAdminUser","processGetAllQueuesForEdit","processGetQueueForEdit","vw","processEditQueue","processAddQueue","processGetQueueOutcomes","outcomeId","processGetQueueOutcome","processGetUserOutcomesOutcome","processSetFileFlags","processGetQueueOutcomesByQueueId","processGetQuestionnaireByQueueId","processGetAllQuestionnaireResponse","processGetQuestionnaireResponse","person","processCreateNewQueueWorkItem","processGetQueueMembers","processAddQueueMember","processRemoveQueueMember","checkIns","processUploadManualCheckIns","processGetSiteLocations","SettingsClient","processGetAllSettings","setting","processGetSettingBySetting","settings","processUpdateSettings","TeamClient","teamId","processGetUsersForTeam","processRemoveUsersFromTeam","processAddUsersToTeam","QueueWorkItem","UserPermissions","Outcome","ApiException","message","result","isApiException","obj","Reducer","action","payload","token","rememberMe","localStorage","setItem","user","removeItem","initialState","userToken","getItem","covidQuestionnaire","personaType","None","loggedIn","firstName","lastName","contactNumber","roles","locationHistory","department","departments","primaryLocation","locations","getSavedUserInfo","Context","createContext","dispatch","Store","useReducer","Provider","children","useApiClient","client","useContext","TokenContext","addToken","url","init","Headers","append","useStyles","makeStyles","form","marginTop","spacing","marginBottom","ValidatedForm","classes","useEffect","Children","element","formChildren","map","child","cloneElement","className","onSubmit","event","preventDefault","StyledTypography","createStyles","body1","color","paddingRight","paddingLeft","marginLeft","Typography","StyledListItemText","alignItems","ListItemText","StyledListItemIcon","justifyContent","alignContent","ListItemIcon","StyledListItemIconRepeater","QuestionHeaderBox","paddingTop","backgroundColor","palette","primary","light","boxShadow","minHeight","fontWeight","typography","Box","QuestionRepeaterHeaderBox","main","QuestionHeader","index","onClick","onBack","style","QuestionRepeaterHeader","row","readonly","Tooltip","title","onAddRow","onRemoveRow","CircleQuestionSolid","SvgIcon","viewBox","d","UserNurseIcon","FeverIcon","LungsIcon","C19ContactIcon","RunnyNoseIcon","LossOfSmellIcon","TravelIcon","TravelContactIcon","HomeIsolationIcon","StreetViewSolid","PenFancySolid","UserSolid","PdfFileRegular","SubQuestionListIcon","marginRight","cursor","SubQuestionNestedListIcon","QuestionSubQuestionListIcon","secondary","icon","maxWidth","maxHeight","SubQuestionIcon","QuestionItemSubQuestion","subQuestions","sub","i","ListItem","dangerouslySetInnerHTML","__html","Divider","QuestionItemNestedSubQuestion","QuestionSubQuestion","useTheme","overrides","MuiListItem","gutters","MuiListItemText","contrastText","MuiTypography","ThemeProvider","subQuestionIcon","helpText","Accordion","AccordionSummary","required","DoH","fail","AccordionDetails","box","position","bottom","left","btnActive","btnStartIcon","height","btn","QuestionItemRadioButton","useState","selectedRadioButton","setSelectedRadioButton","radioButtons","radioButton","selected","button","disabled","onSelected","QuestionItemNestedRadioButton","control","selectedChoice","useControlValue","backdrop","zIndex","drawer","QuestionItemCheckBox","choices","setSelectedCheckBox","checkBoxes","checkBox","visible","QuestionItemTextField","TextFieldProps","valid","errorMessage","textFieldErrors","setTextFieldErrors","textFieldValue","setTextFieldValue","checkValidation","isValid","errors","multiline","fullWidth","label","name","autoFocus","focused","RadioButtonsWithAdditionalInfoTextField","textFieldRef","useRef","additionalInfoRequired","setAdditionalInfoRequired","additionalInformation","setAdditionalInformation","setRadioButtons","findIndex","rBtn","current","clearTextField","Collapse","in","onExited","ButtonGroup","Button","validate","dark","w50","QuestionItemNestedYesNoButtons","buttons","QuestionItemYesNoButtons","selectedButton","setSelectedButton","startIcon","hideCheckbox","btnCheckbox","paddingBottom","textField","Dependant","formErrors","txtFirstName","txtLastName","setFormErrors","isFormValid","console","log","setIsAddingDependant","isAddingDependant","setTxtFirstName","setTxtLastName","submit","collapsedHeight","Grid","container","justify","item","xs","minWidth","QuestionItemNextSkipButton","skipQuestion","QuestionItemChoiceButton","BASE_URL","postJson","route","Authorization","res","Object","keys","o","catch","err","getJson","ok","json","deleteJson","getUserInfo","getQueueMetrics","before","after","outcomes","getQueues","getRoleMembers","roleId","searchStaffMembers","accountType","checkForUser","getSiteLocations","setPrimaryLocation","textFields","paper","flexDirection","avatar","heading","textAlign","image","selectField","top","selectFieldOne","selectFieldtwo","SiteBuildingDropdown","site","setSite","allSites","setAllSites","building","setBuilding","allLocations","setAllLocations","allBuildings","setAllBuildings","LoadFunction","filter","outcomeIdentifier","Hobart_Covid_Questionnaire","Port_Pirie_Covid_Questionnaire","outcomeParentId","FormControl","InputLabel","Select","buildings","MenuItem","FormHelperText","CommonBTN","BtnText","FileUpload","multiple","uploadFile","fileRef","uploadFileList","files","FileDropArea","click","onDragOver","onDrop","dataTransfer","f","styled","border","QuestionItemUploadFile","questionnaireInfo","setFiles","queueClient","setUploadFiles","sendFiles","fileNames","file","uploadOne","a","uploadingFile","size","uploadFiles","addFile","x","split","RenderNestedQuestion","question","forceShow","parentHidden","fc","hidden","renderByType","DateField","DateTimeField","RadioButtons","Grouped","NestedQuestions","nestedQuestions","Repeater","RepeaterQuestion","parentQuestion","YesNo","DualDropDown","Info","RadioButtonsWithLocationHelper","open","find","LGA_Guide_from_SA_Health_URL","locationHelper","MultiLineTextField","placeholder","rows","setError","controlAndQuestions","useMemo","fields","sort","b","order","showMap","m","responseMappings","mapping","showMapping","existing","push","viewableControlList","useControlStateVersion","c","elems","add","sortedQuestions","idx","remove","my","uniqueId","QuestionCard","borderRadius","Card","QuestionCardContent","MuiCardContent","QuestionContent","List","QuestionItem","controls","selectedItem","items","isMobileDevice","useMediaQuery","validateAndChoose","choice","setTouched","onResult","RadioButtonsWithAddInfo","HasDependants","Fade","timeout","QuestionTypeRender","Question","currentIndex","isoToDate","dateIso","format","parseISO","createControl","makeNestedGroup","arrayControl","makeQuestionnaireControl","questions","answers","qv","groupControl","parseAnswers","responses","ans","qid","selectedChoiceNestedValue","parentValue","childValue","questionAnswerText","betweenRepeater","textNode","isoDateToDisplay","dateTimeIso","isoDateTimeToDisplay","q","t","h","join","groupText","answerText","visitQuestions","visit","every","visitRecurse","autoSelectChoice","questionVisibleForQueue","vfq","questionData","visibleForQueues","includes","QuestionItemSlider","qs","slideIn","setSlideIn","slideDirection","setSlideDirection","currentQuestion","setQuestion","backRef","toDir","goingLeft","transitionForward","setTimeout","onChoiceSelected","direction","selectedChoiceId","nextQuestion","getNextQuestion","navigate","Slide","indexOf","Dialog","MuiDialog","DialogContent","dividers","MuiDialogContent","DialogActions","MuiDialogActions","DialogTitle","MuiDialogTitle","StyledOutcomeHeaderTypography","OutcomeHeaderTypography","InfoActionIcon","infoLink","textDecoration","borderBottom","infoIcon","w100","header","warning","exemption","pass","infoHeader","pLR_15","OutcomeHeaderListItem","StyledIcon","clsx","OutcomeDetailsListItem","disableGutters","editor","textVariant","divider","transitionWrapper","slideContainer","menuButton","flexGrow","appBar","subBox","flex","content","grey","right","btnLeft","outline","borderColor","btnRight","btnGroup","transition","iconContrast","iconblack","iconMargin","innerHeading","lowerLatin","listStyleType","dayPassStyles","card","cardContent","cardHeader","failed","conditional","cardHeaderText","cardListItem","cardListItemAlt","cardListItemText","textTransform","textLeft","cardListItemTextAlt","fab","AuthorisationDialog","styles","isMobile","onClose","handleCancel","handleSubmit","privacy","component","fullScreen","aria-labelledby","QuestionItemStepper","nextQuestionIndex","getNextQuestionIndex","Stepper","activeStep","nonLinear","orientation","Step","completed","StepButton","StepLabel","invalidQuestions","FSwitch","FormControlLabel","Switch","checked","_","HelpModeContext","HelpMode","ctrl","Questionnaire","currentPageRef","stepper","showHelpTextToggle","helpTextExpansion","authOpen","setAuthOpen","setCurrentIndex","NavComponent","helpModeCtrl","topOfPage","validation","reduce","tlqs","tlq","findTopLevelQuestion","tlc","errControl","repeaterPaths","recurse","childGroup","nestedQ","found","childArray","arrayIndex","nextPaths","indexedControl","findNestedQuestionControl","repeaterPath","scrollIntoView","innerWidth","scrollTo","newValue","onQuestionnaireFinalised","forward","onSaveResponse","overrideSubmit","qvm","lookupTopLevelQuestion","closeButton","other","disableTypography","IconButton","aria-label","Message","handleClose","gutterBottom","paperCenter","PublicQuestionnaire","InnerQuestionnaire","showStepper","existingQuestionnaire","questionsAndControls","setQuestionsAndControls","setQuestionnaireResponseId","questionnaireClient","history","useHistory","messageOpen","sendingResults","setSendingResults","setQuestionnaireInfo","setQuestionIndex","questionnaireAlreadyCompleted","setQuestionnaireAlreadyCompleted","questionnaireSaveError","setQuestionnaireSaveError","finalise","finaliseQuestionnaire","queueWorkItem","dirty","toObject","_choiceId","valueAndChoice","addQuestionChoice","getQuestions","getQuestionnaireData","urlString","getExistingQuestions","questionnaireresponseId","startQuestionnaire","Backdrop","CircularProgress","src","nyrstar1","alt","PrimaryLocation","BLANKID","loading","setLoading","room","setRoom","allRooms","setAllRooms","savePrimaryLocation","userDetails","onSavePrimaryLocation","filterQuestionnaires","filterVisiting","Hobart_Visiting","Port_Pirie_visiting","filterOther","Hobart_Other","Port_Pirie_Other","filterDontKnow","Hobart_I_Do_Not_Know","Port_Pirie_I_Do_Not_Know","setBaseSite","loc","location","toLowerCase","questionnaire","allloc","visitorOrContractor","sites","list","Container","rooms","Registration","locationData","href","slice","userClient","departmentList","setDepartmentList","setFirstName","setLastName","setContactNumber","cbxRememberMe","setCbxRememberMe","setDepartment","setresponse","setToken","questionnaireCompleted","setQuestionnaireCompleted","setQuestionnaire","useCookies","setCookie","setVisitorOrContractor","mobile","test","authGate","registerResponse","getSite","Port_Pirie_Site","siteIdentifier","Port_Pirie","departmentIdentifier","Port_Pirie_Visitor","Port_Pirie_Contractor","visitor","contractor","localeCompare","temp","Hobart_Site","Hobart","Hobart_Visitor","Hobart_Contractor","usersDepartment","Date","checkInTime","getTime","Number","covidTimer","showPrimaryLocation","registerUser","getCookieConsentValue","path","secure","sameSite","expires","now","Port_Pirie_Covid_Survey","Hobart_Covid_Survey","Checkbox","neg_mr_15","ml_15","headerPlaceHolder","backgroundImage","appBanner","backgroundRepeat","backgroundSize","tasGovLogo","mgAuto","img","opacity","WebkitFontSmoothing","drawerMenuIcon","fullList","version","noBg","noHover","alignItemsLeft","noBorder","noPadding","mt_15","mb_15","heading2","tasLogo","bgc","welcome","iconSmall","expanded","MuiAccordion","expandIcon","MuiAccordionSummary","MuiAccordionDetails","subtext","Details","hideDivider","Finalisation","getTimezoneOffset","date","checkout","checkOutTime","lastLocation","CardContent","questionnairePassResult","onCheckout","updateProfile","hasPermission","permission","p","permissions","SuperUser","toString","MainListItems","queueItems","onItemClick","ContactTracer","primaryTypographyProps","whiteSpace","ProcessApplications","ListSubheader","CustomAvatar","caption","Avatar","PersonAvatar","initials","fullName","QuestionnaireList","questionnaires","setQuestionnaires","loadQuestionnaires","Link","getQuestionnaires","QueueList","queues","setQueues","loadQueues","getAllQueuesForEdit","FCheckbox","choiceForm","buildGroup","description","grouping","notificationEmail","filterable","assignable","QueueFormDef","defaultForm","canAccessGlobalFiles","queueOutcomes","canCreateForm","launchForm","formCreateHelpText","defaultCSVQuestionnaireId","canExportCSV","QueueEditor","useParams","saving","setSaving","setQueue","qsclient","allQ","loadQueue","qaires","saveQueue","getQueueForEdit","queue","editQueue","addQueue","AppBar","Paper","AppBarDivider","search","shape","fade","common","black","searchIcon","pointerEvents","inputRoot","inputInput","AppBarSearch","InputBase","input","onKeyDown","StyledDateRangePicker","overflowX","DateRangePicker","CalendarsDateRangePicker","today","addDays","setOpen","isDatePickerExpanded","onOpen","startOfToday","endOfToday","onRangeChange","formatISO","startOfDay","endOfDay","AttributeController","renderLoading","calendars","allowSameDateSelection","renderInput","startProps","endProps","StyledOutcomeContentList","OutcomeList","contentIcon","body2","alert","info","alertBox","clickable","messageIcon","options","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","SelectableCard","borderTop","iconStyle","elevation","severity","CardMedia","getVariantIcon","SelectableCardIconContentItem","SelectableStatisticCard","cardClassName","subheader","OutcomeCard","tabIndex","SkeletonCard","skeletons","count","Skeleton","StyledDrawer","paperAnchorDockedRight","borderLeft","MuiDrawer","Drawer","drawerState","setDrawerState","useImperativeHandle","openDrawer","closeDrawer","anchor","reason","showToolBar","Toolbar","edge","StyledIconButton","AppBarIconButton","useSignalR","eventHandler","conn","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","build","SkeletonTimeLine","missingOppositeContent","TimelineItem","QueueWorkItemFiles","loadFiles","dense","downloadFile","fileSize","ListItemSecondaryAction","deleteFile","getWorkItemFiles","getFile","saveAs","fl","f1","QuestionnaireAnswers","RenderQuestion","questionsWithAnswers","qav","answer","selChoice","pdfStyles","StyleSheet","create","page","section","line","imageLiL","float","imageCFLC","blueText","grouped","nested","topLevel","topLevelHeading","GenerateQuestionnairePDF","completedAt","RenderQuestionPDF","isNested","nq","useSortedNestedQuestions","topLevelStyle","parent","groupValue","some","rm","renderNested","repeaterValue","rowValue","repeaterView","vals","n","SaveQuestionnairePDF","saved","document","QueueWorkItemResponses","showTop","setShowTop","hasMore","useInfiniteScroll","hasNextPage","onLoadMore","useCallback","rootMargin","sentryRef","questionsRenders","QueueWorkItemQuestions","showing","qClient","loadingQuestions","setLoadingQuestions","qrl","setQrl","selectedQuestionnaire","setSelectedQuestionnaire","anchorEl","setAnchorEl","savePdf","setSavePdf","getAllQuestionnaireResponse","workItem","loadResponseList","loadResponses","flexItem","aria-controls","aria-haspopup","currentTarget","s","keepMounted","qr","questionnaireName","TabPanel","overflowY","role","a11yProps","pxToRem","fontWeightRegular","speedDial","QueueWorkItemTabs","notes","setNotes","auditEvents","updateWorkItemNotes","setUpdateWorkItemNotes","srQWI","setsrQWI","questionResponses","on","Tabs","indicatorColor","Tab","axis","onChangeIndex","dir","onEdit","FCheckList","genericProps","isSelected","FormLabel","dialogRoot","FormDef","outcomeIds","newQueueId","enabled","fullFormDef","assignToQueueVms","AssignToQueueDialog","onAssignAndClose","currentQueueId","currentQueueName","enqueueSnackbar","useSnackbar","setOutcomes","values","getQueueOutcomes","ClosableDialogTitle","elements","mx","cp","onAssignFormSubmit","closeWorkitem","formData","assignItemToNewQueue","useTreeItemStyles","TreeView","TreeItem","group","labelRoot","labelIcon","labelText","useGeneralCardStyles","accordionHeader","alignSelf","GeneralCard","CbxTree","setChecked","setExpanded","nodes","setNodes","isLoaded","setIsLoaded","accordion","flatten","arr","parentLocationId","regionId","accessible","deletedAt","concat","flattenGeneric","parentId","generic","node","genericListToTree","listToTree","y","onChecked","icons","check","uncheck","halfCheck","expandClose","expandOpen","expandAll","collapseAll","parentClose","parentOpen","leaf","notFoundContent","checkModel","onCheck","multiSelect","difference","onExpand","useDebounce","delay","debouncedValue","setDebouncedValue","handler","clearTimeout","UserMinusSolid","UserPlusSolid","TeamTieSolid","UserTeamPermissionSolid","RolesSoild","excludeAccordion","Transition","ItemsPerPage","reExportRecords","endDateTime","startDateTime","Queue","currentQueue","adminQuestionClient","teamClient","userOffset","loadingMore","setLoadingMore","setOnFirstPage","csvLoading","setCsvLoading","queueWorkItems","setQueueWorkItems","teams","setTeams","setQueueWorkItem","queueWorkItemStatus","setQueueWorkItemStatus","metrics","setMetrics","queryText","CheckIns","excluded","searchFilters","_setSearchFilters","sitesFilter","setSearchFilters","newFilter","sf","deepEqual","defaultExcludes","setDefaultExcludes","setHasMore","setIsDatePickerExpanded","setIsUpdateFromDatePicker","hasDateChanged","setHasDateChanged","queueWorkItemStatusChanged","setQueueWorkItemStatusChanged","isInitialApiCalled","setIsFilterChanged","drawerTitle","setDrawerTitle","queueWorkItemLoading","setQueueWorkItemLoading","setPass","setFail","setShowQuestionnaire","setQueueChanged","assignToQueueMode","setAssignToQueueMode","excludeFilter","setExcludeFilter","referralFormInitiated","referralFormFinalised","setReferralFormFinalised","selectedExcludes","setSelectedExcludes","metricCatSelect","setMetricCatSelect","setApplicationAcceptDialogOpen","setApplicationRejectDialogOpen","sideDrawer","toggleSideDrawer","acceptReason","rejectReason","questionnaireSideDrawer","updateQueueData","setUpdateQueueData","updateQueueAssignemnt","setUpdateQueueAssignemnt","updateMetricsFromApi","setUpdateMetricsFromApi","editPerson","setEditPerson","noteMode","_setNoteMode","csvExportMode","setCSVExportMode","treeData","setTreeData","MetricCategories","AllQueueWorkItems","wi","doItemQuery","offset","Survey","getQueueWorkItems","queueWorkItemStatuses","queueData","loadQueueData","apiCalls","getQueueOutcomesByQueueId","api","getAllTeams","all","userTeams","outcomesArray","usersOutcomes","Array","queueIndex","Site_locator","defaultExlude","hobFG","Hobart_Front_Gate","portFG","Port_Pirie_Front_Gate","getQueueDataWithoutRestriction","onWorkItemNoteAdded","queueWorkItemNote","globalNote","OnSite","updateQueueWorkItemStatus","note","qwi","WorkItemIcon","handleAssignToQueueClose","traceContacts","getTraceContacts","excludes","noteKey","personAssignedTo","Site_Entry_Application","approveVisitorApplication","qwis","handleApplicationAcceptDialogClose","rejectVisitorApplication","handleApplicationRejectDialogClose","reverse","checkIn","createdAt","totals","category","key","metric","Declaration","SearchAppBar","queryChanged","range","contactTracer","charAt","toUpperCase","AddNoteDialog","submitNote","noteTextField","TransitionComponent","aria-describedby","DialogContentText","ids","getExportsForWorkItems","setQuery","debounced","setNoteTextField","setGlobalNote","FormWithValidation","isValidElement","TeamForm","onSucceed","teamName","setTeamName","modal","toolbar","transitions","randomColor","Math","floor","random","SelectableCardHeader","StyledListCard","StyledListCardContent","StyledAvatar","getSeverityIcon","SelectableCardSkeleton","CardList","overflow","SelectableCardListItem","pressed","setPressed","setPreviousPressedState","StyledListItem","ChoiceFilter","ItemSearch","searchQuery","setSearchQuery","timeoutId","setTimeoutId","searchResults","setSearchResults","selectedUsers","setSelectedUsers","onItemSearch","selectableCardOnClickHandler","u","r","filteredArr","membersCompareTo","nameA","nameB","combinedArr","seletableCards","member","avatarColor","mountOnEnter","unmountOnExit","onAddMembers","ManagerToolbar","onSearch","onAdd","onRefresh","onRemove","renderExtraActions","members","auditAlert","getMemberInitial","memberName","MemberList","selectedMembers","canManageTeamMembers","canViewTeam","Manager","appbarExtraComponents","appbarRightComponents","disableToolBar","onSearchBarSearch","currentItems","selectedItems","onResultSelect","onCheckBoxChecked","checkBoxTreeMultiSelect","formDrawer","ManagerForm","mb","md","ResultList","TeamManager","personsClient","setCurrentItems","setSelectedItems","setTeamId","userteam","removeUsersFromTeam","getUsersForTeam","addUsersToTeam","currentArr","newName","newQuery","matcher","selectedId","searchString","searchPersons","MetricView","SummaryView","allMetric","setAllMetric","receivedSignal","setReceivedSignal","startOfYesterday","New","OnHold","InProgress","Closed","refreshMetrics","getAllQueueMetrics","FNumberField","num","parseFloat","isNaN","ChoiceFormDef","outcomeResult","exportValue","queueOutcomeChoiceId","onAssignment","ChoiceEditor","onDelete","otherQuestions","onUp","onDown","others","useControlState","newone","qo","AllIcons","FIconSelector","SubQuestionFormDef","SubQuestionEditor","DateConstraintFormDef","days","fixed","ValidationFormDef","notAfter","notBefore","textType","BaseQuestionForm","intentKey","intent","questionKey","exportKey","QuestionFormDef","addFields","ArrayControl","toDateConstraintForm","toQuestionForm","sortedNested","QuestionEdit","openOptions","WithType","useControlStateComponent","useDrag","collected","drag","Address","ml","Droppable","QuestionOptions","outcomeResults","questionType","renderDateConstraint","Phone","Email","update","moveUp","moveDown","QuestionnaireFormDef","audiences","QuestionnaireEditor","_id","audienceClient","setAudiences","optionsQuestion","setOptionsQuestion","showingOptions","setShowingOptions","setQueueOutcomes","router","loadQuestionnaire","loadAudiences","DndProvider","backend","HTML5Backend","checkProps","q1","saveQuestionnaire","getQuestionnaire","audienceId","getAudiences","setDisabled","editQuestionnaire","createQuestionnaire","newId","questionnaireEditUrl","useDrop","accept","canDrop","isChildOf","drop","outArray","indIns","splice","collect","monitor","isOver","py","questionList","dq","FSelectAutocomplete","getOptionLabel","Autocomplete","inputValue","onInputChange","Temp","qclient","setErrors","importRef","setValidateAll","loadQuestionnaireList","PersonSelector","QuestionnaireSelector","userIdControl","questionnaireControl","questId","ActionButtons","hasPerson","hasQuestionnaire","hasResponse","createNewQuestionnaire","writeCsv","exportQuestionnaire","doImport","createNewResponse","newResp","getExports","Blob","importQuestionnaire","qText","people","setPeople","questionnairesClient","doSearch","adminSearchPerson","qId","getQuestionnaireResponsesForUser","InputDialog","confirmButtonName","cancelButtonName","inputPlaceholder","setText","QueueAccess","setSearchBarText","selectedNode","editTeamNameOpen","inputDialogData","AppBarComponents","appBarRightComponents","RoleManager","setRoles","currentRole","setCurrentRole","roleDataMapper","promises","QueueManager","setCurrentQueue","getAllQueues","queueDataMapper","getQueueMembers","addQueueMember","removeQueueMember","table","UploadCSV","csvFile","setCsvFile","csvArray","setCsvArray","missingData","setMissingData","uploadsSaved","setUploadsSaved","processCSV","str","delimiter","newArray","filterAndSendData","minutes","hours","seconds","Department","Site","Building","Room","FirstName","LastName","TimeIn","TimeOut","ContactNumber","uploadManualCheckIns","reader","FileReader","onload","arrayBuffer","workbook","XLSX","read","wsname","SheetNames","ws","Sheets","dataParse","utils","sheet_to_csv","readAsText","upload","TableContainer","Table","TableHead","TableRow","TableCell","align","TableBody","contact_phone","PrimaryLocationManager","setLocations","setLocationId","removeUsersFromPrimaryLocation","getUsersForPrimaryLocation","userLocations","addUsersToPrimaryLocation","bulding","teamDataMapper","textLines","textAccordion","locationTextFields","settingsTextFields","saveIcon","saveIconDisabled","Settings","settingsClient","setSettings","changeMade","setChangeMade","updateLocation","expireInMinutes","getAllSettings","locs","z","allSettings","updateSettings","updateValue","AdminRoutes","redirectTo","exact","ModifyRoles","ModifyQueueMember","to","toolbarIcon","mixins","easing","sharp","duration","leavingScreen","appBarShift","enteringScreen","menuButtonHidden","drawerPaper","drawerPaperClose","appBarSpacer","fixedHeight","Dashboard","useLocation","queueMatch","useRouteMatch","params","loggedInUser","setLoggedInUser","hash","userInfo","setPrimarySite","oI","UploadManualCheckins","ploc","CssBaseline","noWrap","ModifyTeams","RedirectCalculater","selectFieldSite","UpdateProfile","loadingSave","setLoadingSave","loadingCancel","setLoadingCancel","cachedImg","newValues","run","onCancel","ErrorView","QRLanding","setLocation","setCheckout","locationClient","checkInClient","setUpdateProfile","setCheckInTime","setCheckOutTime","errorView","setErrorView","errorTile","setErrorTitle","setErrorMessage","primaryLoation","setCompleted","primaryLocationExists","setPrimaryLocationExists","setQuestionnairePassResult","checkLocation","match","checkInUser","getStatus","declarationTimer","getQueueOutcome","CurrentStatusView","panel","square","newExpanded","CurrentStatus","setLocationData","checkCurrentStatus","AccessDenied","InterstateVisitorQuestionnaire","URL","VisitorAppliactionHost","Routes","cookieConsent","App","classess","authToken","setAuthToken","register","setRegister","cookies","iOS","setiOS","CookieConsent","cookieAuthorised","setCookieAuthorised","iOSCheck","Token","navigator","platform","userAgent","onAccept","buttonText","buttonStyle","enableDeclineButton","onDecline","declineButtonText","declineButtonStyle","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","createMuiTheme","h1","h2","h4","TimeLine","DayPassCard","Metric","SearchBar","MetricTitle","elevation1","AdminPortal","DrawerMenu","borderTopRightRadius","borderBottomRightRadius","fontWeightMedium","TimelineOppositeContent","TimelineDot","borderStyle","ineHeight","h3","h5","h6","subtitle1","MuiListItemIcon","MuiButton","MuiButtonBase","MuiIconButton","MuiSvgIcon","MuiPaper","MuiAvatar","colorDefault","DoHScreeningTheme","VisitorQuestionnaire","URLData","registered","setRegistered","getElementsByTagName","getAttribute","ReactDOM","render","CookiesProvider","basename","LocalizationProvider","dateAdapter","DateFnsUtils","dateFormats","normalDate","keyboardDate","maxSnack","getElementById"],"mappings":"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","file":"static/js/main.0e97f5c1.chunk.js","sourcesContent":["/* tslint:disable */\r\n/* eslint-disable */\r\n//----------------------\r\n// \r\n// Generated using the NSwag toolchain v13.13.0.0 (NJsonSchema v10.5.0.0 (Newtonsoft.Json v12.0.0.0)) (http://NSwag.org)\r\n// \r\n//----------------------\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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);\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);\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_ = {\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);\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);\r\n }\r\n}\r\n\r\nexport class AutoCheckInClient {\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\r\n }\r\n\r\n autoCheckIn(checkInList: AutoCheckInViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/AutoCheckIn/sipass\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(checkInList);\r\n\r\n let options_ = {\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.processAutoCheckIn(_response);\r\n });\r\n }\r\n\r\n protected processAutoCheckIn(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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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\r\n const content_ = JSON.stringify(booking);\r\n\r\n let options_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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_ = {\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);\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_ = {\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);\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);\r\n }\r\n}\r\n\r\nexport class CheckInClient {\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\r\n }\r\n\r\n checkIn(vm: CheckInRequestViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/CheckIn/CheckIn\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_ = {\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);\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);\r\n }\r\n\r\n setPrimaryLocation(primaryLocationId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/CheckIn/SetPrimaryLocation/{primaryLocationId}\";\r\n if (primaryLocationId === undefined || primaryLocationId === null)\r\n throw new Error(\"The parameter 'primaryLocationId' must be defined.\");\r\n url_ = url_.replace(\"{primaryLocationId}\", encodeURIComponent(\"\" + primaryLocationId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processSetPrimaryLocation(_response);\r\n });\r\n }\r\n\r\n protected processSetPrimaryLocation(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);\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);\r\n }\r\n\r\n getAllTeams(): Promise {\r\n let url_ = this.baseUrl + \"/api/CheckIn/GetDepartments\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetAllTeams(_response);\r\n });\r\n }\r\n\r\n protected processGetAllTeams(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);\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);\r\n }\r\n\r\n getHistroy(personId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/CheckIn/History?\";\r\n if (personId === null)\r\n throw new Error(\"The parameter 'personId' cannot be null.\");\r\n else if (personId !== undefined)\r\n url_ += \"personId=\" + encodeURIComponent(\"\" + personId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetHistroy(_response);\r\n });\r\n }\r\n\r\n protected processGetHistroy(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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n checkout(locationId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/CheckIn/Checkout?\";\r\n if (locationId === null)\r\n throw new Error(\"The parameter 'locationId' cannot be null.\");\r\n else if (locationId !== undefined)\r\n url_ += \"locationId=\" + encodeURIComponent(\"\" + locationId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"PATCH\",\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.processCheckout(_response);\r\n });\r\n }\r\n\r\n protected processCheckout(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);\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);\r\n }\r\n\r\n update(vm: LoginUserViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/CheckIn/Update\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"PUT\",\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.processUpdate(_response);\r\n });\r\n }\r\n\r\n protected processUpdate(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);\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);\r\n }\r\n\r\n getStatus(): Promise {\r\n let url_ = this.baseUrl + \"/api/CheckIn/Status\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetStatus(_response);\r\n });\r\n }\r\n\r\n protected processGetStatus(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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\r\n }\r\n\r\n getQuestions(questionnaireIndex: QuestionnaireIndex | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire?\";\r\n if (questionnaireIndex === null)\r\n throw new Error(\"The parameter 'questionnaireIndex' cannot be null.\");\r\n else if (questionnaireIndex !== undefined)\r\n url_ += \"questionnaireIndex=\" + encodeURIComponent(\"\" + questionnaireIndex) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n getExistingQuestions(questionnaireId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/GetExisitingQuestions?\";\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_ = {\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.processGetExistingQuestions(_response);\r\n });\r\n }\r\n\r\n protected processGetExistingQuestions(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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n getQuestionnaireData(uRLData: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/GetQuestionnaireData?\";\r\n if (uRLData !== undefined && uRLData !== null)\r\n url_ += \"URLData=\" + encodeURIComponent(\"\" + uRLData) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetQuestionnaireData(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionnaireData(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);\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);\r\n }\r\n\r\n deleteQuestionnaireData(qfId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire/DeleteQuestionnaireData?\";\r\n if (qfId === null)\r\n throw new Error(\"The parameter 'qfId' cannot be null.\");\r\n else if (qfId !== undefined)\r\n url_ += \"qfId=\" + encodeURIComponent(\"\" + qfId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\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.processDeleteQuestionnaireData(_response);\r\n });\r\n }\r\n\r\n protected processDeleteQuestionnaireData(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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n getAllTeams(): Promise {\r\n let url_ = this.baseUrl + \"/api/User/GetDepartments\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetAllTeams(_response);\r\n });\r\n }\r\n\r\n protected processGetAllTeams(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);\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);\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_ = {\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.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) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n getSite(locationId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/User/GetSite?\";\r\n if (locationId === null)\r\n throw new Error(\"The parameter 'locationId' cannot be null.\");\r\n else if (locationId !== undefined)\r\n url_ += \"locationId=\" + encodeURIComponent(\"\" + locationId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetSite(_response);\r\n });\r\n }\r\n\r\n protected processGetSite(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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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);\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);\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_ = {\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);\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_ = {\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);\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);\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_ = {\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);\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);\r\n }\r\n\r\n getUsersForPrimaryLocation(locationId: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Persons/primaryLocation?\";\r\n if (locationId === null)\r\n throw new Error(\"The parameter 'locationId' cannot be null.\");\r\n else if (locationId !== undefined)\r\n url_ += \"locationId=\" + encodeURIComponent(\"\" + locationId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetUsersForPrimaryLocation(_response);\r\n });\r\n }\r\n\r\n protected processGetUsersForPrimaryLocation(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);\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);\r\n }\r\n\r\n addUsersToPrimaryLocation(users: UserInfoViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Persons/AddUserstoPrimaryLocation\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(users);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"PUT\",\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.processAddUsersToPrimaryLocation(_response);\r\n });\r\n }\r\n\r\n protected processAddUsersToPrimaryLocation(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);\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);\r\n }\r\n\r\n removeUsersFromPrimaryLocation(users: string[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Persons/RemoveUsersFromPrimaryLocation\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(users);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"PUT\",\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.processRemoveUsersFromPrimaryLocation(_response);\r\n });\r\n }\r\n\r\n protected processRemoveUsersFromPrimaryLocation(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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n getExportsForWorkItems(timezoneOffset: number | undefined, queueWorkItemIds: string[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/exportsforqueueworkitems?\";\r\n if (timezoneOffset === null)\r\n throw new Error(\"The parameter 'timezoneOffset' cannot be null.\");\r\n else if (timezoneOffset !== undefined)\r\n url_ += \"timezoneOffset=\" + encodeURIComponent(\"\" + timezoneOffset) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(queueWorkItemIds);\r\n\r\n let options_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n approveVisitorApplication(qwiVM: QueueWorkItemViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/ApproveVisitorApplication\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(qwiVM);\r\n\r\n let options_ = {\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.processApproveVisitorApplication(_response);\r\n });\r\n }\r\n\r\n protected processApproveVisitorApplication(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);\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);\r\n }\r\n\r\n rejectVisitorApplication(qwiVM: QueueWorkItemViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Questionnaires/RejectVisitorApplication\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(qwiVM);\r\n\r\n let options_ = {\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.processRejectVisitorApplication(_response);\r\n });\r\n }\r\n\r\n protected processRejectVisitorApplication(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);\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);\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_ = {\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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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);\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);\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_ = {\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);\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);\r\n }\r\n\r\n getTraceContacts(queueId: string, start: number | undefined, end: number | undefined, vm: SearchQueueWorkItemsViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/workItems/TraceContacts?\";\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_ = {\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.processGetTraceContacts(_response);\r\n });\r\n }\r\n\r\n protected processGetTraceContacts(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);\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n assignItemToNewQueue(preQueueId: string, workItemId: string, assignments: QueueAssignements): 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(assignments);\r\n\r\n let options_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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);\r\n }\r\n\r\n addFile(queueId: string, workItemId: string, filename: string | null, 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_ = {\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);\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);\r\n }\r\n\r\n getFile(queueId: string, workItemId: string, filename: string | null): 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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n deleteFile(queueId: string, workItemId: string, filename: string | null): 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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n questionnaireFileUpload(personId: string | undefined, questionnaireId: string, filename: string | null, global: boolean | undefined, peronsId: string, body: Blob | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{peronsId}/{questionnaireId}/file/{filename}?\";\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 (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 (peronsId === undefined || peronsId === null)\r\n throw new Error(\"The parameter 'peronsId' must be defined.\");\r\n url_ = url_.replace(\"{peronsId}\", encodeURIComponent(\"\" + peronsId));\r\n if (personId === null)\r\n throw new Error(\"The parameter 'personId' cannot be null.\");\r\n else if (personId !== undefined)\r\n url_ += \"personId=\" + encodeURIComponent(\"\" + personId) + \"&\";\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_ = {\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.processQuestionnaireFileUpload(_response);\r\n });\r\n }\r\n\r\n protected processQuestionnaireFileUpload(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);\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);\r\n }\r\n\r\n getOutcomesWithIdentifiers(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/GetOutcomesWithIdentifiers\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetOutcomesWithIdentifiers(_response);\r\n });\r\n }\r\n\r\n protected processGetOutcomesWithIdentifiers(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);\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);\r\n }\r\n\r\n setPrimarySiteForAdminUser(siteId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/SetPrimarySiteForAdminUser/{siteId}\";\r\n if (siteId === undefined || siteId === null)\r\n throw new Error(\"The parameter 'siteId' must be defined.\");\r\n url_ = url_.replace(\"{siteId}\", encodeURIComponent(\"\" + siteId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processSetPrimarySiteForAdminUser(_response);\r\n });\r\n }\r\n\r\n protected processSetPrimarySiteForAdminUser(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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 : <{ [key: string]: QueueChoiceVm[]; }>JSON.parse(_responseText, this.jsonParseReviver);\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);\r\n }\r\n\r\n getQueueOutcome(outcomeId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/outcomes/{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_ = {\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.processGetQueueOutcome(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueOutcome(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);\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);\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_ = {\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);\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);\r\n }\r\n\r\n setFileFlags(queueId: string, workItemId: string, filename: string | null, 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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\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_ = {\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);\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);\r\n }\r\n\r\n getQueueMembers(queueId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/members\";\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_ = {\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.processGetQueueMembers(_response);\r\n });\r\n }\r\n\r\n protected processGetQueueMembers(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);\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);\r\n }\r\n\r\n addQueueMember(queueId: string, personId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/members/{personId}\";\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 (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_ = {\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.processAddQueueMember(_response);\r\n });\r\n }\r\n\r\n protected processAddQueueMember(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);\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);\r\n }\r\n\r\n removeQueueMember(queueId: string, personId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/{queueId}/members/{personId}\";\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 (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_ = {\r\n method: \"DELETE\",\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.processRemoveQueueMember(_response);\r\n });\r\n }\r\n\r\n protected processRemoveQueueMember(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);\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);\r\n }\r\n\r\n uploadManualCheckIns(checkIns: CheckInUploadViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/upload\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(checkIns);\r\n\r\n let options_ = {\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.processUploadManualCheckIns(_response);\r\n });\r\n }\r\n\r\n protected processUploadManualCheckIns(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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n\r\n getSiteLocations(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Queue/SiteLocations\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetSiteLocations(_response);\r\n });\r\n }\r\n\r\n protected processGetSiteLocations(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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\r\n }\r\n}\r\n\r\nexport class SettingsClient {\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\r\n }\r\n\r\n getAllSettings(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Settings/GetSettings\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetAllSettings(_response);\r\n });\r\n }\r\n\r\n protected processGetAllSettings(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);\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);\r\n }\r\n\r\n getSettingBySetting(setting: Setting | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Settings/GetSetting?\";\r\n if (setting === null)\r\n throw new Error(\"The parameter 'setting' cannot be null.\");\r\n else if (setting !== undefined)\r\n url_ += \"setting=\" + encodeURIComponent(\"\" + setting) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetSettingBySetting(_response);\r\n });\r\n }\r\n\r\n protected processGetSettingBySetting(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);\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);\r\n }\r\n\r\n updateSettings(settings: AllSettingsViewModel): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Settings/UpdateSettings\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(settings);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"PATCH\",\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.processUpdateSettings(_response);\r\n });\r\n }\r\n\r\n protected processUpdateSettings(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);\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);\r\n }\r\n}\r\n\r\nexport class TeamClient {\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\r\n }\r\n\r\n getAllTeams(): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Team/GetTeams\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetAllTeams(_response);\r\n });\r\n }\r\n\r\n protected processGetAllTeams(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);\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);\r\n }\r\n\r\n getUsersForTeam(teamId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Team/UsersInTeam/{teamId}\";\r\n if (teamId === undefined || teamId === null)\r\n throw new Error(\"The parameter 'teamId' must be defined.\");\r\n url_ = url_.replace(\"{teamId}\", encodeURIComponent(\"\" + teamId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\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.processGetUsersForTeam(_response);\r\n });\r\n }\r\n\r\n protected processGetUsersForTeam(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);\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);\r\n }\r\n\r\n removeUsersFromTeam(vm: UserTeamViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Team/RemoveUsersFromTeam\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_ = {\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.processRemoveUsersFromTeam(_response);\r\n });\r\n }\r\n\r\n protected processRemoveUsersFromTeam(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);\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);\r\n }\r\n\r\n addUsersToTeam(vm: UserTeamViewModel[]): Promise {\r\n let url_ = this.baseUrl + \"/api/_admin/Team/adduseroutcomes\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(vm);\r\n\r\n let options_ = {\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.processAddUsersToTeam(_response);\r\n });\r\n }\r\n\r\n protected processAddUsersToTeam(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);\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);\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;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44358\";\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_ = {\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 const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\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);\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 AutoCheckInViewModel {\r\n sipassId: number;\r\n firstname?: string | undefined;\r\n surname?: string | undefined;\r\n entryTime?: string | undefined;\r\n exitTime?: string | undefined;\r\n site?: string | undefined;\r\n phoneNumberDesk?: string | undefined;\r\n phoneNumberMobile?: 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 CheckInRequestViewModel {\r\n queueOutcomeChoiceId: string;\r\n personId: string;\r\n checkInTime?: string | undefined;\r\n checkOutTime?: string | undefined;\r\n}\r\n\r\nexport interface ViewQueueViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n}\r\n\r\nexport interface TeamViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n departmentIdentifier?: DepartmentIdentifier | undefined;\r\n siteIdentifier?: SiteIdentifier | undefined;\r\n}\r\n\r\nexport enum DepartmentIdentifier {\r\n Port_Pirie_Visitor = 0,\r\n Port_Pirie_Contractor = 1,\r\n Hobart_Visitor = 2,\r\n Hobart_Contractor = 3,\r\n}\r\n\r\nexport enum SiteIdentifier {\r\n Port_Pirie = 0,\r\n Hobart = 1,\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 department: string;\r\n primaryLocation?: string | undefined;\r\n}\r\n\r\nexport interface LoginUserViewModel {\r\n firstName: string;\r\n lastName: string;\r\n contactNumber: string;\r\n department: string;\r\n primaryLocation?: string | undefined;\r\n kind: PersonKind;\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 interface CheckInStatusViewModel {\r\n location?: QueueOutcomeChoice[] | undefined;\r\n checkInTime?: string | undefined;\r\n checkOutTime?: string | undefined;\r\n covidTimer?: string | undefined;\r\n declarationTimer?: string | undefined;\r\n error: number;\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 expireInMinutes?: number | undefined;\r\n outcomeIdentifier?: OutcomeIdentifier | undefined;\r\n filterable: boolean;\r\n grouping?: string | undefined;\r\n assignable: boolean;\r\n outcomeParentId?: string | undefined;\r\n outcomeParent?: QueueOutcomeChoice | undefined;\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 queueIndex: QueueIndex;\r\n userQueues?: UserQueue[] | undefined;\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 QueueWorkItem {\r\n id: string;\r\n workItemId?: string | undefined;\r\n workItem?: WorkItem | undefined;\r\n queue?: Queue | undefined;\r\n queueId: string;\r\n status?: QueueWorkItemStatus | undefined;\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}\r\n\r\nexport interface WorkItem {\r\n id: string;\r\n person?: Person | undefined;\r\n personId?: string | undefined;\r\n status?: WorkItemStatus | undefined;\r\n createdAt?: string | undefined;\r\n updatedAt?: string | undefined;\r\n queueWorkItems?: QueueWorkItem[] | undefined;\r\n questionnaireResponse?: QuestionnaireResponse | undefined;\r\n questionnaireResponseId?: string | undefined;\r\n checkInId?: string | undefined;\r\n checkIn?: CheckIn | undefined;\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 currentAudience?: Audience | undefined;\r\n currentAudienceId?: string | undefined;\r\n departmentId: string;\r\n department?: Team | undefined;\r\n primaryLocation?: string | undefined;\r\n kind: PersonKind;\r\n accountType: AccountType;\r\n roles?: UserRole[] | undefined;\r\n fullNameNormalised?: string | undefined;\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 showStepper: boolean;\r\n questionnaireIndex: QuestionnaireIndex;\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 ModifyQueueMember = 16,\r\n ProcessApplications = 22,\r\n IgnoreLocationConstraints = 32,\r\n UploadManualCheckins = 50,\r\n IgnoreAudienceConstraints = 64,\r\n ModifyTeams = 128,\r\n ViewQueues = 256,\r\n ContactTracer = 512,\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 helpText?: string | 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 MultiLineTextField = 10,\r\n FileUpload = 11,\r\n RadioButtonsWithLocationHelper = 12,\r\n Info = 13,\r\n DualDropDown = 14,\r\n}\r\n\r\nexport enum QuestionIntent {\r\n None = 0,\r\n Metadata = 1,\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 ChoiceAlert {\r\n id: string;\r\n title?: string | undefined;\r\n body?: string | 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 SubQuestion {\r\n id: string;\r\n text?: string | undefined;\r\n icon?: 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 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 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 QuestionnaireResponse {\r\n id: string;\r\n person?: Person | undefined;\r\n personId: string;\r\n status?: QuestionnaireStatus | undefined;\r\n audience?: Audience | undefined;\r\n audienceId?: string | undefined;\r\n questionnaire?: Questionnaire | undefined;\r\n questionnaireId?: string | undefined;\r\n createdAt?: string | undefined;\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 queueWorkItemQuestionnaireResponses?: QueueWorkItemQuestionnaireResponse[] | 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 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 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 AuditEventReason {\r\n id: string;\r\n text?: string | undefined;\r\n additionalInformationRequired: boolean;\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 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 enum QuestionnaireIndex {\r\n Site_Locator = 0,\r\n Declaration = 1,\r\n Port_Pirie_Covid_Survey = 2,\r\n Site_Entry_Application = 3,\r\n Hobart_Covid_Survey = 4,\r\n}\r\n\r\nexport interface Team {\r\n id: string;\r\n name?: string | undefined;\r\n departmentIdentifier?: DepartmentIdentifier | undefined;\r\n siteIdentifier?: SiteIdentifier | undefined;\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 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 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 CheckIn {\r\n id: string;\r\n personId: string;\r\n queueOutcomeChoiceId: string;\r\n checkInTime: string;\r\n checkOutTime?: string | undefined;\r\n checkInExpireTime: string;\r\n primaryLocation?: boolean | undefined;\r\n queueWorkItemId: string;\r\n}\r\n\r\nexport enum QueueWorkItemStatus {\r\n CheckIns = 0,\r\n OnSite = 1,\r\n Survey = 2,\r\n Visitor_Approved = 3,\r\n Visitor_Rejected = 4,\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 enum QueueIndex {\r\n Site_locator = 0,\r\n Declaration = 1,\r\n Port_Pirie_Covid_Survey = 2,\r\n Site_Entry_Application = 3,\r\n Hobart_Covid_Survey = 4,\r\n}\r\n\r\nexport interface UserQueue {\r\n person?: Person | undefined;\r\n personId: string;\r\n queue?: Queue | undefined;\r\n queueId: string;\r\n}\r\n\r\nexport enum OutcomeIdentifier {\r\n Port_Pirie_Front_Gate = 0,\r\n Hobart_Front_Gate = 1,\r\n Port_Pirie_Covid_Questionnaire = 2,\r\n Hobart_Covid_Questionnaire = 3,\r\n Port_Pirie_I_Do_Not_Know = 4,\r\n Hobart_I_Do_Not_Know = 5,\r\n Port_Pirie_Other = 6,\r\n Hobart_Other = 7,\r\n Port_Pirie_visiting = 8,\r\n Hobart_Visiting = 9,\r\n Port_Pirie_Site = 10,\r\n Hobart_Site = 11,\r\n Host_Completed = 50,\r\n Awaiting_Approval = 51,\r\n Visitor_Application_Approved = 52,\r\n Visitor_Application_Rejected = 53,\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 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 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 helpText?: string | undefined;\r\n questionData?: QuestionData | undefined;\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 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 HtmlSnippetViewModel {\r\n id: string;\r\n text?: string | undefined;\r\n}\r\n\r\nexport interface QuestionData {\r\n visibleForQueues?: 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 showStepper: boolean;\r\n questionnaireresponseId?: string | undefined;\r\n}\r\n\r\nexport interface QuestionResponseVm {\r\n choiceId: string;\r\n value?: string | undefined;\r\n}\r\n\r\nexport interface CreateQuestionnaireViewModel {\r\n locationId: string;\r\n resetMetadataQuestions: boolean;\r\n questionnaireIndex: QuestionnaireIndex;\r\n}\r\n\r\nexport interface NewQuestionnaireResponse {\r\n id: string;\r\n}\r\n\r\nexport interface QuestionnaireForwardingViewModel {\r\n id: string;\r\n urlString?: string | undefined;\r\n questionnaireId: string;\r\n questionaire?: FullQuestionnaireViewModel | undefined;\r\n queueWorkItemId: string;\r\n queueWorkItem?: QueueOutcomeViewModel | undefined;\r\n queueId: 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 showStepper: boolean;\r\n}\r\n\r\nexport interface QuestionnaireAudienceViewModel {\r\n audienceId: string;\r\n audience?: 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 QueueOutcomeViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n filterable: boolean;\r\n outcomeParent?: QueueOutcomeChoice | undefined;\r\n}\r\n\r\nexport interface FinaliseResultViewModel {\r\n status: QuestionnaireStatus;\r\n queueWorkItem?: QueueWorkItemViewModel | undefined;\r\n}\r\n\r\nexport interface QueueWorkItemViewModel {\r\n id: string;\r\n status?: QueueWorkItemStatus | undefined;\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 message?: string | undefined;\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 WorkItemViewModel {\r\n id?: string | undefined;\r\n person: PersonViewModel;\r\n createdAt?: string | undefined;\r\n questionnaireResponse?: QuestionnaireWorkItemResponseViewModel | undefined;\r\n checkIn?: CheckIn | undefined;\r\n questionnaireResponseId?: string | undefined;\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 departmentId: string;\r\n department?: Team | undefined;\r\n primaryLocation?: string | undefined;\r\n emailAddress?: string | undefined;\r\n sex?: string | undefined;\r\n generalPractitionerName?: string | undefined;\r\n generalPractitionerPractice?: 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 createdAt: string;\r\n}\r\n\r\nexport interface LocationViewModel {\r\n id: string;\r\n name?: string | undefined;\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 interface AuditFieldViewModel {\r\n fieldName?: string | undefined;\r\n newValue?: string | undefined;\r\n oldValue?: string | undefined;\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 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 enum ReferralType {\r\n Saliva = 0,\r\n Covid = 1,\r\n}\r\n\r\nexport interface LoginResponseViewModel {\r\n token?: string | undefined;\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 department: string;\r\n primaryLocation?: string | undefined;\r\n metadataQuestions?: MetadataQuestionsViewModel[] | undefined;\r\n kind?: PersonKind | undefined;\r\n locations?: QueueChoiceVm[] | undefined;\r\n roles?: Role[] | undefined;\r\n departments?: TeamViewModel[] | 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 QueueChoiceVm {\r\n id: string;\r\n name: string;\r\n expireInMinutes?: number | undefined;\r\n filterable: boolean;\r\n assignable: boolean;\r\n grouping?: string | undefined;\r\n children?: QueueChoiceVm[] | undefined;\r\n outcomeParentId?: string | undefined;\r\n error: number;\r\n outcomeIdentifier?: OutcomeIdentifier | 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 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 QuestionnaireEditModel {\r\n name: string;\r\n audiences: string[];\r\n questions: QuestionEditModel[];\r\n showStepper: boolean;\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 helpText?: string | 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 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 queueIndex: QueueIndex;\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 departments?: string[] | undefined;\r\n outcomes?: string[] | undefined;\r\n excludes?: string[] | undefined;\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 QueueAssignements {\r\n assignToQueueVms?: AssignToQueueViewModel[] | undefined;\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}\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 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}\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 outcomeParentId?: string | undefined;\r\n}\r\n\r\nexport interface QuesitonnaireResponseListViewModel {\r\n id: string;\r\n questionnaireName?: string | undefined;\r\n}\r\n\r\nexport interface UserQueueViewModel {\r\n person?: PersonViewModel | undefined;\r\n queue?: QueueViewModel | undefined;\r\n}\r\n\r\nexport interface CheckInUploadViewModel {\r\n site?: string | undefined;\r\n building?: string | undefined;\r\n room?: string | undefined;\r\n contactNumber?: string | undefined;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n timeIn?: string | undefined;\r\n timeOut?: string | undefined;\r\n department?: string | undefined;\r\n date?: string | undefined;\r\n personId?: string | undefined;\r\n departmentId?: string | undefined;\r\n}\r\n\r\nexport interface SettingsViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n setting: Setting;\r\n value?: string | undefined;\r\n secondaryValue?: string | undefined;\r\n}\r\n\r\nexport enum Setting {\r\n CovidTimer = 0,\r\n Declaration = 1,\r\n DefaultExipreTimer = 2,\r\n LGA_Guide_from_SA_Health_URL = 3,\r\n COVID_TEAM = 4,\r\n Sender_Email = 5,\r\n}\r\n\r\nexport interface AllSettingsViewModel {\r\n settings?: SettingsViewModel[] | undefined;\r\n locations?: QueueChoiceVm[] | undefined;\r\n}\r\n\r\nexport interface UserTeamViewModel {\r\n teamId: string;\r\n personId: string;\r\n canManageTeamMembers: boolean;\r\n canViewTeam: boolean;\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 { 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 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 { QueueChoiceVm, TeamViewModel } from \"../common/client\";\r\n\r\nexport enum QueueWorkItem {\r\n New,\r\n OnHold,\r\n InProgress,\r\n Closed,\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 ModifyQueueMember = 0x10,\r\n ContactTracer = 0x200,\r\n IgnoreLocationConstraints = 0x20,\r\n IgnoreAudienceConstraints = 0x40,\r\n ModifyTeams = 0x80,\r\n ViewQuestionnaire = 0x100,\r\n ProcessApplications = 0x16,\r\n UploadManualCheckins = 0x32,\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 covidQuestionnaire: string | null;\r\n personaType: PersonKind;\r\n loggedIn: boolean;\r\n token: string;\r\n roles: BasicRole[];\r\n locationHistory: Location[];\r\n id: string;\r\n rememberMe: boolean;\r\n department: string;\r\n departments: TeamViewModel[];\r\n primaryLocation: string;\r\n locations: QueueChoiceVm[];\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 { Satellite } from \"@material-ui/icons\";\r\nimport 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\r\n return {\r\n covidQuestionnaire: 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 locationHistory: [],\r\n id: '',\r\n rememberMe: true,\r\n department: \"\",\r\n departments: [],\r\n primaryLocation: \"\",\r\n locations: []\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 { 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","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}","import React from \"react\";\r\nimport {\r\n Box,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n 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 {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 \r\n {\r\n props.onAddRow();\r\n }}\r\n />\r\n \r\n \r\n {props.row >= 1 && (\r\n \r\n \r\n {\r\n props.onRemoveRow();\r\n }}\r\n />\r\n \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 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 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\nimport {Accordion, AccordionSummary,AccordionDetails} from \"@material-ui/core\";\r\n\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 helpText?: string;\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 {props.helpText ? (\r\n \r\n \r\n {sub.text}\r\n {props.required && (\r\n *\r\n )}\r\n \r\n \r\n {props.helpText}\r\n \r\n \r\n ):\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 );\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 //backgroundColor: \"#ffffff!important\",\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 btn: {\r\n \"& .MuiListItem-root\": {backgroundColor: \"#fff!important\",},\r\n backgroundColor: \"white!important\",\r\n color: theme.palette.primary.main,\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\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\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\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 {\r\n QuestionChoice,\r\n QuestionChoiceViewModel,\r\n} 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: QuestionChoiceViewModel[] | 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 {buttons &&\r\n buttons.map((button: QuestionChoiceViewModel, 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\nexport const QuestionItemYesNoButtons = (props: {\r\n buttons: QuestionChoiceViewModel[] | undefined;\r\n onSelected: (selected: QuestionChoiceViewModel) => 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] =\r\n 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 {props.buttons &&\r\n props.buttons.map((button: QuestionChoiceViewModel, 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","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","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 if (!res.ok) {\r\n throw new Error(JSON.stringify(res));\r\n }\r\n\r\n return res.json();\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 department: string\r\n) =>\r\n postJson(\"user/gate\", {\r\n firstName,\r\n lastName,\r\n contactNumber,\r\n kind,\r\n department,\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 query: any = null,\r\n outcomes: string[] = [],\r\n departments: 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 departments,\r\n query,\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 removeQueueMember = (\r\n roleId: string,\r\n personId: string,\r\n token?: string\r\n) => deleteJson(`_admin/queue/${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 getQueueMembers = (queueId: string, token?: string) =>\r\n getJson(`_admin/queue/${queueId}/members`, token);\r\n\r\nexport const addQueueMember = (\r\n queueId: string,\r\n personId: string,\r\n token?: string\r\n) => postJson(`_admin/queue/${queueId}/members/${personId}`, null, token);\r\n\r\nexport const checkForUser = (token:string) => getJson(`checkin/status`, token);\r\n\r\nexport const getSiteLocations = ( token: string) => getJson(`_admin/Queue/SiteLocations`, token);\r\n\r\n\r\nexport const setPrimaryLocation = (locationId: string, token: string) => postJson(`CheckIn/SetPrimaryLocation/${locationId}`,null, token);\r\n\r\nexport const getAllSettings = (token: string) => getJson(`_admin/settings/getsettings`, token);\r\n\r\nexport const GetOutcomesWithIdentifiers = (token: string) => getJson(`_admin/queue/GetOutcomesWithIdentifiers`, token);\r\n\r\nexport const SetPrimarySiteForAdminUser = (siteId: string, token: string) => postJson(`_admin/queue/SetPrimarySiteForAdminUser/${siteId}`,null, token);","import React, { useContext, useEffect, useState } from \"react\";\r\nimport {\r\n Backdrop,\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n CircularProgress,\r\n Container,\r\n createStyles,\r\n Divider,\r\n FormControl,\r\n FormControlLabel,\r\n FormHelperText,\r\n Grid,\r\n InputLabel,\r\n makeStyles,\r\n MenuItem,\r\n Select,\r\n TextField,\r\n Theme,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { getSiteLocations, setPrimaryLocation } from \"../../../data/api\";\r\nimport { Context } from \"../../../state/Store\";\r\nimport { OutcomeIdentifier, QueueChoiceVm } from \"../../../common/client\";\r\n//import { ValidatedForm } from \"../components/core/forms/ValidatedForm\";\r\n//import { Simulate } from \"react-dom/test-utils\";\r\n//import { OutcomeIdentifier, QueueChoiceVm } from \"../common/client\";\r\n//import { Questionnaire } from \"../components/core/QuestionSlider/Questionnaire\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n text: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n textFields: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n paper: {\r\n marginTop: theme.spacing(0),\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 image: {},\r\n selectField: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 selectFieldOne: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 selectFieldtwo: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 error: {\r\n color: \"red\",\r\n paddingLeft: \"14px\",\r\n fontSize: \"0.9rem!important\",\r\n letterSpacing: \"0.0075rem\",\r\n },\r\n })\r\n);\r\n\r\nfunction QuestionItemDropdown() {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nexport const SiteBuildingDropdown = () => {\r\n const state = useContext(Context);\r\n const BLANKID = \"00000000-0000-0000-0000-000000000000\";\r\n const [site, setSite] = useState(\"\");\r\n const [allSites, setAllSites] = useState([]);\r\n const [building, setBuilding] = useState(\"\");\r\n const [allLocations, setAllLocations] = useState([]);\r\n const classes = useStyles();\r\n const [allBuildings, setAllBuildings] = useState([])\r\n const [formErrors, setFormErrors] = useState({\r\n building: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n site: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\r\n\r\n const isFormValid = (): boolean => {\r\n let valid = true;\r\n let errors = { ...formErrors };\r\n \r\n if (building.length === 0) {\r\n errors.building.valid = false;\r\n errors.building.errorMessage = \"Building is required\";\r\n valid = false;\r\n } else {\r\n errors.building.valid = true;\r\n errors.building.errorMessage = \"\";\r\n }\r\n \r\n if (site.length === 0) {\r\n errors.site.valid = false;\r\n errors.site.errorMessage = \"Site is required\";\r\n valid = false;\r\n } else {\r\n errors.site.valid = true;\r\n errors.site.errorMessage = \"\";\r\n }\r\n \r\n setFormErrors(errors);\r\n return valid;\r\n };\r\n\r\n\r\n const handleSiteChange = (event: any) => {\r\n setSite(event.target.value as string);\r\n var buildings = allLocations.filter(\r\n (item: any) => item.outcomeParentId === (event.target.value as string)\r\n );\r\n buildings.length > 0\r\n ? setAllBuildings(buildings)\r\n : setAllBuildings([{ id: BLANKID, name: \"No Buildings for this site\" }]);\r\n };\r\n \r\n const handleBuildingChange = (event: any) => {\r\n setBuilding(event.target.value as string);\r\n \r\n };\r\n\r\n const filterQuestionnaires = (data: QueueChoiceVm[]) => {\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Hobart_Covid_Questionnaire\r\n );\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !==\r\n OutcomeIdentifier.Port_Pirie_Covid_Questionnaire\r\n );\r\n return data;\r\n };\r\n\r\n const LoadFunction = () => {\r\n getSiteLocations(state.state.user!.token).then((res) => {\r\n var loc: QueueChoiceVm[];\r\n var allloc = res;\r\n res = filterQuestionnaires(res);\r\n setAllLocations(res);\r\n setAllSites(res.filter((item: QueueChoiceVm) => item.outcomeParentId === null));\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n LoadFunction()\r\n \r\n }, [])\r\n\r\n return (\r\n <>\r\n {allSites.length > 0 && (\r\n <>\r\n \r\n
\r\n \r\n \r\n Site *\r\n
\r\n \r\n \r\n {allBuildings.length > 0 ? (\r\n allSites.map((element: any) => {\r\n return (\r\n \r\n {element.name}\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n Site not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.site.valid\r\n ? formErrors.site.errorMessage\r\n : \"\"}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n Building *\r\n
\r\n \r\n \r\n {allBuildings.length > 0 ? (\r\n allBuildings.map((element: any) => {\r\n return (\r\n \r\n {element.name}\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n buildings not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.building.valid\r\n ? formErrors.building.errorMessage\r\n : \"\"}\r\n \r\n \r\n
\r\n \r\n )}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default QuestionItemDropdown\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, DragEvent, useRef } from \"react\";\r\nimport { styled } from \"@material-ui/core/styles\";\r\n\r\nexport function FileUpload({\r\n multiple,\r\n uploadFile,\r\n title\r\n}: {\r\n uploadFile: (f: File) => void;\r\n title: string;\r\n multiple?: boolean;\r\n}) {\r\n const fileRef = useRef(null);\r\n\r\n return (\r\n <>\r\n \r\n e.preventDefault()}\r\n onDrop={handleDrop}\r\n >\r\n {title}\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 handleDrop(e: DragEvent) {\r\n e.preventDefault();\r\n uploadFileList(e.dataTransfer?.files);\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 uploadFile(f);\r\n }\r\n }\r\n}\r\n\r\nconst FileDropArea = styled(\"div\")(({ theme }) => ({\r\n width: \"75%\",\r\n border: \"2px dashed\",\r\n textAlign: \"center\",\r\n margin: \"0 auto\",\r\n display: \"flex\",\r\n padding: theme.spacing(2),\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n}));\r\n","import React, { useEffect, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { FileUpload } from \"../File/FileUpload\";\r\nimport { FormControl } from \"@react-typed-forms/core\";\r\nimport { QueueClient, WorkItemFileViewModel, ApiException, QuestionnaireForwardingViewModel, } from \"../../../common/client\";\r\nimport { useApiClient } from \"../../../common/apiclients\";\r\nimport { Divider, makeStyles, ThemeProvider } from \"@material-ui/core\";\r\nimport CancelOutlinedIcon from \"@material-ui/icons/CancelOutlined\";\r\nimport { CommonBTN } from \"../Buttons/CommonBTN\";\r\n\r\ntype ItemFileModel = WorkItemFileViewModel & {\r\n action?: boolean;\r\n };\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n text: {\r\n paddingLeft: \"40px\", \r\n paddingRight: \"40px\" \r\n },\r\n \r\n}));\r\n\r\nconst QuestionItemUploadFile = ({\r\n control,\r\n readonly,\r\n questionnaireInfo\r\n}: {\r\n control: FormControl;\r\n readonly?: boolean;\r\n questionnaireInfo?: QuestionnaireForwardingViewModel;\r\n}) => {\r\n const classes = useStyles();\r\n const [files, setFiles] = useState([]);\r\n const queueClient = useApiClient(QueueClient);\r\n const [uploadFiles, setUploadFiles] = useState();\r\n const queueId = questionnaireInfo ? questionnaireInfo!.queueId : \"\";\r\n const workItemId = questionnaireInfo ? questionnaireInfo!.queueWorkItemId : \"\";\r\n\r\n console.log(questionnaireInfo)\r\n\r\n const sendFiles = (files: File[]) => {\r\n var fileNames = control.value ? control.value : \"\";\r\n files.forEach((file: File) => {\r\n fileNames = fileNames + file.name + \", \";\r\n });\r\n control.setValue(fileNames);\r\n uploadFileList(files);\r\n };\r\n\r\n const removeFile = (fileName: string) => {\r\n setFiles(files.filter((x: File) => x.name !== fileName));\r\n };\r\n\r\n function uploadFileList(files?: File[] | 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 setUploadFiles((uploadFiles) => [...(uploadFiles ?? []), uploadingFile]);\r\n try {\r\n const newFile = await queueClient.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 function updateFile(\r\n f: WorkItemFileViewModel,\r\n update: (f: WorkItemFileViewModel) => WorkItemFileViewModel\r\n ) {\r\n // setFiles((uploadFiles) => uploadFiles?.map((fi) => (fi === f ? update(f) : fi)));\r\n }\r\n\r\n return (\r\n
\r\n setFiles([...files, x])}\r\n />\r\n {files.length > 0 && (\r\n
\r\n
\r\n

\r\n Files to be uploaded:{\" \"}\r\n

(click name to remove file)
\r\n \r\n
\r\n {files.map((file: File) => (\r\n
removeFile(file.name)}>\r\n

{file.name}

\r\n\r\n \r\n
\r\n ))}\r\n
\r\n sendFiles(files)}\r\n />\r\n
\r\n
\r\n )}\r\n {control.value && (\r\n
\r\n \r\n

Files Successfully Uploaded:

\r\n {control.value?.split(\",\").map((fileName: string) => (\r\n

{fileName}

\r\n ))}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default QuestionItemUploadFile;\r\n","import React, {\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 QuestionnaireForwardingViewModel,\r\n QuestionAdminViewModel,\r\n QuestionType,\r\n Setting,\r\n SettingsViewModel,\r\n} from \"../../../common/client\";\r\nimport {\r\n QuestionItemNestedSubQuestion,\r\n QuestionItemSubQuestion,\r\n QuestionSubQuestion,\r\n} from \"./QuestionItemSubQuestion\";\r\nimport {SiteBuildingDropdown} from \"./QuestionItemDropdown\"\r\nimport { Box, Collapse } from \"@material-ui/core\";\r\nimport { QuestionRepeaterHeader } from \"./QuestionItemHeader\";\r\nimport {\r\n\r\n makeAddressFormDef,\r\n\r\n} from \"../Address/AddressComplete\";\r\nimport {\r\n QuestionItemNestedYesNoButtons,\r\n QuestionItemYesNoButtons,\r\n} from \"./QuestionItemYesNoButtons\";\r\nimport { CommonBTN } from \"../Buttons/CommonBTN\";\r\nimport FileUplaod from \"./QuestionItemUploadFile\";\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 settings,\r\n questionnaireInfo\r\n}: {\r\n question: IQuestion;\r\n control: BaseControl;\r\n parentHidden: boolean;\r\n forceShow: boolean;\r\n readonly: boolean;\r\n settings?: SettingsViewModel[];\r\n questionnaireInfo?: QuestionnaireForwardingViewModel;\r\n}): ReactElement {\r\n const fc = control as FormControl;\r\n const hidden = parentHidden || (question.hidden && !forceShow);\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 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 \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 \r\n );\r\n case QuestionType.Grouped:\r\n return (\r\n
;\r\n\r\n function showQuestionnaires(list: BasicQuestionnaireViewModel[]) {\r\n return (\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 async function loadQuestionnaires() {\r\n setQuestionnaires(await client.getQuestionnaires());\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 TeamManager from \"./views/Departments/TeamManager\";\r\nimport SummaryView from \"../../modules/admin/views/SummaryView\";\r\nimport { QuestionnaireEditor } from \"./views/Questionnaire/QuestionnaireEditor\";\r\nimport { Temp } from \"./views/TEMP\";\r\nimport { QueueAccess } from \"./views/QueueManagement/QueueAccess\";\r\nimport RoleManager from \"./views/RoleManager/RoleManager\";\r\nimport QueueManager from \"./views/QueueManager/QueueManager\";\r\nimport { Context } from \"../../state/Store\";\r\nimport { Permissions, QueueChoiceVm } from \"../../common/client\";\r\nimport { UserPermissions } from \"../../state/State.model\";\r\nimport { hasPermission } from \"../utils/permisson\";\r\nimport { UploadCSV } from \"./views/UploadCSV/UploadCSV\";\r\nimport PrimaryLocationManager from \"./views/PrimaryLocationManager/PrimaryLocationManager\";\r\nimport Settings from \"./views/Settings/Settings\";\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[],site: QueueChoiceVm, redirectTo: string) {\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 \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 )}\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\r\n {hasPermission(state.user, UserPermissions.ModifyRoles) && (\r\n \r\n \r\n \r\n )}\r\n {hasPermission(state.user, UserPermissions.ModifyQueueMember) && (\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\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 { 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 { 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 grouping: \"\",\r\n notificationEmail: \"\",\r\n id: control(undefined),\r\n filterable: false,\r\n assignable: false,\r\n outcomeParentId: \"\"\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});\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 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 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 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: '20ch',\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\r\n} from \"date-fns\";\r\nimport {withStyles} from \"@material-ui/core/styles\";\r\nimport { setSyntheticLeadingComments } from \"typescript\";\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 const [open, setOpen] = React.useState(undefined);\r\n const {disabled, isDatePickerExpanded, onClose, onOpen} = props\r\n\r\n const [value, setValue] = React.useState>([startOfToday(), 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 //open={open}\r\n {...AttributeController}\r\n calendars={1}\r\n value={value}\r\n allowSameDateSelection={true}\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 if (newValue[0].toString() === newValue[1].toString())\r\n {\r\n setOpen(false);\r\n }\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 '&.InProgress': {\r\n backgroundColor: theme.DoH.color.exemption\r\n },\r\n '&.OnHold': {\r\n backgroundColor: theme.DoH.color.fail\r\n },\r\n '&.Closed': {\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: '60%',\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 {Box, IconButton, Tooltip} from \"@material-ui/core\";\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\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)","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 {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\r\n }, [queueId, workItemId]);\r\n\r\n return loading || !files ? (\r\n \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\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 \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 {\r\n QuestionAdminViewModel,\r\n QuestionChoiceViewModel,\r\n QuestionType,\r\n} from \"../../../common/client\";\r\nimport { AnswersState, GroupAnswerValue } from \"./index\";\r\nimport { FC, ReactElement, useMemo } from \"react\";\r\n\r\nexport type RenderQuestionAnswerProps = {\r\n question: QuestionAdminViewModel;\r\n choice?: QuestionChoiceViewModel;\r\n value: any;\r\n helperText?: string;\r\n};\r\n\r\nexport function QuestionnaireAnswers({\r\n questions,\r\n answers,\r\n RenderQuestion,\r\n}: {\r\n questions: QuestionAdminViewModel[];\r\n answers: AnswersState;\r\n RenderQuestion: FC;\r\n}) {\r\n const questionsWithAnswers = useMemo(\r\n () => questions.filter((q) => Boolean(answers[q.id])),\r\n [questions, answers]\r\n );\r\n return (\r\n <>\r\n {questionsWithAnswers.map((qav) => {\r\n const answer = answers[qav.id];\r\n const helperText = qav.helpText;\r\n const selChoice = qav.choices.find((q) => q.id === answer.choiceId);\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n}\r\n\r\n// export function withGroupElement(\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\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 {\"Phone\"}:{\" \"}\r\n {person.contactNumber}\r\n \r\n \r\n {\"Department\"}:{\" \"}\r\n {person.department!.name}\r\n \r\n {/* \r\n {\"Address\"}:{\" \"}\r\n {person.address}\r\n */}\r\n {/* \r\n {\"DOB\"}:{\" \"}\r\n {person.shortDateOfBirth}\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 helperText,\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 {\"\\n\\n\"}\r\n \r\n {q.helpText}\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 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 { 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\n\r\nexport function QueueWorkItemResponses({\r\n questionnaire,\r\n queueId\r\n}: {\r\n questionnaire: QuestionnaireAndResponsesVm;queueId: string;\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 queueId={queueId}\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}) {\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 \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 {/* \r\n props.onEdit(selectedQuestionnaire!.id)}\r\n disabled={!selectedQuestionnaire}\r\n >\r\n \r\n */}\r\n \r\n setSavePdf((s) => s + 1)}\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 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 Typography from \"@material-ui/core/Typography\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport PhoneIcon from \"@material-ui/icons/Phone\";\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 {\r\n AuditTimeLine,\r\n CommentsTimeLine,\r\n QuestionTimeLine,\r\n SkeletonTimeLine,\r\n} from \"../../../../components/muiCore/TimeLine\";\r\nimport * as api from \"../../../../data/api\";\r\nimport { Context } from \"../../../../state/Store\";\r\nimport { useSignalR } from \"../../../utils/signalr\";\r\nimport { HubConnection } from \"@microsoft/signalr\";\r\nimport { QueueWorkItemFiles } from \"./QueueWorkItemFiles\";\r\nimport {\r\n QuesitonnaireResponseListViewModel,\r\n QuestionnaireClient,\r\n QuestionnaireResponseViewModel,\r\n QuestionnairesClient,\r\n QuestionResponseViewModel,\r\n QueueClient,\r\n QueueWorkItemViewModel,\r\n} from \"../../../../common/client\";\r\nimport { Button, Menu, MenuItem } from \"@material-ui/core\";\r\nimport {\r\n Page,\r\n PDFDownloadLink,\r\n View,\r\n Text,\r\n Document,\r\n StyleSheet,\r\n} from \"@react-pdf/renderer\";\r\nimport { Questionnaire } from \"../../../../components/core/QuestionSlider/Questionnaire\";\r\nimport { IQuestion } from \"../../../../models/Question\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport { Question } from \"../../../../components/core/QuestionSlider/QuestionItem\";\r\nimport { GenerateQuestionnairePDF } from \"../../../../components/core/PDFGenerator/GeneratePDF\";\r\nimport {\r\n QueueWorkItemQuestions,\r\n QueueWorkItemResponses,\r\n} from \"./QueueWorkItemResponses\";\r\nimport { SpeedDial, SpeedDialAction } from \"@material-ui/lab\";\r\nimport SpeakerNotesIcon from \"@material-ui/icons/SpeakerNotes\";\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 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 heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n fontWeight: theme.typography.fontWeightRegular,\r\n },\r\n padding: {\r\n \"&.MuiBox-root\": {\r\n padding: \"24px 0 0 24px\",\r\n },\r\n },\r\n speedDial: {\r\n //position: \"absolute\",\r\n //bottom: theme.spacing(2),\r\n //right: theme.spacing(2),\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}) => {\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 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(0)}\r\n />\r\n {/* } label=\"Audit\" {...a11yProps(2)} /> */}\r\n } label=\"Documents\" {...a11yProps(1)} />\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 {\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 {\r\n arrayControl,\r\n buildGroup,\r\n FormArray,\r\n useControlValue,\r\n} from \"@react-typed-forms/core\";\r\nimport {\r\n AssignToQueueViewModel, QueueAssignements,\r\n QueueChoiceVm,\r\n QueueClient,\r\n QueueViewModel,\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\nimport {FTextField} from \"../../../../common/formComponents/FTextField\";\r\nimport {FCheckbox} from \"../../../../common/formComponents/FCheckbox\";\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\ntype assignToQueueWithEnabled = AssignToQueueViewModel & { enabled: boolean, name: string };\r\n\r\nconst FormDef = buildGroup()({\r\n outcomeIds: [],\r\n newQueueId: \"\",\r\n enabled: false,\r\n name: \"\"\r\n});\r\n\r\nconst fullFormDef = buildGroup()({\r\n assignToQueueVms: arrayControl(FormDef),\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: QueueViewModel[];\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 \r\n\r\n const [form] = useState(fullFormDef);\r\n const fields = form.fields;\r\n const selectedQueueId = \"\";\r\n const client = useApiClient(QueueClient);\r\n const [outcomes, setOutcomes] = useState<{ [id: string]: QueueChoiceVm[] }>();\r\n\r\n useEffect(() => {\r\n if (open && queues) {\r\n const values = queues\r\n .filter((x) => x.id !== currentQueueId)\r\n .map((x) => ({ newQueueId: x.id, enabled: false, name: x.name, outcomeIds: [] }));\r\n\r\n form.setValue({ assignToQueueVms: values });\r\n\r\n //form.setValue({ outcomeIds: [], newQueueId: \"\" }, true);\r\n }\r\n }, [open, queues]);\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 {(elements)=>\r\n elements.map((x)=> {\r\n \r\n return (
\r\n \r\n {Boolean(outcomes?.[x.fields.newQueueId.value]?.length) && (\r\n \r\n \r\n {(cp) =>\r\n outcomes![x.fields.newQueueId.value]\r\n .filter((o) => o.assignable)\r\n .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 onAssignFormSubmit(false);\r\n onClose();\r\n }}\r\n // disabled={checkselection()}\r\n >\r\n Assign\r\n \r\n {\r\n onAssignFormSubmit(true);\r\n onAssignAndClose();\r\n }}\r\n // disabled={checkselection()}\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 \r\n const formData=form.toObject().assignToQueueVms.filter(x=>x.enabled);\r\n \r\n const res=await client.assignItemToNewQueue(currentQueueId, workItemId!, { assignToQueueVms: formData })\r\n \r\n if(res!=0)\r\n {\r\n enqueueSnackbar(\"New work item assigned\", { variant: \"success\" });\r\n }\r\n \r\n }\r\n \r\n function checkselection()\r\n {\r\n const rest= form.toObject().assignToQueueVms.filter(x=>x.enabled).length>0;\r\n return rest;\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 { Accordion, AccordionDetails, AccordionSummary, Paper, Typography } from \"@material-ui/core\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\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 \".MuiAccordionSummary-root.Mui-expanded\": {\r\n minHeight: \"45px\",\r\n height: \"45px!important\",\r\n //min-height: \"50px!important\"\r\n }\r\n ,\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 accordionHeader: {\r\n padding: \"5px 5px 5px 10px\",\r\n borderBottom: \"1px inset\",\r\n marginBottom: \"10px\",\r\n marginLeft: \"-15px\",\r\n },\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 const accordion = props.accordion ? true: false;\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 return (\r\n <>\r\n {!accordion ? (\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 {nodes.length === 0 ? (\r\n \r\n ) : (\r\n \r\n \r\n
\r\n } className={classes[\".MuiAccordionSummary-root.Mui-expanded\"]}>\r\n
{props.header}
\r\n
\r\n
\r\n \r\n
\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\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CbxTree;\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 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, {\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 Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Box,\r\n Button,\r\n Checkbox,\r\n CircularProgress,\r\n DialogTitle,\r\n Divider,\r\n FormControlLabel,\r\n Grid,\r\n GridSize,\r\n IconButton,\r\n makeStyles,\r\n Switch,\r\n TextField,\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,\r\n startOfToday,\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,\r\n UserMinusSolid,\r\n UserPlusSolid,\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 CheckCircleOutlineOutlinedIcon from \"@material-ui/icons/CheckCircleOutlineOutlined\";\r\nimport {\r\n createStyles,\r\n Theme,\r\n withStyles,\r\n WithStyles,\r\n} from \"@material-ui/core/styles\";\r\nimport CancelOutlinedIcon from \"@material-ui/icons/CancelOutlined\";\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 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 AddCircleOutlineIcon from \"@material-ui/icons/AddCircleOutline\";\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 EditQueueChoiceVm,\r\n LoginUserViewModel,\r\n OutcomeIdentifier,\r\n PersonKind,\r\n PersonsClient,\r\n QuestionChoice,\r\n QuestionnaireClient,\r\n QuestionnairesClient,\r\n QueueChoiceVm,\r\n QueueClient,\r\n QueueIndex,\r\n QueueOutcomeViewModel,\r\n QueueViewModel,\r\n QueueWorkItem,\r\n QueueWorkItemStatus,\r\n QueueWorkItemViewModel,\r\n SiteIdentifier,\r\n TeamClient,\r\n TeamViewModel,\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 { RolesSoild } from \"../../../components/core/Manager/Icons/Icons\";\r\nimport AccessTimeIcon from \"@material-ui/icons/AccessTime\";\r\nimport DescriptionOutlinedIcon from \"@material-ui/icons/DescriptionOutlined\";\r\nimport { couldStartTrivia } from \"typescript\";\r\nimport { ConsoleLogger } from \"@microsoft/signalr/dist/esm/Utils\";\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 useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n button: {\r\n borderRadius: \"25px\",\r\n maxHeight: \"45px\",\r\n marginTop: \"5px\",\r\n alignSelf: \"\",\r\n },\r\n\r\n excludeAccordion: {\r\n \"& .MuiAccordionSummary-root\": {\r\n height: \"50px!important\",\r\n },\r\n },\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 departments?: string[];\r\n excluded?: string[];\r\n}\r\n\r\nconst ItemsPerPage = 100;\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, site }: { queues: QueueViewModel[], site: QueueChoiceVm }) {\r\n const { enqueueSnackbar } = useSnackbar();\r\n const { queueId } = useParams<{ queueId: string }>();\r\n const currentQueue = queues.find((q) => q.id === queueId)!;\r\n const classes = useStyles();\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 const teamClient = useApiClient(TeamClient);\r\n //GLOBAL STATE\r\n const { state } = useContext(Context);\r\n const userOffset = new Date().getTimezoneOffset() * 60 * 1000;\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 const [teams, setTeams] = useState();\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.CheckIns],\r\n after: startOfToday(),\r\n before: endOfToday(),\r\n excluded: [],\r\n });\r\n const [sitesFilter, setSitesFilter] = useState([]);\r\n const [qwi, setQwi] = useState();\r\n function setSearchFilters(newFilter: SearchFilter) {\r\n _setSearchFilters((sf) => (deepEqual(sf, newFilter) ? sf : newFilter));\r\n }\r\n const [defaultExcludes, setDefaultExcludes] = useState([]);\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 const [pass, setPass] = useState(0);\r\n const [fail, setFail] = useState(0);\r\n const [showQuestionnaire, setShowQuestionnaire] = useState(false);\r\n const [queueChanged, setQueueChanged] = useState();\r\n const [assignToQueueMode, setAssignToQueueMode] = useState(false);\r\n const [excludeFilter, setExcludeFilter] = useState();\r\n const [referralFormInitiated, setReferralFormInitiated] =\r\n useState(false);\r\n const [referralFormFinalised, setReferralFormFinalised] =\r\n useState(false);\r\n const [selectedExcludes, setSelectedExcludes] = useState();\r\n const [metricCatSelect, setMetricCatSelect] = useState(false);\r\n const [applicationAcceptDialogOpen, setApplicationAcceptDialogOpen] =\r\n useState(false);\r\n const [applicationRejectDialogOpen, setApplicationRejectDialogOpen] =\r\n useState(false);\r\n const sideDrawer = useRef(null);\r\n const toggleSideDrawer = sideDrawer?.current;\r\n const [acceptReason, setAcceptReason] = useState();\r\n const [rejectReason, setRejectReason] = useState();\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 let MetricCategories = AllQueueWorkItems.map((wi) => QueueWorkItemStatus[wi]);\r\n let QueueWorkItemStatuses = AllQueueWorkItems;\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 //@ts-ignore\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 let status = [QueueWorkItemStatus.CheckIns];\r\n if (currentQueue.id === \"14616BE4-AE65-449E-B76B-E5988EE896F8\")\r\n status = [QueueWorkItemStatus.Survey];\r\n else if (currentQueue.id === \"D5A9C364-A642-4CDB-9908-87DA3E6AFCB6\")\r\n status = [QueueWorkItemStatus.Survey];\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: status,\r\n outcomes: searchFilters.outcomes,\r\n departments: searchFilters.departments,\r\n }\r\n );\r\n setHasMore((queueData.queueWorkItems?.length ?? 0) === ItemsPerPage);\r\n setOnFirstPage((offset ?? 0) === 0);\r\n\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.queryText,\r\n searchFilters.outcomes,\r\n searchFilters.departments,\r\n token\r\n )\r\n );\r\n }\r\n\r\n apiCalls.push(teamClient.getAllTeams());\r\n\r\n Promise.all(apiCalls)\r\n .then((res) => {\r\n const [queue, outcomes, metrics, teams] = res;\r\n setQueue(queue);\r\n metrics && setMetrics(metrics);\r\n setHasDateChanged(false);\r\n setQueueWorkItemStatusChanged(false);\r\n setQueueWorkItemStatus(undefined);\r\n var userTeams = []\r\n if (teams) {\r\n if (site.outcomeIdentifier === OutcomeIdentifier.Port_Pirie_Site){\r\n userTeams = teams.filter((t: TeamViewModel) => t.siteIdentifier === SiteIdentifier.Port_Pirie);\r\n } else if (site.outcomeIdentifier === OutcomeIdentifier.Hobart_Site){\r\n userTeams = teams.filter((t: TeamViewModel) => t.siteIdentifier === SiteIdentifier.Hobart);\r\n }\r\n setTeams(\r\n userTeams.map((t: TeamViewModel) => ({\r\n name: t.name,\r\n label: t.name,\r\n value: t.id,\r\n }))\r\n );\r\n }\r\n\r\n if (outcomes) {\r\n var outcomesArray = 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 children: a.children\r\n ? a.children.map((a: QueueChoiceVm) => ({\r\n name: a.name,\r\n label: a.name,\r\n value: a.id,\r\n children: a.children,\r\n }))\r\n : null,\r\n }))\r\n : null,\r\n }));\r\n \r\n const usersOutcomes = Array(outcomesArray.find((o:{name: string; value: string; label: string} ) => o.value === site.id))\r\n console.log(\"outcomes\",usersOutcomes);\r\n\r\n if (usersOutcomes && currentQueue.queueIndex === QueueIndex.Site_locator){\r\n setTreeData(usersOutcomes);\r\n setExcludeFilter(usersOutcomes);\r\n \r\n if (searchFilters.outcomes === undefined || searchFilters.outcomes.length === 0){\r\n var filter: string[] = [];\r\n\r\n usersOutcomes.forEach((o: any) => {\r\n if (o.children){\r\n o.children.forEach((a: any) => {\r\n if (a.children){\r\n a.children.forEach((b: any) => {\r\n filter.push(b.value);\r\n });\r\n }\r\n filter.push(a.value);\r\n });\r\n }\r\n filter.push(o.value);\r\n })\r\n setSearchFilters({... searchFilters, outcomes: filter});\r\n }\r\n\r\n } else {\r\n setTreeData(outcomesArray);\r\n setExcludeFilter(outcomesArray);\r\n }\r\n \r\n var defaultExlude: string[] = [];\r\n var temp: QueueChoiceVm[] = [];\r\n outcomes.forEach((x: QueueChoiceVm) => {\r\n if (x.children !== null) {\r\n x.children!.forEach((y: QueueChoiceVm) => {\r\n temp.push(y);\r\n });\r\n }\r\n });\r\n\r\n var hobFG = temp!.find(\r\n (x: QueueChoiceVm) =>\r\n x.outcomeIdentifier == OutcomeIdentifier.Hobart_Front_Gate\r\n );\r\n var portFG = temp!.find(\r\n (x: QueueChoiceVm) =>\r\n x.outcomeIdentifier == OutcomeIdentifier.Port_Pirie_Front_Gate\r\n );\r\n if (hobFG) defaultExlude.push(hobFG.id);\r\n if (portFG) defaultExlude.push(portFG.id);\r\n setDefaultExcludes([...defaultExlude]);\r\n setSelectedExcludes({ ...defaultExlude });\r\n }\r\n if (\r\n searchFilters.outcomes === undefined ||\r\n searchFilters.outcomes.length === 0\r\n ) {\r\n setPass(\r\n queue?.queueWorkItems.filter(\r\n (q: any) =>\r\n q.outcomes.filter((o: any) => o.name === \"Pass\").length > 0\r\n ).length\r\n );\r\n setFail(\r\n queue?.queueWorkItems.filter(\r\n (q: any) =>\r\n q.outcomes.filter((o: any) => o.name === \"Fail\").length > 0\r\n ).length\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n useEffect(() => {console.log(\"sitesFilter\",sitesFilter)},[sitesFilter])\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.queryText,\r\n searchFilters.outcomes,\r\n searchFilters.departments,\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 // setQueueWorkItemStatusChanged(true);\r\n // setQueueWorkItemLoading(true);\r\n // if (\r\n // queueWorkItem.personAssignedTo &&\r\n // queueWorkItem.status == QueueWorkItemStatus.CheckIns\r\n // ) {\r\n // //call unassign api\r\n\r\n // api\r\n // .UnAssignWorkItem(currentQueue!.id, queueWorkItem.workItem.id, token)\r\n // .then((d) => {\r\n // setQueueWorkItem(d);\r\n // })\r\n // .catch((err) => console.log(err));\r\n // } else {\r\n // //call assign api\r\n // api\r\n // .AssignWorkItemToMe(currentQueue!.id, queueWorkItem.workItem.id, token)\r\n // .then((d) => {\r\n // setQueueWorkItem(d);\r\n // })\r\n // .catch((err) => console.log(err));\r\n // }\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 queueWorkItemStatusChanged &&\r\n queueWorkItem?.workItem.id &&\r\n queueWorkItemStatus == QueueWorkItemStatus.OnSite\r\n ) {\r\n setQueueWorkItemStatusChanged(true);\r\n queueClient\r\n .updateQueueWorkItemStatus(\r\n currentQueue!.id,\r\n queueWorkItem!.workItem.id,\r\n { note: queueWorkItemNote, status: queueWorkItemStatus }\r\n )\r\n .then((d) => {\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 } else {\r\n if (queueWorkItem?.workItem.id) {\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 };\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 = (newOutcome: string[]) => {\r\n //setLoading(true);\r\n setSearchFilters({\r\n ...searchFilters,\r\n outcomes: newOutcome,\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.CheckIns:\r\n return ; //return ;\r\n // case QueueWorkItemStatus.InProgress:\r\n // \treturn ;\r\n case QueueWorkItemStatus.OnSite:\r\n return ;\r\n // case QueueWorkItemStatus.Closed:\r\n // \treturn ;\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 setAssignToQueueMode(false);\r\n };\r\n\r\n const handleAssignAndCloseQueueClose = () => {\r\n setQueueWorkItemStatus(QueueWorkItemStatus.CheckIns);\r\n setAssignToQueueMode(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 const teamDataMapper = (roles: any[]) => {\r\n return roles.map((x: any) => {\r\n return {\r\n value: x.id,\r\n label: x.name,\r\n };\r\n });\r\n };\r\n\r\n const traceContacts = async (offset?: number) => {\r\n const temp: string[] = Object.values(selectedExcludes);\r\n\r\n const queueData = await queueClient.getTraceContacts(\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 departments: searchFilters.departments,\r\n excludes: temp,\r\n }\r\n );\r\n setHasMore((queueData.queueWorkItems?.length ?? 0) === ItemsPerPage);\r\n setOnFirstPage((offset ?? 0) === 0);\r\n\r\n return queueData;\r\n };\r\n\r\n const contactTracer = () => {\r\n setLoading(true);\r\n let apiCalls = [];\r\n\r\n apiCalls.push(traceContacts());\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.queryText,\r\n searchFilters.outcomes,\r\n searchFilters.departments,\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 let m = { totals: [{ count: queue.queueWorkItems.length, status: 0 }] };\r\n metrics && setMetrics(m);\r\n setHasDateChanged(false);\r\n setQueueWorkItemStatusChanged(false);\r\n setQueueWorkItemStatus(undefined);\r\n\r\n if (outcomes) {\r\n var defaultExlude: string[] = [];\r\n var outcomesArray = 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 children: a.children\r\n ? a.children.map((a: QueueChoiceVm) => ({\r\n name: a.name,\r\n label: a.name,\r\n value: a.id,\r\n children: a.children,\r\n }))\r\n : null,\r\n }))\r\n : null,\r\n }));\r\n setTreeData(outcomesArray);\r\n setExcludeFilter(outcomesArray);\r\n\r\n var temp: QueueChoiceVm[] = [];\r\n outcomes.forEach((x: QueueChoiceVm) => {\r\n x.children!.forEach((y: QueueChoiceVm) => {\r\n temp.push(y);\r\n });\r\n });\r\n var hobFG = temp!.find(\r\n (x: QueueChoiceVm) =>\r\n x.outcomeIdentifier == OutcomeIdentifier.Hobart_Front_Gate\r\n );\r\n var portFG = temp!.find(\r\n (x: QueueChoiceVm) =>\r\n x.outcomeIdentifier == OutcomeIdentifier.Port_Pirie_Front_Gate\r\n );\r\n if (hobFG) defaultExlude.push(hobFG.id);\r\n if (portFG) defaultExlude.push(portFG.id);\r\n setDefaultExcludes(defaultExlude);\r\n setSelectedExcludes({ ...defaultExlude });\r\n }\r\n if (\r\n searchFilters.outcomes === undefined ||\r\n searchFilters.outcomes.length === 0\r\n ) {\r\n setPass(\r\n queue?.queueWorkItems.filter(\r\n (q: any) =>\r\n q.outcomes.filter((o: any) => o.name === \"Pass\").length > 0\r\n ).length\r\n );\r\n setFail(\r\n queue?.queueWorkItems.filter(\r\n (q: any) =>\r\n q.outcomes.filter((o: any) => o.name === \"Fail\").length > 0\r\n ).length\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const handleApplicationAcceptDialogOpen = (\r\n qwi: QueueWorkItemViewModel | undefined\r\n ) => {\r\n setApplicationAcceptDialogOpen(true);\r\n setQwi(qwi);\r\n };\r\n\r\n const handleApplicationAcceptDialogClose = (qwi: QueueWorkItemViewModel | undefined) => {\r\n setApplicationAcceptDialogOpen(false);\r\n if (qwi) {\r\n qwi.message = acceptReason;\r\n adminQuestionClient\r\n .approveVisitorApplication(qwi)\r\n .then((response: QueueWorkItemViewModel) => {\r\n setQueueWorkItem(response);\r\n let qwis = queueWorkItems.filter(\r\n (x: QueueWorkItemViewModel) => x.id !== response.id\r\n );\r\n setQueueWorkItems([...qwis, response]);\r\n });\r\n }\r\n };\r\n const handleApplicationRejectDialogOpen = (\r\n qwi: QueueWorkItemViewModel | undefined\r\n ) => {\r\n setApplicationRejectDialogOpen(true);\r\n setQwi(qwi);\r\n };\r\n\r\n const handleApplicationRejectDialogClose = (qwi: QueueWorkItemViewModel | undefined) => {\r\n setApplicationRejectDialogOpen(false);\r\n\r\n if (qwi) {\r\n qwi.message = rejectReason;\r\n adminQuestionClient\r\n .rejectVisitorApplication(qwi)\r\n .then((response: QueueWorkItemViewModel) => {\r\n setQueueWorkItem(response);\r\n let qwis = queueWorkItems.filter(\r\n (x: QueueWorkItemViewModel) => x.id !== response.id\r\n );\r\n setQueueWorkItems([...qwis, response]);\r\n });\r\n }\r\n };\r\n\r\n const handleDialogClose = () => {\r\n setApplicationAcceptDialogOpen(false);\r\n setApplicationRejectDialogOpen(false);\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.CheckIns],\r\n after: searchFilters?.after ?? startOfToday(),\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.CheckIns],\r\n after: startOfToday(),\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 useEffect(() => {\r\n switch (queueWorkItemStatus) {\r\n case QueueWorkItemStatus.OnSite:\r\n startEditingNote();\r\n setQueueWorkItemStatusChanged(true);\r\n break;\r\n // case QueueWorkItemStatus.Closed:\r\n // \tsetQueueWorkItemStatusChanged(true);\r\n // \tif ( queueWorkItem?.workItem.id){\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: \"\", status: queueWorkItemStatus }\r\n // \t\t)\r\n // \t\t.then((d) => {\r\n // \t\t\tsetQueueWorkItem(d);\r\n // \t\t\tsetQueueWorkItemStatus(undefined);\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 // \t}\r\n\r\n // \tbreak;\r\n // case QueueWorkItemStatus.InProgress:\r\n // \tonWorkItemAssigned(queueWorkItem);\r\n // \tsetQueueWorkItemStatus(undefined);\r\n // \tbreak;\r\n case QueueWorkItemStatus.CheckIns:\r\n //onWorkItemAssigned(queueWorkItem);\r\n setQueueWorkItemStatus(undefined);\r\n break;\r\n }\r\n }, [queueWorkItemStatus]);\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.queryText,\r\n searchFilters.outcomes,\r\n searchFilters.departments,\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 {currentQueue?.queueIndex ==\r\n QueueIndex.Site_Entry_Application && (\r\n
\r\n {/* */}\r\n \r\n handleApplicationAcceptDialogClose(queueWorkItem)\r\n }\r\n aria-label=\"Accept Application\"\r\n //disabled={!toggleSideDrawer || !hasModifyTeamMemberAccess }\r\n >\r\n \r\n \r\n \r\n \r\n handleApplicationRejectDialogClose(queueWorkItem)\r\n }\r\n aria-label=\"Decline Application\"\r\n //disabled={!toggleSideDrawer || !hasModifyTeamMemberAccess }\r\n >\r\n \r\n \r\n
\r\n )}\r\n
\r\n {console.log(\"qwi\",queueWorkItem)}\r\n \r\n \r\n \r\n }\r\n // editor={editor(\r\n // 6,\r\n // ,\r\n // \r\n // )}\r\n divider={true}\r\n />\r\n \r\n \r\n \r\n }\r\n // editor={editor(\r\n // 12,\r\n // \r\n // )}\r\n divider={true}\r\n />\r\n {/* \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdivider={true}\r\n\t\t\t\t\t\t\t\teditor={editor(\r\n\t\t\t\t\t\t\t\t\t12,\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 {/* }\r\n divider={true}\r\n />\r\n }\r\n divider={true}\r\n /> */}\r\n {currentQueue.queueIndex !==\r\n QueueIndex.Site_Entry_Application && (\r\n \r\n \r\n \r\n }\r\n divider={true}\r\n />\r\n )}\r\n {queueWorkItem!.outcomes && queueWorkItem!.outcomes.length > 0 && (\r\n \r\n {currentQueue.queueIndex === QueueIndex.Site_locator ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n }\r\n divider={true}\r\n text={\r\n currentQueue.queueIndex === QueueIndex.Site_locator\r\n ? \"Location: \" + `${queueWorkItem?.outcomes\r\n .map((o: QueueOutcomeViewModel) => o.name)\r\n .reverse()\r\n .join(\" > \")}`\r\n : \"Result: \" +\r\n `${queueWorkItem?.outcomes\r\n .map((o: QueueOutcomeViewModel) => o.name)\r\n .reverse()\r\n .join(\" > \")}`\r\n }\r\n />\r\n )}\r\n\r\n {queueWorkItem!.workItem.checkIn ? (\r\n \r\n \r\n \r\n }\r\n divider={true}\r\n editor={editor(\r\n 12\r\n // \r\n )}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n }\r\n divider={true}\r\n editor={editor(\r\n 12\r\n // \r\n )}\r\n />\r\n )}\r\n {queueWorkItem!.workItem.checkIn && (\r\n \r\n \r\n \r\n }\r\n divider={true}\r\n editor={editor(\r\n 12\r\n // \r\n )}\r\n />\r\n )}\r\n {\r\n // editPerson ? (\r\n // {\r\n // if (selected.text === \"Save\") {\r\n // savePerson();\r\n // } else {\r\n // setEditPerson(false);\r\n // }\r\n // }}\r\n // />\r\n // ) : null\r\n // {\r\n // \t\t\t\t\t\tstartEditingPerson();\r\n // \t\t\t\t\t}}\r\n ///>\r\n }\r\n {/**/}\r\n {/* {editPerson ? (*/}\r\n {/* <>*/}\r\n {/* {\" \"}*/}\r\n {/* */}\r\n {/* */}\r\n {/* ) : (*/}\r\n {/* */}\r\n {/* )}*/}\r\n {/**/}\r\n
\r\n {currentQueue.queueIndex !== QueueIndex.Site_locator && (\r\n {\r\n setQuestionnaireResponseId(responseId);\r\n setShowQuestionnaire(true);\r\n }}\r\n />\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 currentQueue.queueIndex === QueueIndex.Site_locator &&\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={() => handleStatusSelect([key])}\r\n />\r\n \r\n ))}\r\n\r\n {metrics.totals &&\r\n currentQueue.queueIndex === QueueIndex.Site_Entry_Application && (\r\n <>\r\n \r\n Host Completed\r\n }\r\n value={\r\n \r\n {queueWorkItems\r\n ? queueWorkItems!.filter(\r\n (o: any) => o.outcomes[0].name == \"Host Completed\"\r\n ).length\r\n : 0}\r\n \r\n }\r\n //onSelected={() => handleStatusSelect(queueWorkItems ? queueWorkItems!.find((o: any) => o.outcomes[0].name == \"Host Completed\").Id :\"\")}\r\n />\r\n \r\n \r\n Waiting Approval\r\n }\r\n value={\r\n \r\n {queueWorkItems\r\n ? queueWorkItems!.filter(\r\n (o: any) => o.outcomes[0].name == \"Waiting Approval\"\r\n ).length\r\n : 0}\r\n \r\n }\r\n //onSelected={() => handleStatusSelect([key])}\r\n />\r\n \r\n \r\n )}\r\n\r\n {metrics.totals &&\r\n (currentQueue.queueIndex === QueueIndex.Declaration ||\r\n currentQueue.queueIndex === QueueIndex.Port_Pirie_Covid_Survey ||\r\n currentQueue.queueIndex === QueueIndex.Hobart_Covid_Survey) && (\r\n <>\r\n \r\n Pass}\r\n value={\r\n \r\n {queueWorkItems\r\n ? queueWorkItems!.filter(\r\n (o: any) => o.outcomes[0].name == \"Pass\"\r\n ).length\r\n : 0}\r\n \r\n }\r\n //onSelected={() => handleStatusSelect(queueWorkItems ? queueWorkItems!.find((o: any) => o.outcomes[0].name == \"Host Completed\").Id :\"\")}\r\n />\r\n \r\n \r\n Fail}\r\n value={\r\n \r\n {queueWorkItems\r\n ? queueWorkItems!.filter(\r\n (o: any) => o.outcomes[0].name == \"Fail\"\r\n ).length\r\n : 0}\r\n \r\n }\r\n //onSelected={() => handleStatusSelect([key])}\r\n />\r\n \r\n \r\n )}\r\n\r\n {/* {currentQueue.queueIndex !== 0 && queue?.queueWorkItems &&\r\n \r\n <>\r\n \r\n \r\n Pass\r\n \r\n }\r\n value={\r\n \r\n {pass}\r\n \r\n }\r\n // onSelected={() => handleStatusSelect([\"Pass\"])}\r\n />\r\n \r\n \r\n \r\n Fail\r\n \r\n }\r\n value={\r\n \r\n {fail}\r\n \r\n }\r\n //onSelected={() => 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 \r\n setSearchFilters({ ...searchFilters, queryText: q })\r\n }\r\n />\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 {currentQueue.queueIndex === QueueIndex.Site_locator && (\r\n
\r\n contactTracer()}\r\n className={classes.button}\r\n // disabled={\r\n // \tstartDateFieldValue == \"\" ||\r\n // \tendDateFieldValue == \"\" ||\r\n // \tcsvLoading\r\n // }\r\n >\r\n Trace Contacts\r\n \r\n {/* \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{QueueWorkItemStatuses.map((t) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{WorkItemIcon(t as QueueWorkItemStatus)}\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 \r\n \r\n Export CSV\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 Records 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 {\r\n setSearchFilters({ ...searchFilters, outcomes: checked });\r\n setIsFilterChanged(true);\r\n\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;l\r\n // })\r\n // );\r\n }}\r\n />\r\n \r\n {currentQueue.queueIndex === QueueIndex.Site_locator &&\r\n defaultExcludes.length > 0 && (\r\n \r\n {\r\n setSelectedExcludes({ ...checked });\r\n //setIsFilterChanged(true);\r\n\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;l\r\n // })\r\n // );\r\n }}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n {!csvExportMode && teams && teams.length > 0 && (\r\n \r\n a.name!.localeCompare(b.name!))}\r\n multiSelect={true}\r\n header={\"Department Filters\"}\r\n onChecked={(checked: string[]) => {\r\n setSearchFilters({ ...searchFilters, departments: checked });\r\n setIsFilterChanged(true);\r\n\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;l\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\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 return (\r\n <>\r\n {queueWorkItems!.map((queueWorkItem: any) => (\r\n {\r\n setDrawerTitle(\r\n `${MetricCategories[queueWorkItem.status]} Referral`\r\n );\r\n //onQueueWorkItemSelected(queueWorkItem);\r\n //setQueueWorkItemLoading(true)\r\n setQueueWorkItem(queueWorkItem);\r\n toggleSideDrawer.openDrawer();\r\n }}\r\n style={{ marginBottom: \"15px\", display: \"flex\" }}\r\n icon={WorkItemIcon(\r\n currentQueue.queueIndex === QueueIndex.Site_locator\r\n ? queueWorkItem.status\r\n : queueWorkItem.status + 1\r\n )}\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={queueWorkItem.workItem.person.contactNumber}\r\n />\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n text={queueWorkItem!.outcomes\r\n .map((o: QueueOutcomeViewModel) => o.name)\r\n .reverse()\r\n .join(\" > \")}\r\n />\r\n }\r\n text={queueWorkItem.workItem.person.department.name}\r\n />\r\n {queueWorkItem.workItem.checkIn ? (\r\n }\r\n text={\r\n format(\r\n new Date(\r\n Date.parse(\r\n queueWorkItem.workItem.checkIn.checkInTime\r\n ) - userOffset\r\n ),\r\n \"dd-MM-yyyy HH:mm:ss \"\r\n ) +\r\n \" > \" +\r\n (queueWorkItem.workItem.checkIn.checkOutTime\r\n ? format(\r\n new Date(\r\n Date.parse(\r\n queueWorkItem.workItem.checkIn.checkOutTime\r\n ) - userOffset\r\n ),\r\n \" dd-MM-yyyy HH:mm:ss\"\r\n )\r\n : \"Still Checked In\")\r\n }\r\n />\r\n ) : (\r\n \r\n \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 // \t...p,\r\n // \tdateOfBirth: format(d, \"yyyy-MM-dd\"),\r\n // \taddressFull: 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 // \t..._personData,\r\n // \taddress: 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 // \t...existingPerson,\r\n // \t...personData,\r\n //shortDateOfBirth: format(parseISO(personData.dateOfBirth), \"dd/MM/yyyy\"),\r\n //};\r\n // setQueueWorkItem((qwi: any) => ({\r\n // \t...qwi,\r\n // \tworkItem: { ...qwi.workItem, person: newPerson },\r\n // }));\r\n\r\n // setQueueWorkItems((qwi: any) =>\r\n // \tqwi?.map((qw: any) =>\r\n // \t\tqw.id == queueWorkItem!.id\r\n // \t\t\t? { ...qw, workItem: { ...qw.workItem, person: newPerson } }\r\n // \t\t\t: qw\r\n // \t)\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 let ids = queue.queueWorkItems.map((x) => x.workItem!.id!);\r\n if (queue.queueWorkItems.length == 10) {\r\n const queueData = await queueClient.getQueueWorkItems(\r\n queueId,\r\n 0,\r\n 999999,\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 departments: searchFilters.departments,\r\n }\r\n );\r\n ids = queueData.queueWorkItems!.map((x) => x.workItem!.id!);\r\n }\r\n\r\n if (ids !== undefined && ids.length !== 0) {\r\n const result = await adminQuestionClient.getExportsForWorkItems(\r\n userOffset,\r\n ids\r\n );\r\n\r\n saveAs(\r\n result.data,\r\n `nyrstar_contacts_export${format(\r\n new Date(),\r\n \"dd-MM-yyyy HH:mm \"\r\n )}.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.CheckIns,\r\n //QueueWorkItemStatus.OnSite,\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 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, { 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).toUpperCase() + (member as any).lastName.charAt(0).toUpperCase()}\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}\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}: 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 PersonsClient,\r\n PersonSearchQueryViewModel,\r\n TeamClient,\r\n TeamViewModel,\r\n UserTeamViewModel,\r\n} from \"../../../../common/client\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport { Context } from \"../../../../state/Store\";\r\n\r\nconst TeamManager = () => {\r\n const { state } = useContext(Context);\r\n const personsClient = useApiClient(PersonsClient);\r\n const [teams, setTeams] = useState([]);\r\n const [currentTeam, setCurrentTeam] = useState();\r\n const [currentItems, setCurrentItems] = useState([]);\r\n const [selectedItems, setSelectedItems] = useState([]);\r\n const teamClient = useApiClient(TeamClient);\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [teamId, setTeamId] = useState(\"\");\r\n const { enqueueSnackbar } = useSnackbar();\r\n\r\n useEffect(() => {\r\n teamClient.getAllTeams().then((x) => setTeams(x));\r\n }, []);\r\n\r\n const teamDataMapper = (roles: any[]) => {\r\n return roles.map((x: any) => {\r\n return {\r\n value: x.id,\r\n label: x.name,\r\n };\r\n });\r\n };\r\n\r\n async function onRemove() {\r\n if (selectedItems.length > 0) {\r\n const userteam: UserTeamViewModel[] = selectedItems.map((x: any) => {\r\n let temp: UserTeamViewModel = {\r\n personId: x,\r\n teamId: teamId,\r\n canManageTeamMembers: false,\r\n canViewTeam: false,\r\n };\r\n return temp;\r\n });\r\n\r\n await teamClient\r\n .removeUsersFromTeam(userteam)\r\n .then(() => {\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 teamClient.getUsersForTeam(teamId).then((response) => {\r\n setCurrentItems(response);\r\n });\r\n setSelectedItems([]);\r\n }\r\n }\r\n\r\n const onResultSelectHandler = (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 const onCheckBoxCheckedHandler = (node: any[]) => {\r\n setSelectedItems([]);\r\n if (node[0]) {\r\n setTeamId(node[0]);\r\n teamClient.getUsersForTeam(node[0]).then((response) => {\r\n setCurrentItems(response);\r\n });\r\n } else {\r\n setTeamId(\"\");\r\n setCurrentItems([]);\r\n }\r\n };\r\n\r\n async function onAddMemberHandler(members: any[]) {\r\n \r\n const userTeams: UserTeamViewModel[] = members.map((x: any) => {\r\n let temp: UserTeamViewModel = {\r\n personId: x.id,\r\n teamId: teamId,\r\n canManageTeamMembers: false,\r\n canViewTeam: false,\r\n };\r\n return temp;\r\n });\r\n\r\n await teamClient\r\n .addUsersToTeam(userTeams)\r\n .then(() => {\r\n enqueueSnackbar(\"Person(s) successfully added\", {\r\n variant: \"success\",\r\n });\r\n })\r\n .catch(() => {\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 teamClient.getUsersForTeam(teamId).then((response) => {\r\n setCurrentItems(response);\r\n });\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, searchQuery));\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 a.name!.localeCompare(b.name!))\r\n )}\r\n onCheckBoxChecked={onCheckBoxCheckedHandler}\r\n currentItems={matchQuery(currentItems)}\r\n onResultSelect={onResultSelectHandler}\r\n selectedItems={selectedItems}\r\n onSearchBarSearch={setSearchQuery}\r\n onAdd={onAddMemberHandler}\r\n onRemove={onRemove}\r\n onItemSearch={onItemSearch}\r\n disableToolBar={!(teamId.length > 0)}\r\n />\r\n );\r\n};\r\n\r\nexport default TeamManager;\r\n","import { Divider, Grid, Paper, Typography } from \"@material-ui/core\";\r\nimport { debug } from \"console\";\r\nimport { endOfToday, 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: startOfYesterday(),\r\n\t\tbefore: endOfToday(),\r\n\t});\r\n\r\n\tconst AllQueueWorkItems = [\r\n\t\tQueueWorkItem.New,\r\n\t\tQueueWorkItem.OnHold,\r\n\t\tQueueWorkItem.InProgress,\r\n\t\tQueueWorkItem.Closed,\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\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 { 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 helpText: \"\",\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 Multiline Textfield\r\n File upload\r\n Multiple choice with location filter\r\n Info\r\n Site/Building dropdown\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, FTextField} 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 \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\nimport { FCheckbox } from \"../../../../common/formComponents/FCheckbox\";\r\n\r\nexport const QuestionnaireFormDef = buildGroup<\r\n Omit\r\n>()({\r\n name: \"\",\r\n audiences: [],\r\n showStepper: false,\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 \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 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 { FormControl, useControlStateVersion } from \"@react-typed-forms/core\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport { ReactElement } from \"react\";\r\nimport { Autocomplete, AutocompleteProps } from \"@material-ui/lab\";\r\n\r\nexport type FAutocompleteProps = {\r\n query: FormControl;\r\n state: FormControl;\r\n label?: string;\r\n} & Omit, \"renderInput\">;\r\n\r\nexport function FSelectAutocomplete(\r\n props: FAutocompleteProps\r\n): ReactElement;\r\n\r\nexport function FSelectAutocomplete(\r\n props: FAutocompleteProps & { getOptionLabel: (t: T) => string }\r\n): ReactElement;\r\n\r\nexport function FSelectAutocomplete({\r\n state,\r\n query,\r\n label,\r\n getOptionLabel,\r\n ...others\r\n}: FAutocompleteProps) {\r\n useControlStateVersion(state);\r\n useControlStateVersion(query);\r\n return (\r\n \r\n {...others}\r\n onChange={(event: any, newValue: any, reason) => {\r\n if (reason === \"select-option\") {\r\n state.setValue(newValue);\r\n query.setValue(getOptionLabel?.(newValue) ?? newValue.toString());\r\n }\r\n }}\r\n inputValue={query.value || \"\"}\r\n onInputChange={(_, val, reason) => {\r\n if (reason === \"input\" || reason === \"clear\") {\r\n query.setValue(val);\r\n }\r\n }}\r\n getOptionLabel={getOptionLabel}\r\n renderInput={(p) => {\r\n return (\r\n (state.element = e)}\r\n error={Boolean(state.error)}\r\n helperText={state.error}\r\n variant=\"outlined\"\r\n />\r\n );\r\n }}\r\n />\r\n );\r\n}\r\n","import React, { ChangeEvent, useEffect, useRef, useState } from \"react\";\r\nimport { Questionnaire } from \"../../../components/core/QuestionSlider/Questionnaire\";\r\nimport { IQuestion } from \"../../../models/Question\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { useApiClient } from \"../../../common/apiclients\";\r\nimport {\r\n BasicQuestionnaireViewModel,\r\n KeyValuePairOfGuidAndString,\r\n QuestionnaireClient,\r\n QuestionnaireEditModel,\r\n QuestionnairesClient,\r\n QuestionValidationError,\r\n} from \"../../../common/client\";\r\nimport {\r\n makeQuestionnaireControl,\r\n parseAnswers,\r\n QuestionnaireControls,\r\n} from \"../../../components/core/Questionnaire\";\r\nimport {\r\n buildGroup,\r\n control,\r\n ControlType,\r\n FormControl,\r\n useControlValue,\r\n} from \"@react-typed-forms/core\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { FTextField } from \"../../../common/formComponents/FTextField\";\r\nimport { Button, CircularProgress, Grid, MenuItem } from \"@material-ui/core\";\r\nimport { QuestionnaireFormDef } from \"./Questionnaire/QuestionnaireEditor\";\r\nimport { toQuestionForm } from \"./Questionnaire/QuestionEditor\";\r\nimport { FSelectAutocomplete } from \"../../../common/formComponents/FSelectAutocomplete\";\r\nimport { useDebounce } from \"../../../common/debounce\";\r\n\r\ninterface Form {\r\n userId?: KeyValuePairOfGuidAndString;\r\n questionnaireId?: string;\r\n questionnaireResponseId?: KeyValuePairOfGuidAndString;\r\n}\r\n\r\nconst FormDef = buildGroup
()({\r\n userId: control(undefined),\r\n questionnaireId: control(undefined),\r\n questionnaireResponseId: control(undefined),\r\n});\r\n\r\nexport const Temp = () => {\r\n const qclient = useApiClient(QuestionnaireClient);\r\n const qsclient = useApiClient(QuestionnairesClient);\r\n const [form] = useState(FormDef);\r\n const { userId, questionnaireResponseId, questionnaireId } = form.fields;\r\n const [questionsAndControls, setQuestionsAndControls] =\r\n useState<{ questions: IQuestion[]; controls: QuestionnaireControls }>();\r\n const [errors, setErrors] = useState();\r\n const [questionnaires, setQuestionnaires] =\r\n useState();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const importRef = useRef(null);\r\n const [validateAll, setValidateAll] = useState(false);\r\n\r\n useEffect(() => {\r\n loadQuestionnaireList();\r\n }, []);\r\n\r\n async function handleQuestionnaireResponse(questionIndex: number) {\r\n if (questionsAndControls) {\r\n const controls = questionsAndControls.controls;\r\n const questionId = questionsAndControls.questions[questionIndex].id;\r\n const { choiceId, value } = controls.fields[questionId].toObject();\r\n const valueAndChoice = {\r\n choiceId: choiceId!,\r\n value: value ? JSON.stringify(value) : undefined,\r\n };\r\n await qclient.addQuestionChoiceByAdmin(\r\n questionnaireResponseId.value!.key,\r\n questionId,\r\n userId.value!.key,\r\n valueAndChoice\r\n );\r\n if (validateAll) {\r\n await validate();\r\n }\r\n enqueueSnackbar(\"Response Saved.\", { variant: \"success\" });\r\n }\r\n }\r\n\r\n async function handleQuestionnaireFinalisation() {\r\n // await qclient.finaliseQuestionnaireByAdmin(\r\n // questionnaireResponseId.value!.key,\r\n // userId.value!.key\r\n // );\r\n enqueueSnackbar(\"FINALISE QUESTIONNAIRE\", { variant: \"info\" });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {questionnaires ? (\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 {questionsAndControls && (<>\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 qclient.validateQuestionnaire(\r\n questionnaireResponseId.value!.key\r\n );\r\n setValidateAll(true);\r\n setErrors(errors);\r\n const showErrors = errors.length > 0;\r\n return !showErrors;\r\n }\r\n\r\n function ActionButtons({\r\n form: { fields },\r\n }: {\r\n form: ControlType;\r\n }) {\r\n const hasPerson = Boolean(useControlValue(fields.userId)?.key);\r\n const hasQuestionnaire = Boolean(useControlValue(fields.questionnaireId));\r\n const hasResponse = Boolean(\r\n useControlValue(fields.questionnaireResponseId)\r\n );\r\n return (\r\n \r\n {/*{\" \"}*/}\r\n \r\n New\r\n {\" \"}\r\n {\" \"}\r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n );\r\n }\r\n async function loadQuestionnaire() {\r\n const d = await qsclient.getQuestions(questionnaireResponseId.value!.key);\r\n const answers = parseAnswers(d.responses);\r\n const controls = makeQuestionnaireControl(d.questions);\r\n controls.setValue(answers);\r\n setQuestionsAndControls({ questions: d.questions, controls });\r\n questionnaireId.setValue(d.questionnaireId);\r\n setErrors(undefined);\r\n setValidateAll(false);\r\n }\r\n\r\n async function createNewQuestionnaire() {\r\n const newResp = await qclient.createNewResponse(\r\n questionnaireId.value!,\r\n userId.value!.key\r\n );\r\n questionnaireResponseId.setValue({ key: newResp.id, value: \"New one\" });\r\n await loadQuestionnaire();\r\n }\r\n\r\n // async function preFill() {\r\n // const newResp = await qsclient.startQuestionnaire(\r\n // userId.value,\r\n // questionnaireId.value\r\n // );\r\n // questionnaireResponseId.setValue(newResp);\r\n // await loadQuestionnaire();\r\n // }\r\n\r\n async function loadQuestionnaireList() {\r\n const allQ = await qsclient.getQuestionnaires();\r\n setQuestionnaires(allQ);\r\n }\r\n\r\n async function writeCsv() {\r\n const result = await qsclient.getExports(questionnaireId.value);\r\n saveAs(result.data, \"something.csv\");\r\n }\r\n\r\n async function exportQuestionnaire() {\r\n const result = await qsclient.getQuestionnaire(questionnaireId.value!);\r\n const form = QuestionnaireFormDef();\r\n form.setValue({\r\n ...result,\r\n questions: result.questions.map(toQuestionForm),\r\n audiences: result.audiences.map((a) => a.audienceId),\r\n });\r\n const b = new Blob([JSON.stringify(form.toObject(), null, 2)]);\r\n saveAs(b, result.name + \".json\");\r\n }\r\n\r\n function doImport(e: ChangeEvent) {\r\n const files = e.target.files;\r\n if (files) {\r\n for (let i = 0; i < files.length; i++) {\r\n importQuestionnaire(files[i]);\r\n }\r\n }\r\n }\r\n\r\n async function importQuestionnaire(file: File) {\r\n const qText = await file.text();\r\n const data: QuestionnaireEditModel = JSON.parse(qText);\r\n const result = await qsclient.createQuestionnaire(data);\r\n await loadQuestionnaireList();\r\n }\r\n};\r\n\r\nfunction PersonSelector({\r\n userId,\r\n}: {\r\n userId: FormControl;\r\n}) {\r\n const [query] = useState(control(\"\"));\r\n const [people, setPeople] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const queryText = useDebounce(useControlValue(query), 200);\r\n const questionnairesClient = useApiClient(QuestionnairesClient);\r\n useEffect(() => {\r\n if (queryText.length > 3) {\r\n doSearch();\r\n }\r\n }, [queryText]);\r\n return (\r\n p.value}\r\n />\r\n );\r\n\r\n async function doSearch() {\r\n setLoading(true);\r\n setPeople(await questionnairesClient.adminSearchPerson(queryText));\r\n setLoading(false);\r\n }\r\n}\r\n\r\nfunction QuestionnaireSelector({\r\n questId,\r\n userIdControl,\r\n questionnaireControl,\r\n}: {\r\n userIdControl: FormControl;\r\n questionnaireControl: FormControl;\r\n questId: FormControl;\r\n}) {\r\n const [query] = useState(control(\"\"));\r\n const [questionnaires, setQuestionnaires] =\r\n useState();\r\n const [loading, setLoading] = useState(false);\r\n const questionnairesClient = useApiClient(QuestionnairesClient);\r\n const userId = useControlValue(userIdControl);\r\n const qId = useControlValue(questionnaireControl);\r\n useEffect(() => {\r\n if (userId && qId) {\r\n doSearch(userId.key);\r\n } else {\r\n setQuestionnaires([]);\r\n }\r\n }, [userId, qId]);\r\n return (\r\n p.value}\r\n />\r\n );\r\n\r\n async function doSearch(userId: string) {\r\n setLoading(true);\r\n setQuestionnaires(\r\n await questionnairesClient.getQuestionnaireResponsesForUser(userId, qId)\r\n );\r\n setLoading(false);\r\n }\r\n}\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, { 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\n\r\nexport const QueueAccess = () => {\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 // teams => array of objects\r\n const [teams, setTeams] = useState([]);\r\n\r\n const [editTeamNameOpen, setEditTeamNameOpen] = useState(false);\r\n\r\n // team manager form\r\n const formDrawer = useRef(null);\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 let AppBarComponents;\r\n let appBarRightComponents;\r\n let disableToolBar =\r\n !selectedNode ||\r\n !teams.find((x: any) => x.id === selectedNode).canManageTeamMembers;\r\n\r\n function onAddTeamFormSubmit() {}\r\n\r\n function treeDataMapper(teams: any) {\r\n return [];\r\n }\r\n\r\n function matchQuery(currentItems: any[]) {\r\n return [];\r\n }\r\n\r\n function onResultSelect() {}\r\n\r\n function onCheckBoxChecked() {}\r\n\r\n function onAdd() {}\r\n\r\n function onRemove() {}\r\n\r\n function onItemSearch(): Promise {\r\n return Promise.resolve();\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","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 { useSnackbar } from \"notistack\";\r\nimport React, { useState, useContext, useEffect } from \"react\";\r\nimport { Manager } from \"../../../../components/core/Manager/Manager\";\r\nimport { Context } from \"../../../../state/Store\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport { PersonViewModel, QueueClient } from \"../../../../common/client\";\r\nimport { searchStaffMembers } from \"../../../../data/api\";\r\n\r\nconst QueueManager = () => {\r\n const { state } = useContext(Context);\r\n\r\n const queueClient = useApiClient(QueueClient);\r\n\r\n const [queues, setQueues] = useState([]);\r\n const [currentQueue, setCurrentQueue] = useState();\r\n const [currentItems, setCurrentItems] = useState([]);\r\n const [selectedItems, setSelectedItems] = useState([]);\r\n\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n\r\n const { enqueueSnackbar } = useSnackbar();\r\n\r\n useEffect(() => {\r\n queueClient.getAllQueues().then((r) => {setQueues(r)});\r\n }, []);\r\n\r\n const queueDataMapper = (queues: any[]) => {\r\n return queues.map((x: any) => {\r\n return {\r\n value: x.id,\r\n label: x.name,\r\n };\r\n });\r\n };\r\n\r\n const onRemoveHandler = () => {\r\n const promises: Promise[] = [];\r\n selectedItems.forEach((x: any) =>\r\n promises.push(\r\n queueClient\r\n .removeQueueMember(currentQueue, x)\r\n .then(() => enqueueSnackbar(\"Member removed\", { variant: \"success\" }))\r\n .catch(() =>\r\n enqueueSnackbar(\"Failed to remove member\", { variant: \"error\" })\r\n )\r\n )\r\n );\r\n\r\n Promise.all(promises).then(() => {\r\n queueClient.getQueueMembers(currentQueue).then((x) => {\r\n setCurrentItems(x);\r\n setSelectedItems([]);\r\n });\r\n });\r\n };\r\n\r\n const onResultSelectHandler = (result: any) => {\r\n if (selectedItems.includes(result)) {\r\n setSelectedItems([...selectedItems].filter((x: any) => x !== result));\r\n } else {\r\n setSelectedItems([...selectedItems, result]);\r\n }\r\n };\r\n\r\n const onCheckBoxCheckedHandler = (id: any[]) => {\r\n if (id[0]) {\r\n setCurrentQueue(id[0]);\r\n setSelectedItems([]);\r\n queueClient.getQueueMembers(id[0]).then((x) => setCurrentItems(x));\r\n // uncheck\r\n } else {\r\n setCurrentQueue(undefined);\r\n setCurrentItems([]);\r\n setSelectedItems([]);\r\n }\r\n };\r\n\r\n const onAddMemberHandler = (members: any[]) => {\r\n const promises: Promise[] = [];\r\n members.forEach((x: any) =>\r\n promises.push(\r\n queueClient\r\n .addQueueMember(currentQueue, x.id)\r\n .then(() => enqueueSnackbar(\"Member added\", { variant: \"success\" }))\r\n .catch(() =>\r\n enqueueSnackbar(\"Failed to add member\", { variant: \"error\" })\r\n )\r\n )\r\n );\r\n\r\n Promise.all(promises).then(() => {\r\n queueClient.getQueueMembers(currentQueue).then((x) => {\r\n setCurrentItems(x);\r\n });\r\n });\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.name, searchQuery));\r\n };\r\n\r\n const onItemSearchHandler = (query: string) => {\r\n return searchStaffMembers(query, state!.user!.token);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default QueueManager;\r\n","import { useEffect, useState } from \"react\";\r\nimport XLSX from \"xlsx\";\r\nimport {\r\n QueueClient,\r\n TeamViewModel,\r\n TeamClient,\r\n} from \"../../../../common/client\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n Backdrop,\r\n CircularProgress,\r\n createStyles,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Theme,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n table: {\r\n minWidth: 650,\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n })\r\n);\r\n\r\nexport const UploadCSV = () => {\r\n const [csvFile, setCsvFile] = useState();\r\n const [csvArray, setCsvArray] = useState();\r\n const [missingData, setMissingData] = useState(\"\");\r\n const [uploadsSaved, setUploadsSaved] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const queueClient = useApiClient(QueueClient);\r\n const classes = useStyles();\r\n\r\n const upload = () => {\r\n setCsvArray(null)\r\n const file = csvFile;\r\n const reader = new FileReader();\r\n setLoading(true);\r\n reader.onload = async function (e) {\r\n const data = await file!.arrayBuffer();\r\n const workbook = XLSX.read(data);\r\n const wsname = workbook.SheetNames[0];\r\n const ws = workbook.Sheets[wsname];\r\n const dataParse = XLSX.utils.sheet_to_csv(ws);\r\n\r\n processCSV(dataParse);\r\n };\r\n\r\n if (csvFile !== undefined) {\r\n reader.readAsText(file!);\r\n }\r\n };\r\n\r\n const processCSV = (str: any, delimiter = \",\") => {\r\n const headers = str.slice(0, str.indexOf(\"\\n\")).split(delimiter);\r\n\r\n if (JSON.stringify(headers) !== JSON.stringify(['Date', 'Site', 'Building', 'Room', 'First Name', 'Last Name', 'Mobile Phone', 'Email Address', 'Department', 'Time In', 'Time Out', 'Activity Attended'])){\r\n setMissingData(\"Wrong Excel File\");\r\n setLoading(false);\r\n } else {\r\n const rows = str.slice(str.indexOf(\"\\n\") + 1).split(\"\\n\");\r\n const newArray = rows.map((row: string) => {\r\n const values = row.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\r\n const eachObject = headers.reduce(\r\n (obj: any, header: string, i: number) => {\r\n obj[header] = values[i];\r\n return obj;\r\n },\r\n {}\r\n );\r\n return eachObject;\r\n });\r\n\r\n setCsvArray(newArray.filter((x: any) => x.Date !== \"\"));\r\n filterAndSendData(newArray.filter((x: any) => x.Date !== \"\"));\r\n }\r\n };\r\n\r\n const filterAndSendData = (csvArray: any) => {\r\n if (csvArray !== undefined) {\r\n var data = csvArray.map((x: any) => {\r\n x[\"First Name\"] = x[\"First Name\"] === \"\" ? \"Unknown\" : x[\"First Name\"];\r\n x[\"Last Name\"] = x[\"Last Name\"] === \"\" ? \"Unknown\" : x[\"Last Name\"];\r\n x[\"Mobile Phone\"] =\r\n x[\"Mobile Phone\"] === \"\" ? \"Unknown\" : x[\"Mobile Phone\"];\r\n\r\n \r\n\r\n if (x[\"Time In\"].length > 0 && !x[\"Time In\"].includes(\":\")) {\r\n var minutes = x[\"Time In\"].slice(-2);\r\n var hours = x[\"Time In\"].slice(0, -2);\r\n x[\"Time In\"] = hours + \":\" + minutes;\r\n }\r\n\r\n if (x[\"Time Out\"].length > 0 && !x[\"Time Out\"].includes(\":\")) {\r\n var minutes = x[\"Time Out\"].slice(-2);\r\n var hours = x[\"Time Out\"].slice(0, -2);\r\n x[\"Time Out\"] = hours + \":\" + minutes;\r\n }\r\n\r\n if (x['Time In'].split(\":\").length === 2 ) {\r\n x['Time In'] = x[\"Time In\"] + \":00\";\r\n }\r\n \r\n \r\n if (x['Time Out'].split(\":\").length === 2 ) {\r\n x[\"Time Out\"] = x[\"Time Out\"] + \":00\";\r\n }\r\n\r\n if (x[\"Time In\"] === \"\") {\r\n x[\"Time In\"] = \"00:00:01\";\r\n }\r\n\r\n if (x[\"Time Out\"] === \"\") {\r\n const [hours, minutes, seconds] = x[\"Time In\"].split(\":\");\r\n if (Number(hours) < 23) {\r\n x[\"Time Out\"] = `${Number(hours) + 1}:${minutes}:${seconds}`;\r\n } else {\r\n x[\"Time Out\"] = \"23:59:59\";\r\n }\r\n }\r\n\r\n if (x.Department === \"\") {\r\n x.Department = \"Visitor\";\r\n }\r\n\r\n \r\n\r\n return {\r\n Site: x.Site,\r\n Building: x.Building,\r\n Room: x.Room,\r\n FirstName: x[\"First Name\"],\r\n LastName: x[\"Last Name\"],\r\n Department: x.Department,\r\n TimeIn: x[\"Time In\"],\r\n TimeOut: x[\"Time Out\"],\r\n ContactNumber: x[\"Mobile Phone\"],\r\n Date: x.Date,\r\n };\r\n });\r\n queueClient.uploadManualCheckIns(data).then((res) => {\r\n setCsvFile(undefined);\r\n setLoading(false);\r\n setUploadsSaved(true);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Select File to Upload\r\n \r\n \r\n {\r\n setCsvFile(e.target.files![0]);\r\n }}\r\n >\r\n
\r\n {\r\n e.preventDefault();\r\n if (csvFile) upload();\r\n }}\r\n >\r\n Upload\r\n \r\n \r\n
\r\n\r\n {!csvArray && missingData && (
{missingData}
)}\r\n\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n\r\n {csvArray && !missingData && uploadsSaved && (\r\n <>\r\n \r\n \r\n Uploaded Data\r\n \r\n \r\n \r\n \r\n \r\n {Object.keys(csvArray![0]).map((key) => (\r\n {key}\r\n ))}\r\n \r\n \r\n \r\n {csvArray!.map((item: any) => (\r\n \r\n {Object.values(item).map((val: any) => (\r\n {val}\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 { useSnackbar } from \"notistack\";\r\nimport React, { useState, useContext, useEffect } from \"react\";\r\nimport { Manager } from \"../../../../components/core/Manager/Manager\";\r\nimport {\r\n PersonsClient,\r\n PersonSearchQueryViewModel,\r\n TeamClient,\r\n TeamViewModel,\r\n UserTeamViewModel,\r\n QueueClient,\r\n QueueChoiceVm,\r\n UserInfoViewModel,\r\n} from \"../../../../common/client\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport { Context } from \"../../../../state/Store\";\r\nimport { ConsoleLogger } from \"@microsoft/signalr/dist/esm/Utils\";\r\n\r\nconst PrimaryLocationManager = () => {\r\n const { state } = useContext(Context);\r\n const personsClient = useApiClient(PersonsClient);\r\n const [locations, setLocations] = useState([]);\r\n const [currentTeam, setCurrentTeam] = useState();\r\n const [currentItems, setCurrentItems] = useState([]);\r\n const [selectedItems, setSelectedItems] = useState([]);\r\n const queueClient = useApiClient(QueueClient);\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [locationId, setLocationId] = useState(\"\");\r\n const { enqueueSnackbar } = useSnackbar();\r\n\r\n useEffect(() => {\r\n queueClient.getSiteLocations().then((x) => {\r\n x = x.filter((y) => y.name !== \"Covid Questionnaire\");\r\n setLocations(x);\r\n });\r\n }, []);\r\n\r\n const teamDataMapper = (locations: any[]) => {\r\n let sites = locations.filter(\r\n (site: QueueChoiceVm) => site.outcomeParentId === null\r\n );\r\n sites.forEach((site) => {\r\n let buildings = locations.filter(\r\n (bulding: QueueChoiceVm) => bulding.outcomeParentId === site.id\r\n );\r\n site.children = buildings;\r\n buildings.forEach((building: QueueChoiceVm) => {\r\n building.children = locations.filter(\r\n (room: QueueChoiceVm) => room.outcomeParentId === building.id\r\n );\r\n });\r\n });\r\n\r\n return sites.map((o: QueueChoiceVm) => ({\r\n name: o.name,\r\n label: o.name,\r\n value: o.id,\r\n children:\r\n o.children!.length > 0\r\n ? o.children!.map((a: QueueChoiceVm) => ({\r\n name: a.name,\r\n label: a.name,\r\n value: a.id,\r\n children:\r\n a.children!.length > 0\r\n ? a.children!.map((a: QueueChoiceVm) => ({\r\n name: a.name,\r\n label: a.name,\r\n value: a.id,\r\n children: a.children,\r\n }))\r\n : null,\r\n }))\r\n : null,\r\n }));\r\n };\r\n\r\n async function onRemove() {\r\n const ids = selectedItems;\r\n if (selectedItems.length > 0) {\r\n const usersId: UserInfoViewModel[] = selectedItems.map((x: any) => {\r\n let temp: UserInfoViewModel = {\r\n id: x.id,\r\n firstName: x.firstName,\r\n lastName: x.lastName,\r\n contactNumber: x.contactNumber,\r\n primaryLocation: locationId,\r\n department: x.department,\r\n };\r\n return temp;\r\n });\r\n\r\n await personsClient\r\n .removeUsersFromPrimaryLocation(ids)\r\n .then(() => {\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 personsClient.getUsersForPrimaryLocation(locationId).then((response) => {\r\n setCurrentItems(response);\r\n });\r\n setSelectedItems([]);\r\n }\r\n }\r\n\r\n const onResultSelectHandler = (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 const onCheckBoxCheckedHandler = (node: any[]) => {\r\n setSelectedItems([]);\r\n if (node[0]) {\r\n setLocationId(node[0]);\r\n personsClient.getUsersForPrimaryLocation(node[0]).then((response) => {\r\n setCurrentItems(response);\r\n });\r\n } else {\r\n setLocationId(\"\");\r\n setCurrentItems([]);\r\n }\r\n };\r\n\r\n async function onAddMemberHandler(members: any[]) {\r\n const userLocations: UserInfoViewModel[] = members.map((x: any) => {\r\n let temp: UserInfoViewModel = {\r\n id: x.id,\r\n firstName: x.firstName,\r\n lastName: x.lastName,\r\n contactNumber: x.contactNumber,\r\n primaryLocation: locationId,\r\n department: x.department,\r\n };\r\n return temp;\r\n });\r\n\r\n await personsClient\r\n .addUsersToPrimaryLocation(userLocations)\r\n .then(() => {\r\n enqueueSnackbar(\"Person(s) successfully added\", {\r\n variant: \"success\",\r\n });\r\n })\r\n .catch(() => {\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 personsClient.getUsersForPrimaryLocation(locationId).then((response) => {\r\n setCurrentItems(response);\r\n });\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) =>\r\n matcher(x.firstName + x.lastName, searchQuery)\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 0)}\r\n />\r\n );\r\n};\r\n\r\nexport default PrimaryLocationManager;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport {\r\n AllSettingsViewModel,\r\n Setting,\r\n SettingsClient,\r\n SettingsViewModel,\r\n} from \"../../../../common/client\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n createStyles,\r\n Divider,\r\n lighten,\r\n ListItemIcon,\r\n makeStyles,\r\n Paper,\r\n TextField,\r\n Theme,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport SaveOutlinedIcon from \"@material-ui/icons/SaveOutlined\";\r\nimport { grey } from \"@material-ui/core/colors\";\r\nimport { getSiteLocations } from \"../../../../data/api\";\r\nimport { Context } from \"../../../../state/Store\";\r\nimport { QueueChoiceVm } from \"../../../../common/client\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { Simulate } from \"react-dom/test-utils\";\r\nimport { isAbsolute } from \"path\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n textLines: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n },\r\n textAccordion: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(0),\r\n display: \"block!important\",\r\n },\r\n locationTextFields: {\r\n //display: \"flex\",\r\n justifyContent: \"center\",\r\n paddingLeft: theme.spacing(2),\r\n marginTop: \"-10px\",\r\n paddingTop: \"10px\",\r\n float: \"right\",\r\n },\r\n settingsTextFields: {\r\n //display: \"flex\",\r\n justifyContent: \"center\",\r\n paddingLeft: theme.spacing(1),\r\n marginTop: \"-10px\",\r\n float: \"right\",\r\n width: \"600px\"\r\n },\r\n paper: {\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n margin: theme.spacing(2),\r\n },\r\n saveIcon: {\r\n marginTop: \"-45px\",\r\n float: \"right\",\r\n color: theme.palette.primary.main,\r\n height: \"50px!important\",\r\n width: \"50px!important\",\r\n },\r\n saveIconDisabled: {\r\n marginTop: \"-45px\",\r\n float: \"right\",\r\n color: \"grey\",\r\n height: \"50px!important\",\r\n width: \"50px!important\",\r\n opacity: 0.5,\r\n },\r\n header: {\r\n fontSize: \"1.5rem\",\r\n fontWeight: \"bold\",\r\n },\r\n\r\n accordion: {\r\n display: \"block!important\",\r\n },\r\n })\r\n);\r\n\r\nconst Settings = () => {\r\n const { state, dispatch } = useContext(Context);\r\n const classes = useStyles();\r\n const settingsClient = useApiClient(SettingsClient);\r\n const [settings, setSettings] = useState([]);\r\n const [locations, setLocations] = useState([]);\r\n const [changeMade, setChangeMade] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const getSettings = () => {\r\n settingsClient\r\n .getAllSettings()\r\n .then((response) => {\r\n //@ts-ignore\r\n setSettings(response.sort((a,b) => a.name.localeCompare(b.name)));\r\n setLoading(false);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n\r\n getSiteLocations(state.user!.token)\r\n .then((response) => {\r\n var locs = response.filter(\r\n (x: QueueChoiceVm) => x.name != \"Covid Questionnaire\"\r\n );\r\n var sites = locs.filter(\r\n (x: QueueChoiceVm) => x.outcomeParentId == null\r\n );\r\n\r\n sites.forEach((x: QueueChoiceVm) => {\r\n x.children = locs.filter(\r\n (y: QueueChoiceVm) => y.outcomeParentId == x.id\r\n );\r\n if (x.children && x.children.length > 0) {\r\n x.children.forEach((y: QueueChoiceVm) => {\r\n y.children = locs.filter(\r\n (z: QueueChoiceVm) => z.outcomeParentId == y.id\r\n );\r\n });\r\n }\r\n });\r\n setLocations(sites);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n const updateValue = (\r\n event: React.ChangeEvent,\r\n id: string\r\n ) => {\r\n setChangeMade(true);\r\n setSettings(\r\n settings.map((setting: SettingsViewModel) => {\r\n if (setting.id === id) {\r\n setting.value = event.target.value;\r\n return setting;\r\n } else {\r\n return setting;\r\n }\r\n })\r\n );\r\n };\r\n\r\n const updateLocation = (\r\n event: React.ChangeEvent,\r\n id: string\r\n ) => {\r\n setChangeMade(true);\r\n\r\n setLocations(\r\n locations.map((site: QueueChoiceVm) => {\r\n if (site.id === id) {\r\n site.expireInMinutes = Number(event.target.value);\r\n return site;\r\n } else {\r\n if (site.children && site.children.length > 0) {\r\n site.children.map((building: QueueChoiceVm) => {\r\n if (building.id === id) {\r\n building.expireInMinutes = Number(event.target.value);\r\n return building;\r\n } else {\r\n if (building.children && building.children.length > 0) {\r\n building.children.map((room: QueueChoiceVm) => {\r\n if (room.id === id) {\r\n room.expireInMinutes = Number(event.target.value);\r\n return room;\r\n } else {\r\n return room;\r\n }\r\n });\r\n } else {\r\n return building;\r\n }\r\n }\r\n });\r\n } else {\r\n return site;\r\n }\r\n return site;\r\n }\r\n })\r\n );\r\n };\r\n\r\n const saveChanges = () => {\r\n var allSettings: AllSettingsViewModel = {\r\n settings: settings,\r\n locations: locations,\r\n };\r\n\r\n settingsClient\r\n .updateSettings(allSettings)\r\n .then((response) => {\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n setChangeMade(false);\r\n };\r\n\r\n useEffect(() => {\r\n getSettings();\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n On Site Locator Settings\r\n \r\n {changeMade ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n {!loading && settings.length > 0 && (\r\n <>\r\n \r\n {settings.map((setting: SettingsViewModel) => (\r\n <>
\r\n
\r\n {setting.name}:\r\n \r\n 60 ? 4 : 1 : 1}\r\n multiline={setting.value? setting.value.length > 40 ? true : false : false}\r\n size=\"small\"\r\n fullWidth={true}\r\n onChange={(event) => {\r\n updateValue(event, setting.id);\r\n }}\r\n />\r\n \r\n
\r\n \r\n
\r\n \r\n ))}\r\n
\r\n\r\n
Locations Auto Expire Settings: (In Minutes, if 0 minutes then it uses the default expire timer as set above)
\r\n \r\n {locations.map((site: QueueChoiceVm) => (\r\n <>\r\n \r\n }>\r\n {site.name}\r\n \r\n \r\n \r\n
\r\n {site.children &&\r\n site.children.length > 0 &&\r\n site.children.map((building: QueueChoiceVm) => (\r\n <>\r\n \r\n 0 ? (\r\n \r\n ) : null\r\n }\r\n >\r\n {building.children &&\r\n building.children.length > 0 ? (\r\n building.name\r\n ) : (\r\n \r\n
{building.name}
\r\n
\r\n {\r\n updateLocation(event, building.id);\r\n }}\r\n />\r\n
\r\n
\r\n )}\r\n \r\n \r\n
\r\n {building.children &&\r\n building.children.length > 0 &&\r\n building.children.map((room: QueueChoiceVm) => (\r\n <>\r\n \r\n
\r\n {room.name}\r\n {\r\n updateLocation(event, room.id);\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\nexport default Settings;\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\nimport nyrstar1 from \"../../../assets/images/nyrstar1.png\"\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\nimport { hasPermission } from \"../../utils/permisson\";\r\nimport { Backdrop, Button, ButtonGroup, CircularProgress } from \"@material-ui/core\";\r\nimport ViewListIcon from \"@material-ui/icons/ViewList\"\r\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\r\nimport PersonPinCircleOutlinedIcon from '@material-ui/icons/PersonPinCircleOutlined';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport { EditQueueChoiceVm, OutcomeIdentifier, Queue, QueueChoiceVm } from \"../../../common/client\";\r\nimport AssignmentIndIcon from '@material-ui/icons/AssignmentInd';\r\n\r\nconst drawerWidth = 285;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n },\r\n toolbar: {\r\n paddingRight: 24, // keep right padding when drawer closed\r\n },\r\n toolbarIcon: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n padding: \"0 8px\",\r\n ...theme.mixins.toolbar,\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n transition: theme.transitions.create([\"width\", \"margin\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n },\r\n appBarShift: {\r\n marginLeft: drawerWidth,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create([\"width\", \"margin\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n menuButton: {\r\n marginRight: 48,\r\n },\r\n menuButtonHidden: {\r\n display: \"none\",\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n drawerPaper: {\r\n position: \"relative\",\r\n whiteSpace: \"nowrap\",\r\n width: drawerWidth,\r\n transition: theme.transitions.create(\"width\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n drawerPaperClose: {\r\n overflowX: \"hidden\",\r\n transition: theme.transitions.create(\"width\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n width: theme.spacing(11),\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: theme.spacing(11),\r\n },\r\n },\r\n appBarSpacer: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n height: \"100vh\",\r\n overflow: \"auto\",\r\n },\r\n container: {\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n display: \"flex\",\r\n overflow: \"auto\",\r\n flexDirection: \"column\",\r\n },\r\n fixedHeight: {\r\n height: 240,\r\n },\r\n image: {\r\n height: \"80px\",\r\n width: \"190px\"\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n}));\r\n\r\nconst Dashboard = () => {\r\n const classes = useStyles();\r\n //GLOBAL STATE\r\n const { state, dispatch } = useContext(Context);\r\n const [loading, setLoading] = useState(true);\r\n const [queues, setQueues] = useState();\r\n const [site, setSite] = useState();\r\n const [allSites, setAllSites] = useState();\r\n\r\n let location = useLocation();\r\n let history = useHistory();\r\n const queueMatch = useViewQueueMatch();\r\n const currentQueue =\r\n queues && queueMatch\r\n ? queues.find((q) => q.id === queueMatch.params.queueId)\r\n : undefined;\r\n\r\n const [open, setOpen] = React.useState(true);\r\n const [loggedInUser, setLoggedInUser] = useState();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const handleDrawerOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleDrawerClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n \r\n // if (!state.user?.token) { //// had to comment out to be able to access queue editor or it redirects back to admin\r\n let token: any = null;\r\n \r\n \r\n if (location.hash != \"\") {\r\n token = location.hash.split(\"=\")[1];\r\n history.push(\"/admin\");\r\n } else {\r\n if (state.user?.token) {\r\n token = state.user?.token //localStorage.getItem(\"user:authToken\")/;\r\n }\r\n }\r\n\r\n if (token ) {\r\n \r\n api.getUserInfo(token).then((userInfo: any) => {\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n token: token,\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 primaryLocation: userInfo.primaryLocation,\r\n },\r\n });\r\n setLoading(false);\r\n });\r\n } else {\r\n window.location.href = \"/api/user/login\";\r\n }\r\n\r\n }, []);\r\n\r\n const RedirectCalculater = () => {\r\n const user = state.user;\r\n if (queues && queues?.length > 0) {\r\n return \"/admin/view/\" + queues![0].id;\r\n }\r\n if (user?.roles.find((x) => x.permissions == UserPermissions.ModifyRoles)) {\r\n return \"/admin/roles\";\r\n }\r\n if (\r\n user?.roles.find(\r\n (x) => x.permissions == UserPermissions.ModifyQueueMember\r\n )\r\n ) {\r\n return \"/admin/queuesmanagement\";\r\n }\r\n return \"\";\r\n };\r\n\r\n const setPrimarySite = (oI: OutcomeIdentifier) => {\r\n var site = allSites?.find((x: QueueChoiceVm) => x.outcomeIdentifier === oI)\r\n setSite(site);\r\n api.SetPrimarySiteForAdminUser(site!.id, state.user!.token).then((res: QueueChoiceVm) => {\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n primaryLocation: res.id,\r\n },\r\n });\r\n })\r\n \r\n }\r\n\r\n useEffect(() => {\r\n if (state.user?.firstName.length !== 0) {\r\n setLoggedInUser(`${state.user?.firstName} ${state.user?.lastName}`);\r\n if (state.user?.roles.find((x) => x.permissions == UserPermissions.SuperUser) || state.user?.roles.find((x) => x.permissions == UserPermissions.ContactTracer) || state.user?.roles.find((x) => x.permissions == UserPermissions.ProcessApplications) ) { \r\n getQueues(state.user?.token).then((res) => {\r\n setQueues(res.sort((a: Queue, b: Queue) => a.queueIndex.toString().localeCompare(b.queueIndex.toString())));\r\n });\r\n } else if (state.user?.roles.find((x) => x.permissions == UserPermissions.UploadManualCheckins)) { //need to handle this\r\n getQueues(state.user?.token).then((res) => {\r\n setQueues(res.sort((a: Queue, b: Queue) => a.queueIndex.toString().localeCompare(b.queueIndex.toString())));\r\n history.push(\"/admin/uploads\")\r\n });\r\n } else { \r\n history.push('/accessdenied')\r\n }\r\n }\r\n }, [state.user?.roles]);\r\n\r\n useEffect(() => {\r\n var ploc = state.user!.primaryLocation\r\n if (state.user !== undefined && state.user!.token !== \"\" && ploc !== null || ploc !== \"\") {\r\n api.GetOutcomesWithIdentifiers(state.user!.token).then((res: QueueChoiceVm[]) => {\r\n setAllSites(res);\r\n if (ploc === res.find((x: QueueChoiceVm) => x.outcomeIdentifier === OutcomeIdentifier.Port_Pirie_Site)?.id) {\r\n setSite(res.find((x: QueueChoiceVm) => x.outcomeIdentifier === OutcomeIdentifier.Port_Pirie_Site))\r\n } else if (ploc === res.find((x: QueueChoiceVm) => x.outcomeIdentifier === OutcomeIdentifier.Hobart_Site)?.id){\r\n setSite(res.find((x: QueueChoiceVm) => x.outcomeIdentifier === OutcomeIdentifier.Hobart_Site))\r\n }\r\n })\r\n }\r\n },[state.user?.firstName])\r\n\r\n const fixedHeightPaper = clsx(classes.paper, classes.fixedHeight);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Admin Dashboard\r\n \r\n {state.user && (\r\n <>\r\n )=> handleClick(event)}\r\n />\r\n \r\n Logout\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 history.push(viewQueueUrl(item.id))}\r\n selectedItem={currentQueue}\r\n site={site}\r\n />\r\n \r\n \r\n \r\n \r\n {(hasPermission(state.user, UserPermissions.SuperUser) || hasPermission(state.user, UserPermissions.UploadManualCheckins)) && (\r\n <>\r\n {\r\n history.push(\"/admin/uploads\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {hasPermission(state.user, UserPermissions.SuperUser) && (\r\n {\r\n history.push(\"/admin/primarylocation\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {hasPermission(state.user, UserPermissions.ModifyTeams) && (\r\n {\r\n history.push(\"/admin/departments\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {hasPermission(state.user, UserPermissions.ModifyRoles) && (\r\n history.push(\"/admin/roles\")}>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {hasPermission(state.user, UserPermissions.SuperUser) && (\r\n {\r\n history.push(\"/admin/settings\");\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 {!loading && state.user?.token && queues && queues.length > 0 ? (\r\n <>\r\n { site !== undefined ? (\r\n \r\n {AdminRoutes(queues,site, RedirectCalculater())}\r\n ) : (\r\n <>\r\n

Sorry, we could not automatically assign your primary site. Please select a site.

\r\n
\r\n \r\n ) => {\r\n event.preventDefault();\r\n setPrimarySite(OutcomeIdentifier.Hobart_Site)\r\n \r\n }}\r\n >\r\n Hobart\r\n \r\n \r\n ) => {\r\n event.preventDefault();\r\n setPrimarySite(OutcomeIdentifier.Port_Pirie_Site);\r\n }}\r\n >\r\n Port Pirie\r\n \r\n
\r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","import React, { useContext, useEffect, useMemo, useState } from \"react\";\r\nimport Container from \"@material-ui/core/Container\";\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 {\r\n CircularProgress,\r\n Divider,\r\n FormControl,\r\n FormHelperText,\r\n InputLabel,\r\n MenuItem,\r\n Select,\r\n Slide,\r\n} from \"@material-ui/core\";\r\nimport { Context } from \"../state/Store\";\r\nimport { ValidatedForm } from \"../components/core/forms/ValidatedForm\";\r\nimport { useAuth } from \"../auth/useAuth\";\r\nimport nyrstar1 from \"../assets/images/nyrstar1.jpg\";\r\nimport { userInfo } from \"os\";\r\nimport {\r\n DepartmentIdentifier,\r\n OutcomeIdentifier,\r\n QueueChoiceVm,\r\n SiteIdentifier,\r\n TeamViewModel,\r\n UserClient\r\n} from \"../common/client\";\r\nimport { useApiClient } from \"../common/apiclients\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(2),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\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 image: {},\r\n selectField: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!Important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 selectFieldSite: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 selectFieldOne: {\r\n marginTop: \"0px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 selectFieldtwo: {\r\n marginTop: \"0px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 error: {\r\n color: \"red\",\r\n paddingLeft: \"14px\",\r\n fontSize: \"0.9rem!important\",\r\n letterSpacing: \"0.0075rem\",\r\n },\r\n}));\r\n\r\nexport const UpdateProfile = (props: any) => {\r\n const classes = useStyles();\r\n const { state, dispatch } = useContext(Context);\r\n const [departmentList, setDepartmentList] = useState([]);\r\n const [firstName, setFirstName] = useState(state.user!.firstName);\r\n const [lastName, setLastName] = useState(state.user!.lastName);\r\n const [contactNumber, setContactNumber] = useState(state.user!.contactNumber);\r\n const [loadingSave, setLoadingSave] = useState(false);\r\n const [loadingCancel, setLoadingCancel] = useState(false);\r\n const [department, setDepartment] = useState(state.user!.department);\r\n const BLANKID = \"00000000-0000-0000-0000-000000000000\";\r\n const [loading, setLoading] = useState(true);\r\n const [allLocations, setAllLocations] = useState([]);\r\n const [site, setSite] = useState(\"\");\r\n const [allSites, setAllSites] = useState([]);\r\n const [building, setBuilding] = useState(\"\");\r\n const [allBuildings, setAllBuildings] = useState([\r\n { id: BLANKID, name: \"No room for selected site\" },\r\n ]);\r\n const [room, setRoom] = useState(\"\");\r\n const [allRooms, setAllRooms] = useState([\r\n { id: BLANKID, name: \"No room for selected bulding\" },\r\n ]);\r\n const userClient = useApiClient(UserClient);\r\n const cachedImg = useMemo(() => nyrstar1, []);\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 department: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n building: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n room: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n site: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\r\n\r\n const handleDepartmentChange = (event: any) => {\r\n setDepartment(event.target.value as string);\r\n };\r\n\r\n const handleSiteChange = (event: any) => {\r\n setSite(event.target.value as string);\r\n var buildings = allLocations.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeParentId === (event.target.value as string)\r\n );\r\n buildings.length > 0\r\n ? setAllBuildings(buildings)\r\n : setAllBuildings([{ id: BLANKID, name: \"No Buildings for this site\" }]);\r\n };\r\n\r\n const handleBuildingChange = (event: any) => {\r\n setBuilding(event.target.value as string);\r\n var rooms = allLocations.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeParentId === (event.target.value as string)\r\n );\r\n setRoom(BLANKID);\r\n rooms.length > 0\r\n ? setAllRooms(rooms)\r\n : setAllRooms([{ id: BLANKID, name: \"No Rooms for this Building\" }]);\r\n };\r\n\r\n const handleRoomChange = (event: any) => {\r\n setRoom(event.target.value as string);\r\n };\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 (!department) {\r\n errors.department.valid = false;\r\n errors.department.errorMessage = \"Department name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.department.valid = true;\r\n errors.department.errorMessage = \"\";\r\n }\r\n if (building.length === 0 || building === BLANKID) {\r\n errors.building.valid = false;\r\n errors.building.errorMessage = \"Building is required\";\r\n valid = false;\r\n } else {\r\n errors.building.valid = true;\r\n errors.building.errorMessage = \"\";\r\n }\r\n\r\n var allRooms: QueueChoiceVm[] = [];\r\n if (building !== BLANKID) {\r\n allRooms = allLocations.filter(\r\n (x: QueueChoiceVm) => x.outcomeParentId === building\r\n );\r\n }\r\n\r\n if (\r\n building !== BLANKID &&\r\n allRooms.length > 0 &&\r\n room !== allRooms.find((x: QueueChoiceVm) => room === x!.id)?.id\r\n ) {\r\n errors.room.valid = false;\r\n errors.room.errorMessage = \"Room is required\";\r\n valid = false;\r\n } else {\r\n errors.room.valid = true;\r\n errors.room.errorMessage = \"\";\r\n }\r\n\r\n if (site === BLANKID) {\r\n errors.site.valid = false;\r\n errors.site.errorMessage = \"Site is required\";\r\n valid = false;\r\n } else {\r\n errors.site.valid = true;\r\n errors.site.errorMessage = \"\";\r\n }\r\n\r\n if (\r\n !(\r\n department ===\r\n departmentList.find((x: TeamViewModel) => x.name === \"Visitor\").id ||\r\n department ===\r\n departmentList.find((x: TeamViewModel) => x.name === \"Contractor\").id\r\n ) &&\r\n allLocations.find((x: QueueChoiceVm) => x.name === \"I do not know...\") &&\r\n site ==\r\n allLocations.find((x: QueueChoiceVm) => x.name === \"I do not know...\")\r\n .id\r\n ) {\r\n errors.site.valid = false;\r\n errors.site.errorMessage =\r\n \"Non Visitors/Contractors must have a valid site\";\r\n valid = false;\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 var primaryLocation = \"\";\r\n if (room !== BLANKID) {\r\n primaryLocation = room;\r\n } else if (building !== BLANKID) {\r\n primaryLocation = building;\r\n } else {\r\n primaryLocation = site;\r\n }\r\n const newValues = {\r\n firstName: firstName,\r\n LastName: lastName,\r\n contactNumber: contactNumber,\r\n department: department,\r\n primaryLocation: primaryLocation,\r\n };\r\n props.newValues(newValues);\r\n } else {\r\n setLoadingSave(false);\r\n setLoadingCancel(false);\r\n }\r\n };\r\n\r\n const run = () => {\r\n if (\r\n state.user?.departments &&\r\n state.user?.departments.length > 0 &&\r\n departmentList.length === 0\r\n ) {\r\n\r\n var visitor: TeamViewModel = {id:\"\"}; \r\n var contractor: TeamViewModel = {id:\"\"};\r\n\r\n userClient.getSite(state.user?.primaryLocation).then((d) => {\r\n if (d.outcomeIdentifier === OutcomeIdentifier.Port_Pirie_Site){\r\n let list = state.user!.departments.filter((x:TeamViewModel) => x.siteIdentifier === SiteIdentifier.Port_Pirie);\r\n list = list.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Port_Pirie_Visitor\r\n );\r\n list = list.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Port_Pirie_Contractor\r\n );\r\n visitor = state.user!.departments.find(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.Port_Pirie_Visitor\r\n )!;\r\n contractor = state.user!.departments.find(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.Port_Pirie_Contractor\r\n )!;\r\n list.sort((a: TeamViewModel, b: TeamViewModel) =>\r\n a.name!.localeCompare(b.name!)\r\n );\r\n let temp = [visitor, contractor, ...list];\r\n setDepartmentList(temp);\r\n } else if (d.outcomeIdentifier === OutcomeIdentifier.Hobart_Site){\r\n let list = state.user!.departments.filter((x:TeamViewModel) => x.siteIdentifier === SiteIdentifier.Hobart);\r\n list = list.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Hobart_Visitor\r\n );\r\n list = list.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Hobart_Contractor\r\n );\r\n visitor = state.user!.departments.find(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.Hobart_Visitor\r\n )!;\r\n contractor = state.user!.departments.find(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.Hobart_Contractor\r\n )!;\r\n list.sort((a: TeamViewModel, b: TeamViewModel) =>\r\n a.name!.localeCompare(b.name!)\r\n );\r\n let temp = [visitor, contractor, ...list];\r\n //Only visitor at Hobart in phase 1\r\n console.log(\"visitor>\",visitor)\r\n setDepartmentList([visitor]);\r\n } \r\n })\r\n\r\n if (state.user?.locations && state.user?.locations.length > 0) {\r\n var locations = state.user?.locations;\r\n if (state.user?.department === visitor.id) {\r\n locations = filterOther(locations);\r\n } else if (state.user?.department === contractor.id) {\r\n locations = filterVisiting(locations);\r\n } else {\r\n locations = filterVisiting(locations);\r\n locations = filterDontKnow(locations);\r\n }\r\n locations = filterQuestionnaires(locations);\r\n setAllLocations(locations);\r\n var sites = locations.filter(\r\n (item: QueueChoiceVm) => item.outcomeParentId === null\r\n );\r\n setAllSites(sites);\r\n var primaryLocation = locations.find(\r\n (x: QueueChoiceVm) => x.id === state.user?.primaryLocation\r\n );\r\n var buildings = locations.filter((x: QueueChoiceVm) =>\r\n sites.map((x) => x.id).includes(x.outcomeParentId!)\r\n );\r\n setAllBuildings(buildings);\r\n\r\n if (buildings.length > 0) {\r\n setAllRooms(\r\n locations.filter((x: QueueChoiceVm) =>\r\n buildings.map((x) => x.id).includes(x.outcomeParentId!)\r\n )\r\n );\r\n }\r\n\r\n if (primaryLocation === undefined) {\r\n setSite(BLANKID);\r\n setBuilding(BLANKID);\r\n setRoom(BLANKID);\r\n } else if (primaryLocation?.outcomeParentId === null) {\r\n setSite(primaryLocation!.id);\r\n var buildings = locations.filter(\r\n (x: QueueChoiceVm) => x.outcomeParentId === primaryLocation!.id\r\n );\r\n setAllBuildings(\r\n buildings.length > 0\r\n ? buildings\r\n : [{ id: BLANKID, name: \"No Buildings for this Site\" }]\r\n );\r\n setAllRooms([{ id: BLANKID, name: \"No Buildings for this Site\" }]);\r\n setBuilding(BLANKID);\r\n setRoom(BLANKID);\r\n } else if (\r\n buildings.find((x: QueueChoiceVm) => x.id === primaryLocation!.id)\r\n ) {\r\n setRoom(BLANKID);\r\n setBuilding(primaryLocation!.id);\r\n setAllBuildings(\r\n locations.filter(\r\n (x: QueueChoiceVm) =>\r\n x.outcomeParentId === primaryLocation!.outcomeParentId\r\n )\r\n );\r\n setSite(primaryLocation!.outcomeParentId!);\r\n var rooms = locations.filter(\r\n (x: QueueChoiceVm) => x.outcomeParentId === primaryLocation!.id\r\n );\r\n rooms.length > 0\r\n ? setAllRooms(rooms)\r\n : setAllRooms([\r\n { id: BLANKID, name: \"No Rooms for this Building\" },\r\n ]);\r\n } else {\r\n setRoom(primaryLocation!.id);\r\n setBuilding(primaryLocation!.outcomeParentId!);\r\n var b = buildings.find(\r\n (x: QueueChoiceVm) => x.id === primaryLocation!.outcomeParentId!\r\n );\r\n if (typeof b !== undefined) {\r\n //@ts-ignore\r\n var site = sites.find((x: QueueChoiceVm) => x.id === b.outcomeParentId!\r\n ).id!;\r\n setSite(site);\r\n setAllBuildings(\r\n locations.filter((x: QueueChoiceVm) => x.outcomeParentId === site)\r\n );\r\n var rooms = locations.filter(\r\n (x: QueueChoiceVm) => x.outcomeParentId === b!.id\r\n );\r\n setAllRooms(\r\n locations.filter(\r\n (x: QueueChoiceVm) => x.outcomeParentId === b!.id\r\n )\r\n );\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const filterQuestionnaires = (data: QueueChoiceVm[]) => {\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Hobart_Covid_Questionnaire\r\n );\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !==\r\n OutcomeIdentifier.Port_Pirie_Covid_Questionnaire\r\n );\r\n return data;\r\n };\r\n\r\n const filterVisiting = (data: QueueChoiceVm[]) => {\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Hobart_Visiting\r\n );\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Port_Pirie_visiting\r\n );\r\n return data;\r\n };\r\n\r\n const filterOther = (data: QueueChoiceVm[]) => {\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Hobart_Other\r\n );\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Port_Pirie_Other\r\n );\r\n return data;\r\n };\r\n\r\n const filterDontKnow = (data: QueueChoiceVm[]) => {\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Hobart_I_Do_Not_Know\r\n );\r\n data = data.filter(\r\n (item: QueueChoiceVm) =>\r\n item.outcomeIdentifier !== OutcomeIdentifier.Port_Pirie_I_Do_Not_Know\r\n );\r\n return data;\r\n };\r\n\r\n useEffect(() => {\r\n run();\r\n }, [props.departments]);\r\n\r\n useEffect(() => {\r\n console.log(\"deps\",state.user?.departments,departmentList)\r\n },[state.user?.departments,departmentList])\r\n\r\n return (\r\n \r\n \r\n
\r\n \"Site\r\n Update Details\r\n \r\n {\r\n setFirstName(e.target.value);\r\n }}\r\n variant=\"outlined\"\r\n disabled={loadingSave || loadingCancel}\r\n />\r\n {\r\n setLastName(e!.target.value);\r\n }}\r\n variant=\"outlined\"\r\n validation={{ required: true }}\r\n disabled={loadingSave || loadingCancel}\r\n />\r\n {\r\n setContactNumber(e.target.value);\r\n }}\r\n type={\"tel\"}\r\n disabled={loadingSave || loadingCancel}\r\n />\r\n \r\n
\r\n \r\n \r\n Your Department *\r\n
\r\n \r\n
\r\n \r\n {state.user?.departments &&\r\n state.user?.departments.length > 0 &&\r\n departmentList &&\r\n departmentList.length > 0 ? (\r\n departmentList.map((element: TeamViewModel) => {\r\n return (\r\n {element.name}\r\n );\r\n })\r\n ) : (\r\n \r\n Departments not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.department.valid\r\n ? formErrors.department.errorMessage\r\n : \"\"}\r\n \r\n \r\n \r\n \r\n Update Primary Location\r\n \r\n \r\n
\r\n \r\n \r\n Site *\r\n
\r\n \r\n \r\n {allBuildings.length > 0 ? (\r\n allSites.map((element: any) => {\r\n return (\r\n {element.name}\r\n );\r\n })\r\n ) : (\r\n \r\n Site not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.site.valid ? formErrors.site.errorMessage : \"\"}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n Building *\r\n
\r\n \r\n \r\n {allBuildings.length > 0 ? (\r\n allBuildings.map((element: any) => {\r\n return (\r\n {element.name}\r\n );\r\n })\r\n ) : (\r\n \r\n buildings not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.building.valid\r\n ? formErrors.building.errorMessage\r\n : \"\"}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n Room *\r\n
\r\n \r\n \r\n {allBuildings.length > 0 ? (\r\n allRooms.map((element: any) => {\r\n return (\r\n {element.name}\r\n );\r\n })\r\n ) : (\r\n \r\n room not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.room.valid ? formErrors.room.errorMessage : \"\"}\r\n \r\n \r\n
\r\n\r\n \r\n \r\n ) => {\r\n event.preventDefault();\r\n setLoadingSave(true);\r\n onSubmit();\r\n }}\r\n >\r\n {loadingSave && }\r\n {!loadingSave && \"Save\"}\r\n \r\n \r\n \r\n ) => {\r\n event.preventDefault();\r\n setLoadingCancel(true);\r\n props.onCancel();\r\n }}\r\n >\r\n {loadingCancel && }\r\n {!loadingCancel && \"Cancel\"}\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 Container from \"@material-ui/core/Container\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Divider,\r\n Slide,\r\n} from \"@material-ui/core\";\r\n\r\nimport nyrstar1 from \"../assets/images/nyrstar1.png\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(2),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\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 paddingTop: \"70px\"\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 image: {},\r\n selectField: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!Important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 error: {\r\n color:\"red\", \r\n paddingLeft: \"14px\", \r\n fontSize:\"0.9rem!important\", \r\n letterSpacing: \"0.0075rem\"\r\n }\r\n}));\r\n\r\nexport const ErrorView = (props: any) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n
\r\n \"Site\r\n \r\n {props.title}\r\n \r\n \r\n
{props.message}
\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport {\r\n Backdrop,\r\n Box,\r\n Button,\r\n CircularProgress,\r\n createStyles,\r\n Grid,\r\n makeStyles,\r\n TextField,\r\n Theme,\r\n} from \"@material-ui/core\";\r\nimport { Finalisation } from \"./Finalisation\";\r\nimport { PersonKind, User } from \"../state/State.model\";\r\nimport {\r\n CheckInClient,\r\n FormDataClient,\r\n CheckInRequestViewModel,\r\n QueueClient,\r\n QuestionnaireIndex,\r\n} from \"../common/client\";\r\nimport { useApiClient } from \"../common/apiclients\";\r\nimport { Context } from \"../state/Store\";\r\nimport { UpdateProfile } from \"./UpdateProfile\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { PublicQuestionnaire } from \"./Questionnaire\";\r\nimport { ErrorView } from \"./ErrorView\";\r\nimport PrimaryLocation from \"./PrimaryLocation\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n text: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n textFields: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n })\r\n);\r\n\r\nexport const QRLanding = () => {\r\n const { state, dispatch } = useContext(Context);\r\n const [loading, setLoading] = useState(true);\r\n const [location, setLocation] = useState(null);\r\n const [user, setUser] = useState(state.user as User);\r\n const classes = useStyles();\r\n const locationData = window.location.href.slice(-36);\r\n const [checkout, setCheckout] = useState(false);\r\n const locationClient = useApiClient(QueueClient);\r\n const checkInClient = useApiClient(CheckInClient);\r\n const [updateProfile, setUpdateProfile] = useState(false);\r\n const { enqueueSnackbar } = useSnackbar();\r\n const [checkInTime, setCheckInTime] = useState();\r\n const [checkOutTime, setCheckOutTime] = useState();\r\n const [errorView, setErrorView] = useState(false);\r\n const [errorTile, setErrorTitle] = useState(\"\");\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [questionnaire, setQuestionnaire] = useState(null);\r\n const [primaryLoation, setPrimaryLocation] = useState(false);\r\n const [completed, setCompleted] = useState();\r\n const userOffset = new Date().getTimezoneOffset() * 60 * 1000;\r\n const [visitorOrContractor, setVisitorOrContractor] =\r\n useState(0);\r\n const [primaryLocationExists, setPrimaryLocationExists] = useState(\r\n state.user!.primaryLocation === locationData.toLowerCase() ? true : false\r\n );\r\n const [questionnairePassResult, setQuestionnairePassResult] =\r\n useState(true);\r\n\r\n useEffect(() => {\r\n if (!location && user.firstName.length > 0) checkLocation(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (completed) {\r\n completed === \"Pass\"\r\n ? setQuestionnairePassResult(true)\r\n : setQuestionnairePassResult(false);\r\n setQuestionnaire(null);\r\n checkInUser();\r\n }\r\n }, [completed]);\r\n\r\n async function checkLocation(primaryLocation: boolean) {\r\n if (state.user?.primaryLocation === null && primaryLocation) {\r\n const usersDepartment = state.user?.departments.filter(\r\n (x: any) => x.id === state.user?.department\r\n );\r\n\r\n if (usersDepartment![0].name === \"Visitor\")\r\n setVisitorOrContractor(1)\r\n if (usersDepartment![0].name === \"Contractor\")\r\n setVisitorOrContractor(2)\r\n \r\n setLoading(false);\r\n setQuestionnaire(null)\r\n setPrimaryLocation(true);\r\n } else if (\r\n locationData\r\n .toLowerCase()\r\n .match(\r\n \"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\"\r\n )\r\n ) {\r\n const usersDepartment = state.user?.departments.filter(\r\n (x: any) => x.id === state.user?.department\r\n );\r\n\r\n if (\r\n usersDepartment &&\r\n (usersDepartment[0]!.name === \"Visitor\" ||\r\n usersDepartment[0]!.name === \"Contractor\")\r\n ) {\r\n checkInClient\r\n .getStatus()\r\n .then((response) => {\r\n if (response.error === 1) {\r\n checkInUser();\r\n } else if (\r\n new Date(response.checkInTime!).getTime() <\r\n new Date().getTime() - Number(response.covidTimer) * 24 * 60 * 1000 + userOffset\r\n ) {\r\n setQuestionnaire(QuestionnaireIndex.Port_Pirie_Covid_Survey);\r\n //checkInUser();\r\n setLoading(false);\r\n } else if (\r\n new Date(response.checkInTime!).getTime() <\r\n new Date().getTime() - Number(response.declarationTimer) * 60 * 1000 + userOffset\r\n ) {\r\n setQuestionnaire(QuestionnaireIndex.Declaration);\r\n //checkInUser();\r\n setLoading(false);\r\n } else {\r\n checkInUser();\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n } else {\r\n checkInUser();\r\n }\r\n } else {\r\n setErrorTitle(\"Location Error\");\r\n setErrorMessage(\"Sorry, no valid location was given\");\r\n setErrorView(true);\r\n setLoading(false);\r\n }\r\n }\r\n\r\n const checkInUser = async () => {\r\n const location = await locationClient\r\n .getQueueOutcome(locationData)\r\n .then((response: any) => {\r\n if (response[0].error === 0) {\r\n let location = \"\";\r\n if (response[2].name !== null) {\r\n location = `${response[2].name} > ${response[1].name} > ${response[0].name}`;\r\n } else {\r\n location = `${response[1].name} > ${response[0].name}`;\r\n }\r\n setLocation(location);\r\n if (location) {\r\n const checkIn: CheckInRequestViewModel = {\r\n personId: user!.id,\r\n queueOutcomeChoiceId: locationData,\r\n };\r\n checkInClient.checkIn(checkIn).then((res: any) => {\r\n setCheckInTime(new Date(Date.parse(res.checkInTime)));\r\n setLoading(false);\r\n });\r\n }\r\n } else if (response[0].error === 2) {\r\n setErrorTitle(\"Location Error\");\r\n setErrorMessage(\"Sorry, no valid location was given\");\r\n setErrorView(true);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((error: any) => console.log(error));\r\n };\r\n\r\n const checkoutUser = () => {\r\n checkInClient.checkout(locationData).then((res: any) => {\r\n setCheckOutTime(new Date(Date.parse(res.checkOutTime)));\r\n setCheckout(true);\r\n });\r\n };\r\n\r\n const saveUserProfile = (newValues: any) => {\r\n checkInClient.update(newValues).then((res) => {\r\n if (res.firstName !== \"\") {\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n firstName: res.firstName,\r\n lastName: res.lastName,\r\n contactNumber: res.contactNumber,\r\n department: res.department,\r\n primaryLocation: res.primaryLocation,\r\n },\r\n });\r\n setPrimaryLocationExists(\r\n res.primaryLocation === locationData.toLowerCase() ? true : false\r\n );\r\n setUpdateProfile(false);\r\n enqueueSnackbar(\"Details Updated\", { variant: \"success\" });\r\n } else {\r\n setUpdateProfile(false);\r\n enqueueSnackbar(\"Error updating details\", { variant: \"error\" });\r\n }\r\n });\r\n };\r\n\r\n const cancelUpdateProfile = () => {\r\n setUpdateProfile(false);\r\n };\r\n\r\n const hadelPrimaryLocation = (locationId: string) => {\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n primaryLocation: locationId,\r\n },\r\n });\r\n setPrimaryLocation(false);\r\n checkLocation(false);\r\n };\r\n\r\n return (\r\n <>\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n\r\n {!loading &&\r\n updateProfile &&\r\n !errorView &&\r\n !questionnaire &&\r\n !primaryLoation && (\r\n \r\n )}\r\n\r\n {!loading &&\r\n !updateProfile &&\r\n !errorView &&\r\n !questionnaire &&\r\n !primaryLoation &&\r\n checkInTime && (\r\n \r\n )}\r\n {!loading &&\r\n !updateProfile &&\r\n !errorView &&\r\n questionnaire &&\r\n !primaryLoation && (\r\n setCompleted(completed)}\r\n />\r\n )}\r\n\r\n {!loading && !updateProfile && !questionnaire && primaryLoation && !errorView && (\r\n \r\n )}\r\n\r\n {errorView && }\r\n \r\n );\r\n};\r\n","import React, { ReactNode, useContext, useEffect, useState } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n Card,\r\n CardContent,\r\n Divider,\r\n List,\r\n ListItem,\r\n Slide,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport ScheduleOutlinedIcon from \"@material-ui/icons/ScheduleOutlined\";\r\nimport Moment from \"react-moment\";\r\nimport { PersonKind, User } from \"../state/State.model\";\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n dayPassStyles,\r\n} from \"../styles/common\";\r\nimport { Details } from \"../components/core/Templates/Details\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport {\r\n MapMarkerAltSolid,\r\n MapPinSolid,\r\n StreetViewSolid,\r\n} from \"../components/Icons/DoHIcons\";\r\nimport clsx from \"clsx\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { Context } from \"../state/Store\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst StyledTypography = withStyles((theme) => ({\r\n body1: {\r\n fontSize: \"1.5rem!important\",\r\n textAlign: \"center\",\r\n },\r\n}))(Typography);\r\n\r\nexport const CurrentStatusView = (props: any) => {\r\n const { state, dispatch } = useContext(Context);\r\n let classes = dayPassStyles();\r\n let user = state.user as User;\r\n\r\n const [expanded, setExpanded] = React.useState();\r\n const handleChange =\r\n (panel: string) => (event: React.ChangeEvent<{}>, newExpanded: boolean) => {\r\n setExpanded(newExpanded ? panel : false);\r\n };\r\n const userOffset = new Date().getTimezoneOffset()*60*1000;\r\n\r\n const header = () => {\r\n return (\r\n <>\r\n \r\n \r\n {!props.checkout\r\n ? user.firstName + \" \" + user.lastName + \", checked in at\"\r\n : user.firstName + \" \" + user.lastName + \", checked out at\"}\r\n \r\n \r\n );\r\n };\r\n let date = (\r\n \r\n {!props.checkout ? format(new Date(props.checkInTime - userOffset), 'EEE HH:mm, dd-MM-yyyy') : format(new Date(props.checkOutTime - userOffset), 'EEE HH:mm, dd-MM-yyyy')}\r\n \r\n );\r\n const result = (): JSX.Element => {\r\n return (\r\n <>\r\n THANK YOU\r\n {!props.checkout ? (\r\n PLEASE PROCEED\r\n ) : (\r\n FOR CHECKING OUT\r\n )}\r\n \r\n );\r\n };\r\n let lastLocation = props.location;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {header()}\r\n \r\n
} />\r\n
} />\r\n\r\n {props.user?.locationHistory?.length! > 1 && (\r\n \r\n }\r\n >\r\n \r\n {`${expanded === \"panel1\" ? \"Hide\" : \"Show\"}`} Location\r\n History\r\n \r\n \r\n \r\n {props.user?.locationHistory?.map(\r\n (s: any, index: number) => (\r\n
} />\r\n )\r\n )}\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n\r\n {!props.checkout && (\r\n <>\r\n \r\n \r\n \r\n ) => {\r\n event.preventDefault();\r\n props.onCheckout();\r\n }}\r\n >\r\n Checkout\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n ) => {\r\n event.preventDefault();\r\n props.updateProfile(true);\r\n }}\r\n >\r\n Update Details\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 {\r\n Backdrop,\r\n Box,\r\n Button,\r\n CircularProgress,\r\n createStyles,\r\n Grid,\r\n makeStyles,\r\n TextField,\r\n Theme,\r\n} from \"@material-ui/core\";\r\nimport { CurrentStatusView } from \"./CurrentStatusView\";\r\nimport { PersonKind, User } from \"../state/State.model\";\r\nimport {\r\n CheckInClient,\r\n FormDataClient,\r\n CheckInRequestViewModel,\r\n QueueClient,\r\n} from \"../common/client\";\r\nimport { useApiClient } from \"../common/apiclients\";\r\nimport { Context } from \"../state/Store\";\r\nimport { UpdateProfile } from \"./UpdateProfile\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { ErrorView } from \"./ErrorView\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n text: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n textFields: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n })\r\n);\r\n\r\nexport const CurrentStatus = () => {\r\n const { state, dispatch } = useContext(Context);\r\n const [loading, setLoading] = useState(true);\r\n const [location, setLocation] = useState(null);\r\n const [user, setUser] = useState(state.user as User);\r\n const classes = useStyles();\r\n const [locationData, setLocationData] = useState(\"\");\r\n const [checkout, setCheckout] = useState(false);\r\n const locationClient = useApiClient(QueueClient);\r\n const checkInClient = useApiClient(CheckInClient);\r\n const [updateProfile, setUpdateProfile] = useState(false);\r\n const { enqueueSnackbar } = useSnackbar();\r\n const [checkInTime, setCheckInTime] = useState();\r\n const [checkOutTime, setCheckOutTime] = useState();\r\n const [errorView, setErrorView] = useState(false);\r\n const [errorTile, setErrorTitle] = useState(\"\");\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (!location && user.firstName.length > 0) checkCurrentStatus();\r\n }, []);\r\n\r\n async function checkCurrentStatus() {\r\n checkInClient\r\n .getStatus()\r\n .then((response: any) => {\r\n if (response.error === 0) {\r\n let location = \"\"\r\n setLocationData(response.location[0].id);\r\n if (response.location[2]){\r\n location = `${response.location[2].name} > ${response.location[1].name} > ${response.location[0].name}`;\r\n } else {\r\n location = `${response.location[1].name} > ${response.location[0].name}`;\r\n }\r\n setLocation(location);\r\n setCheckInTime(new Date(Date.parse(response.checkInTime)));\r\n setCheckOutTime(new Date(Date.parse(response.checkInTime)));\r\n response.checkOutTime ? setCheckout(true) : setCheckout(false);\r\n setLoading(false);\r\n } else {\r\n if (response.error === 1) {\r\n setErrorTitle(\"Check In Error\");\r\n setErrorMessage(\"Sorry, no previous check in was found\");\r\n setErrorView(true);\r\n setLoading(false);\r\n }\r\n }\r\n })\r\n .catch((error: any) => {\r\n setErrorTitle(\"Unknown Error\");\r\n setErrorMessage(\"Sorry, an unknown error has occurred\");\r\n setErrorView(true);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const checkoutUser = () => {\r\n checkInClient.checkout(locationData).then((res: any) => {\r\n setCheckOutTime(new Date(Date.parse(res.checkOutTime)));\r\n setCheckout(true);\r\n });\r\n };\r\n\r\n const saveUserProfile = (newValues: any) => {\r\n checkInClient.update(newValues).then((res) => {\r\n if (res.firstName !== \"\") {\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n firstName: res.firstName,\r\n lastName: res.lastName,\r\n contactNumber: res.contactNumber,\r\n department: res.department,\r\n },\r\n });\r\n\r\n setUpdateProfile(false);\r\n enqueueSnackbar(\"Details Updated\", { variant: \"success\" });\r\n } else {\r\n setUpdateProfile(false);\r\n enqueueSnackbar(\"Error updating details\", { variant: \"error\" });\r\n }\r\n });\r\n };\r\n\r\n const cancelUpdateProfile = () => {\r\n setUpdateProfile(false);\r\n };\r\n\r\n return (\r\n <>\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n\r\n {!loading && updateProfile && !errorView && (\r\n \r\n )}\r\n\r\n {!loading && !updateProfile && !errorView && (\r\n \r\n )}\r\n\r\n {errorView && }\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nimport nyrstar1 from \"../assets/images/nyrstar1.png\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {Divider} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(2),\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 textAlign: \"center\",\r\n },\r\n },\r\n image: {},\r\n \r\n }));\r\n\r\nexport const AccessDenied = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n
\r\n \"Site\r\n
\r\n \r\n
\r\n \r\n You do not have access to this page. If you belive this is in error please contact your administrator.\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 Container from \"@material-ui/core/Container\";\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 {\r\n Checkbox,\r\n CircularProgress,\r\n Divider,\r\n FormControl,\r\n FormControlLabel,\r\n FormHelperText,\r\n InputLabel,\r\n MenuItem,\r\n Select,\r\n} from \"@material-ui/core\";\r\nimport {\r\n DepartmentIdentifier,\r\n QuestionnaireIndex,\r\n SettingsViewModel,\r\n TeamViewModel,\r\n UserClient,\r\n SettingsClient\r\n} from \"../common/client\";\r\nimport { Context } from \"../state/Store\";\r\nimport { useApiClient } from \"../common/apiclients\";\r\nimport { ValidatedForm } from \"../components/core/forms/ValidatedForm\";\r\nimport { PublicQuestionnaire } from \"./Questionnaire\";\r\nimport nyrstar1 from \"../assets/images/nyrstar1.jpg\";\r\nimport { checkForUser } from \"../data/api\";\r\nimport { useCookies } from \"react-cookie\";\r\nimport CookieConsent, { getCookieConsentValue } from \"react-cookie-consent\";\r\nimport PrimaryLocation from \"./PrimaryLocation\";\r\nimport { Questionnaire } from \"../components/core/QuestionSlider/Questionnaire\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(0),\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 image: {},\r\n selectField: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 error: {\r\n color: \"red\",\r\n paddingLeft: \"14px\",\r\n fontSize: \"0.9rem!important\",\r\n letterSpacing: \"0.0075rem\",\r\n },\r\n}));\r\n\r\nexport const InterstateVisitorQuestionnaire = (props: any) => {\r\n const classes = useStyles();\r\n const URL = window.location.href.split(\"/\");\r\n const URLData = URL[URL.length - 1];\r\n const userClient = useApiClient(UserClient);\r\n const settingsClient = useApiClient(SettingsClient);\r\n const { state, dispatch } = useContext(Context);\r\n const [departmentList, setDepartmentList] = useState([]);\r\n const [firstName, setFirstName] = useState(\"\");\r\n const [lastName, setLastName] = useState(\"\");\r\n const [contactNumber, setContactNumber] = useState(\"\");\r\n const [cbxRememberMe, setCbxRememberMe] = useState(true);\r\n const [loading, setLoading] = useState(false);\r\n const [department, setDepartment] = useState(\"\");\r\n const [response, setresponse] = useState([]);\r\n const [token, setToken] = useState(\"\");\r\n const [settings, setSettings] = useState([]);\r\n const [questionnaireCompleted, setQuestionnaireCompleted] =\r\n useState();\r\n const [questionnaire, setQuestionnaire] = useState(false);\r\n const [cookies, setCookie] = useCookies([\"Token\", \"CookieConsent\"]);\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 department: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\r\n\r\n const handleCBXChange = (event: React.ChangeEvent) => {\r\n setCbxRememberMe(event.target.checked);\r\n };\r\n\r\n const handleDepartmentChange = (event: any) => {\r\n setDepartment(event.target.value as string);\r\n };\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 (!department) {\r\n errors.department.valid = false;\r\n errors.department.errorMessage = \"Department name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.department.valid = true;\r\n errors.department.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 userClient\r\n .authGate({\r\n firstName: firstName,\r\n lastName: lastName,\r\n contactNumber: contactNumber,\r\n kind: 1,\r\n department: department,\r\n })\r\n .then((d) => {\r\n setresponse(d);\r\n registerResponse(d);\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n props.departments &&\r\n props.departments.length > 0 &&\r\n departmentList.length === 0\r\n ) {\r\n let list = props.departments.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Port_Pirie_Visitor\r\n );\r\n list = list.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Port_Pirie_Contractor\r\n );\r\n let visitor = props.departments.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.Port_Pirie_Visitor\r\n );\r\n let contractor = props.departments.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.Port_Pirie_Contractor\r\n );\r\n list.sort((a: TeamViewModel, b: TeamViewModel) =>\r\n a.name!.localeCompare(b.name!)\r\n );\r\n let temp = [visitor[0], contractor[0], ...list];\r\n setDepartmentList(temp);\r\n }\r\n }, [props.departments]);\r\n\r\n useEffect(() => {\r\n settingsClient.getAllSettings().then((d) => { setSettings(d); });\r\n setQuestionnaire(true);\r\n setLoading(false);\r\n },[])\r\n\r\n const registerResponse = (response: any) => { \r\n registerUser(response); \r\n };\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (questionnaireCompleted) {\r\n setQuestionnaire(false);\r\n registerUser(response); \r\n }\r\n }, [questionnaireCompleted]);\r\n\r\n const registerUser = ( res: any) => {\r\n var data: any;\r\n if (res === undefined) {\r\n data = response;\r\n } else {\r\n data = res;\r\n }\r\n\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n ...data.user,\r\n token: data.token,\r\n rememberMe: cbxRememberMe,\r\n department: department,\r\n covidQuestionnaire: questionnaireCompleted,\r\n },\r\n });\r\n if (getCookieConsentValue() === \"true\" && cbxRememberMe) {\r\n setCookie(\"Token\", response.token, {\r\n path: \"/\",\r\n secure: true,\r\n sameSite: \"strict\",\r\n expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n {questionnaire && (\r\n \r\n setQuestionnaireCompleted(completed)\r\n }\r\n showStepper={true}\r\n questionnaireIndex={QuestionnaireIndex.Site_Entry_Application}\r\n settings={settings}\r\n \r\n />\r\n )}\r\n\r\n {!questionnaire && (\r\n \r\n
\r\n \"Site\r\n User Details\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 type={\"tel\"}\r\n disabled={loading}\r\n />\r\n \r\n \r\n \r\n Your Department *\r\n
\r\n \r\n \r\n {props.departments &&\r\n props.departments.length > 0 &&\r\n departmentList &&\r\n departmentList.length > 0 ? (\r\n departmentList.map((element: TeamViewModel) => {\r\n return (\r\n {element.name}\r\n );\r\n })\r\n ) : (\r\n \r\n Departments not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.department.valid\r\n ? formErrors.department.errorMessage\r\n : \"\"}\r\n \r\n \r\n \r\n }\r\n label=\"Remember me\"\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 );\r\n};\r\n","import {\r\n Backdrop,\r\n CircularProgress,\r\n createStyles,\r\n makeStyles,\r\n Theme,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport nyrstar1 from \"../assets/images/nyrstar1.jpg\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { Context } from \"../state/Store\";\r\nimport { PublicQuestionnaire } from \"../views/Questionnaire\";\r\nimport {\r\n QuestionnaireIndex,\r\n SettingsViewModel,\r\n SettingsClient,\r\n} from \"../common/client\";\r\nimport { useApiClient } from \"../common/apiclients\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n text: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n textFields: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n paperCenter: {\r\n marginTop: theme.spacing(40),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n },\r\n image: {},\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 })\r\n);\r\n\r\nconst VisitorAppliactionHost = () => {\r\n const { state } = useContext(Context);\r\n const [loading, setLoading] = useState(false);\r\n const classes = useStyles();\r\n const [completed, setCompleted] = useState(\"\");\r\n const settingsClient = useApiClient(SettingsClient);\r\n const [settings, setSettings] = useState([]);\r\n const showStepper = window.innerWidth > 699 ? true : false;\r\n\r\n const preLoadData = () => {\r\n settingsClient.getAllSettings().then((res) => {\r\n setSettings(res);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n preLoadData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (completed) {\r\n setLoading(false);\r\n }\r\n }, [completed]);\r\n\r\n return (\r\n
\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n\r\n {!loading && !completed && (\r\n setCompleted(completed)}\r\n showStepper={showStepper}\r\n settings={settings}\r\n />\r\n )}\r\n\r\n {!loading && completed.length > 1 && (\r\n
\r\n \"Site\r\n \r\n Thank you for submitting the Application\r\n \r\n \r\n Your application is now waiting for the visitor to complete their\r\n part.\r\n \r\n \r\n You will be notified by email of the approval result.\r\n \r\n
\r\n )}\r\n\r\n {!loading && completed.length == 1 && (\r\n
\r\n \"Site\r\n \r\n Error submitting the Application\r\n \r\n A email is incorrect.\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default VisitorAppliactionHost;\r\n","import React, { useEffect, useContext, useState } from \"react\";\r\nimport { Switch, Route, useHistory, Redirect } from \"react-router\";\r\nimport { RegionSelect } from \"./RegionSelect\";\r\nimport { Registration } from \"./Registration\";\r\nimport { PublicQuestionnaire } from \"./Questionnaire\";\r\nimport { Finalisation } from \"./Finalisation\";\r\nimport Dashboard from \"../modules/admin/views/Dashboard\";\r\nimport { QRLanding } from \"./QRLanding\";\r\nimport { CurrentStatus } from \"./CurrentStatus\";\r\nimport { AccessDenied } from \"./AccessDenied\";\r\nimport { InterstateVisitorQuestionnaire } from \"./InterstateVisitorQuestionnaire\";\r\nimport VisitorApplicatonHost from \"./VisitorAppliactionHost\";\r\nimport VisitorQuestionnaire from \"./../VisitorQuestionnaire\";\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 \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, { useContext, useEffect, useState } from \"react\";\r\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\r\nimport \"./App.css\";\r\nimport { Backdrop, CircularProgress, useTheme } from \"@material-ui/core\";\r\nimport { Routes } from \"./views/Routes\";\r\nimport { Context } from \"./state/Store\";\r\nimport { getUserInfo } from \"./data/api\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { Registration } from \"./views/Registration\";\r\nimport { TokenContext, useApiClient } from \"./common/apiclients\";\r\nimport { UserClient, TeamViewModel } from \"./common/client\";\r\nimport { useCookies } from \"react-cookie\";\r\nimport CookieConsent from \"react-cookie-consent\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n cookieConsent: {\r\n backgroundColor: theme.palette.primary.main, \r\n color: \"black\"\r\n },\r\n })\r\n);\r\n\r\nfunction App() {\r\n const { state, dispatch } = useContext(Context);\r\n const classess = useStyles();\r\n const [authToken, setAuthToken] = useState(\r\n localStorage.getItem(\"Token\")\r\n );\r\n const { enqueueSnackbar } = useSnackbar();\r\n const [loading, setLoading] = useState(true);\r\n const [register, setRegister] = useState(false);\r\n const userClient = useApiClient(UserClient);\r\n const [teams, setTeams] = useState();\r\n const [cookies, setCookie] = useCookies([\"Token\",\"CookieConsent\"]);\r\n const [iOS, setiOS] = useState(false);\r\n const [cookieAuthorised, setCookieAuthorised] = useState(\r\n cookies.CookieConsent ? true : false\r\n );\r\n const theme = useTheme();\r\n\r\n useEffect(() => {\r\n iOSCheck();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (authToken) {\r\n getUserInfo(authToken)\r\n .then((d) => {\r\n dispatch({\r\n type: \"SET_USERINFO\",\r\n payload: {\r\n ...state.user,\r\n firstName: d.firstName,\r\n lastName: d.lastName,\r\n contactNumber: d.contactNumber,\r\n id: d.id,\r\n token: authToken,\r\n rememberMe: state.user?.rememberMe,\r\n department: d.department,\r\n departments: d.departments,\r\n primaryLocation: d.primaryLocation,\r\n locations: d.locations,\r\n },\r\n });\r\n if (iOS && cookies.CookieConsent === true) {\r\n setCookie(\"Token\", authToken, {\r\n path: \"/\",\r\n secure: true,\r\n sameSite: \"strict\",\r\n expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),\r\n });\r\n }\r\n setLoading(false);\r\n })\r\n .catch((err) => {\r\n setAuthToken(null);\r\n });\r\n } else {\r\n if (iOS) {\r\n if (cookies.Token) {\r\n setAuthToken(cookies.Token);\r\n } else {\r\n userClient.getAllTeams().then((res) => {\r\n setTeams(res);\r\n });\r\n setRegister(true);\r\n setLoading(false);\r\n }\r\n } else {\r\n userClient.getAllTeams().then((res) => {\r\n setTeams(res);\r\n });\r\n setRegister(true);\r\n setLoading(false);\r\n }\r\n }\r\n }, [authToken]);\r\n\r\n useEffect(() => {\r\n setRegister(false);\r\n setAuthToken(state.user!.token);\r\n }, [state.user]);\r\n\r\n const iOSCheck = () => {\r\n if (\r\n [\r\n \"iPad Simulator\",\r\n \"iPhone Simulator\",\r\n \"iPod Simulator\",\r\n \"iPad\",\r\n \"iPhone\",\r\n \"iPod\",\r\n ].includes(navigator.platform) ||\r\n (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n ) {\r\n {\r\n setCookieAuthorised(true);\r\n }}\r\n enableDeclineButton\r\n onDecline={() => {\r\n setCookieAuthorised(false);\r\n }}\r\n >\r\n This website uses cookies to prefill user details only.\r\n ;\r\n setiOS(true);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {iOS && !cookieAuthorised && (\r\n <>\r\n {\r\n setCookieAuthorised(true);\r\n }}\r\n buttonText={\"Accept\"}\r\n buttonStyle={{backgroundColor: theme.palette.primary.main, color:theme.palette.secondary.main}}\r\n enableDeclineButton\r\n onDecline={() => {\r\n setCookieAuthorised(false);\r\n }}\r\n declineButtonText={\"Decline\"}\r\n declineButtonStyle={{backgroundColor: theme.palette.primary.main,color:theme.palette.secondary.main}}\r\n >\r\n This website uses cookies to pre-fill user details. Please accept cookies to allow a single sign-in experience.\r\n \r\n \r\n )}\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n {authToken && !loading && state.user!.id && (\r\n \r\n \r\n \r\n )}\r\n {register && }\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: \"#00aeef\",\r\n light: \"#00aeef\",\r\n dark: \"#00aeef\",\r\n contrastText: \"#FFF\",\r\n },\r\n secondary: {\r\n main: \"#231f20\",\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: [\"Arial\"].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: [\"Arial\"].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: [\"Arial\"].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: 500,\r\n fontFamily: [\"Arial\"].join(\",\"),\r\n};\r\ntheme.typography.h3 = {\r\n color: theme.palette.primary.contrastText + \"!important\",\r\n fontSize: \"2rem !important\",\r\n fontFamily: [\"Arial\"].join(\",\"),\r\n};\r\ntheme.typography.h4 = {\r\n color: theme.palette.primary.contrastText + \"!important\",\r\n fontSize: \"1.50rem !important\",\r\n fontFamily: [\"Arial\"].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: 500,\r\n fontFamily: [\"Arial\"].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 \"Arial\"\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 \"Arial\"\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 \"Arial\"\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 '&.InProgress':{\r\n color:theme.DoH.color.exemption\r\n },\r\n '&.Closed':{\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 {\r\n Backdrop,\r\n Button,\r\n Checkbox,\r\n CircularProgress,\r\n Container,\r\n createStyles,\r\n Divider,\r\n FormControl,\r\n FormControlLabel,\r\n FormHelperText,\r\n InputLabel,\r\n makeStyles,\r\n MenuItem,\r\n Select,\r\n Theme,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { Context } from \"./state/Store\";\r\nimport { PublicQuestionnaire } from \"./views/Questionnaire\";\r\nimport {\r\n QuestionnaireIndex,\r\n SettingsViewModel,\r\n SettingsClient,\r\n TeamViewModel,\r\n UserClient,\r\n DepartmentIdentifier,\r\n} from \"./common/client\";\r\nimport { TokenContext, useApiClient } from \"./common/apiclients\";\r\nimport { ValidationTextField } from \"./components/muiCore/TextField\";\r\nimport { ValidatedForm } from \"./components/core/forms/ValidatedForm\";\r\nimport nyrstar1 from \"./assets/images/nyrstar1.jpg\";\r\nimport { getAllSettings } from \"./data/api\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n text: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n textFields: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n paper: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(2),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n },\r\n paperCenter: {\r\n marginTop: theme.spacing(40),\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 image: {},\r\n selectField: {\r\n marginTop: \"15px\",\r\n marginBottom: \"5px\",\r\n \"& .MuiFormHelperText-root\": {\r\n fontSize: \"0.9rem!Important\",\r\n },\r\n\r\n \"& .MuiInputLabel-shrink\": {\r\n transform: \"Translate(0,-5.5px) scale (0.75)!important\",\r\n },\r\n\r\n \"& .MuiInputLabel-formControl\": {\r\n top: \"0px\",\r\n left: \"11px!important\",\r\n position: \"absolute\",\r\n transform: \"translate(0, 24px) scale(1)\",\r\n },\r\n\r\n fontSize: \"1rem\",\r\n lineHeight: \" 1rem\",\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 error: {\r\n color: \"red\",\r\n paddingLeft: \"14px\",\r\n fontSize: \"0.9rem!important\",\r\n letterSpacing: \"0.0075rem\",\r\n },\r\n })\r\n);\r\n\r\nconst VisitorQuestionnaire = (props: any) => {\r\n const URL = window.location.href.split(\"/\");\r\n const URLData = URL[URL.length - 1];\r\n const { state } = useContext(Context);\r\n const [loading, setLoading] = useState(false);\r\n const classes = useStyles();\r\n const [token, setToken] = useState(\"\");\r\n const [firstName, setFirstName] = useState(\"\");\r\n const [lastName, setLastName] = useState(\"\");\r\n const [contactNumber, setContactNumber] = useState(\"\");\r\n const [departmentList, setDepartmentList] = useState([]);\r\n const userClient = useApiClient(UserClient);\r\n const [questionnaire, setQuestionnaire] = useState(false);\r\n const [completed, setCompleted] = useState(\"\");\r\n const settingsClient = useApiClient(SettingsClient);\r\n const [department, setDepartment] = useState(\"\");\r\n const [response, setresponse] = useState([]);\r\n const [settings, setSettings] = useState([]);\r\n const showStepper = window.innerWidth > 699 ? true : false;\r\n const [registered, setRegistered] = 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 department: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\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 (!department) {\r\n // errors.department.valid = false;\r\n // errors.department.errorMessage = \"Department name can not be blank\";\r\n // valid = false;\r\n // } else {\r\n // errors.department.valid = true;\r\n // errors.department.errorMessage = \"\";\r\n // }\r\n\r\n setFormErrors(errors);\r\n return valid;\r\n };\r\n const handleDepartmentChange = (event: any) => {\r\n setDepartment(event.target.value as string);\r\n };\r\n\r\n const onSubmit = () => {\r\n if (isFormValid()) {\r\n userClient\r\n .authGate({\r\n firstName: firstName,\r\n lastName: lastName,\r\n contactNumber: contactNumber,\r\n kind: 1,\r\n department: departmentList[0].id,\r\n })\r\n .then((d) => {\r\n setresponse(d);\r\n registerResponse(d);\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const registerResponse = (response: any) => {\r\n setToken(response.token);\r\n getAllSettings(response.token).then((settings:SettingsViewModel[])=>{\r\n setSettings(settings);\r\n setLoading(false)\r\n setRegistered(true)\r\n setQuestionnaire(true);\r\n });\r\n };\r\n\r\n const fetchQuestionaireData = () => {\r\n return (\r\n \r\n {settingsClient.getAllSettings().then((res) => {\r\n setSettings(res);\r\n })}\r\n \r\n )\r\n }\r\n \r\n\r\n const preLoadData = () => {\r\n \r\n userClient.getAllTeams().then((res) => {\r\n //currently all are port pirie visitors as hobart has no application\r\n let list = res.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Port_Pirie_Visitor\r\n );\r\n setDepartmentList(list);\r\n setLoading(false);\r\n });\r\n \r\n };\r\n\r\n useEffect(() => {\r\n preLoadData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (completed) {\r\n setLoading(false);\r\n }\r\n }, [completed]);\r\n\r\n return (\r\n
\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n\r\n {!loading && !completed && registered && token.length > 0 &&(\r\n \r\n setCompleted(completed)}\r\n showStepper={showStepper}\r\n settings={settings}\r\n existingQuestionnaire={URLData}\r\n />\r\n \r\n )}\r\n\r\n {!loading && completed && registered && (\r\n
\r\n \"Site\r\n Thank you for submitting the Application\r\n Your application is now waiting for approval. You will be contacted by email once it is approved.\r\n
\r\n )}\r\n\r\n {!loading && !questionnaire && !registered && (\r\n \r\n
\r\n \"Site\r\n Visitor Details\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 type={\"tel\"}\r\n disabled={loading}\r\n />\r\n {/* \r\n \r\n \r\n Your Department *\r\n
\r\n \r\n \r\n {departmentList.length > 0 ? (\r\n departmentList.map((element: TeamViewModel) => {\r\n \r\n return (\r\n {element.name}\r\n );\r\n })\r\n ) : (\r\n \r\n Departments not found\r\n \r\n )}\r\n \r\n \r\n {!formErrors.department.valid\r\n ? formErrors.department.errorMessage\r\n : \"\"}\r\n \r\n */}\r\n {/* \r\n }\r\n label=\"Remember me\"\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 );\r\n};\r\n\r\nexport default VisitorQuestionnaire;\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\nimport { CookiesProvider } from \"react-cookie\";\r\nimport VisitorQuestionnaire from \"./VisitorQuestionnaire\";\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 \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":""}