{"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","components/core/QuestionSlider/RenderNestedQuestion.tsx","components/core/QuestionSlider/QuestionItem.tsx","components/core/QuestionSlider/QuestionItemSlider.tsx","components/muiCore/Dialog.tsx","components/muiCore/Typograpy.tsx","components/muiCore/ListItem.tsx","components/core/dialogs/AuthorisationDeclaration.tsx","common/dates.ts","components/core/Questionnaire/index.ts","components/core/QuestionSlider/QuestionItemStepper.tsx","components/core/QuestionSlider/Questionnaire.tsx","components/core/dialogs/Message.tsx","views/Questionnaire.tsx","assets/images/nyrstar1.jpg","data/api.ts","views/PrimaryLocation.tsx","views/Registration.tsx","assets/images/banner_covid.svg","styles/common.tsx","components/core/Templates/Details.tsx","views/Finalisation.tsx","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","modules/utils/signalr.ts","components/muiCore/TimeLine.tsx","components/muiCore/Button.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","components/core/forms/UserRegistration.tsx","modules/admin/views/Queue/QueueQuestionnaireDrawer.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/utils/permisson.ts","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/Routes.tsx","App.tsx","reportWebVitals.ts","themes/DoHScreeningTheme.tsx","index.tsx"],"names":["BookingType","DepartmentIdentifier","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","processCreateNewResponse","queueWorkItemId","processCreateNewResponseForQueueWorkItem","questionId","processAddQuestionChoice","processAddQuestionChoiceByAdmin","processFinaliseQuestionnaire","processFinaliseQuestionnaireByAdmin","responseId","processValidateQuestionnaire","UserClient","processUserInfo","processAuthGate","returnUrl","kind","processLogin","processLoginCallback","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","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","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","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","RenderNestedQuestion","question","forceShow","parentHidden","fc","hidden","renderByType","heading","DateField","DateTimeField","RadioButtons","Grouped","NestedQuestions","nestedQuestions","Repeater","RepeaterQuestion","parentQuestion","YesNo","setError","controlAndQuestions","useMemo","fields","sort","a","b","order","showMap","m","responseMappings","mapping","showMapping","existing","push","viewableControlList","useControlStateVersion","find","c","elems","add","sortedQuestions","rows","idx","remove","my","uniqueId","QuestionCard","border","borderRadius","Card","QuestionCardContent","MuiCardContent","QuestionContent","List","QuestionItem","controls","selectedItem","items","isMobileDevice","useMediaQuery","validateAndChoose","choice","setTouched","onResult","split","RadioButtonsWithAddInfo","HasDependants","filter","Fade","timeout","QuestionTypeRender","Question","currentIndex","QuestionItemSlider","questions","slideIn","setSlideIn","slideDirection","setSlideDirection","questionIndex","setCurrentIndex","backRef","toDir","goingLeft","transitionForward","setTimeout","onChoiceSelected","direction","selectedChoiceId","nextQuestionIndex","getPreviousQuestionIndex","getNextQuestionIndex","onIndexChange","Slide","Dialog","MuiDialog","DialogContent","dividers","MuiDialogContent","DialogActions","MuiDialogActions","DialogTitle","MuiDialogTitle","StyledOutcomeHeaderTypography","OutcomeHeaderTypography","textAlign","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","top","right","btnLeft","outline","borderColor","btnRight","btn","btnGroup","transition","iconContrast","iconblack","iconMargin","paper","innerHeading","lowerLatin","listStyleType","dayPassStyles","card","cardContent","cardHeader","failed","conditional","cardHeaderText","cardListItem","cardListItemAlt","cardListItemText","textTransform","textLeft","cardListItemTextAlt","avatar","flexDirection","fab","AuthorisationDialog","styles","isMobile","onClose","open","handleCancel","handleSubmit","privacy","component","fullScreen","aria-labelledby","isoToDate","dateIso","format","parseISO","createControl","makeNestedGroup","arrayControl","makeQuestionnaireControl","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","QuestionItemStepper","Stepper","activeStep","nonLinear","orientation","Step","completed","StepButton","StepLabel","invalidQuestions","includes","mx","Questionnaire","currentPageRef","stepper","authOpen","setAuthOpen","NavComponent","validation","Object","keys","reduce","tlqs","err","tlq","findTopLevelQuestion","tlc","errControl","repeaterPaths","recurse","childGroup","nestedQ","found","childArray","arrayIndex","nextPaths","indexedControl","findNestedQuestionControl","repeaterPath","newValue","onQuestionnaireFinalised","forward","onSaveResponse","overrideSubmit","qvm","closeButton","other","disableTypography","IconButton","aria-label","Message","handleClose","gutterBottom","PublicQuestionnaire","InnerQuestionnaire","questionsAndControls","setQuestionsAndControls","setQuestionnaireResponseId","questionnaireClient","history","useHistory","messageOpen","setMessageOpen","sendingResults","setSendingResults","finalise","finaliseQuestionnaire","queueWorkItem","outcomes","toObject","valueAndChoice","addQuestionChoice","getQuestions","startQuestionnaire","Backdrop","CircularProgress","qIndex","selQuestion","questionKey","BASE_URL","postJson","route","Authorization","res","o","catch","getJson","ok","json","deleteJson","getUserInfo","getQueueMetrics","before","after","getRoleMembers","roleId","searchStaffMembers","accountType","getSiteLocations","setPrimaryLocation","textFields","image","selectField","selectFieldOne","selectFieldtwo","PrimaryLocation","BLANKID","loading","setLoading","allLocations","setAllLocations","site","setSite","allSites","setAllSites","building","setBuilding","allBuildings","setAllBuildings","room","setRoom","allRooms","setAllRooms","savePrimaryLocation","userDetails","onSavePrimaryLocation","filterQuestionnaires","outcomeIdentifier","Hobart_Covid_Questionnaire","Port_Pirie_Covid_Questionnaire","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","siteId","location","toLowerCase","outcomeParentId","questionnaire","buildings","allloc","visitorOrContractor","sites","list","Container","src","nyrstar1","alt","FormControl","InputLabel","Select","MenuItem","FormHelperText","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","x","departmentIdentifier","Visitor","Contractor","visitor","contractor","localeCompare","temp","usersDepartment","checkForUser","Date","checkInTime","getTime","Number","covidTimer","showPrimaryLocation","registerUser","getCookieConsentValue","path","secure","sameSite","expires","now","Covid_Survey","FormControlLabel","Checkbox","checked","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","MainListItems","queueItems","onItemClick","primaryTypographyProps","whiteSpace","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","placeholder","input","onKeyDown","StyledDateRangePicker","overflowX","DateRangePicker","CalendarsDateRangePicker","today","addDays","setOpen","isDatePickerExpanded","onOpen","startOfToday","endOfToday","onRangeChange","formatISO","startOfDay","endOfDay","AttributeController","renderLoading","calendars","allowSameDateSelection","toString","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","useSignalR","eventHandler","conn","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","build","SkeletonTimeLine","missingOppositeContent","TimelineItem","StyledIconButton","AppBarIconButton","QuestionnaireAnswers","RenderQuestion","questionsWithAnswers","qav","answer","selChoice","pdfStyles","StyleSheet","create","page","section","line","imageLiL","float","imageCFLC","blueText","grouped","nested","topLevel","topLevelHeading","GenerateQuestionnairePDF","completedAt","size","RenderQuestionPDF","isNested","nq","useSortedNestedQuestions","topLevelStyle","parent","groupValue","some","rm","renderNested","repeaterValue","rowValue","repeaterView","vals","n","SaveQuestionnairePDF","saved","document","saveAs","QueueWorkItemResponses","showTop","setShowTop","hasMore","useInfiniteScroll","hasNextPage","onLoadMore","useCallback","rootMargin","sentryRef","questionsRenders","QueueWorkItemQuestions","showing","queueClient","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","p","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","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","UserRegistration","dateOfBirth","setDateOfBirth","address","setGPPractice","setGPName","setAddressOptions","dobValidator","dob","dobObj","startDate","allDetails","QueueQuestionnaireDrawer","questionnaireSideDrawer","drawerTitle","formFinalised","show","registerFormUser","allFormDetails","questionClient","adminQuestionClient","referralPerson","setReferralPerson","showStepper","setShowStepper","setErrors","validateAll","setValidateAll","handleQuestionnaireResponse","dirty","_choiceId","addQuestionChoiceByAdmin","markAsClean","loadQuestionnaire","validateQuestionnaire","showErrors","useDebounce","delay","debouncedValue","setDebouncedValue","handler","clearTimeout","UserMinusSolid","UserPlusSolid","TeamTieSolid","UserTeamPermissionSolid","RolesSoild","excludeAccordion","Transition","ItemsPerPage","reExportRecords","endDateTime","startDateTime","Queue","currentQueue","teamClient","userOffset","loadingMore","setLoadingMore","setOnFirstPage","csvLoading","setCsvLoading","queueWorkItems","setQueueWorkItems","teams","setTeams","setQueueWorkItem","queueWorkItemStatus","setQueueWorkItemStatus","metrics","setMetrics","queryText","CheckIns","excluded","searchFilters","_setSearchFilters","setSearchFilters","newFilter","sf","deepEqual","defaultExcludes","setDefaultExcludes","setHasMore","setIsDatePickerExpanded","setIsUpdateFromDatePicker","hasDateChanged","setHasDateChanged","queueWorkItemStatusChanged","setQueueWorkItemStatusChanged","isInitialApiCalled","setIsFilterChanged","setDrawerTitle","queueWorkItemLoading","setQueueWorkItemLoading","setPass","setFail","showQuestionnaire","setShowQuestionnaire","setQueueChanged","assignToQueueMode","setAssignToQueueMode","excludeFilter","setExcludeFilter","referralFormInitiated","referralFormFinalised","setReferralFormFinalised","selectedExcludes","setSelectedExcludes","metricCatSelect","setMetricCatSelect","sideDrawer","toggleSideDrawer","toggleQuestionnaireSideDrawer","updateQueueData","setUpdateQueueData","updateQueueAssignemnt","setUpdateQueueAssignemnt","updateMetricsFromApi","setUpdateMetricsFromApi","editPerson","setEditPerson","noteMode","_setNoteMode","csvExportMode","setCSVExportMode","treeData","setTreeData","MetricCategories","AllQueueWorkItems","wi","finaliseQuestionnaireByAdmin","showWorkItem","qwi","newPerson","createNewQueueWorkItem","newWorkItem","doItemQuery","offset","Survey","getQueueWorkItems","queueWorkItemStatuses","queueData","loadQueueData","apiCalls","getQueueOutcomesByQueueId","api","getAllTeams","all","outcomesArray","defaultExlude","hobFG","Hobart_Front_Gate","portFG","Port_Pirie_Front_Gate","getQueueDataWithoutRestriction","onWorkItemAssigned","personAssignedTo","onWorkItemNoteAdded","queueWorkItemNote","globalNote","OnSite","updateQueueWorkItemStatus","note","WorkItemIcon","handleAssignToQueueClose","traceContacts","getTraceContacts","excludes","noteKey","reverse","checkIn","createdAt","savePerson","queueIndex","Site_locator","totals","category","key","metric","SearchAppBar","queryChanged","range","contactTracer","charAt","toUpperCase","AddNoteDialog","submitNote","noteTextField","TransitionComponent","aria-describedby","DialogContentText","f","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","userTeams","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","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","loadAudiences","DndProvider","backend","HTML5Backend","checkProps","qs","q1","saveQuestionnaire","getQuestionnaire","audienceId","getAudiences","setDisabled","editQuestionnaire","createQuestionnaire","newId","questionnaireEditUrl","useDrop","accept","canDrop","isChildOf","drop","outArray","indIns","indexOf","splice","collect","monitor","isOver","py","questionList","dq","FSelectAutocomplete","getOptionLabel","Autocomplete","inputValue","onInputChange","Temp","qclient","importRef","loadQuestionnaireList","PersonSelector","QuestionnaireSelector","userIdControl","questionnaireControl","questId","ActionButtons","hasPerson","hasQuestionnaire","hasResponse","createNewQuestionnaire","writeCsv","exportQuestionnaire","click","doImport","createNewResponse","newResp","getExports","Blob","files","importQuestionnaire","file","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","hasPermission","permission","permissions","SuperUser","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","ContactTracer","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","Declaration","getQueueOutcome","CurrentStatusView","panel","square","newExpanded","CurrentStatus","setLocationData","checkCurrentStatus","AccessDenied","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","getElementsByTagName","getAttribute","ReactDOM","render","CookiesProvider","basename","LocalizationProvider","dateAdapter","DateFnsUtils","dateFormats","normalDate","keyboardDate","maxSnack","getElementById"],"mappings":"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","file":"static/js/main.a08d634d.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 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 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\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 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 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}\r\n\r\nexport enum DepartmentIdentifier {\r\n Visitor = 0,\r\n Contractor = 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 IgnoreLocationConstraints = 32,\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}\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 Covid_Survey = 2,\r\n}\r\n\r\nexport interface Team {\r\n id: string;\r\n name?: string | undefined;\r\n departmentIdentifier?: DepartmentIdentifier | 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}\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 Covid_Survey = 2,\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}\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}\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 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 QuestionResponseVm {\r\n choiceId: string;\r\n value?: string | undefined;\r\n}\r\n\r\nexport interface FinaliseResultViewModel {\r\n status: QuestionnaireStatus;\r\n queueWorkItem?: QueueWorkItemViewModel | undefined;\r\n}\r\n\r\nexport 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}\r\n\r\nexport interface PersonBasicViewModel {\r\n id: string;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n name?: string | undefined;\r\n currentAudience?: AudienceViewModel | undefined;\r\n}\r\n\r\nexport interface AudienceViewModel {\r\n id: string;\r\n name?: string | undefined;\r\n}\r\n\r\nexport interface WorkItemViewModel {\r\n id?: string | 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 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 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 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 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 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}\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}\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 \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 color: theme.palette.primary.main,\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\r\n },\r\n },\r\n btnStartIcon: {\r\n width: \"35px\",\r\n height: \"35px\",\r\n },\r\n}));\r\n\r\nexport const QuestionItemRadioButton = (props: {\r\n radioButtons: QuestionChoice[] | undefined;\r\n onSelected: (selected: QuestionChoice) => void;\r\n readonly?: boolean;\r\n selected?: string;\r\n}) => {\r\n const classes = useStyles();\r\n const [selectedRadioButton, setSelectedRadioButton] = useState();\r\n\r\n return (\r\n <>\r\n {props.radioButtons &&\r\n props.radioButtons.map((radioButton: QuestionChoice, i: number) => {\r\n const selected = props.selected\r\n ? props.selected === radioButton.id\r\n : (radioButton as any).selected;\r\n return (\r\n
\r\n {\r\n if (!props.readonly) {\r\n setSelectedRadioButton(radioButton);\r\n if (props.onSelected) {\r\n props.onSelected(radioButton);\r\n }\r\n }\r\n }}\r\n >\r\n \r\n {selected ||\r\n selectedRadioButton?.text === radioButton.text ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n })}\r\n \r\n );\r\n};\r\nexport const QuestionItemNestedRadioButton = ({\r\n control,\r\n ...props\r\n}: {\r\n radioButtons: QuestionChoice[] | undefined;\r\n control: FormControl;\r\n readonly?: boolean;\r\n}) => {\r\n const classes = useStyles();\r\n const selectedChoice = useControlValue(control);\r\n const theme = useTheme();\r\n\r\n theme.overrides = {\r\n ...theme.overrides,\r\n MuiListItem: {\r\n gutters: {\r\n padding: \"1em 0 1em 1em\",\r\n },\r\n },\r\n };\r\n\r\n return (\r\n <>\r\n {props.radioButtons &&\r\n props.radioButtons.map((radioButton, i: number) => {\r\n const selected = radioButton.id === selectedChoice;\r\n return (\r\n
\r\n {\r\n control.setValue(\r\n selectedChoice === radioButton.id\r\n ? undefined\r\n : radioButton.id\r\n );\r\n }}\r\n >\r\n \r\n {selected ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Divider,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n makeStyles,\r\n} from \"@material-ui/core\";\r\nimport { Dependant } from \"../forms/Dependants\";\r\nimport CheckBoxOutlinedIcon from \"@material-ui/icons/CheckBoxOutlined\";\r\nimport CheckBoxOutlineBlankOutlinedIcon from \"@material-ui/icons/CheckBoxOutlineBlankOutlined\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n maxWidth: \"660px\", //Default width overriden by props.maxWidth\r\n margin: \"auto\",\r\n },\r\n btnActive: {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\r\n color: theme.palette.primary.main,\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\r\n },\r\n },\r\n btnStartIcon: {\r\n width: \"35px\",\r\n height: \"35px\",\r\n },\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"rgba(0, 0, 0, 0.64)\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nexport const QuestionItemCheckBox = (props: any) => {\r\n\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 { QuestionChoice } from \"../../../common/client\";\r\nimport RadioButtonCheckedOutlinedIcon from \"@material-ui/icons/RadioButtonCheckedOutlined\";\r\nimport RadioButtonUncheckedOutlinedIcon from \"@material-ui/icons/RadioButtonUncheckedOutlined\";\r\nimport { FormControl, useControlValue } from \"@react-typed-forms/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n margin: \"unset\",\r\n maxWidth: \"unset!important\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n },\r\n btnActive: {\r\n backgroundColor: theme.palette.primary.dark,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n btnStartIcon: {\r\n width: \"35px\",\r\n height: \"35px\",\r\n },\r\n w50: {\r\n width: \"50%\",\r\n },\r\n}));\r\n\r\nexport const QuestionItemNestedYesNoButtons = ({\r\n buttons,\r\n control,\r\n readonly,\r\n ...props\r\n}: {\r\n buttons: QuestionChoice[] | undefined;\r\n control: FormControl;\r\n readonly?: boolean;\r\n maxWidth?: string;\r\n hideCheckbox?: boolean;\r\n}) => {\r\n const classes = useStyles();\r\n const selectedChoice = useControlValue(control);\r\n\r\n return (\r\n \r\n \r\n {buttons &&\r\n buttons.map((button: QuestionChoice, i: number) => {\r\n const selected = button.id === selectedChoice;\r\n return (\r\n {\r\n control.setValue(\r\n selectedChoice === button.id ? undefined : button.id\r\n );\r\n }}\r\n >\r\n \r\n {selected ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n // \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nexport const QuestionItemYesNoButtons = (props: {\r\n buttons: QuestionChoice[] | undefined;\r\n onSelected: (selected: QuestionChoice) => void;\r\n selected?: string;\r\n readonly?: boolean;\r\n maxWidth?: string;\r\n hideCheckbox?: boolean;\r\n}) => {\r\n const classes = useStyles();\r\n const [selectedButton, setSelectedButton] = useState();\r\n\r\n useEffect(() => {\r\n if (selectedButton && props.onSelected) {\r\n props.onSelected(selectedButton);\r\n }\r\n }, [selectedButton]);\r\n\r\n return (\r\n \r\n \r\n {props.buttons &&\r\n props.buttons.map((button: QuestionChoice, i: number) => {\r\n const selected = props.selected\r\n ? props.selected === button.id\r\n : (button as any).selected;\r\n return (\r\n {\r\n setSelectedButton(button);\r\n }}\r\n startIcon={\r\n !props.hideCheckbox ? (\r\n selected ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n <>\r\n )\r\n }\r\n >\r\n {button.text}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { ListItem, ListItemIcon, ListItemText, Divider, makeStyles, withStyles, Grid, Button, ButtonGroup, Typography, Collapse } from \"@material-ui/core\";\r\nimport AddOutlinedIcon from '@material-ui/icons/AddOutlined';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n\r\n\r\n//A version of QuestionChoiceCheckBox that will be adding our dependants \r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btnCheckbox: {\r\n paddingBottom: 16,\r\n },\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: '0px',\r\n left: '0px',\r\n width: '100%'\r\n },\r\n display: \"flex!important\",\r\n textAlign: 'center',\r\n maxWidth: '660px',//Default width overriden by props.maxWidth\r\n margin: \"auto\",\r\n },\r\n btnActive: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n color: theme.palette.primary.main,\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n },\r\n },\r\n btnStartIcon: {\r\n width: '35px',\r\n height: '35px'\r\n }, textField: {\r\n fontSize: '1.25rem',\r\n lineHeight: ' 1.4375rem',\r\n letterSpacing: '-.01875rem',\r\n\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: '1.25rem',\r\n lineHeight: ' 1.4375rem',\r\n letterSpacing: '-.01875rem'\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: '16px!important',\r\n }\r\n\r\n }\r\n}));\r\n\r\n\r\n\r\nconst ValidationTextField = withStyles({\r\n root: {\r\n '& .MuiFormHelperText-root': {\r\n fontSize: '0.9rem!Important'\r\n }\r\n },\r\n})(TextField);\r\n\r\nexport const Dependant = (props: any) => {\r\n\r\n const isFormValid = (): boolean => {\r\n let valid = true;\r\n let errors = { ...formErrors }\r\n\r\n if (!txtFirstName) {\r\n errors.firstName.valid = false;\r\n errors.firstName.errorMessage = 'First name can not be blank';\r\n valid = false\r\n }\r\n else {\r\n errors.firstName.valid = true;\r\n errors.firstName.errorMessage = '';\r\n }\r\n\r\n if (!txtLastName) {\r\n errors.lastName.valid = false;\r\n errors.lastName.errorMessage = 'Last name can not be blank';\r\n valid = false\r\n }\r\n else {\r\n errors.lastName.valid = true;\r\n errors.lastName.errorMessage = '';\r\n }\r\n\r\n setFormErrors(errors);\r\n return valid;\r\n }\r\n\r\n const onSubmit = () => {\r\n if (isFormValid()) {\r\n console.log('form valid');\r\n setIsAddingDependant(!isAddingDependant);\r\n setTxtFirstName(\"\");\r\n setTxtLastName(\"\");\r\n\r\n if (props.submit) {\r\n props.submit(txtFirstName, txtLastName);\r\n }\r\n }\r\n else {\r\n console.log('form not valid')\r\n }\r\n }\r\n\r\n //Component State\r\n const [txtFirstName, setTxtFirstName] = useState();\r\n const [txtLastName, setTxtLastName] = useState();\r\n const [formErrors, setFormErrors] = useState({\r\n firstName: {\r\n valid: true,\r\n errorMessage: ''\r\n },\r\n lastName: {\r\n valid: true,\r\n errorMessage: ''\r\n }\r\n });\r\n const classes = useStyles();\r\n\r\n const [isAddingDependant, setIsAddingDependant] = useState(false);\r\n\r\n const renderForm = () => {\r\n return (\r\n <>\r\n
{\r\n event.preventDefault();\r\n }}>\r\n\r\n \r\n \r\n {\r\n setTxtFirstName(e.target.value)\r\n }}\r\n variant=\"outlined\"\r\n />\r\n {\r\n setTxtLastName(e.target.value)\r\n }}\r\n />\r\n \r\n \r\n {\r\n onSubmit()\r\n }}\r\n >Save Dependant\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n }\r\n\r\n const renderAddDependantButton = () => {\r\n return (\r\n <>\r\n \r\n className={`${props.response === \"Add a Dependant\" ? classes.btnActive : ''}`}\r\n\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const render = () => {\r\n return (\r\n
\r\n \r\n {!isAddingDependant ? renderAddDependantButton() : renderForm()}\r\n \r\n \r\n
\r\n )\r\n }\r\n //{ isAddingDependant ? null : renderAddDependantButton()}\r\n\r\n return (\r\n render()\r\n );\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport CheckBoxOutlinedIcon from \"@material-ui/icons/CheckBoxOutlined\";\r\nimport CheckBoxOutlineBlankIcon from \"@material-ui/icons/CheckBoxOutlineBlank\";\r\nimport cx from \"clsx\";\r\nimport { debug } from \"console\";\r\nimport { QuestionChoice } from \"../../../common/client\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n box: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n position: \"fixed\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n width: \"100%\",\r\n margin: \"unset\",\r\n maxWidth: \"unset!important\",\r\n },\r\n display: \"flex!important\",\r\n textAlign: \"center\",\r\n },\r\n btnActive: {\r\n backgroundColor: theme.palette.primary.dark,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n btnStartIcon: {\r\n fontSize: \"2rem!important\",\r\n maxWidth: \"unset\",\r\n minWidth: \"40px\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n fontSize: \"3rem!important\",\r\n },\r\n },\r\n}));\r\n\r\nexport const QuestionItemNextSkipButton = (props: any) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const QuestionItemChoiceButton = (props: {\r\n maxWidth?: number;\r\n choices: QuestionChoice[];\r\n onSelected: (s: QuestionChoice) => void;\r\n}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {props.choices &&\r\n props.choices.map((button: any, i: number) => (\r\n {\r\n props.onSelected(button);\r\n }}\r\n >\r\n {button.text}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n","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\r\n QuestionAdminViewModel,\r\n QuestionType,\r\n} from \"../../../common/client\";\r\nimport {\r\n QuestionItemNestedSubQuestion,\r\n QuestionItemSubQuestion,\r\n QuestionSubQuestion,\r\n} from \"./QuestionItemSubQuestion\";\r\nimport { Box, Collapse } from \"@material-ui/core\";\r\nimport { QuestionRepeaterHeader } from \"./QuestionItemHeader\";\r\nimport {\r\n\r\n makeAddressFormDef,\r\n\r\n} from \"../Address/AddressComplete\";\r\nimport {\r\n QuestionItemNestedYesNoButtons,\r\n QuestionItemYesNoButtons,\r\n} from \"./QuestionItemYesNoButtons\";\r\n\r\ntype NestedGroupControl = GroupControl<{ [id: string]: BaseControl }>;\r\n\r\nexport function RenderNestedQuestion({\r\n question,\r\n control,\r\n forceShow,\r\n readonly,\r\n parentHidden,\r\n}: {\r\n question: IQuestion;\r\n control: BaseControl;\r\n parentHidden: boolean;\r\n forceShow: boolean;\r\n readonly: boolean;\r\n}): ReactElement {\r\n const 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 } 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[], 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 { 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 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 {\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}: {\r\n questionnaire: QuestionnaireAndResponsesVm;\r\n}) {\r\n const [showTop, setShowTop] = useState(2);\r\n const questions = questionnaire.questions;\r\n const answers = useMemo(() => {\r\n return parseAnswers(questionnaire.responses);\r\n }, [questionnaire]);\r\n const controls = useMemo(\r\n () => makeQuestionnaireControl(questionnaire.questions, answers),\r\n [questionnaire]\r\n );\r\n\r\n const hasMore = questions.length > showTop;\r\n const [sentryRef] = useInfiniteScroll({\r\n loading: false,\r\n hasNextPage: hasMore,\r\n onLoadMore: useCallback(() => setShowTop((t) => t + 5), []),\r\n disabled: false,\r\n rootMargin: \"0px 0px 100px 0px\",\r\n });\r\n\r\n const questionsRenders = useMemo(() => {\r\n return questions.slice(0, showTop).map((question, currentIndex) => (\r\n \r\n {}}\r\n onResult={() => {}}\r\n readonly={true}\r\n />\r\n \r\n ));\r\n }, [questions, showTop]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n {questionsRenders}\r\n {hasMore && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport function QueueWorkItemQuestions({\r\n showing,\r\n ...props\r\n}: {\r\n showing: boolean;\r\n queueId: string;\r\n queueWorkItem: QueueWorkItemViewModel;\r\n onEdit: (questionnaireId: string) => void;\r\n}) {\r\n const queueClient = useApiClient(QueueClient);\r\n const qClient = useApiClient(QuestionnairesClient);\r\n const [loading, setLoading] = useState(true);\r\n const [loadingQuestions, setLoadingQuestions] = useState(false);\r\n const [questionnaire, setQuestionnaire] =\r\n useState();\r\n const [qrl, setQrl] = useState([]);\r\n const [selectedQuestionnaire, setSelectedQuestionnaire] =\r\n useState();\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [savePdf, setSavePdf] = useState(0);\r\n\r\n const answers = useMemo(() => {\r\n return questionnaire ? parseAnswers(questionnaire.responses) : {};\r\n }, [questionnaire]);\r\n\r\n const handleMenuClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n useEffect(() => {\r\n if (showing) {\r\n loadResponseList();\r\n }\r\n }, [showing]);\r\n\r\n useEffect(() => {\r\n if (selectedQuestionnaire) {\r\n loadResponses();\r\n } else {\r\n setLoadingQuestions(false);\r\n setQuestionnaire(undefined);\r\n }\r\n }, [selectedQuestionnaire]);\r\n\r\n async function loadResponses() {\r\n setLoadingQuestions(true);\r\n const q = await qClient.getQuestions(selectedQuestionnaire!.id);\r\n setQuestionnaire(q);\r\n setLoadingQuestions(false);\r\n }\r\n\r\n async function loadResponseList() {\r\n setLoading(true);\r\n const qrl = await queueClient.getAllQuestionnaireResponse(\r\n props.queueId,\r\n props.queueWorkItem.workItem.id!\r\n );\r\n\r\n if (qrl && qrl.length == 1) {\r\n setSelectedQuestionnaire(qrl[0]);\r\n }\r\n setQrl(qrl);\r\n setLoading(false);\r\n }\r\n\r\n return loading ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n {qrl.length > 1 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {/* \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(3)} /> */}\r\n \r\n \r\n \r\n {/* \r\n {loading ? (\r\n \r\n ) : (\r\n notes.length > 0 && \r\n )}\r\n */}\r\n \r\n \r\n \r\n {/* \r\n {loading ? (\r\n \r\n ) : (\r\n auditEvents.length > 0 && (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n */}\r\n \r\n
\r\n );\r\n};\r\n","import {\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","import React, { useEffect, useState } from \"react\";\r\nimport { User } from \"../../../state/State.model\";\r\nimport { ValidationTextField } from \"../../muiCore/TextField\";\r\nimport { ValidatedForm } from \"./ValidatedForm\";\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n FormControl,\r\n InputLabel,\r\n MenuItem,\r\n Select,\r\n} from \"@material-ui/core\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { searchAddresses } from \"../../../data/api\";\r\n\r\nimport { LoginUserViewModel, PersonKind } from \"../../../common/client\";\r\n\r\nexport interface IUserRegistrationProps {\r\n onSubmit: (isFormValid: boolean, user: LoginUserViewModel) => void;\r\n allDetails: boolean;\r\n}\r\n\r\nexport const UserRegistration = (props: IUserRegistrationProps) => {\r\n const [loading, setLoading] = useState(false);\r\n const [formErrors, setFormErrors] = useState({\r\n mobile: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n firstName: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n lastName: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n dateOfBirth: {\r\n valid: true,\r\n errorMessage: \"\",\r\n },\r\n });\r\n const [firstName, setFirstName] = useState(\"\");\r\n const [lastName, setLastName] = useState(\"\");\r\n const [contactNumber, setContactNumber] = useState(\"\");\r\n const [dateOfBirth, setDateOfBirth] = useState(\"\");\r\n const [address, setAddress] = useState(\"\");\r\n const [longitude, setLongitude] = useState();\r\n const [latitude, setLatitude] = useState();\r\n const [gpPractice, setGPPractice] = useState(\"\");\r\n const [gpName, setGPName] = useState(\"\");\r\n const [sex, setSex] = useState(\"\");\r\n const [emailAddress, setEmailAddress] = useState(\"\");\r\n const [addressOptions, setAddressOptions] = React.useState([]);\r\n\r\n const isFormValid = (): boolean => {\r\n let valid = true;\r\n let errors = { ...formErrors };\r\n\r\n if (!firstName) {\r\n errors.firstName.valid = false;\r\n errors.firstName.errorMessage = \"First name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.firstName.valid = true;\r\n errors.firstName.errorMessage = \"\";\r\n }\r\n\r\n if (!lastName) {\r\n errors.lastName.valid = false;\r\n errors.lastName.errorMessage = \"Last name can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.lastName.valid = true;\r\n errors.lastName.errorMessage = \"\";\r\n }\r\n\r\n if (!contactNumber) {\r\n errors.mobile.valid = false;\r\n errors.mobile.errorMessage = \"Contact number can not be blank\";\r\n valid = false;\r\n } else {\r\n errors.mobile.valid = true;\r\n errors.mobile.errorMessage = \"\";\r\n\r\n if (!/^[0][0-9]{9}$|^[1300][0-9]{9}$/.test(contactNumber)) {\r\n errors.mobile.valid = false;\r\n errors.mobile.errorMessage =\r\n \"Please provide valid contact number 10 digits with no spaces - eg. 0400123456 or 0362291643\";\r\n valid = false;\r\n }\r\n }\r\n\r\n if (!dateOfBirth) {\r\n errors.dateOfBirth.valid = false;\r\n errors.dateOfBirth.errorMessage = \"Date Of Birth can not be blank\";\r\n valid = false;\r\n } else if (!dobValidator(dateOfBirth)) {\r\n errors.dateOfBirth.valid = false;\r\n errors.dateOfBirth.errorMessage = \"Date Of Birth invalid\";\r\n valid = false;\r\n } else {\r\n errors.dateOfBirth.valid = true;\r\n errors.dateOfBirth.errorMessage = \"\";\r\n }\r\n\r\n\r\n\r\n setFormErrors(errors);\r\n return valid;\r\n };\r\n\r\n const dobValidator = (dob: string): boolean => {\r\n let dobObj = new Date(dob);\r\n let today = new Date();\r\n let startDate=new Date('1900-01-01');\r\n\r\n return (dobObj <= today && dobObj >=startDate);\r\n };\r\n const addressValidator = (address: string): boolean => {\r\n return address.charAt(0) !== \" \";\r\n };\r\n\r\n useEffect(() => {\r\n if (address && address.length > 3) {\r\n searchAddresses(address)\r\n .then((d) => setAddressOptions(d))\r\n .catch((e) => setAddressOptions([]));\r\n }\r\n }, [address]);\r\n\r\n return (\r\n \r\n {\r\n setFirstName(e.target.value);\r\n }}\r\n variant=\"outlined\"\r\n disabled={loading}\r\n />\r\n {\r\n setLastName(e!.target.value);\r\n }}\r\n variant=\"outlined\"\r\n validation={{ required: true }}\r\n disabled={loading}\r\n />\r\n {\r\n setContactNumber(e.target.value);\r\n }}\r\n //value={txtMobile || ''}\r\n type={\"tel\"}\r\n disabled={loading}\r\n />\r\n {\r\n setDateOfBirth(e.target.value);\r\n }}\r\n inputProps={{max: \"9999-12-12\"}}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n type={\"date\"}\r\n disabled={loading}\r\n />\r\n {/* \r\n \r\n */}\r\n {/* */}\r\n {/*{props.allDetails && (*/}\r\n {/* <>*/}\r\n {/* */}\r\n {/* Sex*/}\r\n {/* {*/}\r\n {/* setSex(e.target.value);*/}\r\n {/* }}*/}\r\n {/* label=\"Sex\"*/}\r\n {/* fullWidth={true}*/}\r\n {/* >*/}\r\n {/* Male*/}\r\n {/* Female*/}\r\n {/* Other*/}\r\n {/* */}\r\n {/* */}\r\n \r\n {/* {*/}\r\n {/* setEmailAddress(e.target.value);*/}\r\n {/* }}*/}\r\n {/* disabled={loading}*/}\r\n {/* />*/}\r\n {/* */}\r\n {/*)}*/}\r\n \r\n {!props.allDetails && (\r\n <>\r\n {\r\n setGPName(e.target.value);\r\n }}\r\n disabled={loading}\r\n />\r\n {\r\n setGPPractice(e.target.value);\r\n }}\r\n disabled={loading}\r\n />\r\n \r\n )}\r\n
\r\n ) => {\r\n event.preventDefault();\r\n setLoading(true);\r\n if (isFormValid()) {\r\n //const addressFull = addressForm.toObject();\r\n // props.onSubmit(true, {\r\n // firstName: firstName,\r\n // lastName: lastName,\r\n // contactNumber: contactNumber,\r\n // department: \"\",\r\n // kind: PersonKind.Visitor,\r\n // });\r\n } else {\r\n setLoading(false);\r\n }\r\n }}\r\n >\r\n {loading && }\r\n {!loading && \"Next\"}\r\n \r\n
\r\n );\r\n};\r\n","import { Drawer } from \"../../../../components/muiCore/Drawer\";\r\nimport { AppBar } from \"../../../../components/muiCore/Paper\";\r\nimport { IconButton, Toolbar, useTheme } from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { QuestionHeader } from \"../../../../components/core/QuestionSlider/QuestionItemHeader\";\r\nimport { UserRegistration } from \"../../../../components/core/forms/UserRegistration\";\r\nimport { Questionnaire } from \"../../../../components/core/QuestionSlider/Questionnaire\";\r\nimport React, { MutableRefObject, useEffect, useRef, useState } from \"react\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport { useApiClient } from \"../../../../common/apiclients\";\r\nimport {\r\n LoginUserViewModel,\r\n QuestionnaireClient,\r\n QuestionnairesClient,\r\n QuestionValidationError,\r\n} from \"../../../../common/client\";\r\nimport { IQuestion } from \"../../../../models/Question\";\r\nimport {\r\n autoSelectChoice,\r\n makeQuestionnaireControl,\r\n parseAnswers,\r\n QuestionnaireControls,\r\n} from \"../../../../components/core/Questionnaire\";\r\n\r\nexport function QueueQuestionnaireDrawer({\r\n questionnaireSideDrawer,\r\n questionnaireResponseId,\r\n drawerTitle,\r\n formFinalised,\r\n show,\r\n onClose,\r\n registerFormUser,\r\n allFormDetails,\r\n}: {\r\n show: boolean;\r\n drawerTitle: string;\r\n questionnaireResponseId?: string;\r\n questionnaireSideDrawer: MutableRefObject;\r\n formFinalised: () => void;\r\n registerFormUser: (user: LoginUserViewModel) => void;\r\n onClose: (event: any, reason: string) => void;\r\n allFormDetails: boolean;\r\n}) {\r\n const theme = useTheme();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const questionClient = useApiClient(QuestionnaireClient);\r\n const adminQuestionClient = useApiClient(QuestionnairesClient);\r\n\r\n const [questionsAndControls, setQuestionsAndControls] =\r\n useState<{ questions: IQuestion[]; controls: QuestionnaireControls }>();\r\n const [referralPerson, setReferralPerson] = useState();\r\n const [showStepper, setShowStepper] = useState(false);\r\n\r\n const [errors, setErrors] = useState();\r\n const [validateAll, setValidateAll] = useState(false);\r\n const currentPageRef = useRef(0);\r\n\r\n async function handleQuestionnaireResponse(questionIndex: number) {\r\n if (questionsAndControls) {\r\n const controls = questionsAndControls.controls;\r\n if (controls.dirty) {\r\n const question = questionsAndControls.questions[questionIndex];\r\n const questionId = question.id;\r\n const { choiceId: _choiceId, value } =\r\n controls.fields[questionId].toObject();\r\n const choiceId = _choiceId ?? autoSelectChoice(question);\r\n if (choiceId) {\r\n const valueAndChoice = {\r\n choiceId,\r\n value: value ? JSON.stringify(value) : undefined,\r\n };\r\n try {\r\n await questionClient.addQuestionChoiceByAdmin(\r\n questionnaireResponseId!,\r\n questionId,\r\n referralPerson!,\r\n valueAndChoice\r\n );\r\n } catch (e) {\r\n enqueueSnackbar(\"Failed to save response: \" + question.heading, {\r\n variant: \"error\",\r\n });\r\n }\r\n }\r\n if (validateAll) {\r\n await validate();\r\n }\r\n controls.markAsClean();\r\n }\r\n }\r\n }\r\n\r\n async function closeQuestionnaire() {\r\n await handleQuestionnaireResponse(currentPageRef.current);\r\n onClose({}, \"closed\");\r\n }\r\n\r\n async function loadQuestionnaire(id: string) {\r\n const { questions, responses, personId, showStepper } =\r\n await adminQuestionClient.getQuestions(id);\r\n const controls = makeQuestionnaireControl(\r\n questions,\r\n parseAnswers(responses)\r\n );\r\n setQuestionsAndControls({ questions, controls });\r\n setValidateAll(false);\r\n setErrors(undefined);\r\n setReferralPerson(personId);\r\n setShowStepper(showStepper);\r\n \r\n questionnaireSideDrawer.current?.openDrawer();\r\n }\r\n\r\n useEffect(() => {\r\n if (show) {\r\n if (questionnaireResponseId) {\r\n loadQuestionnaire(questionnaireResponseId);\r\n } else {\r\n setReferralPerson(undefined);\r\n questionnaireSideDrawer.current?.openDrawer();\r\n }\r\n } else {\r\n setQuestionsAndControls(undefined);\r\n }\r\n }, [show, questionnaireResponseId]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!referralPerson ? (\r\n <>\r\n \r\n {\r\n registerFormUser(user);\r\n }}\r\n allDetails={allFormDetails}\r\n />{\" \"}\r\n \r\n ) : (\r\n questionsAndControls && (\r\n \r\n )\r\n )}\r\n \r\n );\r\n\r\n async function saveAndValidate() {\r\n return await validate();\r\n }\r\n\r\n async function validate() {\r\n const errors = await questionClient.validateQuestionnaire(\r\n questionnaireResponseId!\r\n );\r\n setValidateAll(true);\r\n setErrors(errors);\r\n questionsAndControls!.controls.setTouched(true);\r\n const showErrors = errors.length > 0;\r\n return !showErrors;\r\n }\r\n}\r\n","// 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 Divider,\r\n FormControlLabel,\r\n Grid,\r\n GridSize,\r\n IconButton,\r\n makeStyles,\r\n Switch,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport {\r\n OutcomeCard,\r\n SelectableCard,\r\n SelectableCardIconContentItem,\r\n SelectableStatisticCard,\r\n SkeletonCard,\r\n} from \"../../../components/muiCore/Card\";\r\nimport { Skeleton, ToggleButtonGroup } from \"@material-ui/lab\";\r\nimport ErrorOutlineOutlinedIcon from \"@material-ui/icons/ErrorOutlineOutlined\";\r\nimport {\r\n endOfToday,\r\n format,\r\n parse,\r\n parseISO,\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 ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport {\r\n createStyles,\r\n Theme,\r\n withStyles,\r\n WithStyles,\r\n} from \"@material-ui/core/styles\";\r\n\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 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 QueueWorkItemStatus,\r\n QueueWorkItemViewModel,\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 = 50;\r\n\r\ntype CSVExportModel = CSVExportViewModel & {\r\n questionnaireId: string;\r\n};\r\n\r\nexport const CSVExportFormDef = buildGroup()({\r\n reExportRecords: false,\r\n endDateTime: \"\",\r\n startDateTime: \"\",\r\n questionnaireId: \"\",\r\n});\r\n\r\nexport function Queue({ queues }: { queues: QueueViewModel[] }) {\r\n 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\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\r\n const sideDrawer = useRef(null);\r\n const toggleSideDrawer = sideDrawer?.current;\r\n\r\n const [questionnaireResponseId, setQuestionnaireResponseId] =\r\n useState();\r\n const questionnaireSideDrawer = useRef(null);\r\n const toggleQuestionnaireSideDrawer = questionnaireSideDrawer?.current;\r\n\r\n const [updateQueueData, setUpdateQueueData] = useState(false);\r\n const [updateQueueAssignemnt, setUpdateQueueAssignemnt] = useState(false);\r\n const [srQWI, setsrQWI] = useState();\r\n const [srUAQWI, setsrUAQWI] = useState();\r\n const [updateMetricsFromApi, setUpdateMetricsFromApi] = useState(false);\r\n\r\n //const [personForm] = useState(PersonDetailsFormDef);\r\n const [editPerson, setEditPerson] = useState(false);\r\n const [noteMode, _setNoteMode] = useState(false);\r\n const [csvExportMode, setCSVExportMode] = useState(false);\r\n\r\n // const [form] = useState(CSVExportFormDef);\r\n //const fields = form.fields;\r\n\r\n //const startDateFieldValue = useControlValue(fields.startDateTime);\r\n //const endDateFieldValue = useControlValue(fields.endDateTime);\r\n\r\n const [sentryRef] = useInfiniteScroll({\r\n loading,\r\n hasNextPage: hasMore,\r\n onLoadMore: loadMore,\r\n disabled: false,\r\n rootMargin: \"0px 0px 400px 0px\",\r\n });\r\n\r\n function startEditingNote() {\r\n _setNoteMode(true);\r\n noteKey++;\r\n }\r\n\r\n const [treeData, setTreeData] = useState<\r\n { name: string; value: string; label: string }[]\r\n >([]);\r\n\r\n //const [outcomeChoices, setOutcomes];\r\n\r\n useSignalR(\"/api/hub/queue\", state.user?.token, (conn: HubConnection) => {\r\n conn.on(\"queueitem-updated\", (workItem: any) => {\r\n setsrQWI(workItem);\r\n setUpdateQueueData(true);\r\n setUpdateQueueAssignemnt(true);\r\n });\r\n conn.on(\"queue-updated\", (queueId: string) => {\r\n if (currentQueue.id == queueId) {\r\n setUpdateQueueAssignemnt(true);\r\n }\r\n });\r\n conn.on(\"referral-added\", () => {\r\n if (currentQueue.name == \"Hotline\") {\r\n setUpdateQueueAssignemnt(true);\r\n }\r\n });\r\n });\r\n\r\n 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\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 if (teams) {\r\n setTeams(\r\n teams.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 setTreeData(outcomesArray);\r\n setExcludeFilter(outcomesArray);\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((x: QueueChoiceVm) => x.outcomeIdentifier == OutcomeIdentifier.Hobart_Front_Gate)\r\n var portFG = temp!.find((x: QueueChoiceVm) => x.outcomeIdentifier == OutcomeIdentifier.Port_Pirie_Front_Gate)\r\n if (hobFG) defaultExlude.push(hobFG.id)\r\n if (portFG) defaultExlude.push(portFG.id) \r\n console.log(defaultExlude)\r\n setDefaultExcludes([...defaultExlude])\r\n setSelectedExcludes({...defaultExlude})\r\n }\r\n if (searchFilters.outcomes === undefined || searchFilters.outcomes.length === 0){\r\n setPass(queue?.queueWorkItems.filter((q: any) => q.outcomes.filter((o: any) => o.name === \"Pass\").length > 0).length)\r\n setFail(queue?.queueWorkItems.filter((q: any) => q.outcomes.filter((o: any) => o.name === \"Fail\").length > 0).length)\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const getQueueDataWithoutRestriction = () => {\r\n let apiCalls = [];\r\n apiCalls.push(doItemQuery());\r\n\r\n apiCalls.push(\r\n api.getQueueMetrics(\r\n currentQueue!.id,\r\n searchFilters.before,\r\n searchFilters.after,\r\n searchFilters.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 = (newFormats: QueueWorkItemStatus[]) => {\r\n //setLoading(true);\r\n setSearchFilters({\r\n ...searchFilters,\r\n status: newFormats,\r\n });\r\n setIsFilterChanged(true);\r\n setMetricCatSelect(true);\r\n };\r\n\r\n const WorkItemIcon = (state: number): JSX.Element | undefined => {\r\n switch (state) {\r\n case QueueWorkItemStatus.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 });\r\n var hobFG = temp!.find((x: QueueChoiceVm) => x.outcomeIdentifier == OutcomeIdentifier.Hobart_Front_Gate)\r\n var portFG = temp!.find((x: QueueChoiceVm) => x.outcomeIdentifier == OutcomeIdentifier.Port_Pirie_Front_Gate)\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 (searchFilters.outcomes === undefined || searchFilters.outcomes.length === 0){\r\n setPass(queue?.queueWorkItems.filter((q: any) => q.outcomes.filter((o: any) => o.name === \"Pass\").length > 0).length)\r\n setFail(queue?.queueWorkItems.filter((q: any) => q.outcomes.filter((o: any) => o.name === \"Fail\").length > 0).length)\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\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 {/* */}\r\n {/* onWorkItemAssigned(queueWorkItem)}\r\n\t\t\t\t\t\t\t\t\t\taria-label=\"Add Team\"\r\n\t\t\t\t\t\t\t\t\t\t//disabled={!toggleSideDrawer || !hasModifyTeamMemberAccess }\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{queueWorkItem?.personAssignedTo ? (\r\n\t\t\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\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 {/* \r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\tsetQueueWorkItemStatus(\r\n\t\t\t\t\t\t\t\t\t\t\t\tqueueWorkItem?.status !== QueueWorkItemStatus.OnSite\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? QueueWorkItemStatus.OnSite\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: queueWorkItem?.personAssignedTo\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t? QueueWorkItemStatus.CheckIns\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t: QueueWorkItemStatus.CheckIns\r\n\t\t\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\t\t{queueWorkItem?.status == QueueWorkItemStatus.OnSite ? (\r\n\t\t\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\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\t\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\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\t\t{queueWorkItem?.status == QueueWorkItemStatus.OnSite ? (\r\n\t\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// if (queueWorkItem?.personAssignedTo) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \t// onWorkItemAssigned(queueWorkItem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \t// setQueueWorkItemStatus(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \t// \tQueueWorkItemStatus.InProgress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// } else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \t//onWorkItemAssigned(queueWorkItem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \tsetQueueWorkItemStatus(QueueWorkItemStatus.CheckIns);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//setNoteMode(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//setQueueWorkItemStatusChanged(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//setQueueWorkItemStatus(QueueWorkItemStatus.Closed);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\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\t\t\tsetQueueWorkItemStatus(undefined);\r\n\t\t\t\t\t\t\t\t\t\t\tstartEditingNote();\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t//disabled={!toggleSideDrawer || !hasModifyTeamMemberAccess }\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\t\r\n\t\t\t\t\t\t\t\t\t setAssignToQueueMode(true)}\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{currentQueue.canCreateForm && !currentQueue.launchForm && (\r\n\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tgetQuestionnaireIdForQueue().then((d) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowQuestionnaire(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\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\r\n\t\t\t\t\t\t\t\t */}\r\n
\r\n
\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 \r\n \r\n \r\n }\r\n divider={true}\r\n />\r\n {queueWorkItem!.outcomes && queueWorkItem!.outcomes.length > 0 && (\r\n \r\n \r\n \r\n }\r\n divider={true}\r\n text={`Location: ${queueWorkItem!.outcomes\r\n .map((o: QueueOutcomeViewModel) => o.name)\r\n .reverse()\r\n .join(\" > \")}`}\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 )}\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 {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\t\t\t\t\t\t\t\tsetQuestionnaireResponseId(responseId);\r\n\t\t\t\t\t\t\t\tsetShowQuestionnaire(true);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\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 && 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 {/* {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 && 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 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(currentQueue.queueIndex === QueueIndex.Site_locator ? queueWorkItem.status : queueWorkItem.status + 1)}\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 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(Date.parse(queueWorkItem.workItem.checkIn.checkInTime)- userOffset),\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(Date.parse(queueWorkItem.workItem.checkIn.checkOutTime)- userOffset),\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 )}\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\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(userOffset,ids);\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\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 \r\n \r\n \r\n \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 { UserPermissions } from \"./../../state/State.model\";\r\n\r\nexport const hasPermission = (\r\n user: any | null,\r\n permission: UserPermissions\r\n): boolean => {\r\n if (!user) {\r\n return false;\r\n }\r\n\r\n if (user.roles?.length == 0) {\r\n return false;\r\n }\r\n\r\n for (const role of user.roles) {\r\n const p = role.permissions;\r\n\r\n if ((p & UserPermissions.SuperUser) > 0) {\r\n return true;\r\n }\r\n // check permissions other than admin\r\n else if (p.toString() == permission.toString()) {\r\n return true;\r\n }\r\n // else if(( p & permission ) >= permission)\r\n // {\r\n // return true;\r\n // }\r\n }\r\n\r\n return false;\r\n};\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 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 },\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 setSettings(response);\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 updateValue(event, setting.id);\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, 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 { Queue } from \"../../../common/client\";\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\r\n useEffect(() => {}, []);\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 },\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 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)) { \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 { \r\n history.push('/accessdenied')\r\n }\r\n }\r\n }, [state.user?.roles]);\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 history.push(viewQueueUrl(item.id))}\r\n selectedItem={currentQueue}\r\n />\r\n \r\n \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 {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 {/* {hasPermission(state.user, UserPermissions.ModifyQueueMember) && (\r\n {\r\n history.push(\"/admin/queuesmanagement\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )} */}\r\n\r\n {/* {*/}\r\n {/*\t\thistory.push(\"/admin/summary\");*/}\r\n {/*\t}}*/}\r\n {/*> */}\r\n {/*\t*/}\r\n {/*\t\t*/}\r\n {/*\t*/}\r\n {/*\t*/}\r\n {/* */}\r\n {/* \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t */}\r\n {/*{secondaryListItems} */}\r\n \r\n
\r\n
\r\n \r\n {!loading && state.user?.token && queues && queues.length > 0 ? (\r\n \r\n {AdminRoutes(queues, RedirectCalculater())}\r\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 TeamViewModel,\r\n} from \"../common/client\";\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\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 let list = state.user?.departments.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Visitor\r\n );\r\n list = list.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier !== DepartmentIdentifier.Contractor\r\n );\r\n let visitor = state.user?.departments.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.Visitor\r\n );\r\n let contractor = state.user?.departments.filter(\r\n (x: TeamViewModel) =>\r\n x.departmentIdentifier === DepartmentIdentifier.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 if (state.user?.locations && state.user?.locations.length > 0) {\r\n var locations = state.user?.locations;\r\n if (state.user?.department === visitor[0].id) {\r\n locations = filterOther(locations);\r\n } else if (state.user?.department === contractor[0].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 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.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, { 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\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","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 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\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 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":""}