{"version":3,"sources":["components/MultiSelectBox.js","components/CreateAttachmentTag.js","components/Tags.js","components/PopperPortal.js","components/CarouselModal.jsx","assets/users.png","assets/userCheck.png","assets/list.png","assets/usersProgress.png","components/SearchedDropdown.js","hooks/useNotifications.js","components/Layout.js","components/PermissionsDropdown.js","pages/Permissions/Permissions.js","pages/Contacts/ContactHistory.js","pages/Activity/TImeLine.js","pages/Activity/ActivityFilter.js","pages/Activity/Activity.js","pages/Allegations/AllegationFilter.js","utils/convertJsonCsv.js","pages/Allegations/ViewTabAllegations.js","pages/Allegations/Allegations.js","pages/Auth/Login/LoginForm.js","pages/Auth/Login/Login.js","pages/CaseDetails/CasePdf.js","components/Alert.js","components/AssignedToTooltip.js","components/PageWrapper.js","pages/Cases/ViewTabCases.js","pages/Cases/Cases.js","pages/Data/CreateReport.js","pages/Data/Data.js","components/FormStepper.js","pages/FileImport/Module.js","components/Select.js","pages/FileImport/Steps/Step1.js","pages/FileImport/MatchFieldRow.js","pages/FileImport/Steps/Step2.js","pages/FileImport/Steps/Step3.js","pages/FileImport/FileImport.js","pages/FileImport/SuccessImported.js","components/Input.js","components/DnDArea.js","components/DnDItem.js","formEngine/utils/utls.js","services/cube.js","components/DataReportLink.js","formEngine/utils/Settings.js","formEngine/utils/Label.js","components/HideAnswer.js","formEngine/components/Dropdown.js","formEngine/components/FIle.js","formEngine/components/LongText.js","formEngine/components/MultipleChoice.js","formEngine/components/ShortText.js","formEngine/components/SingleChoice.js","assets/icons/rule_black_24dp.svg","formEngine/components/YesNo.js","formEngine/components/URL.js","formEngine/components/Title.js","formEngine/components/Subtitle.js","components/OutLineTable.js","formEngine/components/ContactInfo.js","formEngine/components/AddressInformation.js","formEngine/components/Hour.js","assets/icons/today_black_24dp.svg","formEngine/components/Date.js","components/PhoneInput.js","formEngine/components/Phone.js","formEngine/components/Email.js","pages/FormEngine/FormEngine.js","pages/Forms/CreateForm.js","pages/Forms/DeleteForms.js","pages/Forms/RenderTableOptions.js","pages/Forms/UpdateStatusFormPopup.js","pages/Forms/UpdateStatusFormPortal.js","components/FormCard.js","pages/Forms/SortForms.js","pages/Forms/Forms.js","components/DashboardCard.js","pages/Home/Home.js","pages/Mfa/MfaStep1.js","pages/Mfa/MfaStep2.js","pages/Mfa/MfaStep3.js","pages/Mfa/MfaVerifyEmail.js","pages/Mfa/Mfa.js","pages/Officer/LabelWithColor.jsx","pages/Officer/components/EditOfficer.jsx","components/UserAttr.js","pages/Officer/OfficerInfo.js","pages/Projects/components/HeaderTabs.jsx","pages/Officer/OfficerCases.jsx","pages/Officer/components/Log.jsx","pages/Officer/components/OfficerLogs.jsx","pages/Officer/components/NoteUpdate.jsx","pages/Officer/InterveneTab.jsx","pages/Officer/MonitorTab.jsx","pages/Officer/components/HistoryLog.jsx","pages/Officer/HistoryTab.jsx","pages/Officer/AttachmentTab.jsx","pages/Officer/OfficerProfile.js","pages/Officers/pages/Merge.js","pages/Officers/pages/MergeConfirmation.js","pages/Profile/ProfileInformation.js","pages/Profile/ChangePasswordProfile.js","pages/Profile/ProfileConfigNotifications.js","pages/Profile/Profile.js","pages/ReportProfile/ContentHeader.js","pages/Projects/utils/index.js","pages/ReportProfile/ContentCharts.js","hooks/useBuildingSchemaStatus.js","pages/ReportProfile/ContentFooter.js","pages/ReportProfile/ReportContent.js","components/DragArea.js","components/DropdownItem.js","DnD/types.js","components/ReportSearchInput.js","components/ReportDnDItem.js","components/ReportItem.js","components/ReportFilterItem.jsx","pages/ReportProfile/ReportPanel.js","pages/ReportProfile/ReportProfile.js","components/FixedTags.js","pages/Insights/ExploreProfile/ContentCharts.js","pages/Insights/ExploreProfile/ContentChartsButton.js","pages/Insights/CreateDashboard.js","pages/Insights/ExploreProfile/ExploreContent.js","pages/Insights/ExploreProfile/ExplorePanel.js","pages/Insights/ExploreProfile/ExploreProfile.js","pages/Insights/DashboardReports.js","pages/Insights/DashboardProfile.js","utils/formatBytes.js","pages/Usage/Usage.js","components/ModalUserRole.js","pages/User/User.js","pages/NotFound.js","components/EnhancedTableRow.js","pages/Insights/ReportsTableTab.js","pages/Insights/DashboardsTableTab.js","pages/Insights/Insights.js","routes/history.js","pages/FormProfile/QuestionBankComponent.js","pages/FormProfile/QuestionBank.js","pages/FormProfile/Page.js","components/AddComponent.js","pages/FormProfile/components/StaticWrapper.jsx","pages/FormProfile/components/SelectableButton.jsx","pages/FormProfile/components/DndLogicItem.jsx","pages/FormProfile/components/Date.jsx","pages/FormProfile/components/Number.jsx","pages/FormProfile/components/ConditionalSelect.jsx","pages/FormProfile/components/Condition.jsx","pages/FormProfile/components/Text.jsx","pages/FormProfile/components/CaseNumberSettings.jsx","pages/FormProfile/components/CaseNumber.jsx","pages/FormProfile/PageHeader.js","formEngine/components/DateOfBirth.jsx","formEngine/utils/DropZone.js","formEngine/config/Renderer.js","formEngine/components/Demographics.jsx","formEngine/components/Gender.jsx","formEngine/components/Police.js","formEngine/components/PrimaryLanguage.js","formEngine/components/QuestionBankSideComponent.js","formEngine/components/Race.jsx","formEngine/components/SexaulOrientation.jsx","formEngine/components/Witnesses.js","formEngine/components/RaceEthnicity.jsx","formEngine/components/Ethnicity.jsx","formEngine/config/Config.js","pages/FormProfile/Section.js","formEngine/utils/helpers.js","pages/FormProfile/PageDetails.js","pages/FormProfile/Standard.js","pages/FormProfile/Custom.js","pages/FormProfile/CaseUpdateBar.js","pages/FormProfile/OfficerUpdateBar.js","pages/FormProfile/Pages.js","pages/FormProfile/CaseUpdate.js","pages/FAQ/components/QuestionComponent.js","pages/FAQ/components/AnswerComponent.js","pages/FAQ/components/Question.js","pages/FormProfile/CaseStatus.js","pages/FormProfile/components/FormTaskBoxEdit.jsx","pages/FormProfile/FormTasks.jsx","pages/FormProfile/OfficerStandard.js","pages/FormProfile/CustomOfficer.js","pages/FormProfile/OfficerUpdate.js","pages/FormProfile/FormProfile.js","components/Btn.js","pages/Auth/Signup/SignupForm.js","pages/InvitationConflict.js","pages/Auth/Signup/Signup.js","pages/Auth/ResetPassword/ResetPassword.js","components/UpdateAlert.js","components/PaginationTable.js","pages/DataDocumentation/DataDocumentation.js","pages/Insights/InsightsDocumentation.js","pages/Auth/ResetPasswordById/ResetPasswordById.js","pages/FAQ/FAQ.js","pages/ProjectsTypes/TypeItem.jsx","pages/ProjectsTypes/ProjectTypes.jsx","pages/Settings/components/EISItem.jsx","pages/Settings/components/MonitorItem.jsx","pages/Settings/OfficerEisTab.jsx","pages/TasksTypes/TasksTypes.jsx","pages/Settings/officers/view.jsx","pages/Settings/officers/index.jsx","pages/Settings/Settings.js","components/Logo.js","pages/FormDashboard/components/FormDashbaordBar.js","hooks/useZoomStyle.js","pages/FormDashboard/FormDashboard.js","pages/FormDashboard/SuccessScreen.js","hooks/useProjectTypes.js","pages/Projects/components/ModalButtons.jsx","pages/Projects/components/OutlineSelect.jsx","pages/Projects/CreateProject.jsx","pages/Projects/DeletePopup.jsx","pages/Projects/Projects.js","hooks/useProject.js","hooks/useUsers.js","pages/Projects/components/Header.jsx","pages/Projects/components/PopUpDeleteAction.jsx","pages/Projects/components/ActionItem.jsx","pages/Projects/components/OverviewItem.jsx","pages/Projects/components/RelatedProjects.jsx","pages/Projects/components/TotalTimeSpent.jsx","pages/Projects/components/ActionCard.jsx","pages/Projects/tabs/Actions.jsx","pages/Projects/ConfirmationPopup.jsx","pages/Projects/components/ProjectNoteLogs.jsx","pages/Projects/tabs/Notes.jsx","pages/Projects/tabs/ProjectAttachments.jsx","pages/Projects/components/ProjectLog.jsx","pages/Projects/tabs/History.jsx","pages/Projects/components/RecommendationItem.jsx","pages/Projects/tabs/Recommendations.jsx","components/ContactTableRow.js","pages/Projects/ProjectContacts.jsx","pages/Projects/ProjectDetails.jsx","pages/Notifications/Notifications.jsx","components/ContactsFilters.js","pages/Contacts/ViewTabContacts.js","pages/Contacts/Contacts.js","pages/Contacts/ModalEditContact.js","pages/Contacts/ContactInfo.js","components/TableContainer.js","pages/Contacts/ContactAttachments.js","pages/Contacts/ContactProfile.js","pages/Social/Social.js","routes/AppRouter.js","App.js","utils/chartjsConfig.js","i18n/en.js","i18n/es.js","i18n/i18n.js","index.js","utils/validateForm.js","pages/CaseDetails/PersonalInformation.js","pages/CaseDetails/IncidentDetails.js","pages/CaseDetails/SearchOfficer.js","pages/CaseDetails/Officers.js","components/DropdownResults.js","pages/CaseDetails/TransferCase.js","pages/CaseDetails/DuplicateCase.js","pages/CaseDetails/History.js","pages/CaseDetails/Attachments.js","pages/CaseDetails/CaseDetailTask.js","pages/CaseDetails/CaseTasks.js","pages/CaseDetails/HeaderOptions.js","components/ModalEditCaseDetails.js","pages/CaseDetails/CaseContacts.js","pages/CaseDetails/RelatedCases.js","pages/CaseDetails/CaseDetails.js","components/Note.js","components/NoteLogs.js","formEngine/utils/constants.js","components/LogIcon.jsx","utils/options.js","services/axios.js","components/ArchivedImage.js","components/ModalUploadFile.js","pages/FormDashboard/components/MultipleChoice.js","components/LogoHome.js","components/UsersDropdown.js","components/CaseFilters.js","pages/CaseDetails/UpdateCaseComponents/CaseUpdateRenderer.js","components/AssignUser.js","hooks/useTabs.js","components/TabsModules.js","pages/Officers/OfficersFilter.js","pages/Officers/ViewTabOfficers.js","pages/Officers/OfficersTable.js","assets/profile.png","components/ImageDownload.js","components/Log.js","provider/AccordionProvider.js","components/AccordionWrap.js","components/Attachment.js","pages/CaseDetails/CaseComment.js","assets/flagged.png","utils/index.js","hooks/useMe.js","hooks/useFiltersConfig.js","components/ArrayTooltip.js","components/UpgradeTabPopup.js","hooks/userNearScreen.js","pages/FormDashboard/components/InputPhone.js","pages/CaseDetails/AditionalDetails.js","pages/Contacts/ModalCreateContact.js","pages/Activity/TimeLineItem.js","assets/schema.png","pages/CaseDetails/FormTypeJson.js","components/FilterButton.js","components/TagsFilters.js","components/LoadingScreen.js","formEngine/components/WrapperComponent.js","components/DateTimePickerMUi.jsx","services/countryStateService.js","Context.js","components/PageButtons.js","pages/Activity/TimeLineItemNotes.js","hooks/useCheckAppVersion.js","hooks/useOrganization.js","config/config.js","components/CaseUpdateSection.js","assets/oversignBlack.png","components/MenuTable.js","hooks/useTrackForm.js","provider/DataReportLinkProvider.js","components/CustomModalDelete.js","assets/Microsoft_logo.svg.png","components/DashButton.js","assets/oversignWhite.png","assets/officer.png","utils/formatText.js","pages/CaseDetails/UpdateCaseComponents/UpdateRenderer.js","assets/upArrow.png","components/ConfirmDialog.js","pages/CaseDetails/UpdateCaseComponents/WrapperSave.js","pages/CaseDetails/UpdateCaseComponents/Components/PreviewLabel.js","pages/CaseDetails/UpdateCaseComponents/Components/CUDropdown.js","pages/CaseDetails/UpdateCaseComponents/Components/CULongText.js","pages/CaseDetails/UpdateCaseComponents/Components/CUMultipleChoices.js","pages/CaseDetails/UpdateCaseComponents/Components/CUShortText.js","pages/CaseDetails/UpdateCaseComponents/Components/CUSingleChoice.js","pages/CaseDetails/UpdateCaseComponents/Components/CUYesNo.js","pages/CaseDetails/UpdateCaseComponents/Components/CUTitle.js","pages/CaseDetails/UpdateCaseComponents/Components/CUSubtitle.js","pages/CaseDetails/UpdateCaseComponents/Components/CUDate.js","pages/CaseDetails/UpdateCaseComponents/Components/CUPhone.js","pages/CaseDetails/UpdateCaseComponents/CaseUpdateConfig.js","config/constants.js","pages/CaseDetails/UpdateCase.js","services/unarmed.js","utils/constants.js","pages/Activity/CaseTaskUpdateItem.js","hooks/useTags.js","provider/TagsProvider.js","assets/trash.png","components/CircularProgressWithLabel.jsx","pages/Officers/components/modalCreateOrEditOfficer.js","components/SearchResults.js","components/CreateContactForm.js","components/SearchContacts.js","pages/FormDashboard/components/AddressInfo.js","pages/FormDashboard/components/ContactInfo.js","pages/FormDashboard/components/Date.js","pages/FormDashboard/config/FormRenderer.js","pages/FormDashboard/components/Demographics.jsx","pages/FormDashboard/components/Dropdown.js","pages/FormDashboard/components/Email.js","pages/FormDashboard/components/Hour.js","pages/FormDashboard/components/LongText.js","pages/FormDashboard/components/Phone.js","pages/FormDashboard/components/Url.js","pages/FormDashboard/components/Witnesses.js","pages/FormDashboard/components/Police.js","pages/FormDashboard/components/PrimaryLanguage.js","pages/FormDashboard/components/QuestionBank.js","pages/FormDashboard/components/ShortText.js","pages/FormDashboard/components/SingleChoice.js","pages/FormDashboard/components/Subtitle.js","pages/FormDashboard/components/Title.js","pages/FormDashboard/components/YesNo.js","pages/FormDashboard/config/FormConfig.js","pages/FormDashboard/FormSection.js","styles/GlobalStyles.js","hooks/useDebounce.js","components/CustomFieldsAllegations.js","components/OfficerAdded.js","components/SelectClearable.js","pages/Contacts/ContactForm.js","components/HTMLContent.js","utils/icons/check.svg","utils/icons/cross.svg","components/Notification.js","pages/CaseDetails/NewOfficer.js","components/CasePersonInfo.js","pages/Users/InviteUser.js","assets/pin.png","components/AddMore.js","pages/Users/UsersFilter.js","pages/Users/ViewTabUsers.js","components/Card.js","components/TabPanel.js","hooks/useInput.js","components/SelectBox.js","assets/pushOut-pin.png","assets/blueBadge.png","assets/yelloCard.png","assets/circle.png","assets/greencard.png","assets/redCard.png","assets/record_voice_over.png","assets/storage.png","pages/Users/Users.js","pages/Users/RenderMoreOptions.js","assets/nube_wrong.svg","utils/libs.js","components/DatePickerMUi.js","components/Tag.js","components/ModaPopupl.js","pages/FormDashboard/components/PreviewLabel.js","components/Table.js","services/firebase.js","pages/FormDashboard/components/File.js","components/UpgradeModal.js"],"names":["BootstrapInput","withStyles","theme","root","width","input","borderRadius","position","backgroundColor","border","fontSize","padding","transition","transitions","create","fontFamily","join","borderColor","InputBase","inputStyles","BootstrapInputOutlined","BootstrapInputOutlinedActive","MultiSelectBox","_ref","dataTestId","options","value","onChange","id","label","outlined","defaultValue","callback","active","React","createElement","FormControl","fullWidth","style","Select","inputProps","multiple","displayEmpty","renderValue","selected","length","Array","isArray","MenuItem","disabled","map","option","i","key","Checkbox","checked","indexOf","color","ListItemText","primary","obj","index","text","Backdrop","styled","div","Container","props","right","Input","TextRecently","p","Scroll","CreateAttachmentTag","currentTags","size","onClickAdd","onClickClose","tagText","setTagText","useState","loading","setLoading","tagsRecently","onChangeSearch","loadingTags","useTags","handleOnSubmit","useCallback","createTag","name","then","res","status","data","setTimeout","catch","error","_error$response","_error$response$data","_error$response$data$","_error$response$data$2","_error$response2","_error$response2$data","message","response","details","toast","interval","mostUsedTags","filter","tagRecently","find","currentTag","_id","slice","Fragment","onClick","small","height","medium","large","Box","placeholder","e","target","maxLength","onKeyUp","clearTimeout","onKeyDown","onKeyPress","event","Divider","Typography","variant","tag","display","justifyContent","flexDirection","Tag","tagName","bg","textColor","alignItems","marginTop","Button","marginRight","CircularProgress","Add","span","save","Tags","defaultTags","fileId","withAddBtn","canRemove","rightCreateTag","positionCreateTag","sizeCreateTag","onClickAddTag","onClickRemove","autoUpdateTags","tags","setTags","tagsLoaded","setTagsLoaded","addingTag","setAddingTag","tagsChanged","setTagsChanged","useTagsProvider","checkIfTagsChanged","forEach","tagData","tagExits","_tag","_tagData$tag","_tags","_tagData$tag2","useEffect","tagsSorted","useMemo","uniqueTags","Set","add","from","uniqueTag","wasAdded","tagChanged","_tagChanged$tag","_tagChanged","_tagChanged$tag2","wasRemoved","_tagChanged$tag3","_tagChanged$tag4","PopperPortal","open","setOpen","children","left","top","anchorRef","useRef","handleListKeyDown","preventDefault","handleClose","current","contains","Popper","anchorEl","role","undefined","disablePortal","zIndex","_ref2","TransitionProps","placement","Grow","Object","assign","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","useStyles","makeStyles","modal","paper","palette","background","boxShadow","shadows","spacing","imgModal","objectFit","maxHeight","link","cursor","fileName","textAlign","fontWeight","CarouselModal","filesSelected","loadingOpenFiles","setLoadingOpenFiles","onDownloadImage","classes","downloadAsset","async","file","prevState","stateCopy","downloadImage","download_url","err","ModalPopUp","allowBg","maxWidth","Carousel","autoPlay","navButtonsAlwaysVisible","navButtonsWrapperProps","className","selectedFileIndex","files","_loadingOpenFiles$ind","_loadingOpenFiles$ind2","mimetype","includes","Grid","container","item","xs","data-testid","archivedDate","GetAppIcon","htmlColor","CloseIcon","marginLeft","mt","mb","src","public_url","alt","ReactPlayer","url","controls","stopOnUnmount","onEnablePIP","pip","module","exports","code","minWidth","textTransform","SearchedDropdown","searchResult","onClose","history","useHistory","changeTextFromBE","category","overflowY","keys","margin","search","s","splitedValues","split","push","Tooltip","title","formatTxt","useNotifications","notifications","setNotifications","notificationCount","setNotificationCount","getNotificationsCount","getNotificationCount","count","console","log","resetNotificationsCount","colors","dev","opacity","logo","oversignWhite","test","oversignBlack","prod","getEnvColors","toolbar","paddingRight","toolbarIcon","mixins","appBar","drawer","easing","sharp","duration","leavingScreen","appBarShift","enteringScreen","drawerPaper","whiteSpace","minHeight","drawerPaperClose","overflowX","breakpoints","up","content","flexGrow","overflow","logoOrganization","objectPosition","Layout","_myUser$photo","allowScroll","removeAuth","myUser","setActive","organization","useContext","Context","openSearch","setOpenSearch","useInput","setSearchResult","openSettings","setOpenSettings","searchTimeout","setKeys","permissions","setPermissions","location","useLocation","pageTitle","getDocumentTitle","document","logEvent","page_title","page_location","window","href","page_path","pathname","scrollTo","_organization$permiss2","_organization$permiss","keysCopy","keysSort","sort","x","y","permissionsData","validateRoutes","rute","CssBaseline","AppBar","clsx","Toolbar","flex","SearchIcon","OutLineInput","setValue","onSearchGeneral","encodeURIComponent","results","arr","matchingFields","_category$value","replace","toUpperCase","aria-describedby","labelWidth","IconButton","Badge","badgeContent","NotificationsIcon","SettingsIcon","ef","aria-controls","aria-haspopup","photo","Avatar","AccountCircleIcon","noWrap","firstName","lastName","Drawer","List","t","icon","_organization$feature","_organization$feature2","_organization$feature3","_organization$feature4","_organization$feature5","_organization$feature6","featureStatus","features","dashboard","insights","enabled","DashboardIcon","cases","InsertDriveFileIcon","allegations","RecordVoiceOverIcon","users","PeopleIcon","activity","HistoryIcon","officers","SecurityIcon","import","SaveAltIcon","DataUsageIcon","Equalizer","forms","SubjectIcon","projects","StorageIcon","contacts","PersonIcon","onRenderModuleIcon","ListItem","button","ListItemIcon","ExitToAppIcon","handleDrawerClose","ChevronLeftIcon","handleDrawerOpen","ChevronRightIcon","appBarSpacer","dropdownCard","boxSizing","scrollbarWidth","scrollbarColor","PermissionsDropdown","withColors","allowPlaceHolder","showDefaultValue","placeholderText","hidePlaceholderWhenSelectedValue","setRolesPermissions","hiddenInputRef","getWrapperStyle","initialSelected","selectedValues","setSelectedValues","disabledSelectedOptions","val","opt","newSelection","prev","strValue","JSON","stringify","Event","bubbles","dispatchEvent","handleToggle","handleClickAway","handleSelectAll","enabledValues","o","handleOptionChange","v","displayText","allSelected","_options$obj$find","some","textSliced","ref","type","ExpandMoreIcon","Card","FormControlLabel","control","paddingLeft","singleValue","setSingleValue","singleOptions","found","String","isSelected","handleSelectOption","CheckIcon","marginBottom","dialog","sectionTitle","roleRow","radio","headerCell","trashIconButton","transform","trashIconImage","permissionsOptionsForCases","permissionsOptions","permissionsOptionsForTwoOptions","Permissions","useOrganization","setOrganization","modules","setModules","rolesPermissions","copyRoleSetting","setCopyRoleSetting","roleName","setRoleName","roles","setRoles","formTypesOptions","setFormTypesOptions","createdRoles","setCreatedRoles","reduce","acc","disable","readOnly","write","roleMapping","setRoleMapping","isModalOpen","setModalOpen","handleCloseModal","newRole","formatRoleName","char","normalizedPermissions","mapping","toCamelCase","str","toLowerCase","word","defaultPermissions","usage","formData","canDeleteNotesCases","canDeleteNotesContacts","canDeleteNotesOfficers","canDeleteNotesProjects","mergeOfficers","readOnlyModules","modulesWithMarginLeft","dualPermissionsModules","multiChoiceFormTypeModule","modulesLabels","seeOnlyAssigned","seeOnlyTypes","formTypeDefault","COMPLAINT","COMPLIMENT","RECOMMENDATION","REVIEW","formTypes","formType","dashboardModules","modulesKeys","permissionModules","_dashboardModules$key","getPermissionsOptions","getModifiedOptionsForSeeOnlyAssigned","selectedTypesOptions","getOptionsForDropdown","isMultiOptions","DashButton","lineHeight","handleOpenModal","onSavePermissions","onUpdateOrganization","success","sx","borderRight","borderBottom","displayRole","formatRole","deletePermission","permissionKey","updatedRoles","indexToRemove","findIndex","role1","newRoles","splice","handleDeletePermission","aria-label","disableRipple","TrashIcon","onChangeSelectHandler","newValue","parseInt","MenuProps","PaperProps","Dialog","aria-labelledby","DialogTitle","DialogContent","paddingTop","TextField","required","InputLabelProps","shrink","InputProps","disableUnderline","borderBottomColor","InputLabel","selectedRole","normalizedRole","selectedRolePermissions","handleCopyRoleSettings","py","px","trim","RadioGroup","row","handlePermissionChange","level","prevPermissions","Radio","handleCreateRole","payload","permissionValue","createNewPermission","contactFieldsNames","suffix","pronouns","salutation","phoneNumber","description","department","gender","raceEthnicity","birthdate","companyName","emphasis","parseChangeValue","fieldName","moment","format","ContactHistory","logs","setLogs","fetchContactHistory","_log$data50","_log$data50$user","_log$data50$user$phot","_log$data51","_log$data51$user","_log$data52","_log$data52$user","renderLog","_log$data","_log$data2","_log$data3","comment","hasFiles","hasComment","hasBoth","UserInfo","user","HTMLContent","showPreview","PreviewImg","LogIcon","fl","handleClickEvents","ArchivedImage","_log$data4","_log$data13","_log$data14","_log$data14$contact","_log$data15","_log$data15$project","_log$data16","_log$data16$project","_log$data17","_log$data18","_log$data18$contact","_log$data19","_log$data19$project","_log$data20","_log$data20$project","_log$data21","_log$data22","_log$data22$contact","_log$data23","_log$data23$form","_log$data24","_log$data25","_log$data25$contact","_log$data26","_log$data26$form","_log$data27","_log$data28","_log$data28$tags","_log$data29","_log$data29$tags","_log$data30","_log$data30$file","_log$data31","_log$data31$contact","_log$data32","_log$data33","_log$data33$tags","_log$data34","_log$data34$tags","_log$data35","_log$data35$file","_log$data36","_log$data36$contact","_log$data37","_log$data38","_log$data39","_log$data39$file","_log$data40","_log$data40$contact","_log$data41","_log$data42","_log$data42$comment","_log$data43","_log$data43$contact","_log$data44","_log$data45","_log$data45$comment","_log$data46","_log$data46$contact","_log$data47","_log$data48","_log$data48$file","_log$data49","_log$data49$contact","_log$data5","_log$data6","_log$data6$changes","_log$data9","changes","change","changeKey","_log$data7","_log$data8","oldValue","_log$data10","_log$data11","_log$data12","oldComment","newComment","contact","email","Link","to","project","form","TimeLineItem","unread","profileImg","createdAt","avatar","CasesInfoText","_casesInfo$map","casesInfo","casesList","caseInfo","entityId","casesLength","ProjectsInfoText","_projectsInfo$map","projectsInfo","projectsList","projectInfo","projectsLength","itemsContainer","texxt","_ref3","getUserInitials","_user$firstName","_user$lastName","TimeLineDot","isFilled","TimeLine","_ref4","items","setFilesSelected","convertValueToHTML","onDownload","filesOp","filesToOpen","flop","handleOpen","stripHTML","getActionLabel","getStatusTitle","_item$data","_item$data163","_item$data164","_item$data169","_item$data170","_item$data479","_item$data480","_item$data489","_item$data495","_item$data573","_item$data588","_item$data592","currentTime","getDate","getTooltipDate","fromNow","days","endOf","diff","_item$data2","_item$data2$user","_item$data2$user$phot","_item$data3","_item$data4","_item$data5","_item$data5$adHocRepo","_item$data6","_item$data6$user","_item$data6$user$phot","_item$data7","_item$data8","_item$data9","_item$data9$adHocRepo","_item$data10","_item$data10$user","_item$data10$user$pho","_item$data11","_item$data12","_item$data13","_item$data13$adHocRep","_item$data25","_item$data25$user","_item$data25$user$pho","_item$data26","_item$data27","_item$data28","_item$data28$contact","_item$data29","_item$data29$contact","_item$data30","_item$data30$user","_item$data30$user$pho","_item$data31","_item$data32","_item$data33","_item$data33$contact","_item$data34","_item$data34$form","_item$data35","_item$data36","_item$data36$form","_item$data37","_item$data38","_item$data38$form","_item$data39","_item$data40","_item$data40$form","_item$data41","_item$data41$form","_item$data42","_item$data42$form","_item$data43","_item$data43$user","_item$data44","_item$data44$form","_item$data45","_item$data45$form","_item$data46","_item$data46$form","_item$data47","_item$data47$user","_item$data48","_item$data48$form","_item$data49","_item$data49$form","_item$data50","_item$data51","_item$data51$form","_item$data52","_item$data53","_item$data68","_item$data68$officer","_item$data69","_item$data70","_item$data71","_item$data71$user","_item$data71$user$pho","_item$data72","_item$data73","_item$data74","_item$data74$contact","_item$data75","_item$data75$contact","_item$data76","_item$data76$form","_item$data77","_item$data77$form","_item$data78","_item$data78$user","_item$data78$user$pho","_item$data79","_item$data80","_item$data81","_item$data81$contact","_item$data82","_item$data82$form","_item$data83","_item$data83$form","_item$data84","_item$data84$user","_item$data84$user$pho","_item$data85","_item$data86","_item$data87","_item$data87$contact","_item$data88","_item$data88$contact","_item$data89","_item$data89$form","_item$data90","_item$data90$project","_item$data91","_item$data91$user","_item$data91$user$pho","_item$data92","_item$data93","_item$data94","_item$data94$contact","_item$data95","_item$data95$contact","_item$data96","_item$data96$form","_item$data97","_item$data97$project","_item$data98","_item$data98$user","_item$data98$user$pho","_item$data99","_item$data100","_item$data100$tags","_item$data101","_item$data101$tags","_item$data102","_item$data102$file","_item$data103","_item$data103$file","_item$data104","_item$data104$contact","_item$data119","_item$data119$user","_item$data119$user$ph","_item$data120","_item$data121","_item$data122","_item$data122$tags","_item$data123","_item$data123$tags","_item$data124","_item$data124$file","_item$data125","_item$data125$contact","_item$data126","_item$data126$contact","_item$data127","_item$data127$user","_item$data127$user$ph","_item$data128","_item$data129","_item$data129$tags","_item$data130","_item$data130$tags","_item$data131","_item$data131$file","_item$data132","_item$data132$file","_item$data133","_item$data133$officer","_item$data134","_item$data134$user","_item$data134$user$ph","_item$data135","_item$data136","_item$data136$tags","_item$data137","_item$data137$tags","_item$data138","_item$data138$file","_item$data139","_item$data139$officer","_item$data140","_item$data140$user","_item$data140$user$ph","_item$data141","_item$data142","_item$data142$changes","_item$data146","_item$data146$user","_item$data146$user$ph","_item$data147","_item$data148","_item$data148$tags","_item$data149","_item$data149$tags","_item$data150","_item$data150$project","_item$data151","_item$data151$user","_item$data151$user$ph","_item$data152","_item$data153","_item$data153$tags","_item$data154","_item$data154$tags","_item$data155","_item$data155$file","_item$data156","_item$data156$project","_item$data157","_item$data157$user","_item$data157$user$ph","_item$data158","_item$data159","_item$data159$tags","_item$data160","_item$data160$tags","_item$data161","_item$data161$file","_item$data162","_item$data162$project","_item$data165","_item$data165$user","_item$data165$user$ph","_item$data166","_item$data167","_item$data167$project","_item$data168","_item$data171","_item$data171$user","_item$data171$user$ph","_item$data172","_item$data173","_item$data174","_item$data174$project","_item$data175","_item$data176","_item$data176$files","_item$data181","_item$data181$user","_item$data181$user$ph","_item$data182","_item$data183","_item$data183$assigne","_item$data184","_item$data184$assigne","_item$data185","_item$data185$project","_item$data186","_item$data186$user","_item$data186$user$ph","_item$data187","_item$data188","_item$data188$unassig","_item$data189","_item$data189$unassig","_item$data190","_item$data190$project","_item$data191","_item$data191$user","_item$data191$user$ph","_item$data192","_item$data193","_item$data193$project","_item$data194","_item$data194$project","_item$data195","_item$data195$user","_item$data195$user$ph","_item$data196","_item$data197","_item$data197$removed","_item$data198","_item$data198$project","_item$data199","_item$data199$user","_item$data199$user$ph","_item$data200","_item$data201","_item$data201$project","_item$data206","_item$data206$user","_item$data206$user$ph","_item$data207","_item$data208","_item$data208$project","_item$data209","_item$data209$user","_item$data209$user$ph","_item$data210","_item$data211","_item$data211$project","_item$data212","_item$data212$user","_item$data212$user$ph","_item$data213","_item$data214","_item$data214$project","_item$data215","_item$data215$project","_item$data216","_item$data216$user","_item$data216$user$ph","_item$data217","_item$data218","_item$data218$project","_item$data219","_item$data219$user","_item$data219$user$ph","_item$data220","_item$data221","_item$data221$unassig","_item$data222","_item$data222$unassig","_item$data223","_item$data223$project","_item$data224","_item$data224$user","_item$data224$user$ph","_item$data225","_item$data226","_item$data226$project","_item$data233","_item$data233$user","_item$data233$user$ph","_item$data234","_item$data235","_item$data235$project","_item$data236","_item$data236$user","_item$data236$user$ph","_item$data237","_item$data238","_item$data238$project","_item$data239","_item$data239$user","_item$data239$user$ph","_item$data240","_item$data241","_item$data242","_item$data243","_item$data243$project","_item$data244","_item$data244$user","_item$data244$user$ph","_item$data245","_item$data246","_item$data247","_item$data248","_item$data248$project","_item$data249","_item$data249$user","_item$data249$user$ph","_item$data250","_item$data251","_item$data252","_item$data253","_item$data253$project","_item$data254","_item$data254$comment","_item$data255","_item$data255$form","_item$data256","_item$data256$comment","_item$data257","_item$data257$form","_item$data258","_item$data258$user","_item$data258$user$ph","_item$data259","_item$data260","_item$data260$user","_item$data260$user$ph","_item$data261","_item$data262","_item$data262$user","_item$data262$user$ph","_item$data263","_item$data264","_item$data264$adHocRe","_item$data264$adHocRe2","_item$data265","_item$data265$adHocRe","_item$data265$adHocRe2","_item$data266","_item$data266$user","_item$data266$user$ph","_item$data267","_item$data268","_item$data268$adHocRe","_item$data268$adHocRe2","_item$data269","_item$data269$adHocRe","_item$data269$adHocRe2","_item$data270","_item$data270$user","_item$data270$user$ph","_item$data271","_item$data272","_item$data272$user","_item$data272$user$ph","_item$data273","_item$data273$oldOrga","_item$data274","_item$data274$oldOrga","_item$data275","_item$data275$form","_item$data276","_item$data276$form","_item$data277","_item$data277$user","_item$data277$user$ph","_item$data278","_item$data279","_item$data279$user","_item$data280","_item$data280$form","_item$data281","_item$data281$form","_item$data282","_item$data282$newOrga","_item$data283","_item$data283$newForm","_item$data284","_item$data284$user","_item$data284$user$ph","_item$data285","_item$data286","_item$data286$forms","_item$data287","_item$data287$forms","_item$data288","_item$data288$forms","_item$data289","_item$data289$user","_item$data289$user$ph","_item$data290","_item$data291","_item$data291$form","_item$data292","_item$data292$form","_item$data293","_item$data293$otherFo","_item$data294","_item$data294$otherFo","_item$data295","_item$data295$user","_item$data295$user$ph","_item$data296","_item$data297","_item$data297$form","_item$data298","_item$data298$form","_item$data299","_item$data299$otherFo","_item$data300","_item$data300$otherFo","_item$data301","_item$data301$user","_item$data301$user$ph","_item$data302","_item$data303","_item$data304","_item$data305","_item$data305$forms","_item$data306","_item$data306$user","_item$data306$user$ph","_item$data307","_item$data308","_item$data309","_item$data310","_item$data310$user","_item$data310$user$ph","_item$data311","_item$data312","_item$data312$user","_item$data312$user$ph","_item$data313","_item$data314","_item$data314$user","_item$data314$user$ph","_item$data315","_item$data316","_item$data316$form","_item$data317","_item$data317$form","_item$data318","_item$data318$changes","_item$data319","_item$data319$changes","_item$data320","_item$data320$user","_item$data320$user$ph","_item$data321","_item$data322","_item$data322$form","_item$data323","_item$data323$form","_item$data324","_item$data324$user","_item$data324$user$ph","_item$data325","_item$data326","_item$data326$tags","_item$data327","_item$data327$tags","_item$data328","_item$data328$file","_item$data329","_item$data329$form","_item$data330","_item$data330$form","_item$data331","_item$data331$user","_item$data331$user$ph","_item$data332","_item$data333","_item$data333$tags","_item$data334","_item$data334$tags","_item$data335","_item$data335$file","_item$data336","_item$data336$form","_item$data337","_item$data337$form","_item$data338","_item$data338$user","_item$data338$user$ph","_item$data339","_item$data340","_item$data340$tags","_item$data341","_item$data341$tags","_item$data342","_item$data342$file","_item$data343","_item$data343$form","_item$data344","_item$data344$form","_item$data345","_item$data345$user","_item$data345$user$ph","_item$data346","_item$data347","_item$data347$tags","_item$data348","_item$data348$tags","_item$data349","_item$data349$file","_item$data350","_item$data350$form","_item$data351","_item$data351$form","_item$data352","_item$data352$user","_item$data352$user$ph","_item$data353","_item$data354","_item$data354$user","_item$data354$user$ph","_item$data355","_item$data356","_item$data356$user","_item$data356$user$ph","_item$data357","_item$data358","_item$data358$formTyp","_item$data359","_item$data359$formTyp","_item$data360","_item$data360$user","_item$data360$user$ph","_item$data361","_item$data362","_item$data362$form","_item$data363","_item$data363$form","_item$data364","_item$data364$user","_item$data364$user$ph","_item$data365","_item$data366","_item$data366$form","_item$data367","_item$data367$form","_item$data368","_item$data368$user","_item$data368$user$ph","_item$data369","_item$data370","_item$data370$form","_item$data371","_item$data371$user","_item$data371$user$ph","_item$data372","_item$data373","_item$data373$assignm","_item$data373$assignm2","_item$data374","_item$data374$assignm","_item$data374$assignm2","_item$data375","_item$data375$form","_item$data376","_item$data376$form","_item$data377","_item$data377$user","_item$data377$user$ph","_item$data378","_item$data379","_item$data379$form","_item$data380","_item$data380$form","_item$data381","_item$data381$user","_item$data381$user$ph","_item$data382","_item$data383","_item$data383$assignm","_item$data383$assignm2","_item$data384","_item$data384$assignm","_item$data384$assignm2","_item$data385","_item$data385$form","_item$data386","_item$data386$form","_item$data387","_item$data387$user","_item$data387$user$ph","_item$data388","_item$data389","_item$data389$officer","_item$data390","_item$data390$officer","_item$data391","_item$data391$officer","_item$data392","_item$data392$officer","_item$data393","_item$data393$user","_item$data393$user$ph","_item$data394","_item$data395","_item$data395$officer","_item$data396","_item$data396$officer","_item$data397","_item$data397$officer","_item$data398","_item$data398$officer","_item$data399","_item$data399$user","_item$data399$user$ph","_item$data400","_item$data401","_item$data401$officer","_item$data401$officer2","_item$data402","_item$data402$officer","_item$data402$officer2","_item$data403","_item$data403$officer","_item$data403$officer2","_item$data404","_item$data404$form","_item$data405","_item$data405$form","_item$data406","_item$data406$user","_item$data406$user$ph","_item$data407","_item$data408","_item$data408$officer","_item$data408$officer2","_item$data409","_item$data409$officer","_item$data409$officer2","_item$data410","_item$data410$officer","_item$data410$officer2","_item$data411","_item$data411$form","_item$data412","_item$data412$form","_item$data413","_item$data413$user","_item$data413$user$ph","_item$data414","_item$data415","_item$data415$officer","_item$data416","_item$data416$officer","_item$data417","_item$data417$officer","_item$data418","_item$data418$officer","_item$data419","_item$data419$user","_item$data419$user$ph","_item$data420","_item$data421","_item$data421$officer","_item$data422","_item$data422$officer","_item$data423","_item$data423$officer","_item$data424","_item$data424$officer","_item$data425","_item$data425$user","_item$data425$user$ph","_item$data426","_item$data427","_item$data427$otherUs","_item$data428","_item$data428$otherUs","_item$data429","_item$data429$otherUs","_item$data430","_item$data430$user","_item$data430$user$ph","_item$data431","_item$data432","_item$data432$invitat","_item$data433","_item$data433$invitat","_item$data434","_item$data434$invitat","_item$data435","_item$data435$invitat","_item$data436","_item$data436$user","_item$data436$user$ph","_item$data437","_item$data438","_item$data438$invitat","_item$data439","_item$data439$invitat","_item$data440","_item$data440$invitat","_item$data441","_item$data441$invitat","_item$data442","_item$data442$user","_item$data442$user$ph","_item$data443","_item$data444","_item$data444$invitat","_item$data445","_item$data445$invitat","_item$data446","_item$data446$invitat","_item$data454","_item$data454$user","_item$data454$user$ph","_item$data455","_item$data456","_item$data456$user","_item$data457","_item$data457$user","_item$data457$user$ph","_item$data458","_item$data459","_item$data459$otherUs","_item$data460","_item$data460$otherUs","_item$data461","_item$data461$otherUs","_item$data462","_item$data462$otherUs","_item$data463","_item$data463$user","_item$data463$user$ph","_item$data464","_item$data465","_item$data465$officer","_item$data466","_item$data466$officer","_item$data467","_item$data467$officer","_item$data468","_item$data468$officer","_item$data469","_item$data469$form","_item$data470","_item$data470$form","_item$data471","_item$data471$user","_item$data471$user$ph","_item$data472","_item$data473","_item$data473$officer","_item$data474","_item$data474$officer","_item$data475","_item$data475$officer","_item$data476","_item$data476$officer","_item$data477","_item$data477$form","_item$data478","_item$data478$form","_item$data481","_item$data481$user","_item$data481$user$ph","_item$data482","_item$data483","_item$data484","_item$data484$form","_item$data485","_item$data485$form","_item$data486","_item$data487","_item$data487$files","_item$data490","_item$data490$user","_item$data490$user$ph","_item$data491","_item$data492","_item$data492$form","_item$data493","_item$data493$form","_item$data494","_item$data496","_item$data496$user","_item$data496$user$ph","_item$data497","_item$data498","_item$data499","_item$data499$form","_item$data500","_item$data500$form","_item$data501","_item$data501$files","_item$data507","_item$data507$user","_item$data507$user$ph","_item$data508","_item$data509","_item$data509$changes","_item$data558","_item$data558$form","_item$data559","_item$data559$form","_item$data560","_item$data560$changes","_item$data561","_item$data561$user","_item$data561$user$ph","_item$data562","_item$data563","_item$data563$changes","_item$data564","_item$data564$user","_item$data564$user$ph","_item$data565","_item$data566","_item$data566$changes","_item$data567","_item$data567$form","_item$data568","_item$data568$form","_item$data569","_item$data569$user","_item$data569$user$ph","_item$data570","_item$data571","_item$data571$form","_item$data572","_item$data572$form","_item$data574","_item$data574$user","_item$data574$user$ph","_item$data575","_item$data576","_item$data577","_item$data577$user","_item$data577$user$ph","_item$data578","_item$data579","_item$data579$officer","_item$data580","_item$data580$officer","_item$data581","_item$data581$officer","_item$data582","_item$data582$officer","_item$data583","_item$data583$user","_item$data583$user$ph","_item$data584","_item$invitation","_item$invitation$user","_item$data585","_item$data585$invitat","_item$data586","_item$data586$invitat","_item$data587","_item$data587$invitat","_item$data589","_item$data589$user","_item$data589$user$ph","_item$data590","_item$data591","_item$data593","_item$data593$user","_item$data593$user$ph","_item$data594","_item$data595","_item$data596","_item$data596$user","_item$data596$user$ph","_item$data597","_item$data598","_item$data599","_item$data599$request","_item$data600","_item$data601","_item$data602","_item$data602$user","_item$data602$user$ph","_item$data603","_item$data604","_item$data605","_item$data605$task","_item$data606","_item$data606$form","_item$data607","_item$data607$form","_item$data608","_item$data608$user","_item$data608$user$ph","_item$data609","_item$data610","_item$data611","_item$data611$users","_item$data612","_item$data612$task","_item$data613","_item$data613$form","_item$data614","_item$data614$form","_item$data615","_item$data615$user","_item$data615$user$ph","_item$data616","_item$data617","_item$data618","_item$data618$task","_item$data619","_item$data619$form","_item$data620","_item$data620$form","_item$data621","_item$data621$user","_item$data621$user$ph","_item$data622","_item$data623","_item$data624","_item$data624$users","_item$data625","_item$data625$task","_item$data626","_item$data626$form","_item$data627","_item$data627$form","adHocReport","_item$data14","_item$data15","_item$data15$user","_item$data15$user$pho","_item$data16","_item$data17","_item$data17$changes","_item$data24","_item$data18","_item$data19","_item$data19$contact","_item$data20","_item$data20$contact","_item$data21","_item$data22","_item$data22$contact","_item$data23","_item$data23$contact","caseType","assignedUserNames","time","assignedToNames","action","_item$data54","_item$data54$form","_item$data55","_item$data56","_item$data57","_item$data57$form","_item$data58","_item$data59","_item$data60","_item$data60$form","_item$data61","_item$data62","_item$data62$form","_item$data63","_item$data64","_item$data65","_item$data65$form","_item$data66","_item$data67","nameDataLinkReport","officer","badgeNumber","levelBefore","_item$data105","_item$data106","_item$data107","_item$data107$user","_item$data107$user$ph","_item$data108","_item$data109","_item$data110","_item$data110$contact","_item$data111","_item$data111$contact","_item$data112","_item$data113","_item$data114","_item$data114$user","_item$data114$user$ph","_item$data115","_item$data116","_item$data117","_item$data117$contact","_item$data118","_item$data118$contact","_item$data143","_item$data143$officer","toString","_item$data144","_item$data144$user","_item$data144$user$ph","_item$data145","optionType","intervene","meeting","_user","commentText","filesText","optionText","whereText","note","_item$data177","_item$data178","InfoIcon","caseNumber","subtract","calendar","_item$data179","_item$data180","assignedUser","unassignedUser","project1","project2","removedProject","_item$data202","_item$data202$user","_item$data202$user$ph","_item$data203","_item$data204","_item$data204$changes","_item$data205","_item$data205$project","validateIsoDate","projectTemplate","_item$data227","_item$data227$user","_item$data227$user$ph","_item$data228","_item$data229","_item$data229$changes","_item$data230","_item$data230$user","_item$data231","_item$data231$project","_item$data232","_item$data232$project","oldStatus","newStatus","oldSubType","newSubType","oldType","newType","oldOrganization","prefix","newOrganization","newForm","otherForm","startDate","endDate","LogCaseChange","CaseTaskUpdateItem","withTimeLine","withCaseLink","assignments","otherUser","invitation","_item$data$formType$_","_item$data447","_item$data447$formTyp","_item$data$user$email","_item$data448","_item$data448$user","_item$data449","_item$data450","_item$data450$user","_item$data450$user$ph","_item$data$formType$n","_item$data451","_item$data451$formTyp","_item$data$originalFo","_item$data452","_item$data452$origina","_item$data453","_item$data453$origina","idForm","dataUser","nameForm","nameOriginal","originalFormType","descriptionForm","_item$data488","_item$data502","_item$data503","_item$data503$user","_item$data503$user$ph","_item$data504","_item$data505","_item$data505$form","_item$data506","_item$data506$form","_item$data510","_item$data510$officer","_item$data511","_item$data511$officer","_item$data512","_item$data512$officer","_item$data513","_item$data513$officer","_item$data514","_item$data514$officer","_item$data515","_item$data515$officer","_item$data516","_item$data516$officer","_item$data517","_item$data517$officer","_item$data518","_item$data518$officer","_item$data519","_item$data519$officer","_item$data520","_item$data520$officer","_item$data521","_item$data521$officer","_item$data522","_item$data522$officer","_item$data523","_item$data523$officer","_item$data524","_item$data524$officer","_item$data525","_item$data525$officer","_item$data526","_item$data526$officer","_item$data527","_item$data527$officer","_item$data528","_item$data528$officer","_item$data529","_item$data529$officer","_item$data530","_item$data530$officer","_item$data531","_item$data531$officer","_item$data532","_item$data532$officer","_item$data533","_item$data533$officer","_item$data534","_item$data534$officer","_item$data535","_item$data535$officer","_item$data536","_item$data536$officer","_item$data537","_item$data537$officer","_item$data538","_item$data538$officer","_item$data539","_item$data539$officer","_item$data540","_item$data540$officer","_item$data541","_item$data541$officer","_item$data542","_item$data542$officer","_item$data543","_item$data543$officer","_item$data544","_item$data544$officer","_item$data545","_item$data545$officer","_item$data546","_item$data546$officer","_item$data547","_item$data547$officer","_item$data548","_item$data548$officer","_item$data549","_item$data549$officer","_item$data550","_item$data550$officer","_item$data551","_item$data551$officer","_item$data552","_item$data552$officer","_item$data553","_item$data553$officer","_item$data554","_item$data554$officer","_item$data555","_item$data555$officer","_item$data556","_item$data556$officer","_item$data557","_item$data557$officer","_change$fieldName","_change$fieldName2","_change$fieldName3","op","_change$fieldName4","successCount","requestedUser","oldRole","task","u","renderText","ActivityFilter","typeOptions","setFrom","setIsFiltering","setTo","limit","before","setItems","onClearFilters","lastId","setLastId","setHasNextPage","onFilter","_res","getActivity","formCode","dataFormattedByDate","itm","onGetDateLabels","keycode","keyCode","which","flexWrap","SelectBox","bordered","DatePickerMUI","disableFuture","date","propWidth","compareDate","setdate","buttonOutlined","letterSpacing","alignSelf","outline","setterData","_setterData$Today","Today","_setterData$Yesterday","Yesterday","_setterData$dd","dd","Activity","_Object$keys","openFilter","setOpenFilter","hasNextPage","externalRef","isNearScreen","useNearScreen","once","UpgradeModal","FilterButton","getActivityToExport","onGetActivityToExport","FileDownload","_res2","align","Waypoint","onEnter","getMoreActivities","_res3","_res4","dataKeys","itemsCopy","dataKey","AllegationFilter","_formOptions$types","allegation","trackingNumber","badge","officerName","disposition","discipline","setAllegations","setPage","rowsPerPage","sortBy","openShowAdvancedFilters","filtersConfig","setfiltersConfig","filterConfigId","fetchFiltersConfig","filtersApplied","flaggedOnly","showAdvancedFilter","setShowAdvancedFilers","officerOptions","setOfficerOptions","formOptions","setFormOptions","getOfficerOptions","getOfficersOptions","getFormOptionsType","getFormOptionsTypes","AllegationOptions","activeColors","types","uniqueFieldId","statuses","dispositions","DispositionOptions","disciplines","DisciplineOptions","CustomSwitch","labelPlacement","filterSaved","updateFilterConfigById","headers","getAllegations","page","isFiltering","convertToCSV","objArray","array","parse","line","isFlagUndefined","replaceAll","exportCSVFile","fileTitle","csv","arguments","downloadNow","unshift","jsonObject","csvFile","exportedFilenmae","blob","Blob","navigator","msSaveBlob","getElementById","download","URL","createObjectURL","setAttribute","click","ViewTabAllegations","_allegations$headers","_location$state","_allegations$headers2","handleClick","openPopover","searchTerm","setSearchTerm","showColumns","handleToggleColumn","formatHeadersText","onEditMultipleAllegations","visibleColumns","hideColumns","setSort","filtersLoaded","setFiltersLoaded","getVisibleColumns","setSortBy","renderRow","setChecked","setSelected","handleChangeRowsPerPage","tabSelected","setVisibleColumns","onGetAllegationRange","view","setView","setFiltersApplied","filterCount","setFilterCount","_filtersConfig$type","_filtersConfig$type2","handleOnSetFiltersConfig","newFiltersApplied","configCopy","sortOrder","isApplied","newCount","values","fromV","toV","sortV","sortByV","badgeV","officerNameV","statusV","dispositionV","allegationV","disciplineV","trackingNumberV","typeV","flaggedOnlyV","onGetAllegation1","onGetAllegation","displayObjectId","displayObjectType","TYPE_USER_TABS","VIEW","_responseView$data","responseView","getViewByIdv","columns","fetchData","_responsefiltersConfi","_responsefiltersConfi2","responsefiltersConfig","getfiltersConfigById","filtersConfigId","filterConfig","config","component","AddMore","Popover","anchorOrigin","vertical","horizontal","startAdornment","InputAdornment","dense","column","paddingBottom","state","advancedFilterOpen","EnhancedTable","containerStyles","rows","showCheckBox","rowRender","path","showStatus","Allegations","_location$state2","_location$state3","_location$state4","_location$state5","setRowsPerPage","authUser","loadingEditAllegations","setLoadingEditAllegations","flag","createdDate","setAnchorEl","filteredColumns","currentTarget","Boolean","resetFilterCount","useFiltersConfig","activeTab","setActiveTab","setTabSelected","onGetUserTabs","userTabs","updateNameTab","setUserTabs","handleSaveTab","handleTabSelection","nextPosition","setShowReportTable","handleTabsReorder","handleTabSelectionAction","deleteSelectedTab","activeTabName","setActiveTabName","useTabsUtil","moduleName","ids","getAllegationRange","tokenId","csvObj","dt","_dt$officer","_dt$officer$customFie","_dt$officer$customFie2","_dt$officer$customFie3","_dt$officer$customFie4","_dt$officer$customFie5","_dt$customFields","_dt$customFields$","_dt$customFields$$sec","_dt$customFields$$sec2","_dt$customFields$$sec3","_firstName","_lastName","_dt$allegation","_dt$officer3","_dt$officer3$uniqueFi","_firstName2","_lastName2","_dt$allegation2","customFields","sections","components","field","_field$data","question","_field$data2","_dt$officer2","_dt$officer2$customFi","_dt$officer2$customFi2","_dt$officer2$customFi3","_dt$officer2$customFi4","_dt$officer2$customFi5","names","_field$data3","special","at","Status","convertStatusToLowerCase","viewId","columnName","updatedColumns","updateViewsById","firstChar","allAreFlagged","every","flagged","editMultipleAllegations","prevAllegations","updatedData","_row$allegation2","_row$officer","_row$officer$customFi","_row$officer$customFi2","_row$officer$customFi3","_row$officer$customFi4","_row$officer$customFi5","_row$officer2","_row$officer2$customF","_row$officer2$customF2","_row$officer2$customF3","_row$officer2$customF4","_row$officer2$customF5","_firstName3","_lastName3","isItemSelected","labelId","_field$data4","_field$data5","_row$officer3","_row$officer3$customF","_row$officer3$customF2","_row$officer3$customF3","_row$officer3$customF4","_row$officer3$customF5","_field$data6","TableRow","hover","gotToOfficerProfile","_row$allegation","tab","aria-checked","tabIndex","TableCell","entries","_row$allegation3","_row$allegation4","_row$allegation5","_row$allegation6","_row$type","_row$allegation7","_row$allegation8","_firstName4","_lastName4","_row$officer4","_row$officer4$uniqueF","_row$allegation9","isVisible","scope","Flagged","TabsModules","setTabs","tabs","navigateToDataPage","saveTab","onTabSelect","saveTabPositions","onTabAction","deleteTab","MAIN","card","unarmedImg","cardContent","cardTitle","textField","divider","googleButton","googleIcon","LoginForm","_res$f","_res$f$mfaInfo$","_organization$feature13","_organization$feature14","_organization$feature15","isSubmitting","setIsSubmitting","password","showTwoFactor","setShowTwoFactorCode","verificationCode","verifyLoading","setVerifyLoading","verificationID","setVerificationID","setRes","getOrganizationCallback","signUpUser","setSignUpUser","onLogin","_organization","signInWithEmailAndPassword","unarmedWithToken","post","multiFactor","enrolledFactors","forceMFA","_error$code","_error$code2","unarmed","tenantId","resolver","appVerifier","firebase","RecaptchaVerifier","phoneInfoOptions","multiFactorHint","hints","session","PhoneAuthProvider","verifyPhoneNumber","verificationId","setError","CardContent","LogoHome","f","mfaInfo","phoneInfo","helperText","cred","credential","multiFactorAssertion","PhoneMultiFactorGenerator","assertion","resolveSignIn","noValidate","onSubmit","autoComplete","ArrowForwardIcon","microsoft_sso","_organization$feature7","_organization$feature8","_organization$feature9","signInWithMicrosoft","_error$code3","_error$code4","_organization$feature10","_organization$feature11","_organization$feature12","microsoftLogo","login","Login","Font","register","family","styles","StyleSheet","body","paddingHorizontal","titleDisplayName","author","subtitle","image","marginVertical","marginHorizontal","header","pageNumber","bottom","box","section","borderBottomWidth","borderRightWidth","borderLeft","borderLeftWidth","boxSection","sectionName","viewValue","sectionText","sectionInput","subSection","borderTopWidth","sectionItem","sectionItemRight","sectionItemFull","checkBox","filled","titles","subTitle","componentGeneral","CasePdf","_form$originalPages","_form$formType","_form$formType2","_form$civilian","_form$civilian2","_form$civilian3","_form$type","useParams","useTrackForm","query","URLSearchParams","useQuery","counter","useTranslation","getParentLabel","_component$data","View","Text","getTypeText","formPages","get","originalPages","pages","LoadingScreen","PDFViewer","Document","Page","Image","civilian","fixed","pageIndex","sectionIndex","_form$external","_form$external$cityBy","_form$external$cityBy2","_form$external2","_form$external2$cityB","_form$external2$cityB2","_form$external3","_form$external3$cityB","_form$external3$cityB2","external","cityBySivil","city","place","componentIndex","_component$data2","_component$data3","_component$value$","_component$value","_component$value$2","hasOwnProperty","fileIndex","objkey","objIndex","_component$data6","_component$data7","_component$data8","_component$data9","_objkey$","_objkey$objIndex","_component$data4","_component$data5","obKey","objIndex2","keysObj","idx","formatPhoneNumber","getDemographicsLabel","getAboutUsValue","wrap","textOverflow","objKeysFromArray","keyFromArray","indexFromArray","checkValueType","objectData","objKeys","_objectData$key","showFileAnonymously","visible","_objectData$objkey","_objectData$objkey2","_component$value$objk","alertStatus","info","warning","alertContainer","Alert","CancelIcon","AssignedToTooltip","onHover","setOnHover","usersToShow","_user$photo","_user$photo2","profile_img","onMouseEnter","onMouseLeave","userKey","_user$photo3","PageWrapper","ViewTabCases","_forms$headers","_forms$headers2","_location$state6","_location$state7","_location$state8","_forms$headers3","onEditMultipleForms","setOpenModal","onGetFormRange","setForms","setFormType","assigned","setAssigned","source","reporter","investigator","setAllegation","setDisposition","setDiscipline","archivedOnly","transferredOnly","subType","isFilteringByContact","showAlert","onClearOfficersCases","_filtersConfig$flagge","assignedTo","subtype","codeV","nameV","assignedToV","sourceV","reporterV","investigatorV","subTypeV","getCivilianCases","token","unassigned","getFormsCivilians","PageButtons","onClickFlag","disabledFlag","onClickDelete","disabledDelete","onClickDownload","disabledDownload","filterButtonDataTestId","deleteButtonDataTestId","downloadButtonDataTestId","CaseFilters","contactId","rowsPerPageOptions","button2","visibility","externalIcon","capitalize","lowerCase","charAt","TransferredFrom","referralOrg","tooltipTitle","TransferredTo","CaseRenderRow","_row$civilian","_row$civilian2","_row$civilian3","_row$assigned","_row$statusLog","_row$statusLog$row$st","withCheckbox","typeDisplayText","ArrayTooltip","internalAffairsCaseNumber","_row$availableStatuse","_currentStatus$","currentStatus","availableStatuses","transformStatus","statusLog","datetime","rel","stopPropagation","OpenInNewIcon","Cases","_location$state9","loadingDeleteCase","setLoadingDeleteCase","localStorage","getItem","setShowAlert","setIsFilteringByContact","loadingEditForms","setLoadingEditForms","removeItem","_location$state10","editMultipleForms","prevForms","getFormsRange","dataToExport","_row$civilian4","_row$civilian5","_row$statusLog2","_row$statusLog2$row$s","_row$statusLog3","_row$statusLog3$row$s","_row$referral","_row$referral$previou","_row$referral2","_row$referral2$next","_name","archived","transferred","referral","previous","next","flatMap","_index","Modal","closeAfterTransition","BackdropComponent","BackdropProps","timeout","Fade","in","StyledButtonOutlined","_location$state11","_location$state12","deleteForm","deleted","casesDeleted","notDeleted","casesNotDeleted","axiosCatchError","CreateReport","setReports","createReport","Data","_reports$headers","_reports$headers2","openDelete","setOpenDelete","reports","loadingDeleteReport","setLoadingDeleteReport","onGetReports","getReports","duplicateReport","reportIds","handleClickDuplicate","_row$owner","_row$owner2","_row$owner3","owner","deleteReport","FormStepper","stepsArr","dividerColor","defaultColor","FormStepperContainer","step","StepItem","StepPosition","completed","DividerPosition","Module","onRenderModule","police","GroupIcon","select","placeHolder","fontStyle","SelectEngine","m","_options$find","csvStatus","Step1","orgId","handleFileUpload","setSelectOptions","selectedModule","setSelectedModule","selectedForm","formsAvailable","setFormsAvailable","getAvailableFormType","onGetAvailableForms","onGetImportOption","formTypeId","getImportOptions","bodyObj","selectedOptions","example","beKey","filename","generateFileName","DropzoneArea","maxFileSize","dropzoneClass","clearOnUnmount","filesLimit","dropzoneText","showPreviewsInDropzone","Icon","BackupIcon","labelHightlighted","MatchFieldRow","checkRowValues","indexRow","setConfirmRows","confirmRows","setRowSelected","rowValues","confirmAll","setConfirmAll","getPreselectedOption","_rowValues$indexRow","optionsCopy","lock","setLock","rowItems","totalItems","onMapRow","getSelectedOption","confirmRowsCopy","CheckCircleOutlineIcon","ErrorOutlineIcon","getKeyImported","Error","Step2","setStep","setCsv","prepareForms","setCsvErrors","setOrderedHeaders","selectOptions","onResetMatchFieldOptions","onResetRowSelected","rowKeys","columnCount","acum","currentValue","onAddRowToJson","selectedOption","_data$index","getTypeItem","_row$field","finded","tm","_row$field2","_row$field3","set","_row$field4","onUploadForms","confirmedRows","rowIndex","errors","orderedHeaders","accum","validateOnly","onImport","_err$response","_err$response$data","_err$response$data$er","_err$response$data$er2","_err$response$data$er3","err422","_err$response2","_err$response2$data","Step3","csvErrors","getRowsWithErrors","curr","joinPathKey","Number","isNaN","errorsFormatted","mapErrors","currentErr","_currentErr$errors","mapErrs","errs","errsKey","fullPath","componentType","curlyBracketIndex","Cell","_headersKeys$index","_getRowsWithErrors","columnIndex","rowKey","headersKeys","columnError","_errorsFormatted","currentIteration","currentBeKey","rowHasError","rowErr","_rowHasError$currentI","_rowHasError$currentI2","_rowHasError$","columnsHasError","_columnsHasError$2","_columnsHasError$3","_columnsHasError$","_rowHasError$currentI3","_rowHasError$currentI4","_row","getColumnErrorIndex","columnWidth","rowCount","rowHeight","onImportForm","jsonWithErrorsSkipped","json","steps","FileImport","activeStep","setActiveStep","setRows","setColumns","rowSelected","setOffOptions","Papa","complete","list","r","investigatorCounter","clms","c","selector","filterEmptyList","processData","skipEmptyLines","getJsonHeaders","fullKeys","nestedKeys","onSetRowSelected","getHeaders","formSection","containerTitle","resaltText","labelError","SuccessImported","EmailIcon","InputEngine","DnDArea","selectedItems","setSelectedItems","renderer","moveItem","dragIndex","hoverIndex","dragItem","update","$splice","DnDItem","onMoveComponent","dragType","noIndicator","marginBottomItem","drop","useDrop","accept","COMPONENT","isCustomComponent","isDragging","drag","useDrag","collect","monitor","isDraggin","DragIndicatorIcon","onChangeDnDValue","setDnDValue","prop","caseSensitive","onAddDnDItem","_items$","inicialValue","othersProps","order","onRemoveDnDItem","handleOnChangeQuestion","setCheckQuestion","checkQuestionCopy","handleChangeCheckBox","getCubes","fetchCube","paginationParams","params","saveCube","put","normalizeCubeName","settingsQuestions","searchBox","colorText","boxContent","resultText","selectedText","DataReportLink","componentId","onSelect","onChangeChecked","defaultDataReportLink","isMultipleChoice","setSearch","noDataFound","setNoDataFound","noDataFoundText","setNoDataFoundText","showResults","setShowResults","addedDefault","setAddedDefault","selectedMultipleChoice","setSelectedMultipleChoice","componentsChanged","setComponentsChanged","useDataReportLinkProvider","setResults","intervalRef","handleOnFetchCubeBucketsByType","fetchCubeBuckets","dropdownMultipleChoice","_error$response$data$3","handleOnFetchCubeBuckets","desc","_error$response3","_error$response3$data","_error$response3$data2","_error$response3$data3","_error$response3$data4","_error$response4","_error$response4$data","handleOnCreateCubeBucket","createCubeBucket","_res$data","dataReportLink","_error$response5","_error$response5$data","_error$response5$data2","_error$response5$data3","_error$response5$data4","_error$response6","_error$response6$data","handleOnClickBox","handleOnCancel","_componentsChanged$co","_componentsChanged$co2","_componentsChanged$co3","pointerEvents","_checked","componentsName","valueNormalized","result","resultKey","paddingY","responseOptions","sizeOptions","subLabel","Settings","_currentIdentifierNam","_currentIdentifierNam2","_newIdentifierName$co","_newIdentifierName$co2","indexUniqueFieldId","multipleChoice","customFieldModule","onSelectDataReportLink","questions","checkQuestion","descriptionQuestion","requiredQuestion","responseValidation","responseTypeValidation","maxCharacter","maxCharacterType","fileType","onChangeFileType","sizeSelect","saveOnTimeOut","allComponents","showConfirmModal","setShowConfirmModal","dataReportLinkChecked","setDataReportLinkChecked","dateFormatValue","setDateFormatValue","currentIdentifierName","setCurrentIdentifierName","newIdentifierName","setNewIdentifierName","handleChangeDateFormat","renderQuestion","_e$target","match","number","rangeNumber1000","FormGroup","ft","CustomCheckbox","multipleChoiceQuestionIndex","multipleChoiceValue","data-component-index","_currentUniqueFieldId","_newUniqueFieldId$dat","currentUniqueFieldIdIndex","currentUniqueFieldId","newUniqueFieldId","ifCurrentNotExist","isSameComponent","currentUniqueFieldComponent","currentUniqueFieldIsEnabled","requiredIndex","newCheckQuestion","handleSwitchUniqueFieldId","handleSwitchVisible","handleConfirmChangeIdentifier","sessionStorage","setItem","PreviewLabel","qNumber","ArrowRightAltIcon","HideAnswer","show","setShow","ArrowDropDownIcon","mapOptionsToState","Dropdown","questionBankComponent","onUpdateJson","onDeleteComponent","duplicateComponent","shouldRenderSettings","allowDnD","includeRequired","isStaticComponent","refActionModal","setModal","answers","setAnswers","requiredMessage","visibleSpecial","requiredQuestionMessage","handleSaveComponent","dataJson","answer","itemToUnmark","DeleteIcon","WrapperComponent","onBlur","renderSettings","isQuestionBankComponent","renderPreview","dataSaved","dropzoneBox","fileTypesF","File","_data$fileTypes","fileTypes","setFileType","_data$fileTypes2","filetype","CloudUploadIcon","LongText","maxCharacters","LongTextIcon","MultipleChoice","onChangeDataInput","responseValidationNumber","selectTypeResponseValidation","responseValidationOption","marginBotom","ShortText","allowDnd","ShortTextIcon","dndContainer","SingleChoice","_g","_extends","bind","n","call","apply","SvgRuleBlack24Dp","svgRef","enableBackground","viewBox","fill","d","ForwardRef","forwardRef","YesNo","checkbox","yesNoValue","setYesNoValue","showAnswerBool","setShowAnswerBool","handleShowAnswerBool","YesNoIcon","Url","LinkIcon","Title","inputTitle","TitleIcon","labelAnswer","SubTitle","OutLineTable","renderRows","withTr","Table","TrD","Th","table","th","tr","fieldLabel","labelContainer","td","ContactInfo","_data$showFileAnonymo","_data$showFileAnonymo2","_data$firstName","_data$firstName2","_data$firstName3","_data$lastName","_data$lastName2","_data$lastName3","_data$email","_data$email2","_data$email3","_data$phone","_data$phone2","_data$phone3","_data$workTelephone","_data$workTelephone2","_data$workTelephone3","preFetchData","phone","workTelephone","valuesCopy","onChangeValues","_data$street","_data$street2","_data$street3","_data$aptUnit","_data$aptUnit2","_data$aptUnit3","_data$state","_data$state2","_data$state3","_data$city","_data$city2","_data$city3","_data$zipCode","_data$zipCode2","_data$zipCode3","street","aptUnit","zipCode","LocationOnIcon","Hour","hideShowMessage","setHideShowMessage","AccessTimeIcon","_path","_path2","SvgTodayBlack24Dp","Date","CalendarIcon","InputPhone","showDropdown","country","PhoneInput","masks","us","onlyCountries","specialLabel","inputStyle","buttonStyle","Phone","PhoneIcon","Email","FormEngine","Subtitle","AddressInformation","CreateForm","refreshCallback","formName","formControl","htmlFor","native","_type","createFormTypes","adminName","DeleteForms","refreshCallBack","deleteFormTypes","RenderTableOptions","MoreHorizIcon","copyFrom","FilterNoneIcon","UpdateStatusFormPopup","setStatus","statusKey","Switch","updateFormTypes","formsCopy","portalStatus","statusCopy","UpdateStatusFormPortal","CardWrapper","TypographyText","TypeFormTag","FormCardLite","colorBg","buttonName","typeForm","FormCard","routeUrl","handleCardClick","SortForms","defaultLiveForms","onSaved","liveForms","setLiveForms","DndProvider","backend","HTML5Backend","getFormColor","logEventTrack","_liveForms","liveForm","updateFormTypesOrder","handleOnSaveSortForms","Forms","availableFormDashboard","setAvailableFormDashboard","openCreate","setOpenCreate","showOpenSortForms","setShowOpenSortForms","availableFormsTypes","setAvailableFormTypes","onGetAvailableFormsTypes","sortOrderForms","onUpdatePortalStatusCallBack","onGetFormTypes","getFormTypes","stats","published","dashboardForm","goToCaseDetails","handleOnClickSortForms","_row$type2","_row$createdByData","_row$createdByData2","defaultForm","substring","createdByData","iconContainer","textLink","textDecoration","DashboardCard","cardText","IconComponent","iconColor","buttonText","onClickButton","showProgressBar","progressBarValue","styleContainer","barColor","showChildren","backgroundSize","backgroundRepeat","backgroundPosition","mr","LinearProgress","Home","dashboardData","setDashboardData","setFormTypes","filteredCaseCount","setFilteredCaseCount","onGetFormType","getForms","onGetForms","MyCases","resetAllFilters","DescriptionIcon","TotalCases","iconYellow","Unassigned","disableHeaderArrows","pagination","MfaStep1","inputComponent","TextMaskCustom","MfaStep2","setCode","resendCode","ReactCodeInput","fields","inputMode","cd","MfaStep3","circle","MfaVerifyEmail","recap","recaptchaVerifier","stepper","Steps","Stepper","typeFormColor","Mfa","shouldShowSkip","currentUser","me","removeAuthToLogin","render","widgetId","recaptchaWidgetId","recaptchaRender","emailVerified","Step","StepLabel","stepLabel","getSession","multiFactorSession","enroll","reload","onVerifyCode","colorsByPriority","low","high","getColorByPriority","priority","selectedPriority","clr","LabelWithColor","LabelContainer","img","officerProfile","contactAttr","wordWrap","overflowWrap","contactAttrText","UserAttr","turnOnRiskLevels","currentRisk","riskLevel","OfficerInfo","_officer$EIS","_organization$EIS","_organization$EIS$ris","_officer$EIS2","_officer$EIS3","_officer$EIS4","setOfficer","setGender","setRace","race","renderCards","matches","useMediaQuery","setImage","firstNameOfficer","setFirstNameOfficer","lastNameOfficer","setLastNameOfficer","uniqueIdentifier","setUniqueIdentifier","hashFile","setHashFile","loadingUpdateProfile","setLoadingUpdateProfile","setCustomFields","openEdit","setOpenEdit","bradyList","setBradyList","loadingPercentage","setLoadingPercentage","editingImg","setEditingImg","stateSubmit","setStateSubmit","_officer$uniqueFieldI","_officer$customFields","_officer$customFields2","_officer$customFields3","_officer$customFields4","_officer$customFields5","_officer$customFields6","_officer$customFields7","_officer$customFields8","_officer$customFields9","_officer$customFields10","_officer$customFields11","_officer$customFields12","_officer$customFields13","_officer$customFields14","_officer$customFields15","_officer$customFields16","_names$","_names$2","bgcolor","paddingX","EIS","complaints","evaluationTime","gap","gridTemplateColumns","gridGap","ModalCreateOrEditOfficer","imgData","FormData","append","uploadFormImg","publicUrl","hashId","uploadOnLoad","tabsArray","HeaderTabs","tabValue","handleChangeTab","a11yProps","Tabs","indicatorColor","TabComp","OfficerCases","officerBadgeNumber","_row$assigned2","deleteButton","timelineItem","userInfo","Log","handleRestoreClick","handleDeleteNote","TimeLineItemNotes","wholeName","_userInfo$email$","_userInfo$email$2","renderName","onRestoreClick","canDelete","getCanDelete","_organization$permiss3","_organization$permiss4","onDeleteClick","editing","allTags","CustomModalDelete","onConfirm","sortByCreatedAt","dateX","getTime","dateY","useOfficerLogs","officerId","shouldRefetch","_sortedData","getOfficerLogs","sortedData","fetchLogs","getMoreLogs","_data","_sortedData2","OfficerLogs","notesShow","setNotesShow","newLogs","newLogsWithoutArchivedDate","onArchiveNoteOfficer","onUnArchiveNoteOfficer","NoteUpdate","organizationId","onResetSelect","setShouldRefetch","CaseComment","callBack","resetValues","reqData","addOfficerComments","InterveneTab","_myUser$notesSortOrde","interveneOptions","setArchivedOnly","initialSortOrder","notesSortOrderDesc","setSortOrder","toggleSortOrder","newSortOrder","updatedSortOrder","updateNotesSortOrder","handleArchiveOnly","MonitorTab","monitorOptions","HistoryLog","_user$email$","_user$email$2","_data$tags","_data$tags2","_data$file","_data$officer","_data$officer2","_data$officer3","_data$tags3","_data$tags4","_data$file2","_data$tags5","_data$tags6","_data$file3","_data$officer4","_data$officer5","_data$officer6","_data$comment","_data$officer7","_data$comment2","_data$officer8","_data$file4","_data$officer9","_data$file5","_data$officer10","targetOfficer","mergedOfficer","mergedCount","mergedOfficers","HistoryTab","getOfficerActivity","getHistory","AttachmentTab","attachments","setAttachments","attachmentsFiltered","setAttachmentsFiltered","showAttachmentsFiltered","setShowAttachmentsFiltered","loadingDownload","setLoadingDonwload","openPopupFiles","setOpenPopupFiles","onGetOfficerAttachments","getOfficerAttachments","_attachments","filterAttachments","attachment","attachmentsToShow","TagsFilters","onSubmitFilters","AttachFileIcon","getOfficerFileAttachments","_file$archivableByUse","_file$archivableByUse2","ImageDownload","extension","urlImg","onPreviewImage","_file$mimetype","_file$mimetype2","_file$mimetype3","_file$mimetype4","preview_url","appendChild","handleOpenPopupFiles","restorable","archivableByUser","deletable","downloadable","onDeleteFile","archiveOfficerAttachment","onRestoreFile","unarchiveOfficerAttachment","updateOfficersAttachmentTags","_attachment","_file$tags2","_file$tags3","ModalUploadFile","filesData","_file$tags","saveOfficerAttachments","_error$response2$data2","_error$response2$data3","OfficerProfile","_organization$EIS2","setStats","getOfficerStatus","onGetStats","getOfficer","onGetOfficerInfo","updateUrlWithParams","organization_name","tab_name","iconGreen","totalCompliments","iconRed","totalComplaints","blueIcon","totalAllegations","handleChange","_tabData$label","_tabData$label$toLowe","tabLabel","TabPanel","interveneChecklist","monitorMeetingList","AttachmentsTab","officerTitle","officerSelectAll","officerCheckboxText","uniqueFieldIdcheckBoxText","TableContainer","TableContent","TableColumn","TableColumnOfficer","TableRowTitle","TableRowOfficer","TableRowField","TableRowCheckbox","OfficersMerge","isOpenLinkCard","setIsOpenLinkCard","setOfficers","rowsNames","setRowsNames","officerColumns","setOfficerColumns","linkFields","setLinkFields","mergeOfficerData","setMergeOfficerData","updateOfficerId","officerData","customFieldsColumns","archiveOfficerIds","openLinkCardInfo","setOpenLinkCardInfo","indexColumn","rowData","officerColumn","getOfficersById","allCustomFields","customFieldsObj","customFieldsType","_component$data$speci","generateCustomFieldsWithNulls","getOfficersByIds","handleCheckboxChange","_officers$indexColumn","_officers$indexColumn2","_officers$indexColumn3","clickedRow","clickedRowName","newChecked","isClickingUniqueIdentifier","uniqueCustomFieldName","isClickingUniqueCustomField","isStandardField","updatedOfficerColumns","colIndex","_officers$colIndex","_officers$colIndex$un","_officers$colIndex$un2","thisColUniqueCustomFieldName","isRowUniqueIdentifier","isRowUniqueCustomField","uniqueCustomFieldRow","uniqueIdRow","_","_indexColumn","_indexRow","uniqueIdentifierOfficerIdx","_officers$i","_officers$i$uniqueFie","_officers$i$uniqueFie2","standardFieldsColumns","_officers$i2","_officers$i2$uniqueFi","_officers$i2$uniqueFi2","hasRemainingFields","handleCloseLinkCard","showOfficers","_officers","_rowsNames","customFieldName","getFieldRows","newOfficerColumn","_officer$row$name","rowValue","rowType","customFieldData","customFieldValue","customFieldSpecial","customFieldType","buildOfficerColumn","isChecked","checkIfRowShouldBeChecked","initialOfficerData","parseNumber","totalCases","sum","initializeMergeOfficerData","_mergeOfficerData$off","customFieldsArray","fetchOfficers","isNextButtonDisabled","_mergeOfficerData$off2","_mergeOfficerData$off3","_mergeOfficerData$off4","fieldValue","isYesNoField","_officerColumns$index2","_officerColumns$index","isAllSelected","nestedAcc","nestedKey","isYesNo","displayValue","_row$value","_row$value$data","_row$value2","_row$value2$data","_row$value3","_row$value4","currentHasEmptyValue","otherOfficersHaveData","_o$uniqueFieldId","shouldDisable","checkedIcon","xmlns","stroke","strokeWidth","strokeLinecap","strokeLinejoin","points","_officers$indexColumn4","_officers$indexColumn5","_officers$indexColumn6","handleOpenLinkCard","AddCircleOutlineIcon","customFieldFind","exist","toDelete","nameCustom","existingLinkIndex","newLinks","newColumns","linkTo","handleLinkFields","tableLayout","labelCell","borderTop","dataCell","verticalAlign","sectionHeader","buttonContainer","errorBanner","OfficersMergeConfirmation","countItems","setCountItems","countItemsOfficers","officerIds","_response$data","_response$data2","_response$data3","_response$data4","_response$data5","totalIntervines","totalMonitors","totalFiles","fetchOfficerIds","mergeOfficerId","restOfficerIds","linkfields","mergeOfficer","ProfileInformation","_me$phone","_me$phoneNumber","isEditing","defaultProps","ChangePassordProfile","currentPassword","newPassword","confirmNewPassword","changeUserpasswordFromProfile","isSafari","userAgent","_isSafari","customPopperWithLargePadding","customPopper","inputRoot","inputRootClicked","CustomPopper","withLargePadding","ConfigRow","_fields$assignedTo","_fields$caseType","configType","addNewConfig","onChangeEmail","onChangeDashboard","onChangeField","onSearch","configIndex","defaultCaseTypes","setDefaultCaseTypes","caseTypes","autocompleteFocused","setAutocompleteFocused","searchArray","targetArray","selectUser","Autocomplete","freeSolo","disableClearable","limitTags","renderOption","username","PopperComponent","getOptionLabel","renderInput","onFocus","emailAndDashboard","Col","xxl","NotificationTitle","_option$","_option$substr","substr","_value$","_value$substr","_value","xl","rowContent","Row","gutter","md","lg","sm","actions","levels","NotificationItem","ProfileConfigNotifications","setCaseTypes","setUsers","defaultUsers","setDefaultUsers","setStatuses","dates","setDates","configCreated","setConfigCreated","configAssigned","setConfigAssigned","configUpdated","setConfigUpdated","configStatus","setConfigStatus","configDueDate","setConfigDueDate","configDateAction","setConfigDateAction","configOfficerLevel","setConfigOfficerLevel","classesCard","useCardStyles","handleOnChangeConfig","setConfig","propName","_config","handleOnSearchUsers","getUsersSearch","_users","handleOnDeleteRow","itemIndex","getFilterByCase","getUsers","onGetUsers","userGetNotificationConfig","fetchCubeBucketsDate","_config$action","handleOnSaveNotificationsConfig","userSaveNotificationConfig","_config$assignedTo","_config$assignedTo2","_config$assignedTo3","_config$assignedTo4","_config$assignedTo5","_config$assignedTo6","NOTIFICATIONS","DAYS","RISK_LEVEL","Profile","setMyuser","onGetMe","openModal","setIsEditing","loadingImg","setLoadingImg","loadingPecetage","disableNotification","setDisableNotification","_myUser$settings","settings","disableAllNotifications","onUpdateProfile","updatedProfile","updateProfile","onCancel","_myUser$photo2","alignContent","providerData","provider","providerId","linkInWithMicrosoft","EditIcon","downloadOptions","ContentHeader","_report$type","cubeQuery","report","onClearReport","onSelectOption","reportId","prepareReport","handleRefetch","reportName","reportDescription","isEdit","setIsEdit","CreateIcon","PublicIcon","total","handleClearReport","convertHMS","sec","hours","Math","floor","minutes","seconds","getProjectSubTypes","currentType","subTypes","chartsItems","ShowChartIcon","AreaIcon","SvgIcon","enable-background","PieChartIcon","BarChartIcon","GridOnIcon","InfoOutlinedIcon","ContentCharts","selectedChart","chart","useBuildingSchemaStatus","cubesBuilded","setCubesBuilded","buildingSchemaEndDate","setBuildingSchemaEndDate","timeoutId","timeUntilBuildingSchemaEnds","now","ContentFooter","handleChangePage","totalCount","TablePagination","onPageChange","onRowsPerPageChange","COLORS_SERIES","COLORS_BG_SERIES","commonOptions","responsive","maintainAspectRatio","interaction","intersect","plugins","legend","scales","ticks","precision","AreaChartRenderer","resultSet","datasets","useDeepCompareMemo","series","pointRadius","tension","pointHoverRadius","borderWidth","tickWidth","labels","categories","Line","LineChartRenderer","BarChartRenderer","pivotConfig","stacked","Bar","ChartRenderer","_ref5","_timeDimensions$","_timeDimensions$2","dimensions","chartType","timeDimensions","seriesNames","totalRow","containsHTML","dataSource","formatDateOnTable","hoverBackgroundColor","pieOptions","Pie","renderChart","dimension","granularity","fillMissingDates","joinDateRange","formatDateValue","formatUtcDateValue","endsWith","itemCopy","objectKeyMapped","currentKey","byKey","ReportContent","_ref6","onDownloadSelect","refChart","showPopUp","setShowPopUp","UpgradeTabPopup","withText","CheckCircleIcon","useAnchor","disabledButtton","DragArea","ComponentToRender","componentProps","seletedItem","hoverItem","DropdownSelectableItem","_ref$current","widthItem","offsetWidth","ITEM_TYPE","applyFilters","cubes","cube","_cube$title","_cube$shortTitle","titleName","shortTitle","searchText","onFilterCubes","_cubes","_cube$measures","_cube$dimensions","_cube$filterOptions","mappedCube","measures","filterOptions","ReportSearchInput","autoFocus","ReportDnDItem","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","hoverClientY","getClientOffset","cubesFiltered","checkedEmptyCubes","handleRemove","Dimensions","Measures","_dimension$title","dim","schemaIcon","_dim$meta","_dim$meta2","_dim$meta2$allowedOrg","meta","allowedOrganizations","dimm","TextFormatIcon","TodayIcon","_measures$title","measure","_measure$meta","_measure$meta2","_measure$meta2$allowe","meas","ReportItem","showTodayIcon","finalDimensions","getFilterItems","flat","searchFilterItem","filterItem","currentItem","ReportFilterItem","operators","onResetFilter","showRemove","withSearchInput","filters","_filters$filterOption","_filters$filterOption2","operator","dataRangeOptions","dayOption","generalOperators","string","boolean","contentContainer","descriptionText","addMore","documentationLink","ReportPanel","setDimensions","setMeasures","dimensionsTime","setDimensionsTime","daterange","setDaterange","setGranularity","setFilters","addFilter","buildQuery","setCompareDate","allowEndBeforeStart","_filter$member","_filter$operator","_filter$operator$labe","_filter$operator2","_filter$operator3","_filter$operator4","_filter$values","_filter$values2","_filter$operator5","_filter$values3","_filter$values4","_filter$operator6","_filter$operator6$lab","_filter$member2","_filter$member3","member","propPadding","arrayValues","HelpIcon","getFilters","ReportProfile","setTotalCount","setCubeQuery","offset","setReport","setCubes","onGetCubes","onGetCube","finally","_query$timeDimensions","_query$filters","_ResultSet$deserializ","_ResultSet$deserializ2","_ResultSet$deserializ3","QueryDimensions","Querymeasures","QueryTimeDimensions","getFetchQuery","arrQuery","qd","splited","colected","cb","itemSh","getFetchTimeQuery","_QueryTimeDimensions$","dimensionsFetched","measuresFetched","timeDimensionFetched","filtersFetched","searchFilterOperator","dimensionsItems","measuresItems","timeDimensionsItems","dimensionsFetchedMapped","measuresFetchedMapped","dimensionTimeObj","_QueryTimeDimensions$2","_QueryTimeDimensions$3","dateRange","ResultSet","deserialize","tablePivot","tableColumns","formatCubeJsTableColumns","_deserializedResultSe","_deserializedResultSe2","_deserializedResultSe3","deserializedResultSet","loadResponse","currentDimensions","dimItem","currentMeasures","meaItem","currentTimeDimensions","_timeDimensionsItems","_QueryTimeDimensions$4","newPage","downloadAll","newOffset","preview","_ResultSet$deserializ7","_ResultSet$deserializ8","_ResultSet$deserializ9","newReport","_deserializedResultSe7","_deserializedResultSe8","_deserializedResultSe9","_reports","exportComponentAsPNG","_reports2","exportData","_c$title","_tempElement$textCont","_tempElement$innerTex","tempElement","innerHTML","textContent","innerText","unparse","onSetFilter","newFilters","_ResultSet$deserializ4","_ResultSet$deserializ5","_ResultSet$deserializ6","_deserializedResultSe4","_deserializedResultSe5","_deserializedResultSe6","newRowsPerPage","_ResultSet$deserializ10","_ResultSet$deserializ11","_ResultSet$deserializ12","_deserializedResultSe10","_deserializedResultSe11","_deserializedResultSe12","selectedItem","FixedTags","showAll","toggleShowAll","extraTagsCount","showAlltag","setShowAlltag","containerRef","filteredOptions","formatChildrenString","parts","formattedField","RegExp","handleMouseEnter","handleMouseLeave","popupIcon","updatedTags","groupBy","formattedString","renderGroup","group","renderTags","tagValue","getTagProps","validTags","visibleTags","Chip","customizedInputProps","ContentChartsButton","CreateDashboard","setDashboards","createDashboard","dashboards","tableContainer","buttons","customButton","iconLeft","smallText","smallTextDashboard","TextSearchMenu","customSelectWrapper","datalabels","font","weight","formatter","suggestedMax","context","_context$chart$data$d","max","dataset","layout","chartLabelNumber","areaOptions","ChartDataLabels","lineOptions","anchor","usePointStyle","pointStyle","boxWidth","boxHeight","clip","a","b","percentage","dataIndex","totalDataPoints","ExploreContent","reportImageUrl","snackbarMessage","setSnackbarMessage","snackbarOpen","setSnackbarOpen","openDashboardModal","setOpenDashboardModal","openDownloadMenu","setOpenDownloadMenu","embedCode","setEmbedCode","openEmbed","setOpenEmbed","anchorPosition","setAnchorPosition","reportImageUrlC","setReportImageUrlC","dashboardsMenu","setDashboardsMenu","filteredDashboards","setFilteredDashboards","foundChart","handleDashboardMenuClose","getDashboardsExplore","fetchDashboards","useImperativeHandle","canvas","html2canvas","Promise","resolve","reject","toBlob","uploadedImageUrl","uploadReportImage","getChartType","handleEmbedClose","disableBackdropClick","disableEscapeKeyDown","dashboardId","newDashboard","addDashboardReport","handleImageUpload","multiline","endAdornment","handleCopy","clipboard","writeText","FileCopyIcon","DialogActions","Menu","disableAutoFocus","disableEnforceFocus","addReportInToDashboard","_error$request","_error$request$respon","request","handleAddReportToDashboard","endIcon","handleEmbedOpen","GetApp","_ref7","Snackbar","autoHideDuration","handleSnackbarClose","selectLabel","selectStyle","labelText","timePicker","cancelButton","saveButton","popoverContent","radioButton","customRoot","prueba","ExplorePanel","_report$chartLabelNum","_report$emailConfigur","_exploreContentRef$cu","orgSubdomainDashboard","isExpandedAll","setIsExpandedAll","isExpandedAdvancedFeatures","setIsExpandedAdvancedFeatures","isExpandedDropdown","setIsExpandedDropdown","setChartLabelNumber","optionsmeausures","setOptionsmeausures","optionsDimension","setOptionsDimension","setReportName","setReportDescription","isEditName","setIsEditName","isEditDescription","setIsEditDescription","refreshKey","setRefreshKey","publishLoading","setPublishLoading","runReportLoading","setRunReportLoading","saveLoading","setSaveLoading","id1","userEmailConfig","emailConfiguration","enableNotifications","setEnableNotifications","setTime","frequency","setFrequency","selectedDay","setSelectedDay","selectedDate","setSelectedDate","showTable","setShowTable","dimensionsv2","setDimensionsv2","Measurev2","setMeasurev2","currentReportId","setCurrentReportId","isSaveClicked","setIsSaveClicked","editBoxRef","showFilterBox","setShowFilterBox","setShowAll","sendEmail","handleClickOutside","addEventListener","removeEventListener","exploreContentRef","EditableReport","handleKeyDown","setEditingState","wordBreak","loadedDimensions","cubo","_report$query","_report$query$dimensi","realCategory","savedDimension","savedCategory","savedField","prevDimensions","newDimensions","loadedMeasures","_report$query2","_report$query2$measur","prevMeasures","newMeasures","_report$emailConfigur2","specificTime","daysOfMonth","daysOfWeek","deleteTimeout","deleteReportbyId","deleteReportIfNotSaved","handleEmailScheduleSave","scheduleAdHocReports","prevShowAll","toggleDropDown","handleDayChange","_option$value","_option$value2","_option$value3","_option$value4","selectedDimensions","dimensionItems","dimensionItemsnue","selectedMeasures","measureItems","mea","measureItemsnue","filteredDimensions","filteredMeausures","LockOutlinedIcon","newReportData","currentReportIdSave","newPublishedStatus","_exploreContentRef$cu2","currentChartType","currentReportIdsave","warn","errorMessage","isEnabled","handleEmailScheduleOnOffToggle","day","isOptionSelected","ArrowDropUpIcon","selectedFields","propHeight","TextFieldComponent","_filter$operator2$lab","_filter$operator3$lab","_filter$operator7","_filter$values5","_filter$values6","_filter$member4","cancelFilter","arrow","reportImage","ExportProfile","measuresv2","subdomainDashboard","DashboardReports","refreshTrigger","dashboardReports","setDashboardReports","actionRefresh","setActionrefresh","componentRef","transformedReports","getDashboardReports","dashboardReportId","resize","onMouseDown","startY","clientY","startHeight","parentElement","offsetHeight","onMouseMove","moveEvent","deltaY","onMouseUp","handleDeleteReport","fetchDashboardReports","deleteDashboardReport","draggable","onDragStart","dataTransfer","setData","onDragOver","onDrop","draggedIndex","getData","newReports","temp","reportsWithPosition","updateDashboardReportSize","dashboardR","DashboardProfile","filteredReports","setFilteredReports","reportsMenu","setReportsMenu","isEditingName","setIsEditingName","isEditingDescription","setIsEditingDescription","dashboardName","setDashboardName","dashboardDescription","setDashboardDescription","dashboardLoading","setDashboardLoading","dashboardIdModular","setDashboardIdModular","setRefreshTrigger","setKey","_dashboard$dashboard","_dashboard$dashboard2","isMounted","allReports","hasMorePages","getReportsExplore","fetchAllReports","updateDashboard","handleDashboardUpdate","EditableDashboard","_dashboard$dashboard3","handleReportsMenuClose","formatBytes","bytes","decimals","toFixed","Usage","setUsage","hasAttachments","setHasAttachments","getUsage","onGetData","general","storageImg","spaceUsed","spaceAvailable","onChangeAttachments","ModalUserRole","userId","onRoleChanged","setRole","showConfirmation","setShowConfirmation","getRoles","onGetRoles","_role","handleOnChangeRole","changeUserRole","User","_me$photo","setMe","onGetSingleUser","_location$href","getInvitationUser","getSingleUser","NotFound","EnhancedTableRow","goToIntendedLocation","typeClickPath","handleSelectRow","reportColumns","ReportsTableTab","selectedReportId","setSelectedReportId","checkedReports","setCheckedReports","selectedIndex","newSelected","concat","REPORT","lengthTabs","userTabsPayload","DISPLAY_OBJECT_TYPES","createUserTabs","newTab","itemsPrev","handleCreateUserReportTab","handlePageChange","dashboardColumns","DashboardsTableTab","_dashboards$headers","_dashboards$data","_dashboards$headers2","checkedDashboards","setCheckedDashboards","loadingDeleteDashboard","setLoadingDeleteDashboard","onGetDashboards","getDashboards","handleCreateUserDashboardTab","DASHBOARD","deleteDashboard","Insights","setDashboard","getDashboardbyId","fetchDashboardDetails","REPORTS","ReportId","ExploreProfile","DASHBOARDS_LIST","createBrowserHistory","CntQuestion","CntCard","CntDrag","CntOne","CntRequired","isActive","CntContent","PointCnt","TextShow","TextTitle","TextOptions","TextRequired","QuestionBankComponent","handleToggleOptions","questionRequiredActive","isDefaultForm","QUESTION_BANK","renderQuestionBankContent","_data$components$","_data$components$$dat","_data$components$$dat2","_data$components$2","_data$components$2$da","toggleOptions","ArrowRightIcon","showAnswers","CntText","LineBorder","QuestionBank","questionsBank","questionsVisible","setPages","onChangePages","handleDeletePage","onSelectPage","disablePageOptions","lockIconOnDefaultForm","withToggle","edit","setEdit","renderPageContent","PageTransition","_pages","newPages","_page","_pageIndex","ButtonText","borderTopLeftRadius","borderBottomLeftRadius","dropdownButton","borderTopRightRadius","borderBottomRightRadius","altText","AddComponent","renderComponentsArr","handleSelectComponent","shortid","generate","useStylesStaticWrapper","switchBase","blue","A700","track","StaticWrapper","SelectableButton","_options$tag","_options$tag2","_options$tag3","_options$tag4","tagType","defaultFormat","separator","defaultSeparator","defaultConsecutive","defaultLength","conditions","when","equals","handleSelect","DndLogicItem","onRemove","_options$formats","_options$separators","setLogicItems","onRemoveItem","logic","formats","separators","sp","ConditionalSelect","postion","getDependentOptions","_dependentOptions$val","condition","dependentOptions","getConditionalSelectValue","CaseNumberConditional","onRemoveSubCondition","Condition","_logic$conditions","subIndex","newLogic","onAddMore","CaseNumberItemSpacing","CaseNumberSettings","_caseNumber$automate2","_caseNumber$automate3","_caseNumber$automate4","_caseNumber$automate5","_caseNumber$automate6","setCaseNumber","logicItems","logicOptions","setLogicOptions","setPreview","_data$logic","getFormTypeOptions","tagTypes","onGetFormTypeOptons","rules","consecutive","_caseNumerCopy$automa2","caseNumerCopy","automate","_caseNumerCopy$automa","getCaseNumberPreview","onGetCaseNumberPreview","_caseNumber$automate","manualOverride","useTrackingNumber","renderLogicItem","logicType","_logicOptions$conditi","conditionsFields","light","CaseNumber","formInfoUpdate","caseNumberFormatted","_item$config","_item$config2","_item$config3","_item$config4","_item$config5","_item$config6","_item$conditions","PageHeader","onSaveForm","formInfo","setFormInfo","formDescription","currentFormType","setCurrentFormType","customFormTypes","getFormColorPlaceholder","_event$target","selectedType","handleTypeChange","DateOfBirth","shouldRenderToggle","isSubComponent","isDemographicComponent","ACCEPTS","SECTION","DropZone","isLast","isOver","canDrop","dropZonePath","splitDropZonePath","itemPath","splitItemPath","childrenCount","pathToItem","currentItemIndex","pathToDropZone","currentDropZoneIndex","classNames","Renderer","handleDrop","configWithProps","Component","mapPropsToConfig","itemId","currentPath","renderComponents","Demographics","onUpdateJsonTop","getConfig","componentsFromServer","_components$","_components$$data","containsQuestionBanks","withDataReportLinkSettings","Gender","Police","PolicyIcon","PrimaryLanguage","TranslateIcon","QuestionBankSideComponent","Race","SexualOrientation","Witnesses","onChangeOptions","rowItem","RaceEthnicity","Ethnicity","onAddPropsToComponent","componentEnhanced","deleteComponent","handleSubComponents","subProp","getComponent","setComponents","ethnicity","fixDemographicComponentForRaceAndEthnicity","hideDemographics","RadioButtonIcon","CheckboxIcon","WcIcon","RoomIcon","Section","handleChangeSectionName","addComponent","deleteSection","isHover","setIsHover","checkDemographicsComponent","containsDemographics","handleDuplicate","sectionIx","componentIx","renderSectionContent","nameAction","actionPress","_component$components","reorderChildren","dropZoneIndex","reorder","startIndex","endIndex","removed","updatedChildren","splitDropZoneChildrenPath","splitItemChildrenPath","nodeChildren","handleMoveWithinParent","PageDetails","handleVisibleQuestion","handleInitVisibleQuestion","handleSaveForm","setLayout","useLayoutEffect","pagesCopy","questionsBankAdded","componentsArray","ixComponent","componentDuplicate","componentsBefore","componentsAfter","dropZone","dropIndex","idQuestion","renderSection","currentSection","newComponents","addComponentToJson","componentsCopy","DeleteComponentFromJson","_page$sections","_page$sections$curren","currentSectionComponents","_componentsCopy$compo","_parentComponent$comp","_parentComponent$comp2","parentComponent","componentFinded","compIndex","ContainerPageDetail","dataTopInfo","addNewSection","investigatorOptions","renderHeder","Standard","_formInfoUpdate$subty2","_formInfoUpdate$sourc2","_formInfoUpdate$repor2","_formInfoUpdate$alleg2","_formInfoUpdate$dispo2","_formInfoUpdate$disci2","_formInfoUpdate$inves2","caseUpdates","setCaseUpdates","visible2","_formInfoUpdate$inter","_formInfoUpdate$subty","_formInfoUpdate$sourc","_formInfoUpdate$repor","_formInfoUpdate$alleg","_formInfoUpdate$dispo","_formInfoUpdate$disci","_formInfoUpdate$inves","internalAffairs","onSaveFormType","subtypeOptions","sourceOptions","ReporterOptions","ignoreExtraProps","_version","_layout$","_layout$$components","_componentCopy$data","_componentCopy$data$q","_componentCopy$data2","_componentCopy$data2$","componentCopy","FORM_TYPE_VERSION_2","uniqueId","pagesIgnoreExtraProps","pageCopy","pageId","fixDataReportLinkID","_component$data4$data","Custom","_refActionModal$curre","_refActionModal$curre2","handleDeleteComponent","handleDuplicateComponent","layouts","showHeaders","onSave","pageExists","_formInfo$customField","version","_selected$sections","_selected$sections$","_ignoreExtraProps3","_page$sections2","_page$sections2$","_ignoreExtraProps2","_page$sections$","_ignoreExtraProps","pageLayout","CaseUpdateBar","onChangeStandardCheckbox","defaultPages","addedDefaultSections","setAddedDefaultSections","handleOnClickNewPage","_lastPage$name","pagesSorted","_x$name","_y$name","xName","yName","lastCharXName","lastCharYName","digitX","digitY","lastPage","lastPageName","lastPageNumber","lastPageNumberParsed","handleOnDeletePage","OfficerUpdateBar","officerUpdates","officersCustomFields","SelectType","Pages","_formInfo$customField3","selectedPage","_item$path","_item$path$split","_page$sections$0$comp","_formInfo$customField2","indexes","indexPage","_selected$sections$0$","_indexPage","_indexPage$sections","_indexPage$sections$","moveComponents","pageIx","questionBankExists","handleResetQuestionBank","onAddNewPages","_formInfo","updatedCaseUpdates","fromEntries","officersAllegationOptions","CaseUpdate","_selected$pageIndex","setLayouts","updatedPage","setUpdatedPage","selectedId","onSetLayout","_layouts","onGetLayout","onUpdateFormInfo","layoutCopy","_layoutCopy$","_layoutCopy$$componen","selectedComponents","_components","_layout","newLayout","onChangeSelected","_customFields$selecte","_customFields","_selected$moveCompone","_selected$moveCompone2","_selected$moveCompone3","_page$sections2$0$com","newSections","_onGetLayout","_onGetLayout$","prevStateCopy","QuestionComponent","AnswerComponent","Editor","tinymceScriptSrc","TINYMCE_SCRIPT_SRC","init","TINYMCE_DEFAULT_CONFIG","onEditorChange","Question","questionIndex","setQuestions","removeQuestion","labelQuestion","limitQuestion","limitAnswer","stylesQuestion","keyQuestion","keyAnswer","questionUpperCase","displayP","questionContainer","CaseStatus","loadingCasesType","setLoadingfaqs","requestPayload","addQuestion","FormTaskBoxEdit","_task$values","_task$values2","_task$values3","_task$values4","_task$settings","_task$settings$typeSu","_organization$task","_organization$task$se","_organization$task$se2","_organization$task2","onClickDuplicate","setName","typeId","setTypeId","subTypeId","setSubTypeId","setSubTypes","dueDays","setDueDays","assignedUsers","setAssignedUsers","classesWrapper","showTypeAndSubtype","typeSubtype","availableTypeSubtypes","availableTypeSubtype","_task$values5","_task$values6","_task$values7","_task$values8","_type$subTypes","focus","onChangeDueDays","AssignUser","onAssignUser","usersArr","loadingRemoveUser","onDeleteUser","newUsers","alignX","alignKey","FormTasks","tasks","setTasks","handleOnSave","tasksData","_res$data2","_res$data3","taskIndex","newTasks","taskData","handleAddTask","CustomOfficer","_formInfo$officersCus","OfficerUpdate","_formInfo$officersCus2","_formInfo$officersCus3","getDemographicName","FormProfile","isSomeQuesRequired","setSomeQuesRequired","loadingForm","setLoadingForm","setSelectedPage","setQuestionsBank","getQuestionBank","onGetQuestionBank","typeAction","newArr","getFormType","_section$components","questionBankComponents","q","comps","demographicsComps","questionBankAdded","arrComponents","_page$sections3","_page$sections4","_page$sections4$","_pagesToSend$pages","pagesToSend","comp","pagesNotName","sectionNotName","_component$data3$data","_value$dataReportLink","dataReportLinkId","dataTop","quesRequired","questionsRequired","visibleOption","Btn","circularColor","SignupForm","confirmPassword","setIsAuth","userData","signupInvtion","getIdToken","h1","InvitationConflict","onClickLogout","cloudWrong","signup","Signup","showInvitationConflict","setShowInvitationConflict","setInvitation","loadingInvitation","setLoadingInvitation","invitationNotFound","setInvitationNotFound","onGetInvitedUser","getInvitiation","handleOnClickLogout","resetContainer","emailRgx","ResetPassword","getPasswordReset","getOrg","alert","UpdateAlert","setRequireRefresh","ReactDOM","createPortal","EnhancedTableHead","onRequestSort","headCells","TableHead","headCell","numeric","TableSortLabel","property","visuallyHidden","PaginationTable","setOrder","orderBy","setOrderBy","numSelected","handleRequestSort","TableBody","onChangeRowsPerPage","disablePadding","Meacolumns","typesColumn","typeRows","DataDocumentation","handleOnReloadCubes","reloadOrganizationCubes","renderRowType","InsightsDocumentation","ResetPasswordById","onPasswordReset","FAQ","loadingfaqs","onGetFaqs","onGetQuestions","onUpdateFaqs","TypeItem","OutLineInputBox","overviewTemplate","actionName","overviewFeatures","useStylesProjectTypesSettings","typesContainer","headerTitle","itemContainer","actionContainer","columnText","ProjectTypes","_actionTemplate$overv9","setRefetch","setTypes","actionTypes","setActionTypes","actionTemplate","setActionTemplate","_organization$project","_organization$project2","_organization$project3","_organization$project4","_organization$project5","_organization$project6","_organization$project7","_organization$project8","_organization$project9","_organization$project10","_organization$project11","_organization$project12","_organization$project13","_organization$project14","_organization$project15","_organization$project16","_organization$project17","_organization$project18","_organization$project19","_organization$project20","_organization$project21","_organization$project22","_organization$project23","_organization$project24","_organization$project25","_organization$project26","_organization$project27","_organization$project28","_organization$project29","_organization$project30","_organization$project31","_organization$project32","_organization$project33","_organization$project34","_organization$project35","_organization$project36","_organization$project37","_type$subTypes2","times","notes","typeIndex","subTypeIndex","setState","typesCopy","handleDelete","subTypesCopy","handleAdd","newSubtype","onChangeActionFeatures","feature","featureIndex","_actionTemplate$overv","_actionTemplate$overv2","_actionTemplate$overv3","_actionTemplate$overv4","_actionTemplate$overv5","_actionTemplate$overv6","_actionTemplate$overv7","_actionTemplate$overv8","_type$subTypes3","_type$subTypes4","_type$subTypes5","_type$subTypes6","_type$subTypes7","_type$subTypes8","actionIndex","ColorLabel","EISItem","priorityLabel","conditionNumber","min","MonitorItem","OfficerEISTab","monitorList","setMonitorList","interveneList","setInterveneList","setRiskLevel","_organization$EIS3","handleRiskLevelChange","setOptions","TasksTypes","_template$overviewFea11","template","setTemplate","_organization$task$ty","_organization$task2$s","_organization$task2$s2","_organization$task3","_organization$task3$s","_organization$task3$s2","_organization$task4","_organization$task4$s","_organization$task4$s2","_organization$task5","_organization$task5$s","_organization$task5$s2","_organization$task6","_organization$task6$s","_organization$task6$s2","_organization$task7","_organization$task7$s","_organization$task7$s2","_organization$task8","_organization$task8$s","_organization$task8$s2","_organization$task9","_organization$task9$s","_organization$task9$s2","_organization$task10","_organization$task10$","_organization$task10$2","_organization$task11","_organization$task11$","_organization$task11$2","onChangeFeatures","_template$overviewFea","_template$overviewFea2","_template$overviewFea3","_template$overviewFea4","_template$overviewFea5","_template$overviewFea6","_template$overviewFea7","_template$overviewFea8","_template$overviewFea9","_template$overviewFea10","dir","OfficersV","handleSave","headerContainer","OfficersI","_response$data$","_response$data$$secti","onGetCustomFieldsModule","fetchCustomFields","updatedComponents","newData","prevComponents","componentData","movedItem","duplicateQuestions","has","_newItem$data","_newItem$data2","newItem","updateCustomFieldsModule","newComponent","element","scrollIntoView","behavior","btn","tabsContainer","currentTabs","disabledTabs","filteredTabs","_disabledTabs$tab$key","_disabledTabs$tab$key2","Logo","oversignImgBlack","oversignImgWhite","topBar","FormDashbaordBar","isMobile","useZoomStyles","startsWith","rootElement","zoom","unarmedlogo","FormDashboard","_formType$pages","_formType$pages2","_formType$pages3","questionsBanks","setQuestionsBanks","formValues","setFormValues","currentPage","setCurrentPage","imagesPreview","setImagesPreview","openStepperMobile","setOpenStepperMobile","currentPageData","currentPageDataIndex","activeCircleColor","handleOnUpdateUrlParams","_currentPageData$name","_currentPageData$name2","pageName","form_page_name","current_page","total_pages","totalPages","scrollToTop","createFormType","formId","errorResponse","pagesFormatted","demographicskeys","questionBankIndex","isDemographics","demographicKey","getDemographicsComponentByType","demographicsComponentsOrdered","_comp$data","formatArrayValues","fileAnonymously","onGetQuestionsBanks","onSaveFormValues","dmographicIndex","formValuesCopy","demographicIndex","getComponents","getRequiredFields","_pagesCopy$currentPag","shouldDoNextPage","shouldDoNextPageWithSubComponentsRequired","filteredComponents","filteredQuestionBankComponents","requiredComponents","requiredSubComponents","errorsToast","_get6","_component$data$key","_component$data$key2","_get","isFieldFilled","_component$data$key3","IComponent","_get2","showRequired","_component$data$key4","_get3","_component$data$key5","_get4","_get5","requiredComps","require","filterObjectTypesComponents","filterObj","_comps$data","_comps$data2","_get7","_get7$","_get7$$","_get8","_get8$","_get8$$","_get9","_get9$","_get10","_get10$","StyledStepperMobile","heightPerItem","stepIndex","StyledStepMobile","activeColor","StyledStepIndex","StyledStepLabel","ExpandLessIcon","FixedMenu","StyledStepper","StyledStep","withLine","FixedContent","_section$name","FormSection","getFormValue","_formValues$pageIndex","_formValues$pageIndex2","_formValues$pageIndex3","ContainerDiv","SuccessSumitted","trackingCode","reportType","reportTypeDisplayText","CopyToClipboard","onCopy","FileCopyOutlinedIcon","useProjectTypes","subTypesOptions","ModalButtons","handleSubmit","handleCancel","isValid","cancelColor","OutlineSelect","registerKey","registerOptions","hasValue","CreateProject","handleUpdateProjects","watch","useForm","typesOptions","subTypeOptions","Controller","onCreateProject","isFormEmpty","DeletePopup","ProjectRenderRow","_row$createdBy","_row$createdBy2","goToProjectDetails","projectType","createdBy","Projects","_projects$headers","_projects$headers2","loadingDelete","setLoadingDelete","setProjects","refetch","getProjects","onGetProjects","newProject","finaleProjects","_data$deleted","onArchiveProject","useProject","setProject","onProject","getProjectInfo","useUsers","usersAssigned","shouldAddMoreUser","shouldFetchUsers","usersSource","prevAssignedUsersRef","_assignedUsers","newAssignedUsers","_userData$users","assignUserToProject","userXt","assignedUserData","Header","_project$createdBy","_project$createdBy2","statusOptions","setType","setSubType","loadingUsers","onChangeTypes","updateProject","NativeSelect","KeyboardArrowDownIcon","DeleteActionPopup","handleClicked","itemComponent","deleteIcon","viewIcon","featureItem","timeSpent","ActionItem","onRemoveAction","handleChangeActionValues","updatedAt","projectId","openDeleteModal","setOpenDeleteModal","openModalUploadFile","setOpenModalUploadFile","setFiles","_values$attachments","statusOptionIndex","DateTimePickerMUI","startDateTime","dateToCompare","endDateTime","filteredUsers","addMoreUser","Attachment","columnImageSize","columnTextSize","newFiles","_file","onClickPreview","imgUrl","selectedFile","deleteAction","_files","prevFiles","OverviewItem","overviewFeature","findProjectById","prj","SelectedProjectItem","RelatedProjects","_projects$data","relatedProjects","selectedProjects","setSelectedProjects","_findProjectById","TotalTimeSpent","totalTimeSpent","ActionCard","_actionSettings$setti25","_actionSettings$setti26","_actionSettings$setti27","_actionSettings$setti28","_actionSettings$setti29","_actionSettings$setti30","_actionSettings$setti31","_actionSettings$setti32","_actionSettings$setti33","_actionSettings$setti34","_actionSettings$setti35","_actionSettings$setti36","_actionSettings$setti37","_actionSettings$setti38","_actionSettings$setti39","_actionSettings$setti40","_actionSettings$setti41","_actionSettings$setti42","onSaveActions","actionSettings","setStartDate","setEndDate","setAssignedTo","tp","_$","getActionsRequired","_actionSettings$setti","_actionSettings$setti2","_actionSettings$setti3","_actionSettings$setti4","_actionSettings$setti5","_actionSettings$setti6","_actionSettings$setti7","_actionSettings$setti8","requiredActions","_assignedTo$","_actionSettings$setti9","_actionSettings$setti10","_actionSettings$setti11","_actionSettings$setti12","_actionSettings$setti13","_actionSettings$setti14","_actionSettings$setti15","_actionSettings$setti16","_actionSettings$setti17","_actionSettings$setti18","_actionSettings$setti19","_actionSettings$setti20","_actionSettings$setti21","_actionSettings$setti22","_actionSettings$setti23","_actionSettings$setti24","currentAction","_attachment$tags","getTotalTimeSpent","timeSpentSoFar","_action$values","_action$values2","buttonRoot","Actions","setActions","setSelectedIndex","shouldResetHashFiles","setShouldResetHashFiles","actionsClasses","upcomingAction","actionsToEndpoint","_values$assignedTo","_values$assignedTo2","_values$attachments2","updateProjectActions","actionsCopy","newState","_action$times","_action$notes","_action$assignedTo","_action$attachments","_action$values3","_action$values4","_action$values5","_action$values6","_action$values6$assig","_action$values7","_action$values7$assig","_action$values8","_action$values8$attac","BoxContainer","handleAddAction","_actionTemplate$overv10","_actionTemplate$overv11","_actionTemplate$overv12","_actionTemplate$overv13","_actionTemplate$overv14","_actionTemplate$overv15","_actionTemplate$overv16","newAction","ConfirmationPopup","noteLogContainer","NoteLog","setCanDelete","_createdBy$firstName$","_createdBy$lastName$","ProjectNoteLogs","noteLogs","setNotes","onArchiveNoteProject","onUnArchiveNoteProject","ProjectNotes","sortedLogs","setSortedLogs","createProjectNote","ProjectAttachments","projectName","getProjectAttachments","getProjectFileAttachmentsToShow","BoxLeftContainer","getProjectFileAttachments","archiveProjectAttachment","unarchiveProjectAttachment","updateProjectsAttachmentTags","addProjectAttachments","lightEmphasis","ProjectLog","_data$contact","_data$contact2","_data$contact3","_data$tags7","_data$tags8","_data$user","_data$tags9","_data$tags10","_data$note","_data$project","_data$project2","_data$project3","_data$project4","_data$project5","_data$project6","_change$newValue","History","setLog","onGetHistory","logItem","labelDescription","statusOPtions","RecommendationItem","toggleEditRecommendation","responseDate","submittedDate","submittedDateIn","setSubmittedDate","responseDateIn","setResponseDate","capitalizeStatus","inputVariant","_data$status","updateRecommendation","deleteRecommendation","Recommendations","projectRecommendations","recommendations","setRecommendations","loadingAddRecommendation","setLoadingAddRecommendation","projectRecommendationsFormat","recommendation","_recommendation$statu","_recommendationsCopy$","recommendationsCopy","addRecommendation","ContactTableRow","goToContactProfile","ProjectContacts","defaultContacts","onRemoveContact","setContacts","contactsPaged","paddingContent","deleteLinkProjectContact","paperMarginBottom","SearchContacts","linkFunc","createLinkProjectContact","linkId","onAddedContact","newContact","_contacts","CreateContactForm","phoneNumberParsed","parseContactPhoneNumber","createContact","ProjectDetails","tabToChange","setTabToChange","actionsSaved","setActionsSaved","getActionsFetched","validTypes","_project$actions","actionsArray","onAddContact","projectAttachments","changeTabOnValidate","overViewFeatures","projectFeatures","overview","_ft$times","_ft$times2","_ft$notes","_ft$notes2","_ft$assignedTo","_ft$assignedTo2","_ft$attachments","_ft$attachments2","requiredValue","Notifications","getNotification","_data2","_data3","ContactsFilters","onClickCancel","onClickApply","ViewTabContacts","_contacts$headers","_contacts$headers2","_contacts$headers3","setLoadingFilters","loadingFilters","onEditMultipleContacts","handleOnClickDownload","handleOnFetchAllContacts","email1","name1","phoneNumber1","module1","flaggedOnly1","fetchContacts","getData1","downloadButtonText","saveFiltersApplied","Contacts","loadingEditContacts","setLoadingEditContacts","demographic","getContactModule","handleOnClickClearFilters","editMultipleContacts","prevContacts","deleteContacts","idsNotDeleted","contactNotDeleted","contactsNames","ModalCreateContact","onUpdate","ModalEditContact","setAvatar","states","setStates","mailingStreet","mailingApt","mailingState","mailingCity","mailingZipCode","otherStreet","otherApt","otherState","otherCity","otherZipCode","onClearFields","isoCodeState","st","otherIsoCodeState","mailingLocation","address","isoCode","otherLocation","updateContact","checkNullValues","_contact$demographic","_contact$demographic2","_contact$demographic3","_contact$mailingLocat","_contact$mailingLocat2","_contact$mailingLocat3","_contact$mailingLocat4","_contact$mailingLocat5","_contact$mailingLocat6","_contact$mailingLocat7","_contact$otherLocatio","_contact$otherLocatio2","_contact$otherLocatio3","_contact$otherLocatio4","_contact$otherLocatio5","_contact$otherLocatio6","_contact$otherLocatio7","_contact$photo","getStatesOfCountry","ImageContainer","onDropRejected","ContactForm","onClickSave","_contact$demographic4","_contact$demographic5","_contact$demographic6","_contact$demographic7","_contact$demographic8","_contact$demographic9","_contact$createdBy","_contact$createdBy2","openEditModal","onCloseEditModal","showAllAttrs","setShowAllAttrs","KeyboardArrowUpIcon","onRenderRow","onChangeSort","ContactAttachments","onAddNewAttachment","onEditAttachments","setLoadingDownload","onGetContactAttachments","fetchContactAttachments","createContactComment","downloadContactImage","onDownloadAll","downloadContactImages","archiveContactAttachment","unarchiveContactAttachment","updateContactAttachmentTags","casesColumns","projectsColumns","ContactProfile","setContact","setCases","loadingCases","setLoadingCases","loadingProjects","setLoadingProjects","events","editingNote","setEditingNote","setOpenEditModal","onUpdateContactInfo","fetchContact","handleOnFetchNotes","fetchContactNotes","fetchContactCases","fetchContactProjects","fetchContactStats","onClickCard","renderRowCase","renderRowProject","_note$user","onArchiveNoteContact","onUnArchiveNoteContact","subject","canEdit","onEditClick","onCancelEditingClick","setIsRequestingData","filesHash","canceled","editContactComment","editingLog","ConnectAccountButton","Social","tabsAccounts","setTabsAccounts","fbAsyncInit","FB","appId","process","REACT_APP_FACEBOOK_ID","cookie","xfbml","AppEvents","logPageView","js","fjs","getElementsByTagName","parentNode","insertBefore","onChangeTabsAccounts","handleFacebookLogin","authResponse","api","ShareIcon","orientation","flexItem","NoMatch","PrivateRoute","auth","showMfa","rest","Route","Redirect","generalRoutes","casesRoutes","CaseDetails","contactsRoutes","officerRoutes","OfficersList","adminRoutes","AppRouter","_organization$permiss6","_organization$permiss7","_organization$permiss14","_organization$permiss15","_organization$permiss16","_organization$permiss17","hasEnrollFactor","requireRefresh","defaultRoute","setDefaultRoute","stateUpdate","setStateUpdate","_organization$permiss5","permission","findRouteWithPermission","BrowserRouter","Router","exact","route","_organization$permiss8","_organization$permiss9","_organization$permiss10","_organization$permiss11","_organization$permiss12","_organization$permiss13","Users","resentEmailCount","App","_userAut$multiFactor","_userAut$multiFactor$","_userAut$multiFactor2","_userAut$multiFactor3","activateAuth","isAuth","loadingOrg","userAut","onAuthStateChanged","sendEmailVerification","origin","newToken","refreshToken","ChartJS","ArcElement","Legend","defaults","pie","ctx","en","translations","complaint","compliment","inquiry","other","Created","anonymous","Address","whyWouldYouLike","Statement","links","witness","how","whatDescribeYou","birth","sOrientation","language","EventInfo","eventLocationL","eventDate","eventTime","es","i18n","use","initReactI18next","LanguageDetector","resources","fallbackLng","ns","defaultNS","keySeparator","interpolation","escapeValue","Sentry","dsn","integrations","BrowserTracing","environment","tracesSampleRate","Provider","GlobalStyles","ThemeProvider","globalTheme","AccordionProvider","TagsProvider","DataReportLinkProvider","ToastNotification","checkValues","savedValue","preValues","copyObj","validateEmail","_email$toLowerCase","PersonalInformation","_form$civilian4","_form$civilian5","_form$civilian6","_form$civilian7","_form$civilian8","_form$civilian9","_form$civilian10","_form$civilian11","_form$civilian12","_form$civilian13","_form$civilian13$city","_form$civilian14","_form$civilian14$city","_form$civilian15","_form$civilian15$stat","_form$civilian16","_form$civilian16$stat","_form$civilian17","_form$civilian18","AccordionWrap","formatText","addressLine1","addressLine2","timeRangeOptions","getTimeRange","_timeRange$","_form$location","localeLan","IncidentDetails","_form$location2","_form$location3","_form$location4","_form$location4$city","_form$location5","_form$location5$city","_form$location6","_form$location6$state","_form$location7","_form$location8","_form$location9","_form$links","_form$employees","_form$others","_form$location10","_form$location11","_form$location12","_form$location12$city","_form$location13","_form$location13$city","_form$location14","_form$location14$stat","_form$location15","_form$location16","_form$location17","translate","setTranslate","statement","setStatement","MenuTable","allowChildren","buttonPadding","onTranslate","whyYouWantToThank","employees","others","SearchOfficer","setIsRefetch","defaultOfficers","loadingAddOfficer","setLoadingAddOfficer","searchOfficer","searched","setSearched","onSearchOfficer","SearchResults","key2","defaultData","currentOfficer","assignOfficer","onAddOfficer","noResultsText","ul","Officers","officersOption","setForm","loadingOfficers","setLoadingOfficers","contents","setContents","newContents","_page$name","_page$sections$$compo","marginY","OfficerAdded","autocomplete","chip","optionItem","listbox","CheckBoxOutlineBlankIcon","CheckBoxIcon","DropdownResults","selectedOrg","setSelectedOrg","disableCloseOnSelect","noOptionsText","ChipProps","TransferCase","organizationName","transferredTo","referrals","organizations","setOrganizations","setShowDropdown","selectedOrgs","setSelectedOrgs","confirm","setConfirm","showTransferConfirm","setShowTransferConfirm","getOrganizationsTransfer","getAlreadyTransferredOrgs","org","proceedWithTransfer","transferOrganizationIds","onTransferCase","transferCase","TitleContainer","includeFields","newCaseOptions","DuplicateCase","include","additionalOptions","originalCreatedDate","assignToMe","archiveOriginal","handleDuplicateCase","onDuplicateCase","Attachments","onGetFormAttachments","getFormAttachments","updateFormComments","getFormAttachmentsDownload","archiveCaseAttachment","unarchiveCaseAttachment","updateAttachmentTags","CaseDetailTask","_form$formType$tasks","_form$formType$tasks$","_taskSettings$typeSub4","_taskSettings$typeSub5","_taskSettings$typeSub6","_taskSettings$times3","_taskSettings$times4","_taskSettings$assigne3","_taskSettings$assigne4","_taskSettings$notes3","_taskSettings$notes4","_taskSettings$attachm3","_taskSettings$attachm4","taskKey","updateTasks","setAvailableStatuses","dueDate","setDueDate","toISOString","selectedStatus","setSelectedStatus","setFilled","taskSettings","_task","handleOnChangeTask","prevTasks","_form$formType2$tasks","_task$values8$attachm","_task$values2$assigne","_task$values9","_task$values9$attachm","dueDateTime","_form$formType3","_form$formType3$tasks","_taskData$availableTy","_typeData$subTypes","typeData","_subType","minDate","direction","avalaible","_transformStatus","_taskSettings$assigne","_taskSettings$typeSub","_taskSettings$typeSub2","_taskSettings$notes","_taskSettings$times","_taskSettings$attachm","_taskSettings$typeSub3","_taskSettings$notes2","_taskSettings$times2","_taskSettings$assigne2","_taskSettings$attachm2","taskId","formResponse","onUpdateFormTask","archiveDate","CaseTasks","HeaderOptions","onTransferClick","onDuplicateClick","handleArchive","onArchive","handleUnarchive","onUnArchive","UnarchiveIcon","ArchiveIcon","TransferIcon","DuplicateIcon","ModalEditCaseDetails","_comps$components","_page$sections$sectio","_page$sections$sectio2","_value$state","_value$city","pageFormatted","withFileUpload","_formValues$_pageInde","_formValues$_pageInde2","_formValues$_pageInde3","CaseContacts","caseId","CasePersonInfo","valueRaw","gridSize","onClickColumn","handleOnClick","onClickColumnInNewWindow","handleOnClickOpenInNewWindow","deleteLinkCaseContact","createLinkCaseContact","ResultHeader","Results","ResultItem","withBorder","ResultTitle","ResultLink","ResultBold","ResultValue","RelatedCases","related","linked","setLinked","showMinCharsSearchWarning","setShowMinCharsSearchWarning","handleOnSearch","caseNumberOnly","exclude","caseData","caseKey","fieldIndex","matchfieldOptions","linkCase","_cases","_case","handleOnLinkCase","unLinkCase","_caseData","handleUnLinkCase","statusSelect","duplicatePaper","ArchivedInfo","TransferredInfo","_form$referral","_previous$organizatio","_form$referrals","uniqueOrgs","Map","orgName","existing","orgNames","trackingCodes","codes","tooltip","Tab","_form$referral2","_form$referral2$next","_form$referral2$next$","_form$referral3","_form$referral3$next","_form$availableStatus2","_form$originalPages3","_form$originalPages4","_form$originalPages5","_organization$permiss18","_organization$feature16","_organization$feature17","_organization$feature18","_organization$feature19","_organization$feature20","_organization$feature21","_organization$feature22","_organization$feature23","_organization$feature24","_organization$feature25","_organization$feature26","_organization$feature27","_organization$feature28","_organization$feature29","_organization$feature30","_organization$feature31","_form$formType4","_form$formType5","setLoadingUsers","setLoadingRemoveUser","isRequestingData","formLog","setFormLog","loadingLog","setLoadingLog","showUpgradeModal","setShowUpgradeModal","showModal","setShowModal","showDuplicateModal","setShowDuplicateModal","formTasks","setFormTasks","showModalEditDetails","setShowModalEditDetails","formPage","setFormPage","setPageIndex","caseVersionTab","setCaseVersionTab","setEditingLog","customFieldsValues","setCustomFieldsValues","prevPathname","setAccordions","setAllCollapse","useAccordionProvider","formTypePages","loadingC","withBefore","_newItems","newItems","setIsModalOpen","isBlurred","canUserViewForm","firstPage","firstPageId","createFormTypePageId","_accordions","uniqueTypes","caseFormTypes","predefinedTypes","matchingOption","prevOptions","_form$assigned","caseAttachments","onChangeLanguage","lng","changeLanguage","selectValue","normalizedType","newOptionSelected","onUpdateFormType","updateFormType","tabKey","asignedUsersData","assignUsers","asignUserToForm","lastAssignedUser","removeuser","unassignUsers","deleteAssignedUser","persist","_form$availableStatus","onUpdateStatus","FormTypeJson","onSetupFiles","onClickEditPage","AditionalDetails","UpdateCase","officersTab","BoxLoading","NoteLogs","editFormComment","updateCaseDetails","_form$originalPages2","_error$response4$data2","_error$response4$data3","iSection","iComponent","Note","onClickFile","globalClasses","useGlobalStyles","editedByInfo","useDefaultImage","Logs","LogsShow","setLogsShow","getNoteLogs","getFormNotesLogs","onArchiveNoteForm","onUnArchiveNoteForm","PictureAsPdfIcon","AudiotrackIcon","VideoLibraryIcon","raceEthnicityOptions","pronounsOptions","genderOptions","resetToken","axios","baseURL","REACT_APP_TENANT_ID","responseType","axiosApiInstance","axiosApiFileInstance","interceptors","cfg","Authorization","originalRequest","_retry","id_token","refresh_token","unarmedWithTokenAndDownloadFile","unarmedFile","Accept","DropZoneContainer","fileTags","setFileTags","setIsDragging","handleOnUploadFiles","requests","_fileKey","onUploadFile","fileKey","fileResponse","all","previewUrl","fileData","newFile","handleOnClickDone","droppedFiles","fileTag","handleDragOver","handleDragEnter","handleDragLeave","onDragEnter","onDragLeave","fileUploadAceptedTypes","selectedFiles","fileWrapper","canRemoveTag","_fileTags","onClickRemoveTag","_data$options","wiredValue","setterState","LabelError","assignedAvatar","shape","searchIcon","inputInput","userItem","usersContainer","backdrop","closeIcon","containerAvatar","UserDropdown","onSelectUser","usersFiltered","showUnassigned","onSkipNullFromArray","_getFilterSubtypeOpti","filterCases","setFilterCases","setUsersFiltered","_filters$type","_filters$type$slice","_formType","onRemoveAssignedUser","assignedComponent","_assigned$photo","onFilterUsers","_searchBox$value","getFilterSubtypeOptions","stypeTypeOptionsKey","subTypeOptionsArray","formTypeOptions","onFilterClear","demographics","singleChoice","multipleChoices","dropdown","yesNo","shortText","longText","addressInformation","contactInformation","dateOfBirth","fileUpload","hour","CURenderer","onSubmitForm","setPagesValues","validateComponent","withSave","showUser","setShowUsers","visibleUsersCount","setVisibleUsersCount","currentIndex","setCurrentIndex","selectedUser","setSelectedUser","handleShowUsers","ConfirmDialog","rowGap","onOpen","AddRoundedIcon","handleShowMore","setNextPosition","storedTabSelected","initialTabSelected","showReportTable","showDashboardsTable","setShowDashboardsTable","selectedRow","setSelectedRow","getUserTabs","validTabs","sortedTabs","lastPosition","tabName","updatedTabs","savedTab","updatedTabsWithNew","existingTab","updatedTabList","updatedTabPayload","updateUserTabs","newName","tabId","updateUserTabName","viewName","typeTab","pinned","ADHOCREPORT","tabToDelete","deleteUserTab","remainingTabs","prevTabs","DraggableTab","moveTab","handleTabClick","handleEditTab","togglePinTab","inputValue","setInputValue","canDrag","draggedItem","handleUpdateNameTab","handleMenuClose","node","SaveIcon","onDoubleClick","PushPinIcon","DragIndicatorTwoToneIcon","keepMounted","PushPinOutlinedIcon","tabI","tabType","indexDashb","deleteView","isAddingNewTab","setIsAddingNewTab","newTabName","setNewTabName","showScrollButtons","setShowScrollButtons","tabContainerRef","tabWrapperRef","defaultTab","checkOverflow","isOverflowing","scrollWidth","clientWidth","tabToToggle","pinnedTabs","unpinnedTabs","handleSaveNewTab","baseColumnsConfig","CASES","ALLEGATIONS","USERS","dateAdded","OFFICERS","CONTACTS","responseDashboard","_newFilterConfig$data","newFilterConfig","createFilterConfig","newView","views","createView","newTabC","fromIndex","toIndex","movedTab","fixedTabs","otherTabs","scrollLeft","scrollBy","ArrowBackIosIcon","msOverflowStyle","handleAddNewTabClick","AddIcon","scrollRight","ArrowForwardIosIcon","OfficerFilter","includeTotalCases","ViewTabOfficers","_officers$headers","_officers$headers2","_officers$headers3","onOfficersFetched","onEditMultipleOfficers","onClearAllFilters","getOfficers","onGetOfficers1","sortv","sortByv","isFilteringv","flaggedOnlyv","namev","badgev","archivedOnlyv","uniqueFieldIdv","onGetOfficers","onClickMerge","selectedOfficerIds","onClickArchiveOrUnarchive","onUnarchiveOfficers","onArchiveOfficers","selectedLength","pageIdentifier","mergeButtonDataTestId","inputRef","MaskedInput","inputElement","mask","placeholderChar","showMask","guide","loadingDeleteOfficer","setLoadingDeleteOfficer","loadingCreateOfficer","setLoadingCreateOfficer","loadingEditOfficers","setLoadingEditOfficers","editMultipleOfficers","prevOfficers","_row$customFields","_row$customFields$","_row$customFields$$se","_row$customFields$$se2","_row$customFields$$se3","_row$customFields2","_row$customFields2$","_row$customFields2$$s","_row$customFields2$$s2","_row$customFields2$$s3","_row$uniqueFieldId","_row$customFields3","_row$customFields3$","_row$customFields3$$s","_row$customFields3$$s2","_row$customFields3$$s3","deleteOfficer","formsCount","actionsContainer","getRandomWord","words","random","sizeInMb","bytesToMB","openDeleteAttachment","setOpenDeleteAttachment","openRestoreAttachment","setOpenRestoreAttachment","randomWord","setRandomWord","reconfirmValue","RestoreIcon","_change$newValue$","_change$oldValue$","_change$oldValue","_data$changes","_data$changes2","_data$form","_data$form2","_assignments$","_assignments$2","_officers$","_officers$2","_officers$3","_officers$4","_officers$5","_officers$6","_assignments$3","_assignments$4","_data$form3","_data$form4","_data$otherForm","_data$otherForm2","_data$form5","_data$form6","_data$otherForm3","_data$otherForm4","_data$otherForm5","_data$form7","_data$file6","_data$otherForm6","_data$form8","_changes$","_changes$2","_changes$3","_changes$4","_change$oldValue2","AccordionContext","createContext","accordions","isOpen","Content","contentHeight","contentRef","setContentHeight","scrollHeight","WrapIcon","Name","Size","Skeleton","ClearIcon","editingContent","editingMessage","BackDrop","pt","_e$nativeEvent","_e$nativeEvent$submit","nativeEvent","submitter","_image$mimetype","_image$mimetype2","_image$mimetype3","_image$mimetype4","_image$mimetype5","_image$mimetype6","CircularProgressWithLabel","fileOrIndex","fullString","lengthKey","localeCompare","pathNameParts","pathName","useMe","getMe","excludeCount","setFiltersConfig","_item$user","handleOnFetchFiltersConfig","TooltipContainer","remainingItems","upArrow","without","distance","fromRef","observer","isIntersecting","disconnect","IntersectionObserver","rootMargin","observe","hasError","autoFormat","disableCountryCode","_arrayValue$","about","_form$howDidYouHearAb","_form$demographic","_form$demographic2","_form$demographic3","_form$demographic6","_form$demographic7","_form$demographic10","_form$demographic11","_form$demographic14","_form$demographic15","howDidYouHearAboutUs","_form$howDidYouHearAb2","_form$howDidYouHearAb3","whatBestDescribesYou","gd","_form$demographic4","_form$demographic4$ge","_form$demographic5","_form$demographic5$ge","rc","_form$demographic8","_form$demographic8$ra","_form$demographic9","_form$demographic9$ra","sexualOrientation","so","_form$demographic12","_form$demographic12$s","_form$demographic13","_form$demographic13$s","primaryLanguage","_phoneNumber$replace","_phoneNumber$replace$","_phoneNumber$replace$2","handleOnClose","largeIcon","editButton","editingCloseButton","ago","getEditedTooltipDate","textToTranslate","setTextToTranslate","getFormTypeTranslateTexts","textTranslate","translateState","renderTranslate","componentValue","_textToTranslate$comp","_textToTranslate$comp2","_textToTranslate$comp3","_textToTranslate$comp4","valueToTranslate","translation","_external$cityBySivil","_external$cityBySivil2","_external$cityBySivil3","_external$cityBySivil4","_external$cityBySivil5","_external$cityBySivil6","sectionDivider","_textToTranslate$comp7","_textToTranslate$comp8","objKey","_component$data10","_component$data11","_component$data12","_textToTranslate$comp5","_textToTranslate$comp6","_component$data13","_component$data14","_component$data15","_objKey$","_objKey$objIndex","_keyFromArray$toLower","textValue","_objectData$objKey","_objectData$objKey2","_component$value$objK","_component$value$objK2","FilterListIcon","ContainerButton","ButtonFilter","ButtonLink","maintainAlwaysOpen","showErrorMessage","setShowErrorMessage","selectedTags","setSelectedTags","searching","setSearching","searchedText","setSearchedText","tagsRecentlyFiltered","selectedTag","autoCapitalize","allowMoveComponents","deleteFromDataReportLink","MuiPickersUtilsProvider","utils","DateFnsUtils","KeyboardDateTimePicker","autoOk","ampm","d1","d2","onError","CalendarTodayIcon","KeyboardButtonProps","getCitiesOfState","stateIsoCode","REACT_APP_SUBDOMAIN","setAuthUser","setLoadingOrg","analytics","setUserProperties","signOut","getOrganizationsByState","Consumer","useCheckAppVersion","onCheckAppVersion","appVr","appVersion","setorganization","menubar","paste_as_text","link_default_protocol","link_assume_external_targets","link_target_list","link_default_target","toolbar_mode","branding","elementpath","contextmenu","content_style","StyledBox","HeaderBox","StyledTypography","ContentBox","ItemBox","Value","CaseUpdateSection","itemKey","prevOpen","onTrackForm","getFormInfo","DataReportLinkContext","plainText","UpdateRenderer","cuGetConfig","_page$sections2$$comp","_page$sections3$","_customFieldsValues$p","_customFieldsValues$p2","_pagesValues","confirmValue","setConfirmValue","PaperComponent","DialogContentText","cursorPosition","selectionStart","setSelectionRange","onConfirmClick","WrapperSave","CUDropdown","dropdownArray","setDropdownArray","dropdownString","arrValue","_option","sOption","FormHelperText","updateForm","CULongText","setHelperText","CUMultipleChoice","CUShortText","CUSingleChoice","CUYesNo","CUTitle","CUSubtitle","CUDate","setDate","CUPhone","phoneText","HIGH","MEDIUM","LOW","NONE","AVAILABLE_STATUSES","StyledList","ContentText","li","_formType$caseUpdates","_formType$caseUpdates2","_formType$caseUpdates21","_formType$caseUpdates22","_formType$caseUpdates23","_formType$caseUpdates24","_formType$caseUpdates25","_formType$caseUpdates26","_formType$caseUpdates27","_formType$caseUpdates28","_formType$caseUpdates29","_formType$caseUpdates30","_formType$caseUpdates31","_formType$caseUpdates32","_formType$caseUpdates33","_formType$caseUpdates34","_formType$caseUpdates35","_formType$caseUpdates36","_formType$caseUpdates37","_formType$caseUpdates38","_formType$caseUpdates39","_formType$caseUpdates40","_formType$caseUpdates41","_formType$caseUpdates42","_formType$caseUpdates43","_formType$caseUpdates44","_formType$caseUpdates45","_formType$caseUpdates46","_formType$caseUpdates47","_formType$caseUpdates48","_formType$caseUpdates49","_formType$caseUpdates50","_formType$caseUpdates51","_formType$caseUpdates52","_formType$caseUpdates53","_formType$caseUpdates54","_formType$caseUpdates55","_formType$caseUpdates56","_formType$caseUpdates57","_formType$caseUpdates58","_formType$caseUpdates59","_formType$caseUpdates60","_formType$caseUpdates61","_formType$caseUpdates62","loadingState","setLoadingState","standardVisible","checkStandardVisible","_formType$caseUpdates3","_formType$caseUpdates4","standardCaseUpdatesVisible","checkCaseUpdatesVisible","_formType$caseUpdates5","_formType$caseUpdates6","_form$formType$caseUp","allContents","initialAccordions","onUpdateForm","_formType$caseUpdates7","_formType$caseUpdates8","_formType$caseUpdates9","_formType$caseUpdates10","_formType$caseUpdates11","_formType$caseUpdates12","_formType$caseUpdates13","_formType$caseUpdates14","_formType$caseUpdates15","_formType$caseUpdates16","_formType$caseUpdates17","_formType$caseUpdates18","_formType$caseUpdates19","_formType$caseUpdates20","requestData","onSaveFormUpdate","contentKey","prevAccordions","subdomain","idOrga","resendUserInvitation","extra","getOptionsEndpoint","_uniqueFieldId$data","getUsersInvitations","commentId","createOfficer","updateOfficer","addRowOfficer","allegationRow","assignOfficers","unassingOfficer","unassignOfficers","updateOfficerCustomFields","officerCustomFields","deleteAnAllegationRow","setLoaderPercentage","onUploadProgress","progressEvent","round","loaded","hashid","deleteUser","delete","createUserInvitation","isWithSocial","deleteInvitationUser","getImportEndpoint","_ref8","onUpdateOfficerProfile","profileData","getModuleCustomFields","actionId","recommendationId","_ref9","formID","officerID","projectID","fetchTags","relatedCaseId","attachmentId","editMultipleUsers","allegationIds","HighLight","ChangeItem","_item$data$task","_item$data2$form","_item$data3$form","_item$data4$task","_item$data6$form","_item$data7$form","_item$data8$assignedU","_item$data9$assignedU","_item$data10$assigned","_item$data11$assigned","setFieldName","setOldValue","setNewValue","caseTaskText","_item$data19$changes","_item$data20$changes","_item$data12$user","_item$data12$user$pho","_item$data13$user","_item$data14$user","_item$data16$changes","changeIndex","allowSearchEmpty","setTagsRecently","onGetTagsRecently","TagsContext","showGlobalToast","toastTimeout","savedMessage","savedType","boxInput","_customFields$","_customFields$$sectio","_customFields$$sectio2","_customFieldsValues$","_customFieldsValues$$","originalCustomFieldsValues","setOriginalCustomFieldsValues","loadingPicture","setLoadingPicture","setValidateComponent","timestamp","clearFormData","clearCustomFieldsValues","isCancelled","_officer$photo","customFieldsValuesObj","customFieldsProps","getValues","itemColumn","itemValue","columnKey","alreadyAdded","defaultItem","_item$column$key","_item$customFields","_item$customFields$","_item$customFields$$s","_item$customFields$$s2","_item$customFields$$s3","_item$customFields$$s4","_item$customFields2","item1","_item1$data","validEmail","setValidEmail","loadingSearch","setLoadingSearch","searchValue","handleOnClear","handleOnClickAddContact","AddressInfo","_getFormValue","_getFormValue2","_getFormValue3","_getFormValue4","_data$street4","_data$street5","_getFormValue5","_getFormValue6","_data$aptUnit4","_data$aptUnit5","_data$state4","_getFormValue7","_getFormValue8","_data$state5","_data$city4","_getFormValue9","_getFormValue10","_data$city5","_getFormValue11","_getFormValue12","_data$zipCode4","_data$zipCode5","cities","setCities","defaultValues","cy","_data$firstName4","_getFormValue5$","_data$firstName5","_data$firstName6","_data$lastName4","_getFormValue7$","_data$lastName5","_data$lastName6","_data$email4","_data$email5","_getFormValue9$","_data$email6","_data$email7","_getFormValue11$","_data$phone4","_data$phone5","_getFormValue13","_getFormValue13$","_getFormValue14","_data$workTelephone4","_data$workTelephone5","getValue","_getFormValue2$","_getFormValue4$","KeyboardDatePicker","getStateValue","isQuestionBankRender","_data$options2","_getFormValue3$data$q","sted","subArrayValue","KeyboardTimePicker","keyboardIcon","urlExpression","onAddItems","setter","onDeleteItem","validateURl","deleteItemsicon","_externalLink$value","_externalLink$value2","externalLinks","setExternalLinks","externalLink","onChangeItem","isQuestionBank","witnesess","setWitnesses","relationship","polices","setPolices","officerDescription","languageInput","sectionWithoutTitle","orderComponents","createGlobalStyle","boxProgressWithLabel","createTheme","overrides","MuiButton","textPrimary","containedPrimary","MuiTableHead","MuiTableCell","head","MuiTabs","indicator","useDebounce","delay","debouncedValue","setDebouncedValue","handler","CustomFieldsAllegations","setEditRow","prevCustomFieldsValuesRef","stableCustomFieldsValues","debouncedCustomFieldsValues","_allegation$officersC","_allegation$officersC2","pages1","_row$officersCustomFi","_row$officersCustomFi2","newRow","officerCustomField","_officerCustomField$s","_customFieldsValues$i","_customFieldsValues$i2","_customFieldsValues$i3","_customFieldsValues$i4","_customFieldsValues$i5","_officer$allegations","updatedCustomFields","allegationId","_names$firstName","_names$lastName","_names$firstName2","_names$lastName2","_officer$officer8","_officer$officer8$uni","editRow","loadingDeleteRow","setLoadingDeleteRow","loadingAddRow","setLoadingAddRow","openDeleteOfficer","setOpenDeleteOfficer","deleteState","setDeleteState","setNames","_officer$officer","_officer$officer$cust","_officer$officer$cust2","_officer$officer$cust3","_officer$officer$cust4","_officer$officer$cust5","_officer$allegations2","reason","_officer$officer2","_officer$officer2$cus","_officer$officer2$cus2","_officer$officer2$cus3","_officer$officer2$cus4","_officer$officer2$cus5","_officer$officer6","_officer$officer7","_officer$officer4","_officer$officer9","_officer$officer3","rowsCopy","onDeleteRow","_officer$officer5","onDeleteOfficer","ContainerIcon","SelectClearable","optionIndex","HighlightOffIcon","otherCities","setOtherCities","typeValue","propPaddingInput","propFontSize","_e$target$value","_e$target$value2","htmlContent","textIndent","listStyleType","dangerouslySetInnerHTML","__html","SvgCheck","SvgCross","toasts","setToasts","closeToast","removeToast","addToast","Slide","mountOnEnter","unmountOnExit","ErrorIcon","onClickLink","blank","FillInputPhone","InviteUser","onUpdateUsers","setTab","limitInvites","leftInvites","maxlength","roleItem","UserFilter","setUsername","setEmail","setPhone","ViewTabUsers","_users$headers","_users$headers2","loadingDeleteUser","onDeleteUsers","onEditMultipleUsers","openDeleteUser","openInviteUser","setOpenInviteUser","setOpenDeleteUser","stateUsage","value1","usernameV","roleV","emailV","phoneV","flaggedV","onGetUsers1","_responseView$data2","limits","activeUsers","pendingUsers","titleBox","hidden","initialValue","submitting","isPassword","isBoolean","BootstrapInputFillled","BootstrapInputBorderLess","BootstrapInputColors","setStateUsage","setLoadingDeleteUser","loadingEditUsers","setLoadingEditUsers","usersCopy","newInvite","goTouserProfile","go","withRedirectToProfile","_row$phoneNumber","_row$phone","RenderMoreOption","prevUsers","availableData","activeOptions","pendingOptions","MailOutlineIcon","imageSrc","method","removeChild","eventParams","urlParams","replaceState","maxDate","disablePast","invalidDate","setInvalidDate","clearable","parseISO","startOf","invalidDateMessage","clickable","Close","paddingR","selectPaper","EnhancedTableHeadItem","sortType","renderHeader","onSelectAllClick","indeterminate","newSelecteds","_n$path","toRemove","SelectProps","firebaseConfig","apiKey","authDomain","databaseURL","REACT_APP_DATABASE_URL","storageBucket","messagingSenderId","measurementId","OAuthProvider","setCustomParameters","signInWithPopup","linkWithPopup","centerIcon","getFileTypes","debounceKey","images","setImages","hashFiles","setHashFiles","onSetImagesPreview","_imagesPreview","_imagesPreview$images","_imagesPreview$images2","_imagesPreview$images3","_imagesPreview$images4","_imagesPreview$images5","_imagesPreview$images6","_defaultImages$compon","defaultImages","defaultImage","_imagesPreview$images7","_imagesPreview$images8","_imagesPreview$images9","_images","_imagesPreview$images13","_imagesPreview$images14","_imagesPreview$images15","imagesArr","hashArr","imagesCopy","acceptedFiles","imageWidth","imageHeight","imageFit","MusicNoteIcon","YouTubeIcon","renderPreviewIcon","_imagesPreview$images10","_imagesPreview$images11","_imagesPreview$images12","imgs","onDeleteImg","Popup","renderIcon"],"mappings":"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","file":"static/js/main.434d9fc5.chunk.js","sourcesContent":["/* eslint-disable no-nested-ternary */\nimport { Checkbox, FormControl, InputBase, ListItemText, MenuItem, Select, withStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst BootstrapInput = withStyles((theme) => ({\n root: {\n width: '100%',\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: '#f8f8f9',\n border: '1px solid #f8f8f9',\n fontSize: 13,\n padding: '8px 26px 8px 12px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n // Use the system font instead of the default Roboto font.\n fontFamily: [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n '&:focus': {\n borderRadius: 4,\n borderColor: '#f8f8f9',\n backgroundColor: '#f8f8f9',\n },\n },\n}))(InputBase);\n\nconst inputStyles = {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: '#fff',\n fontSize: 13,\n padding: '8px 26px 8px 12px',\n // Use the system font instead of the default Roboto font.\n fontFamily: [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n\n '&:focus': {\n borderRadius: 4,\n border: '1px solid rgba(0,0,0,.23)',\n backgroundColor: '#fff',\n },\n};\n\nconst BootstrapInputOutlined = withStyles((theme) => ({\n root: {\n width: '100%',\n },\n input: {\n border: '1px solid rgba(0,0,0,.23)',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n ...inputStyles,\n },\n}))(InputBase);\n\nconst BootstrapInputOutlinedActive = withStyles((theme) => ({\n root: {\n width: '100%',\n },\n input: {\n border: '1px solid #408BEC',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n ...inputStyles,\n },\n}))(InputBase);\n\n/**\n * MultiSelectBox component for selecting multiple options.\n * @param {Object} props - The props of the component.\n * @param {string} props.dataTestId - The data test ID for testing.\n * @param {Array} props.options - The array of options to select from.\n * @param {Array} props.value - The currently selected values.\n * @param {Function} props.onChange - The function to handle change in selection.\n * @param {string} props.id - The ID for the component.\n * @param {string} props.label - The label for the component.\n * @param {boolean} props.outlined - Whether to render with outlined style.\n * @param {boolean} props.default - Whether to use default input style.\n * @param {Function} props.callback - The callback function to handle selection.\n * @returns {JSX.Element} MultiSelectBox component.\n */\nconst MultiSelectBox = ({\n dataTestId,\n options = [],\n value,\n onChange,\n id,\n label,\n outlined,\n defaultValue = true,\n callback,\n active = false,\n}) => {\n const renderOptions = () => {\n if (Array.isArray(options)) {\n return options.map((option, i) => (\n \n -1} color=\"primary\" />\n \n \n ));\n }\n\n return options.obj.map((option, index) => (\n \n -1} color=\"primary\" />\n \n \n ));\n };\n\n return (\n \n \n ) : (\n \n )\n ) : defaultValue ? null : (\n \n )\n }\n renderValue={(selected) => {\n if (selected.length === 0) {\n return

Select an Option

;\n }\n\n if (Array.isArray(options)) {\n return selected.join(', ');\n }\n\n if (callback) {\n return callback(selected);\n }\n\n return null;\n }}\n >\n \n

Select an Option

\n
\n {renderOptions()}\n \n
\n );\n};\n\n// PropTypes\nMultiSelectBox.propTypes = {\n dataTestId: PropTypes.string,\n options: PropTypes.array,\n value: PropTypes.array,\n onChange: PropTypes.func,\n id: PropTypes.string,\n label: PropTypes.string,\n outlined: PropTypes.bool,\n defaultValue: PropTypes.bool,\n callback: PropTypes.func,\n};\n\nexport default MultiSelectBox;\n","import React, { useState, useCallback } from 'react';\nimport styled from 'styled-components';\nimport { Button, Box, Divider, CircularProgress, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { toast } from './Notification';\n\nimport { createTag } from '../services/unarmed';\nimport Tag from './Tag';\nimport { useTags } from '../hooks/useTags';\n\n/**\n * CreateAttachmentTag component for adding tags to attachments\n * @param {object} props - The properties object\n * @param {Array} props.currentTags - The current tags list\n * @param {string} props.position - The position of the tag\n * @param {string} props.size - The size of the tag (default is 'large')\n * @param {string} props.right - The right position of the tag\n * @param {function} props.onClickAdd - The function to handle adding tags\n * @param {function} props.onClickClose - The function to handle closing the tag\n */\nconst CreateAttachmentTag = ({ currentTags, position, size = 'large', right, onClickAdd, onClickClose }) => {\n /**\n * useState hook to manage tag text state\n */\n const [tagText, setTagText] = useState('');\n\n /**\n * useState hook for handling loading state\n */\n const [loading, setLoading] = useState(false);\n\n /**\n * Custom hook to get recently used tags\n */\n const [tagsRecently, onChangeSearch, loadingTags] = useTags();\n\n /**\n * Function to handle form submission\n */\n const handleOnSubmit = useCallback(() => {\n if (tagText !== '') {\n setLoading(true);\n createTag({ name: tagText })\n .then((res) => {\n if (res.status === 200) {\n setTagText('');\n onClickAdd(res.data);\n setTimeout(() => {\n setLoading(false);\n onClickClose();\n }, 500);\n } else {\n setLoading(false);\n }\n })\n .catch((error) => {\n setLoading(false);\n const message =\n error?.response?.data?.error?.details[0]?.message ||\n error?.response?.data?.message ||\n 'Something went wrong';\n\n toast.error(message);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagText, onClickAdd]);\n\n /**\n * Object containing sizes for different size options\n */\n const sizes = {\n small: {\n width: 250,\n height: 250,\n },\n medium: {\n width: 275,\n height: 300,\n },\n large: {\n width: 325,\n height: 350,\n },\n };\n\n /**\n * Interval duration for typing indication\n */\n const doneTypingInterval = 750;\n\n let interval;\n\n const mostUsedTags = tagsRecently\n .filter((tagRecently) => !currentTags.find((currentTag) => currentTag?._id === tagRecently?._id))\n .slice(0, 5);\n\n return (\n <>\n \n \n \n {\n setTagText(e.target.value);\n }}\n maxLength={30}\n onKeyUp={() => {\n clearTimeout(interval);\n\n interval = setTimeout(() => onChangeSearch(tagText), doneTypingInterval);\n }}\n onKeyDown={() => {\n clearTimeout(interval);\n }}\n onKeyPress={(event) => {\n if (event.key === 'Enter') {\n handleOnSubmit();\n }\n }}\n />\n \n \n \n
\n {tagText === '' ? 'Most used tags' : 'Search results'}\n
\n {tagText !== '' && tagsRecently.length === 0 && (\n No tags with the name \"{tagText}\" were found\n )}\n {tagText === '' && mostUsedTags.length === 0 && !loadingTags && (\n No tags available\n )}\n {mostUsedTags.map((tag) => (\n \n {\n onClickAdd(tag);\n onClickClose();\n }}\n />\n \n ))}\n
\n \n \n \n \n {loading ? (\n \n ) : (\n \n )}\n \n \n
\n \n );\n};\n\nCreateAttachmentTag.propTypes = {\n size: PropTypes.string,\n right: PropTypes.number.isRequired,\n currentTags: PropTypes.array.isRequired,\n position: PropTypes.string.isRequired,\n onClickAdd: PropTypes.func.isRequired,\n onClickClose: PropTypes.func.isRequired,\n};\n\nconst Backdrop = styled.div`\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: transparent;\n z-index: 99990;\n`;\n\nconst Container = styled.div`\n background-color: #fff;\n position: absolute;\n padding: 16px;\n border-radius: 8px;\n box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.22);\n z-index: 99991;\n display: flex;\n flex-direction: column;\n align-items: space-between;\n justify-content: space-between;\n right: ${(props) => `${props.right}px`};\n\n ${(props) =>\n props.position === 'top'\n ? `\n top: 0px;\n `\n : `\n bottom: 0px;\n `}\n`;\n\nconst Input = styled.input`\n font-family: Roboto;\n font-size: 14px;\n color: rgba(87, 90, 102, 1);\n margin-bottom: 8px;\n border: 0;\n width: 100%;\n\n &:focus-visible,\n &:focus,\n &:active {\n border: 0px;\n }\n`;\n\nconst TextRecently = styled.p`\n font-family: Roboto;\n font-size: 14px;\n font-weight: 400;\n line-height: 24px;\n letter-spacing: 0em;\n text-align: left;\n margin-bottom: 4px;\n color: rgba(136, 141, 160, 1);\n`;\n\nconst Scroll = styled.div`\n overflow-x: hidden;\n overflow-y: scroll;\n display: flex;\n height: 70%;\n flex-direction: column;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nexport default CreateAttachmentTag;\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Tag from './Tag';\nimport CreateAttachmentTag from './CreateAttachmentTag';\nimport { useTagsProvider } from '../provider/TagsProvider';\n\n/**\n * Props for the Tags component.\n *\n * @typedef {Object} TagsProps\n * @property {Array} defaultTags - The default tags to display.\n * @property {String} fileId - The ID of the file associated with the tags.\n * @property {Boolean} [withAddBtn=false] - Determines if the add button should be displayed.\n * @property {Boolean} [canRemove=false] - Determines if the remove button should be displayed.\n * @property {Number} [rightCreateTag=-235] - The right position of the create tag button.\n * @property {String} [positionCreateTag='top'] - The position of the create tag button relative to the tags.\n * @property {String} [sizeCreateTag='large'] - The size of the create tag button.\n * @property {Function} [onClickAddTag=()=>{}] - The function to be called when the add button is clicked.\n * @property {Function} [onClickRemove=()=>{}] - The function to be called when the remove button is clicked.\n */\n\n/**\n * Renders a Tags component.\n *\n * @param {TagsProps} props - The props for the Tags component.\n * @returns {React.Node} The rendered component.\n */\nconst Tags = ({\n defaultTags,\n fileId,\n withAddBtn = false,\n canRemove = false,\n rightCreateTag = -235,\n positionCreateTag = 'top',\n sizeCreateTag = 'large',\n onClickAddTag = () => {},\n onClickRemove = () => {},\n autoUpdateTags = true,\n}) => {\n const [tags, setTags] = useState([]);\n const [tagsLoaded, setTagsLoaded] = useState(false);\n const [addingTag, setAddingTag] = useState(false);\n\n const { tagsChanged, setTagsChanged } = useTagsProvider();\n\n /**\n * Checks if any tags have been changed and updates the state accordingly.\n */\n const checkIfTagsChanged = useCallback(() => {\n if (fileId && autoUpdateTags) {\n tagsChanged.forEach((tagData) => {\n const tagExits = tags.find((_tag) => _tag?._id === tagData?.tag?._id);\n\n if (!tagExits && tagData.status === 'added' && tagData.fileId === fileId) {\n setTags((_tags) => [..._tags, tagData.tag]);\n }\n\n if (tagExits && tagData.status === 'removed' && tagData.fileId === fileId) {\n setTags((_tags) => [..._tags.filter((_tag) => _tag?._id !== tagData.tag?._id)]);\n }\n });\n }\n }, [tags, tagsChanged, autoUpdateTags, fileId]);\n\n useEffect(() => {\n if (defaultTags.length > 0) {\n setTags(defaultTags.filter((tag) => typeof tag !== 'string' && tag));\n }\n\n setTimeout(() => {\n setTagsLoaded(true);\n }, 100);\n }, [defaultTags]);\n\n useEffect(() => {\n if (tagsLoaded) {\n checkIfTagsChanged();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagsLoaded, tags]);\n\n /**\n * Returns a sorted array of unique tags.\n *\n * @returns {Array} The sorted array of tags.\n */\n const tagsSorted = useMemo(() => {\n const uniqueTags = new Set();\n\n tags.forEach((tag) => {\n uniqueTags.add(tag?._id);\n });\n\n return Array.from(uniqueTags).map((uniqueTag) => tags.find((_tag) => _tag?._id === uniqueTag));\n }, [tags]);\n\n return (\n \n {tagsSorted.map((tag) => (\n {\n setTags((_tags) => [..._tags.filter((_tag) => _tag?._id !== tag?._id)]);\n onClickRemove(tag);\n\n // check if was added\n let wasAdded = false;\n\n tagsChanged.forEach((tagChanged) => {\n if (fileId === tagChanged.fileId && tagChanged.tag?._id === tag?._id && tagChanged.status === 'added') {\n wasAdded = true;\n }\n });\n\n if (!wasAdded) {\n setTagsChanged((_tags) => [..._tags, { fileId, status: 'removed', tag }]);\n } else {\n setTagsChanged((_tags) => [\n ..._tags.filter(\n (_tagChanged) =>\n _tagChanged.fileId !== fileId &&\n _tagChanged?.tag?._id !== tag?._id &&\n _tagChanged.status === 'added'\n ),\n ]);\n }\n }}\n />\n ))}\n {withAddBtn && (\n {\n setAddingTag(true);\n }}\n >\n Add tag\n \n )}\n {addingTag && (\n {\n onClickAddTag(tag);\n setTags((_tags) => [..._tags, tag]);\n\n // check if was removed\n let wasRemoved = false;\n\n tagsChanged.forEach((tagChanged) => {\n if (fileId === tagChanged.fileId && tagChanged.tag?._id === tag?._id && tagChanged.status === 'removed') {\n wasRemoved = true;\n }\n });\n\n if (!wasRemoved) {\n setTagsChanged((_tags) => [..._tags, { fileId, status: 'added', tag }]);\n } else {\n setTagsChanged((_tags) => [\n ..._tags.filter(\n (_tagChanged) =>\n _tagChanged.fileId !== fileId &&\n _tagChanged?.tag?._id !== tag?._id &&\n _tagChanged.status === 'removed'\n ),\n ]);\n }\n }}\n onClickClose={() => setAddingTag(false)}\n />\n )}\n \n );\n};\n\nTags.propTypes = {\n fileId: PropTypes.string,\n defaultTags: PropTypes.array.isRequired,\n canRemove: PropTypes.bool,\n withAddBtn: PropTypes.bool,\n rightCreateTag: PropTypes.number,\n positionCreateTag: PropTypes.string,\n sizeCreateTag: PropTypes.string,\n autoUpdateTags: PropTypes.bool,\n onClickAddTag: PropTypes.func,\n onClickRemove: PropTypes.func,\n};\n\nconst Container = styled.div`\n display: inline-flex;\n max-width: 100%;\n flex-wrap: wrap;\n margin-top: 8px;\n margin-bottom: 8px;\n position: relative;\n`;\n\nconst Add = styled.span`\n height: 24px;\n background-color: ${(props) => (props.save ? '#F2F8FF' : '#f9fafb')};\n color: ${(props) => (props.save ? '#408BEC' : '#c9c9c9')};\n border-width: 1px;\n border-style: dashed;\n border-color: ${(props) => (props.save ? '#408BEC' : '#c9c9c9')};\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 14px;\n padding: 2px 8px;\n border-radius: 4px;\n margin-right: 4px;\n cursor: pointer;\n`;\n\nexport default Tags;\n","import { ClickAwayListener, Grow, MenuList, Paper, Popper } from '@material-ui/core';\nimport React from 'react';\n\nexport default function PopperPortal({ open, setOpen, children, left = 32, top = 50, right }) {\n const anchorRef = React.useRef(null);\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n setOpen(false);\n }\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return;\n }\n\n setOpen(false);\n };\n return (\n \n {({ TransitionProps, placement }) => (\n \n \n \n \n {children}\n \n \n \n \n )}\n \n );\n}\n","import React from 'react';\nimport { Box, CircularProgress, Grid, makeStyles } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Carousel from 'react-material-ui-carousel';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport ReactPlayer from 'react-player';\nimport { toast } from './Notification';\nimport PropTypes from 'prop-types';\n\nimport { downloadImage } from '../utils/libs';\nimport ModalPopUp from './ModaPopupl';\nimport Tags from './Tags';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 4,\n boxShadow: theme.shadows[5],\n padding: theme.spacing(4, 4, 4),\n },\n imgModal: {\n objectFit: 'contain',\n width: '100%',\n maxHeight: 360,\n borderRadius: 4,\n border: '1px solid rgba(0, 0, 0, 0.1)',\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n fileName: {\n textAlign: 'left',\n fontSize: 20,\n fontWeight: 600,\n },\n}));\n\nexport default function CarouselModal({\n open,\n setOpen,\n filesSelected,\n loadingOpenFiles,\n setLoadingOpenFiles,\n onDownloadImage,\n}) {\n const classes = useStyles();\n const downloadAsset = async (file, index) => {\n setLoadingOpenFiles((prevState) => {\n const stateCopy = [...prevState];\n stateCopy[index].loading = true;\n return stateCopy;\n });\n if (onDownloadImage) {\n await onDownloadImage(file);\n } else {\n await downloadImage(file.download_url, file.name).catch((err) => {\n toast.error('Something went wrong downloading the file.');\n });\n }\n\n setLoadingOpenFiles((prevState) => {\n const stateCopy = [...prevState];\n stateCopy[index].loading = false;\n return stateCopy;\n });\n };\n\n return (\n \n \n \n \n {filesSelected.files.map((file, index) => {\n if (file.mimetype.includes('image')) {\n return (\n \n \n \n
\n {file.name}\n
\n
\n \n \n {loadingOpenFiles[index]?.loading ? (\n \n ) : !file.archivedDate ? (\n downloadAsset(file, index)}\n style={{ cursor: 'pointer' }}\n htmlColor=\"rgba(48, 48, 48, 1)\"\n data-testid={`download-icon-${index}`}\n />\n ) : null}\n setOpen(false)}\n htmlColor=\"rgba(48, 48, 48, 1)\"\n data-testid=\"close-icon\"\n />\n \n \n
\n \n \n \n \n
\n );\n }\n\n if (file.mimetype.includes('video') || file.mimetype.includes('audio')) {\n return (\n \n \n \n
\n {file.name}\n
\n
\n \n \n {loadingOpenFiles[index]?.loading ? (\n \n ) : (\n downloadAsset(file, index)}\n style={{ cursor: 'pointer' }}\n htmlColor=\"rgba(48, 48, 48, 1)\"\n data-testid={`download-icon-${index}`}\n />\n )}\n setOpen(false)}\n htmlColor=\"rgba(48, 48, 48, 1)\"\n data-testid=\"close-icon\"\n />\n \n \n
\n \n \n \n \n
\n );\n }\n\n return null;\n })}\n \n \n \n
\n );\n}\n\nCarouselModal.propTypes = {\n open: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n onDownloadImage: PropTypes.func.isRequired,\n filesSelected: PropTypes.shape({\n length: PropTypes.number.isRequired,\n selectedFileIndex: PropTypes.number.isRequired,\n files: PropTypes.arrayOf(\n PropTypes.shape({\n download_url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n mimetype: PropTypes.string.isRequired,\n public_url: PropTypes.string.isRequired,\n tags: PropTypes.arrayOf(PropTypes.string),\n })\n ),\n }).isRequired,\n loadingOpenFiles: PropTypes.arrayOf(PropTypes.object).isRequired,\n setLoadingOpenFiles: PropTypes.func.isRequired,\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAtCAYAAADsvzj/AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMqADAAQAAAABAAAALQAAAAC0s43CAAADMklEQVRoBe1YXXLaMBBeGfruI9ATlJ6g9ARg+tZJOuQETU5QcoK0J4BpMp2+FJwTBG7gnqDuDehzAfVbYQdjZFliyJDpSDOMtdrfb2WtWBP54TPgM+Az4DNwggyIQ3xOPsiuWFM715UBJf2v4j6nbZ/HssP+nIBM38u2bNAUei1WLo1USLqK7kRcWt8jp2eyJwXdgNHaYxKlYkVR9E0kGl7lkjWQzDmDMA5JdPHuVoyrhH6cywGcjqr4+TqS8hZJmeV03dMKyHQgQ7miXzAW1hlkflUQSEYHO/FgYwMyC9Ggl9FYLGzkAxshuaQh5KxAsD0Ee8nP8sBufSqvGegw82sQ2bKsgOAkdbcqVrMu72JRUtGCOsW12rmDXzsg+kNpjmO5rWpKsEybtXNuK5/UPW2B1Nk5Od8KiJT0xznSJiU7OktKd2gLAn5/W4gpESsgKG2xrcFMbl6uNtF3kZKkny524HdmK28HZFO1bG1y+R3qhBGYtprpZPktEA5+rYBwNlE6L3QO99Ykfam6yNQ6+Hs6ugWUcLWLOp5mzQoI6/FtjUxHVeeF1wH2qn8njFlnPsuZ7LAf078DDQ7cEI6D74P1inpw1oF2C+oLBDYLGjQunwuT6czOAAF0IBfi/KS4SNlO7GLH5MPzfAZ8BrYZsD7s3FRRQG+gGuJwd7YmNjMc1CTYHNikfyvmZb6OVj0O0cciDwHNQC9oTXOX5qoSCFcV+Ze6CLAn8Cs6s5pLmsF4TEu6N90HdY0WynSMChmLF7Bj6E32gHDzs0aWDgq+CuEG1HXVRQkwlwiEW1/jYFC4+LQX7iMQVdeXNDoqgHJYDGiNvl7Tj0/OJf+fs+t72E4TfX1hhwCQSH1UQCv7pCDYERorfLx44NeJyeLAB4dhkTbO2Q7iVec2ExTqLDj040YHDkwE/rq8M5MzmQDsKwczj319gL74MxRDB+WjiOJb2KhsCNWQXy+XwX09x4+CKlRJdVE+jqygNr8NO8YEyq7ryOLnM9Jy1T2afKmPxz2UHGBbxa8O+wHKz07FA3luW/Lf7EgT1/71qbKLjwvpjm/Qsnm6eHZi8YTPgM+Az8CTZuAfZ4wcisX4jAYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAPKADAAQAAAABAAAAPAAAAACoF8tmAAAFDklEQVRoBe1aW2hcRRj+5uxuKiI0iqU2eVFrrXgBFcHSRKsRq6Ap9cGIplQbY7Jpd5PiQ8WCsKIgPqWyaeLu0qZawUt9EBREoTQ1aQVfKlioYlsEQZuqVUFUkj1n/Ge3i7vnzDk75+ycQGEGls389++fmX8uG8A0kwGTAZMBkwGTAZMBkwGTgXgywOIxe9Hqm5m7kMBmcHTRZw0Y6wTnZ8HwHTg7AidxCCN7fog1BpfxeABPb78Gi4k3yFefy5+s+yqG8i/JGHHQ9AMu7rgFYJ/Tp0M5YI45tCV6sW3PH8o6EQWtiHpytVLmOpqqx0KBFZYYurFQPowjuaTcsD6qXsAO+5TW6fJI4TF2J77/NR9JN4SSPsDF7Cs0UmtD+JaIsjREoYux6QGcy1lUfZ/XEifDLi12fIzoAdzxWw9N5ct9fIQlb4RIYExNk2F+u7b4RA3oPN/i0vCPRhNgdrW/iwgcbl0bQUtJRQ9gDlvJm6oQs9pURcPK6QHM+LmwjgPlefmnQH4LTD2AuXOihRjcqgtoX3bSTdTV1wN4eHKOtqU/9QTFD6Nv/B89trxW9AAWdi2Me81HobDXo2ip6ui9PBQyp2g/vknVuURuP92cnpXQtZH0jbAIKWU/QlP7r0jRcZxA+7mRSLohlPQCHpg6C/AN5H8+RAxC9DhdD3vQd2ghpF5ocb1TuuZ+X6YDNhNruvkDAOcvY3giV1ON+zsewLWoS9l19LSzmbrraeRXV+7JHGfA+Cm6N8/QEvgAA5M/1sTNt8lAQAZKYytRzL4QIFFhJZoJXBJ8Adaxj9OW+Dgevbsdn3z1mV/clz7g/8FeXwHJsC4IdLxFa3pne+Ulct/YWhqBVdWsMxuL5ZPYPvW73ygo0yvPwdYsFcMbvDrObgztfc1N1/tKKJ5oHXYHHTNvpirci0X7VlpXgO2Q37rcJpPbiHDAHUyovhjZBfsYTePqyDYqzyPpvN9IqvbqopCxFWiF0ftpy9lEkr2EaXVTDYan8Fz+3aZyQQLuadwoS2DL61E5BDUyRC/aCO/PrkCZv0h77DO0p17pNetD4fwxDE185MNVI7cAVjgIB7gwtBysbTeBHaUpeln9LG0arYNNSE98LJUTdoeLza+XhZ2rqBbMSqcxx89k+x6/ka35VT9Ll7JbgbYzBJSeUQlsuPYg0nk52GK2H1h2GoXMbYEmxciiPOezbOaRKndjOE/xBTe1NVzIHKCsPh1sSsbl/1JyHqYr31EZlwpaPy2LtwmESPwFuml10bn6W49si9O43l7zES5kdkUCy/nfcHiPIlgR01Xk5wsa6cb7tEawwkkw4MkRUZCi/ZTJMIv03i+FE0+rPrSPXRzZevYKAj2D4o4bK8SpdCccx2fN8vOw7O5ma7beuPg7GHAy8SQFcIVbSa3PHqLRek8qm8s5SCU20nb2tYS/Etwi0NkNsFJHKSlrPDKiQCWcLgxOnvbwmhCCATOo/8Yrc8TYEwT6oIxVOYFZqQdo3X7j4TOIU9lMYIGKAFb4CQbs0D8stNoY20Kj9Q4VJ2+BHBy/gETqPgLtLVRyv4GHCrlKIzUYcKNsK71+lLIHfUGn2L0KoFsGKwAsFWDhyx/0QP4XBIPWAnapAauBBncXIm1gRQDedSWotVYYHaSz8pZaV9u3w9+iY+a01F7jlU8rWOEvGLA0oiUgVkF/iKS9New+uwTRGRcmAyYDJgMmAyYDJgMmA2oZ+A++xn0VLtbU9AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAA2CAYAAACMRWrdAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAANqADAAQAAAABAAAANgAAAADQiwyeAAAEJklEQVRoBe1aXVLbMBDe9XTIY+kJyA2angD3BOQGwBvwUnMAwIEDkL4Ab4QTEE5QOAH0BE1vEN4KM3j7SU48/pFt2SQmMNEMRFrtSvtp9bdrES3T+xoBnre60tvdJIfbJOKirzExP9BLcMX+xQjluaW5ARN/r0Ms1wDSNmsvfT483zfXvZ46F2AhKPpFTKslKg748Gy7hKdWtVNLqkxIW6oUlGplS453vbLm6tRXtpj4O22smbXczphdEvKz9XIHGizIXxN1otaddBO0VAFTVslWStbAJtPrEtOrU6kHkkcK2GX/7EHJSW+vjzZ+VGtDS/YpaPXY749tZK2morYS6zVTEZRCQsMpKK2QrPg2imV52CPn6TJLN1OsgBE7apRXzU2UUTkl9y9VLpOP13NXTnbcOCUvbweMaD2vgVI604ac7HYVn/jeKtbnaalMEUPguEXV07pP00zhb9paIlfkyCCSEe5gU8hXWPgaB/WI+LkNvkgsm5Hf2Ei8BF24n9hwWB/0CRZTwQ5YRpJHfHB+OyVjesAcRQqDk7k95S/4HfPBxW28HsfBOF62zdtORdv2FoZvCWxhTGGpyIe1WM3NIzVsL84Yu+Rdilq9KHBpZpRmAmxys3BnpNNMmvmwU3EJbCbzo8FG3oPFhrjWVN6YFh4YnEwVG3EpWPkCg2/j6ma1c85kV2xihk0czIFtXwtvMVsgab6FBIYb/boORaS1rVBeiKmovWJxNhFG6EaeOoZcjvfwT+DH0RB+2k3apSnC+abAtFUcOcWG4GolTS5d6Md54PFgySEFsm8TRX6zqajDBSpARBNQRcMf1TEs6tzbTNM3AaZBIVwQTbtIcYuMClM4VAqucWB6tAMuCKOpuEfwXf8V4YS1dXAoh6dxYHBvTksspeMepRuFshw/9XNwwagNpjAmWGVNlSjHvKmDuQa2RoEh1L1l0OF1JHaMbTYLjHjjdSiM0sY2mwWWDrwa9axIzPlI0hgw25h7EhZ2yJqpMWCkAj42SWgt2saDlos7VS1wjQFLfEoqAqiuUPyszyjtqtQE1xiwCZa/RZiiOrVurMGZLdosMHwEjJQvy5jAqc+62TTIkqjZA5qcwB6Y0jYGjpxn840lEGObjVpMX5OEbkwjnEsLwf1B/VaGR+hnngtTzx9j7FzwcjMdGQiZL/4SePhW5sIcnw3sZpLx/MPakpZvFlDGtkjwZEdgW7NgNbFs45HKIF4ROph0H6dVyydfIphk7aaiyK1J2IomchSdSxMBvfUH9A1n1KNVGwkmWCr2vCJRFStYAmt59ZRAT+pcUgs/lUJw0kFM4ypVlV/EmsJbj+jNSD6j5VRUDehRV/4PI+BSZX1Mexfq8dGZPy3Gf8N3JM5W+EIn9XInvHkMEOvAe5GLUVxumV+OwHIEliMw8xH4D0aAUC+3V0xXAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAA1CAYAAADh5qNwAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAANaADAAQAAAABAAAANQAAAADEsS3KAAADiklEQVRoBe1Y3VEbMRDeVcjAWyjBHcQdcIYCMC8EnoIrCKkAUwFJBcCTHV4gBeAzHTgVxOnAeYuT4ZRPOk62zjrdYc5hyEgznpO0q/35tKuVTBRaQCAgEBAICAQEAgIBgYBAQOAFI8ArtT3uRZTwe2JqGD1MN0Trl9Tam5i5mjurcSq+3qRkesZMRy57JdGEmDvUegcH62+ifpGQKKfXRQ4pfUByk6W8pvhLexX663fqtn8Mo6NKxkp5TmpXa271O8X0oaqNascQpkdV+avy1etUfNWEoY2qyjUfy9pDsNypwdUWxb2Kht7XHkoWQBVtWbMWZYP09DpBsh8TJUh8Jjnoj4klTqzDYcb2T75L2OLeqWR6njo0M1uFFUuOCSE2m833Nkb5mdKxZP8ary2og4626BQKJhxqO3jTKZmcFdJQUCXJy0K6iyDEhWtaz6kc9drCTlsWnUooKlQCAnbMSwdDV0r66ZOR0cD3mVr7xTuV3BeDm9rSdJWERacyjb6vr7a0DsckRFTmGG4VX2nn4NinZlnaolNCFCMHLTDmW+m9TaEvZNMVilLKH/h1aPvAuwvaoTJbIMtlC6LJ0Qb9EQhvHRQchLz36Dubutjq9mriDTeXwkFvyMRbLlKRLe4jndcRPr9u5oU9hFOXtpe4hD6lDPBG+7G2uHcqgyV9OjRJ8Bj1aoQaha+nqVyT0y3cwJskZQROdcPYzK9ACI8Qx8g9GhKJu0q7p0pJkkRVbPE7lbemaDzo78LII+/xW7QW83AShZ0vANxlKXAeORmp2CmN+h87r/i1fUgo9FC3ICTKBD71izzpImdPLTlaD72x5rb376zx3GDmlD6mf+9SgrBBwQPBCht1atHOYcOsTR2K83yG/oQO8vcCx33HiLjtIQr43IwfOnqHJV7SQmCHZ/UudSrGYw1vG5+BUPQRij4ZwYP+d/A3zLjmDkA8BYhdI/a2P0F427tliAhh7dx6Rx3xQt3l1CvU55BeK8TQyFDIrdAhrYfx38Z8Y3kzP8z3dT7jxa3mBXKim2dwjue2F0nddvLUOKlBM/UNgssuvmDBmgjPpEigs1tmi84ni0la+WaR6hwk1DDihByZvq+Du+viNcm1gHHkPk9rLKO2mlPLSH7GNf+lU2v66CxHdWyxoI7gBj605lYx0NcoI3hcyVZ7jVkcOgGBgEBAICAQEAgIBAQCAgGBF4PAX6g9Qf4LFhJHAAAAAElFTkSuQmCC\"","import { Box, makeStyles, Tooltip, Typography } from '@material-ui/core';\nimport React from 'react';\nimport formatTxt from '../utils/formatText';\nimport { useHistory } from 'react-router-dom';\n\nconst useStyles = makeStyles(() => ({\n code: {\n color: '#3B70FE',\n marginRight: 10,\n minWidth: 120,\n fontWeight: 600,\n fontSize: 13,\n },\n label: {\n textTransform: 'capitalize',\n color: 'rgb(21,21,21)',\n marginRight: 10,\n fontSize: 13,\n minWidth: 'fit-content',\n fontWeight: 500,\n },\n value: {\n color: 'rgb(131,131,131)',\n marginRight: 10,\n fontSize: 13,\n },\n container: {\n cursor: 'pointer',\n '&:hover': {\n transition: 'ease .3s all',\n background: '#F9FAFD',\n },\n },\n}));\n\nconst SearchedDropdown = ({ searchResult = [], onClose, loading }) => {\n const classes = useStyles();\n const history = useHistory();\n\n const changeTextFromBE = (category) => {\n switch (category) {\n case 'OFFICERSINFO': {\n return 'POLICE';\n }\n case 'OTHERS': {\n return 'WITNESSES';\n }\n\n case 'officersInfo': {\n return 'Officer';\n }\n case 'firstName:': {\n return 'First Name';\n }\n case 'lastName:': {\n return 'Last Name';\n }\n case 'addressLine1:': {\n return 'Address Line 1';\n }\n case 'primaryLanguage:': {\n return 'Primary Language';\n }\n case 'addressLine2:': {\n return 'Address Line 2';\n }\n case 'state.name:': {\n return 'State ';\n }\n case 'city.name:': {\n return 'City ';\n }\n\n case 'others': {\n return 'Witness';\n }\n case 'caseNumber:': {\n return 'Case Number';\n }\n\n case 'CASENUMBER': {\n return 'CASE NUMBER';\n }\n\n case 'RECEIVED': {\n return 'Received';\n }\n case 'IN_PROGRESS': {\n return 'In Progress';\n }\n case 'CLOSED': {\n return 'In Closed';\n }\n case 'CODE': {\n return 'TRACKING NUMBER';\n }\n case 'code:': {\n return 'Tracking Number';\n }\n\n default: {\n return category;\n }\n }\n };\n\n return (\n \n {searchResult && (\n \n {Object.keys(searchResult).length > 0 ? (\n Object.keys(searchResult).map((category, index) => (\n \n \n {changeTextFromBE(searchResult[category].category)}\n \n {searchResult[category].search.map((s, i) => {\n const splitedValues = s.split(';');\n return (\n {\n onClose();\n history.push(`/case/${splitedValues[0]}`);\n }}\n >\n \n {splitedValues[0]}{' '}\n \n \n {splitedValues[1].split(' ').length === 1\n ? changeTextFromBE(splitedValues[1].split(' ')[0])\n : ` ${changeTextFromBE(\n splitedValues[1].split(' ')[0]\n )} \n ${changeTextFromBE(splitedValues[1].split(' ')[1])}`}\n \n \n \n {formatTxt(changeTextFromBE(splitedValues[2]), 23)}\n \n \n \n );\n })}\n \n ))\n ) : (\n \n No results found\n \n )}\n \n )}\n\n {/* \n \n \n See all results for Jose\n \n */}\n \n );\n};\n\nexport default SearchedDropdown;\n","import { useState } from 'react';\nimport { getNotificationCount } from '../services/unarmed';\n\nconst useNotifications = () => {\n const [notifications, setNotifications] = useState([]);\n const [notificationCount, setNotificationCount] = useState(0);\n\n const getNotificationsCount = async () => {\n try {\n const { data } = await getNotificationCount();\n setNotificationCount(data.count);\n } catch (error) {\n console.log(error);\n }\n };\n\n const resetNotificationsCount = () => {\n setNotificationCount(0);\n };\n\n return {\n notifications,\n getNotificationsCount,\n notificationCount,\n resetNotificationsCount,\n };\n};\n\nexport default useNotifications;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport Drawer from '@material-ui/core/Drawer';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport List from '@material-ui/core/List';\nimport Typography from '@material-ui/core/Typography';\nimport Divider from '@material-ui/core/Divider';\nimport IconButton from '@material-ui/core/IconButton';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport DataUsageIcon from '@material-ui/icons/DataUsage';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport PersonIcon from '@material-ui/icons/Person';\nimport NotificationsIcon from '@material-ui/icons/Notifications';\nimport StorageIcon from '@material-ui/icons/Storage';\nimport { Avatar, Badge, Box, CircularProgress, ListItem, ListItemIcon, ListItemText } from '@material-ui/core';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport SearchIcon from '@material-ui/icons/Search';\nimport RecordVoiceOverIcon from '@material-ui/icons/RecordVoiceOver';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport HistoryIcon from '@material-ui/icons/History';\nimport SecurityIcon from '@material-ui/icons/Security';\nimport PeopleIcon from '@material-ui/icons/People';\nimport SaveAltIcon from '@material-ui/icons/SaveAlt';\nimport { Equalizer } from '@material-ui/icons';\nimport { OutLineInput } from '../pages/CaseDetails/UpdateCase';\nimport SearchedDropdown from './SearchedDropdown';\nimport useInput from '../hooks/useInput';\nimport { onSearchGeneral } from '../services/unarmed';\nimport oversignWhite from '../assets/oversignWhite.png';\nimport oversignBlack from '../assets/oversignBlack.png';\nimport { Context } from '../Context';\nimport { logEvent } from '../services/firebase';\nimport useNotifications from '../hooks/useNotifications';\nimport { getDocumentTitle } from '../utils';\n\nconst drawerWidth = 240;\n\nconst colors = {\n dev: {\n bg: '#364F74',\n text: '#fff',\n opacity: '#FFFFFF33',\n logo: oversignWhite,\n },\n test: {\n bg: '#D5D9DC ',\n text: '#000',\n opacity: 'rgba(0, 0, 0, .25)',\n logo: oversignBlack,\n },\n prod: {\n bg: '#364F74',\n text: '#fff',\n opacity: '#FFFFFF33',\n logo: oversignWhite,\n },\n};\n\nconst getEnvColors = () => {\n if (process.env.REACT_APP_DEVELOPMENT_ENV && colors[process.env.REACT_APP_DEVELOPMENT_ENV]) {\n return colors[process.env.REACT_APP_DEVELOPMENT_ENV];\n }\n\n return {\n bg: '#364F74',\n text: '#fff',\n opacity: '#FFFFFF33',\n logo: oversignWhite,\n };\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n toolbar: {\n paddingRight: 24,\n },\n toolbarIcon: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: '0 8px',\n ...theme.mixins.toolbar,\n },\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: `calc(100% - 72px)`,\n background: '#fff',\n boxShadow: '0 1px 0px rgba(0,0,0, .2)',\n },\n appBarShift: {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n boxShadow: '0 1px 0px rgba(0,0,0, .2)',\n },\n drawerPaper: {\n position: 'relative',\n whiteSpace: 'nowrap',\n background: getEnvColors().bg,\n width: drawerWidth,\n minHeight: '111vh',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n drawerPaperClose: {\n overflowX: 'hidden',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: theme.spacing(7),\n [theme.breakpoints.up('sm')]: {\n width: theme.spacing(9),\n },\n },\n content: {\n flexGrow: 1,\n minHeight: '116.1vh',\n overflow: 'auto',\n background: '#F9FAFD',\n },\n container: {\n width: '100%',\n height: 'calc(116.1vh - 64px)',\n },\n logoOrganization: {\n width: '100%',\n maxHeight: '70px',\n objectFit: 'contain',\n padding: 10,\n objectPosition: 'center',\n },\n}));\n\nconst validateRoutes = () => {\n for (const rute of ['/case-exported', '/mfa']) {\n if (window.location.pathname.includes(rute)) {\n return true;\n }\n }\n\n return false;\n};\n\nexport default function Layout({ children, allowScroll = true }) {\n const { removeAuth, myUser, active, setActive, organization } = useContext(Context);\n const classes = useStyles();\n const [open, setOpen] = useState(true);\n const [openSearch, setOpenSearch] = useState(false);\n const search = useInput('');\n const [searchResult, setSearchResult] = useState(null);\n const [loading, setLoading] = useState(false);\n const anchorRef = useRef(null);\n const [openSettings, setOpenSettings] = useState(false);\n const searchTimeout = useRef(null);\n const { notificationCount, getNotificationsCount, resetNotificationsCount } = useNotifications();\n\n const [keys, setKeys] = useState([]);\n const [permissions, setPermissions] = useState(null);\n const history = useHistory();\n const location = useLocation();\n\n useEffect(() => {\n if (organization) {\n const pageTitle = getDocumentTitle(organization.name);\n document.title = `Sivil | ${pageTitle}`;\n\n logEvent('page_view', {\n page_title: pageTitle,\n page_location: window.location.href,\n page_path: window.location.pathname,\n });\n }\n }, [organization, location]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n useEffect(() => {\n if (organization && myUser) {\n getNotificationsCount();\n setKeys(() => {\n const keysCopy = [...(organization && myUser && Object.keys(organization?.permissions?.[myUser?.role]))];\n\n const keysSort = [\n 'dashboard',\n 'cases',\n 'contacts',\n 'allegations',\n 'officers',\n 'projects',\n 'data',\n 'insights',\n 'users',\n 'forms',\n 'usage',\n 'import',\n 'activity',\n ];\n\n return keysCopy.sort((x, y) => keysSort.indexOf(x) - keysSort.indexOf(y));\n });\n const permissionsData = organization && myUser && organization?.permissions?.[myUser?.role];\n setPermissions(permissionsData);\n }\n }, [organization, myUser]);\n\n const onRenderModuleIcon = (module) => {\n const color = getEnvColors().text;\n\n const featureStatus = {\n insights: organization?.features?.dashboard?.insights?.enabled,\n data: organization?.features?.dashboard?.data?.enabled,\n };\n\n const icons = {\n dashboard: ,\n cases: ,\n allegations: ,\n users: ,\n activity: ,\n officers: ,\n import: ,\n data: featureStatus.data ? : null,\n insights: featureStatus.insights ? : null,\n forms: ,\n projects: ,\n contacts: ,\n };\n\n return icons[module] || null;\n };\n\n const handleDrawerOpen = () => {\n setOpen(true);\n };\n\n const handleDrawerClose = () => {\n setOpen(false);\n };\n\n const onSearch = (e) => {\n const { value } = e.target;\n search.setValue(value);\n if (!value) {\n setSearchResult(null);\n return;\n }\n setLoading(true);\n clearTimeout(searchTimeout.current);\n searchTimeout.current = setTimeout(async () => {\n try {\n const { data } = await onSearchGeneral(encodeURIComponent(value));\n\n const results = {};\n\n for (const arr of data) {\n for (const category of arr.matchingFields) {\n if (!results[category.key.split('.')[0]]) {\n results[category.key.split('.')[0]] = {\n category: category.key.split('.')[0].toUpperCase(),\n search: [`${arr.code};${category.key.replace('.', ' ')}:;${category.value}`],\n };\n } else {\n results[category.key.split('.')[0]].search.push(\n `${arr.code};${category.key.replace('.', ' ')}:;${\n typeof category.value === 'object' ? category.value?.name : category.value\n }`\n );\n }\n }\n }\n setSearchResult(results);\n } catch (error) {\n console.log(error);\n } finally {\n setLoading(false);\n }\n }, 500);\n };\n\n if (validateRoutes()) {\n return <>{children};\n }\n\n return (\n
\n \n \n \n \n \n\n setOpenSearch(true)}\n value={search.value}\n onChange={onSearch}\n placeholder=\"Search cases\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n labelWidth={0}\n />\n {loading && }\n {openSearch && search.value ? (\n <>\n setOpenSearch(false)}\n position=\"absolute\"\n width=\"calc(100vw + 14%)\"\n height=\"116.1vh\"\n style={{ top: -20, left: -282, zIndex: 1 }}\n />\n setOpenSearch(false)} />\n \n ) : null}\n \n \n {\n resetNotificationsCount();\n history.push('/notifications');\n }}\n >\n \n \n \n \n {myUser && myUser.role === 'admin' && (\n <>\n {\n setActive('/settings');\n history.push('/settings');\n }}\n />\n \n )}\n {\n history.push('/profile');\n setActive('/profile');\n }}\n style={{ cursor: 'pointer' }}\n >\n {myUser?.photo ? (\n \n ) : (\n \n )}\n \n {myUser?.firstName} {myUser?.lastName}\n \n \n \n \n \n \n \n \"404\"\n \n\n \n {keys\n ?.filter((t) => !t.includes('usage' || 'permissions'))\n .filter((module) => {\n if (permissions[module] !== 0) {\n return module;\n }\n })\n .map((module, i) => {\n const icon = onRenderModuleIcon(module);\n if (!icon) return null;\n\n if (module === 'dashboard') {\n return (\n {\n setActive('/');\n history.push('/');\n logEvent('/dashboard_clicked');\n getNotificationsCount();\n }}\n selected={active === '/'}\n >\n {icon}\n \n \n );\n }\n\n if (['usage', 'activity', 'import', 'users'].includes(module) && myUser?.role !== 'admin') {\n return <> ;\n }\n\n return (\n {\n setActive(`/${module}`);\n history.push(`/${module}`);\n logEvent(`${module}_clicked`);\n getNotificationsCount();\n }}\n selected={location.pathname.includes(module)}\n >\n {icon}\n \n \n );\n })}\n \n \n \n \n removeAuth()}>\n \n {open && (\n <>\n \n Logout\n \n \n )}\n \n \n \n {open ? (\n
\n \n \n \n
\n ) : (\n \n \n \n )}\n \n
\n
\n \n {children}\n \n
\n
\n );\n}\n","import React, { useState, useRef, useEffect } from 'react';\nimport { Card, Checkbox, FormControlLabel, Button, Typography, ClickAwayListener, withStyles } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport CheckIcon from '@material-ui/icons/Check';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n dropdownCard: {\n position: 'absolute',\n top: '100%',\n left: 0,\n zIndex: 9999,\n marginTop: 4,\n width: 250,\n maxHeight: 420,\n overflowY: 'auto',\n padding: '8px 12px',\n boxSizing: 'border-box',\n scrollbarWidth: 'thin',\n scrollbarColor: '#888 transparent',\n },\n}));\n\nconst PermissionsDropdown = ({\n id,\n value,\n onChange,\n options,\n outlined,\n dataTestId,\n withColors = null,\n allowPlaceHolder = true,\n showDefaultValue = true,\n placeholderText,\n disabled,\n hidePlaceholderWhenSelectedValue,\n multiple = false,\n setRolesPermissions,\n module,\n role,\n}) => {\n const classes = useStyles();\n const anchorRef = useRef(null);\n const hiddenInputRef = useRef(null);\n\n const getWrapperStyle = () => {\n if (outlined === 'bordeless') {\n return {\n cursor: disabled ? 'not-allowed' : 'pointer',\n border: 'none',\n borderRadius: 0,\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '0 8px',\n backgroundColor: disabled ? '#f0f0f0' : '#fff',\n fontSize: 13,\n color: '#333',\n textTransform: 'capitalize',\n boxSizing: 'border-box',\n };\n }\n\n return {\n cursor: disabled ? 'not-allowed' : 'pointer',\n border: '1px solid rgba(0,0,0,0.23)',\n borderRadius: 4,\n width: '100%',\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '7px 26px 7px 12px',\n backgroundColor: disabled ? '#f0f0f0' : '#fff',\n fontSize: 13,\n color: '#333',\n textTransform: 'capitalize',\n boxSizing: 'border-box',\n };\n };\n /* eslint-disable react-hooks/rules-of-hooks */\n if (multiple) {\n const [open, setOpen] = useState(false);\n\n const initialSelected = Array.isArray(value) ? value : [];\n const [selectedValues, setSelectedValues] = useState(initialSelected);\n\n useEffect(() => {\n if (Array.isArray(options?.obj) && Array.isArray(selectedValues) && selectedValues.length > 0) {\n const disabledSelectedOptions = selectedValues.filter((val) => {\n const option = options.obj.find((opt) => opt.value === val);\n return option && option.disabled;\n });\n\n if (disabledSelectedOptions.length > 0) {\n const newSelection = selectedValues.filter((val) => !disabledSelectedOptions.includes(val));\n setSelectedValues(newSelection);\n\n if (setRolesPermissions && role && module) {\n setRolesPermissions((prev) => ({\n ...prev,\n [role]: {\n ...prev[role],\n [module]: newSelection,\n },\n }));\n }\n }\n }\n }, [options, selectedValues, setRolesPermissions, role, module]);\n\n useEffect(() => {\n if (!hiddenInputRef.current) return;\n const strValue = JSON.stringify(selectedValues);\n hiddenInputRef.current.value = strValue;\n const event = new Event('input', { bubbles: true });\n hiddenInputRef.current.dispatchEvent(event);\n }, [selectedValues]);\n\n const handleToggle = () => {\n if (!disabled) setOpen((prev) => !prev);\n };\n\n const handleClickAway = (event) => {\n if (anchorRef.current && !anchorRef.current.contains(event.target)) {\n setOpen(false);\n }\n };\n\n const handleSelectAll = (checked) => {\n if (checked && Array.isArray(options?.obj)) {\n const enabledValues = options.obj.filter((o) => !o.disabled).map((o) => o.value);\n\n setSelectedValues(enabledValues);\n setRolesPermissions((prev) => {\n return {\n ...prev,\n [role]: {\n ...prev[role],\n [module]: [...enabledValues],\n },\n };\n });\n } else {\n setSelectedValues([]);\n setRolesPermissions((prev) => {\n return {\n ...prev,\n [role]: {\n ...prev[role],\n [module]: [],\n },\n };\n });\n }\n };\n\n const handleOptionChange = (val) => {\n const option = options.obj.find((o) => o.value === val);\n if (option.disabled) return;\n\n if (selectedValues.includes(val)) {\n setSelectedValues(selectedValues.filter((v) => v !== val));\n setRolesPermissions((prev) => {\n return {\n ...prev,\n [role]: {\n ...prev[role],\n [module]: prev[role][module].filter((value) => value !== val),\n },\n };\n });\n } else {\n setSelectedValues([...selectedValues, val]);\n setRolesPermissions((prev) => {\n return {\n ...prev,\n [role]: {\n ...prev[role],\n [module]: [...prev[role][module], val],\n },\n };\n });\n }\n };\n\n const displayText = selectedValues.length === 0 ? '-' : selectedValues.join(', ');\n\n const allSelected =\n Array.isArray(options?.obj) &&\n options.obj.filter((o) => !o.disabled).length ===\n selectedValues.filter((v) => !options.obj.find((o) => o.value === v)?.disabled).length &&\n options.obj.some((o) => !o.disabled);\n\n const textSliced = displayText.length > 40;\n return (\n
\n \n
\n {displayText.slice(0, 40) + (textSliced ? '...' : '')}\n \n
\n {open && !disabled && (\n \n \n {Array.isArray(options?.obj) && options.obj.length > 0 && (\n handleSelectAll(e.target.checked)}\n />\n }\n label={Select all}\n style={{ marginLeft: 0 }}\n />\n )}\n {Array.isArray(options?.obj) &&\n options.obj.map((option, index) => (\n handleOptionChange(option.value)}\n disabled={option?.disabled}\n />\n }\n label={\n \n {option?.text}\n \n }\n style={{\n marginLeft: 0,\n paddingLeft: '20px',\n opacity: option.disabled ? 0.5 : 1,\n }}\n />\n ))}\n
\n setOpen(false)}\n style={{\n marginTop: 8,\n textTransform: 'none',\n fontSize: 13,\n padding: '4px 12px',\n }}\n >\n Done\n \n
\n
\n
\n )}\n
\n );\n }\n\n const [open, setOpen] = useState(false);\n const [singleValue, setSingleValue] = useState(value);\n\n useEffect(() => {\n if (!hiddenInputRef.current) return;\n hiddenInputRef.current.value = singleValue;\n const event = new Event('input', { bubbles: true });\n hiddenInputRef.current.dispatchEvent(event);\n }, [singleValue]);\n\n const handleToggle = () => {\n if (!disabled) setOpen((prev) => !prev);\n };\n\n const handleClickAway = (event) => {\n if (anchorRef.current && !anchorRef.current.contains(event.target)) {\n setOpen(false);\n }\n };\n\n const singleOptions = Array.isArray(options) ? options.map((o) => ({ value: o, text: o })) : options?.obj || [];\n\n let displayText = '-';\n\n if ((singleValue === null || singleValue === undefined || singleValue === '') && allowPlaceHolder) {\n displayText = placeholderText || '-';\n } else {\n const found = singleOptions.find((opt) => String(opt.value) === String(singleValue));\n displayText = found?.text || '-';\n }\n\n if (hidePlaceholderWhenSelectedValue && singleValue !== null && singleValue !== undefined && singleValue !== '') {\n const found = singleOptions.find((opt) => String(opt.value) === String(singleValue));\n displayText = found?.text || '-';\n }\n\n const handleSelectOption = (val) => {\n setSingleValue(val);\n setOpen(false);\n onChange({ target: { value: val } });\n };\n\n return (\n
\n \n\n
\n {displayText}\n \n
\n\n {open && !disabled && (\n \n \n {singleOptions.map((option, index) => {\n const isSelected = String(option.value) === String(singleValue);\n return (\n handleSelectOption(option.value)}\n >\n {option.text}\n {isSelected && }\n
\n );\n })}\n \n \n )}\n \n );\n};\n\nexport default PermissionsDropdown;\n","import React, { useContext, useEffect, useState } from 'react';\nimport {\n Box,\n Button,\n CircularProgress,\n Dialog,\n DialogContent,\n DialogTitle,\n Typography,\n TextField,\n Paper,\n makeStyles,\n Select,\n MenuItem,\n FormControl,\n InputLabel,\n Divider,\n RadioGroup,\n FormControlLabel,\n Radio,\n IconButton,\n} from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport DashButton from '../../components/DashButton';\nimport { Context } from '../../Context';\nimport useOrganization from '../../hooks/useOrganization';\nimport { onUpdateOrganization, createNewPermission, deletePermission } from '../../services/unarmed';\nimport TrashIcon from '../../assets/trash.png';\nimport PermissionsDropdown from '../../components/PermissionsDropdown';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: '#1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 10,\n },\n container: {\n padding: 20,\n width: '100%',\n },\n dialog: {\n minWidth: '750px',\n minHeight: '650px',\n },\n sectionTitle: {\n fontSize: 14,\n marginBottom: 10,\n fontWeight: 'bold',\n },\n roleRow: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 8,\n },\n radio: {\n color: '#A9A9A9',\n '&.Mui-checked': {\n color: '#1F63FF',\n },\n },\n headerCell: {\n position: 'relative',\n '&:hover $trashIconButton': {\n opacity: 1,\n },\n },\n trashIconButton: {\n opacity: 0,\n transition: 'opacity 0.3s ease',\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n padding: 0,\n color: '#000',\n },\n trashIconImage: {\n width: '12px',\n height: '12px',\n filter: 'grayscale(100%)',\n opacity: 0.6,\n },\n}));\n\nexport const permissionsOptionsForCases = [\n { value: 0, text: 'Disabled' },\n { value: 1, text: 'Read Only' },\n { value: 2, text: 'Write Access' },\n];\n\nconst permissionsOptions = [\n { value: 0, text: 'Disabled' },\n { value: 2, text: 'Write Access' },\n];\n\nconst permissionsOptionsForTwoOptions = [\n { value: 0, text: 'Disable' },\n { value: 2, text: 'Enable' },\n];\n\nconst Permissions = () => {\n const classes = useStyles();\n const { organization } = useOrganization();\n const [loading, setLoading] = useState('idle');\n const { setOrganization, setActive } = useContext(Context);\n const [modules, setModules] = useState([]);\n const [rolesPermissions, setRolesPermissions] = useState({});\n const [copyRoleSetting, setCopyRoleSetting] = useState('');\n const [roleName, setRoleName] = useState('');\n const [roles, setRoles] = useState([]);\n const [formTypesOptions, setFormTypesOptions] = useState([]);\n const [createdRoles, setCreatedRoles] = useState([]);\n const [permissions, setPermissions] = useState(\n modules.reduce((acc, module) => {\n acc[module] = { disable: false, readOnly: false, write: false };\n return acc;\n }, {})\n );\n const [roleMapping, setRoleMapping] = useState({});\n const [isModalOpen, setModalOpen] = useState(false);\n const underlineColor = '#4285F4';\n const handleOpenModal = () => setModalOpen(true);\n const handleCloseModal = () => {\n setModalOpen(false);\n setCopyRoleSetting('');\n setRoleName('');\n\n setPermissions(\n modules.reduce((acc, module) => {\n acc[module] = 0;\n return acc;\n }, {})\n );\n\n setRolesPermissions((prev) => ({\n ...prev,\n newRole: {},\n }));\n };\n\n const formatRoleName = (roleName) =>\n roleName\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\n\n useEffect(() => {\n setActive('/permissions');\n\n if (organization) {\n const normalizedPermissions = {};\n const mapping = {};\n\n Object.keys(organization.permissions).forEach((role) => {\n normalizedPermissions[role] = organization.permissions[role];\n mapping[formatRoleName(role)] = role;\n });\n setRolesPermissions(normalizedPermissions);\n setRoleMapping(mapping);\n setRoles(Object.keys(mapping));\n setCreatedRoles(Object.keys(normalizedPermissions));\n }\n }, [organization, setActive]);\n\n const handleCreateRole = () => {\n const formattedRoleName = toCamelCase(roleName);\n const fullPermissionValue = { ...defaultPermissions, ...permissions };\n\n const payload = {\n permissionKey: formattedRoleName,\n permissionValue: fullPermissionValue,\n };\n\n createNewPermission(payload)\n .then((response) => {\n toast.success(`${roleName} role created successfully!`);\n setRolesPermissions((prev) => ({\n ...prev,\n [payload.permissionKey]: payload.permissionValue,\n }));\n setCreatedRoles((prev) => [...prev, payload.permissionKey]);\n setRoles((prev) => [...prev, roleName]);\n handleCloseModal();\n })\n .catch((error) => {\n toast.error(error.response?.data?.message || 'Failed to create role');\n });\n };\n\n const toCamelCase = (str) =>\n str\n .toLowerCase()\n .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (word, index) => (index === 0 ? word.toLowerCase() : word.toUpperCase()))\n .replace(/\\s+/g, '');\n\n const defaultPermissions = {\n dashboard: 0,\n cases: 0,\n allegations: 0,\n officers: 0,\n users: 0,\n usage: 0,\n import: 0,\n activity: 0,\n data: 0,\n insights: 0,\n forms: 0,\n projects: 0,\n contacts: 0,\n formData: 0,\n permissions: 0,\n canDeleteNotesCases: 0,\n canDeleteNotesContacts: 0,\n canDeleteNotesOfficers: 0,\n canDeleteNotesProjects: 0,\n mergeOfficers: 0,\n };\n\n const readOnlyModules = ['cases', 'formData'];\n\n const handleDeletePermission = (role) => {\n const formatRole = toCamelCase(role);\n\n deletePermission({ permissionKey: formatRole })\n .then(() => {\n setRolesPermissions((prev) => {\n const updatedRoles = { ...prev };\n delete updatedRoles[formatRole];\n return updatedRoles;\n });\n const indexToRemove = roles.findIndex((role1) => role1 === formatRole);\n const newRoles = [...roles];\n newRoles.splice(indexToRemove, 1);\n setRoles(newRoles);\n toast.success(`${role} permission deleted successfully!`);\n })\n .catch((error) => {\n console.error('Error deleting permission:', error);\n toast.error(error.response?.data?.message || 'Failed to delete permission');\n });\n };\n\n const handlePermissionChange = (module, level) => {\n setPermissions((prevPermissions) => ({\n ...prevPermissions,\n [module]: level,\n }));\n };\n\n const modulesWithMarginLeft = [\n 'formData',\n 'seeOnlyAssigned',\n 'seeOnlyTypes',\n 'canDeleteNotesCases',\n 'canDeleteNotesContacts',\n 'canDeleteNotesOfficers',\n 'canDeleteNotesProjects',\n 'mergeOfficers',\n ];\n\n const dualPermissionsModules = [\n 'canDeleteNotesCases',\n 'canDeleteNotesContacts',\n 'canDeleteNotesOfficers',\n 'canDeleteNotesProjects',\n 'mergeOfficers',\n ];\n\n const multiChoiceFormTypeModule = ['seeOnlyTypes', 'seeOnlyAssigned'];\n\n const modulesLabels = {\n formData: 'Edit case details',\n seeOnlyAssigned: 'See Only Assigned',\n seeOnlyTypes: 'See Only Types',\n canDeleteNotesCases: 'Can Delete Notes',\n canDeleteNotesContacts: 'Can Delete Notes',\n canDeleteNotesOfficers: 'Can Delete Notes',\n canDeleteNotesProjects: 'Can Delete Notes',\n mergeOfficers: 'Merge Officers',\n };\n\n const formTypeDefault = {\n COMPLAINT: 'Complaint',\n COMPLIMENT: 'Compliment',\n RECOMMENDATION: 'Recommendation',\n REVIEW: 'Review',\n };\n\n useEffect(() => {\n if (organization) {\n const formTypes = organization.formTypes.map((formType) => {\n if (formTypeDefault[formType]) {\n return {\n value: formType,\n text: formTypeDefault[formType],\n };\n }\n return {\n value: formType[0],\n text: formType[1],\n };\n });\n\n setFormTypesOptions(formTypes);\n }\n }, [organization]);\n\n useEffect(() => {\n if (organization) {\n const dashboardModules = {\n ...organization?.features?.dashboard,\n formData: { enabled: true },\n seeOnlyTypes: { enabled: true },\n seeOnlyAssigned: { enabled: true },\n canDeleteNotesCases: { enabled: true },\n canDeleteNotesContacts: { enabled: true },\n canDeleteNotesOfficers: { enabled: true },\n canDeleteNotesProjects: { enabled: true },\n mergeOfficers: { enabled: true },\n };\n const modulesKeys = [\n 'dashboard',\n 'cases',\n 'formData',\n 'seeOnlyTypes',\n 'seeOnlyAssigned',\n 'canDeleteNotesCases',\n 'contacts',\n 'canDeleteNotesContacts',\n 'allegations',\n 'officers',\n 'canDeleteNotesOfficers',\n 'mergeOfficers',\n 'projects',\n 'canDeleteNotesProjects',\n 'data',\n 'insights',\n 'users',\n 'forms',\n 'permissions',\n 'import',\n 'activity',\n ];\n\n const permissionModules = [];\n\n for (const key of modulesKeys) {\n if (dashboardModules[key]?.enabled) {\n permissionModules.push(key);\n }\n }\n\n setModules(permissionModules.slice());\n }\n }, [organization]);\n\n const onChangeSelectHandler = (e, role, module) => {\n const newValue = e && e.target && e.target.value !== undefined ? e.target.value : e;\n setRolesPermissions((prev) => ({\n ...prev,\n [role]: {\n ...prev[role],\n [module]: parseInt(newValue, 10),\n },\n }));\n };\n\n const onSavePermissions = () => {\n const data = { permissions: rolesPermissions };\n setLoading('pending');\n\n onUpdateOrganization(organization?._id, data)\n .then((res) => {\n toast.success('Permissions updated successfully');\n setLoading('resolved');\n setOrganization(res.data);\n })\n .catch((err) => {\n toast.error(err.response.data.message || 'Failed to update permissions');\n setLoading('rejected');\n });\n };\n\n const handleCopyRoleSettings = (selectedRole) => {\n if (selectedRole) {\n const normalizedRole = selectedRole.toLowerCase();\n const selectedRolePermissions = rolesPermissions[normalizedRole] || {};\n\n setPermissions(\n modules.reduce((acc, module) => {\n acc[module] = selectedRolePermissions[module] || 0;\n return acc;\n }, {})\n );\n } else {\n setPermissions(\n modules.reduce((acc, module) => {\n acc[module] = 0;\n return acc;\n }, {})\n );\n }\n };\n\n const minWidth = 166.705 * Object.keys(rolesPermissions).length;\n\n const getPermissionsOptions = (module) => {\n if (module === 'formData') {\n return permissionsOptionsForCases;\n }\n if (dualPermissionsModules.includes(module)) {\n return permissionsOptionsForTwoOptions;\n }\n\n if (multiChoiceFormTypeModule.includes(module)) {\n return formTypesOptions;\n }\n return permissionsOptions;\n };\n\n const getModifiedOptionsForSeeOnlyAssigned = (role) => {\n if (!role || !rolesPermissions[role]) return formTypesOptions;\n\n const selectedTypesOptions = Array.isArray(rolesPermissions[role]['seeOnlyTypes'])\n ? rolesPermissions[role]['seeOnlyTypes']\n : [];\n\n return formTypesOptions.map((option) => ({\n ...option,\n disabled: !selectedTypesOptions.includes(option.value),\n }));\n };\n\n const getOptionsForDropdown = (module, role) => {\n if (module === 'seeOnlyAssigned') {\n return { obj: getModifiedOptionsForSeeOnlyAssigned(role) };\n }\n\n return { obj: getPermissionsOptions(module) };\n };\n\n const isMultiOptions = (module) => {\n if (multiChoiceFormTypeModule.includes(module)) {\n return true;\n }\n return false;\n };\n\n return (\n \n \n \n New Role\n \n \n \n \n \n \n \n \n Module\n \n \n\n {modules.map((module, i) => (\n \n \n {module === 'formData' ? 'Edit Case Details' : modulesLabels[module] || module}\n \n \n ))}\n \n\n 6 ? 'auto' : 'hidden',\n flexGrow: roles.length < 6 ? 1 : 'unset',\n }}\n >\n \n {roles.map((displayRole) => (\n \n \n {displayRole}\n \n {displayRole !== 'Admin' && displayRole !== 'Investigator' && displayRole !== 'Guest' && (\n handleDeletePermission(displayRole)}\n aria-label=\"delete permission\"\n disableRipple\n sx={{ padding: 0, color: '#888' }}\n >\n \"Delete\n \n )}\n \n ))}\n \n\n \n {modules.map((module, i) => (\n \n {Object.keys(rolesPermissions).map(\n (role) =>\n createdRoles.includes(role) && (\n \n onChangeSelectHandler(e, role, module)}\n role={role}\n module={module}\n setRolesPermissions={setRolesPermissions}\n sx={{\n width: '100%',\n textAlign: 'center',\n '& .MuiSelect-select': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n '& .MuiSelect-icon': {\n right: '4px',\n },\n }}\n MenuProps={{\n PaperProps: {\n sx: {\n textAlign: 'center',\n },\n },\n }}\n />\n \n )\n )}\n \n ))}\n \n \n \n \n\n \n \n New Role\n \n Creation of new roles\n \n \n\n \n \n \n Main Information\n \n\n \n setRoleName(e.target.value)}\n fullWidth\n style={{ marginRight: '20px' }}\n InputLabelProps={{\n style: { color: underlineColor, fontSize: '14px' },\n shrink: true,\n }}\n InputProps={{\n disableUnderline: false,\n sx: {\n fontSize: '12px',\n height: '20px',\n padding: '3px 6px',\n '& input': {\n fontSize: '12px',\n },\n '& .MuiInput-underline:before': { borderBottomColor: underlineColor },\n '& .MuiInput-underline:hover:not(.Mui-disabled):before': { borderBottomColor: underlineColor },\n '& .MuiInput-underline:after': { borderBottomColor: underlineColor },\n },\n }}\n />\n\n \n \n Copy role settings\n \n {\n setCopyRoleSetting(e.target.value);\n handleCopyRoleSettings(roleMapping[e.target.value]);\n }}\n label=\"Copy role settings\"\n disableUnderline={false}\n sx={{\n fontSize: '12px',\n height: '20px',\n padding: '3px 6px',\n '& input': {\n fontSize: '12px',\n },\n '& .MuiInput-underline:before': { borderBottomColor: underlineColor },\n '& .MuiInput-underline:hover:not(.Mui-disabled):before': { borderBottomColor: underlineColor },\n '& .MuiInput-underline:after': { borderBottomColor: underlineColor },\n }}\n >\n \n None\n \n {roles.map((role) => (\n \n {formatRoleName(role)}\n \n ))}\n \n \n \n\n \n Select Role Permissions\n \n \n \n \n Section\n \n \n Disable\n \n \n Read Only\n \n \n Write Access/Enable\n \n \n \n\n {modules.map((module) => (\n \n \n {module === 'formData' ? 'Edit Case Details' : module.replace(/([A-Z])/g, ' $1').trim()}\n \n\n handlePermissionChange(module, parseInt(e.target.value))}\n sx={{ width: '480px', justifyContent: 'space-around' }}\n >\n \n }\n label=\"\"\n style={{ margin: 0 }}\n />\n \n\n \n {readOnlyModules.includes(module) ? (\n }\n label=\"\"\n style={{ margin: 0 }}\n />\n ) : (\n \n )}\n \n\n \n }\n label=\"\"\n style={{ margin: 0 }}\n />\n \n \n \n ))}\n \n \n\n \n \n Cancel\n \n \n Create Role\n \n \n \n \n \n );\n};\n\nexport default Permissions;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Typography, makeStyles } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\n\nimport TimeLineItem from '../Activity/TimeLineItem';\nimport { UserInfo } from '../../components/NoteLogs';\nimport HTMLContent from '../../components/HTMLContent';\nimport { PreviewImg } from '../CaseDetails/CaseComment';\nimport LogIcon from '../../components/LogIcon';\nimport Tags from '../../components/Tags';\nimport Tag from '../../components/Tag';\nimport { fetchContactHistory } from '../../services/unarmed';\nimport ArchivedImage from '../../components/ArchivedImage';\n\nexport const contactFieldsNames = {\n firstName: 'First name',\n lastName: 'Last name',\n suffix: 'Suffix',\n title: 'Title',\n pronouns: 'Pronouns',\n salutation: 'Salutation',\n phoneNumber: 'Phone number',\n description: 'Description',\n department: 'Department',\n gender: 'Gender',\n raceEthnicity: 'Race/Ethnicity',\n birthdate: 'Birthdate',\n photo: 'Photo',\n type: 'Type',\n companyName: 'Company Name',\n 'demographic.gender': 'Gender',\n 'demographic.raceEthnicity': 'Race/Ethnicity',\n 'demographic.birthdate': 'Birthdate',\n 'mailingLocation.address': 'Mailing address',\n 'mailingLocation.city.name': 'Mailing city name',\n 'mailingLocation.state.name': 'Mailing state name',\n 'mailingLocation.zipCode': 'Mailing zip code',\n 'mailingLocation.aptUnit': 'Mailing apt/unit #',\n 'otherLocation.address': 'Other address',\n 'otherLocation.city.name': 'Other city name',\n 'otherLocation.state.name': 'Other state name',\n 'otherLocation.zipCode': 'Other zip code',\n 'otherLocation.aptUnit': 'Other apt/unit #',\n};\n\nconst useStyles = makeStyles(() => ({\n emphasis: {\n color: '#4b7bff',\n textTransform: 'capitalize',\n fontWeight: '600',\n },\n}));\n\n/**\n * Parses the change value for display, converting arrays to comma-separated strings.\n *\n * @param {any} value - The value to be parsed.\n * @returns {string} The parsed value.\n */\nexport const parseChangeValue = (value, fieldName) => {\n if (fieldName === 'Birthdate') return moment(value).format('YYYY-MM-DD');\n\n if (Array.isArray(value)) {\n return value.join(', ');\n }\n\n return value;\n};\n\n/**\n * React component for displaying contact history logs.\n *\n * @component\n * @param {Object} props - The properties passed to the ContactHistory component.\n * @param {Array} props.logs - An array of contact history logs.\n */\nconst ContactHistory = ({ id }) => {\n const classes = useStyles();\n\n const [logs, setLogs] = useState([]);\n\n useEffect(() => {\n fetchContactHistory(id).then((res) => {\n setLogs(res.data);\n });\n }, [id]);\n\n /**\n * Handles the click events on log items.\n */\n const handleClickEvents = () => {};\n\n return (\n
\n {logs.map((log) => {\n let renderLog = null;\n\n if (log?.type === 'CONTACT_COMMENT_OR_ATTACHMENT_ADDED') {\n const comment = log?.data?.comment;\n const files = log?.data?.files;\n\n const hasFiles = files.length > 0;\n const hasComment = !!comment;\n const hasBoth = hasFiles && hasComment;\n renderLog = (\n <>\n {' '}\n {hasComment && (\n <>\n made a new comment\n \n )}\n {hasBoth && ' and '}\n {hasFiles && (\n <>\n uploaded {files.length} file(s)\n \n )}{' '}\n to the contact\n {hasComment && (\n <>\n
\n \n \n )}\n {hasFiles && (\n <>\n \n {files.map((file, index) => {\n const showPreview = !file?.archivedDate;\n return (\n <>\n \n \n {showPreview ? (\n \n ) : (\n \n )}\n \n {file.name}\n \n \n \n );\n })}\n \n \n )}\n \n );\n }\n\n if (log?.type === 'CONTACT_CREATED') {\n renderLog = (\n <>\n has created contact\n \n );\n }\n\n if (log?.type === 'CONTACT_UPDATED') {\n const changes = log?.data?.changes;\n\n renderLog = (\n <>\n {log?.data?.changes?.length > 0 ? (\n <>\n {changes.map((change, changeKey) => {\n const fieldName = contactFieldsNames[change.fieldName];\n\n if (!fieldName) return null;\n\n return (\n
\n {change.oldValue ? (\n <>\n has changed{' '}\n {fieldName} from{' '}\n {parseChangeValue(change.oldValue, fieldName)} to{' '}\n {parseChangeValue(change.newValue, fieldName)} in\n contact\n \n ) : (\n <>\n has added{' '}\n {fieldName}{' '}\n {parseChangeValue(change.newValue, fieldName)} in\n contact\n \n )}\n
\n );\n })}\n \n ) : (\n <>\n has updated the contact without changes.\n \n )}\n \n );\n }\n\n if (log?.type === 'CONTACT_COMMENT_OR_ATTACHMENT_EDIT') {\n const oldComment = log?.data?.oldComment;\n const newComment = log?.data?.newComment;\n\n renderLog = (\n <>\n edited a comment in the contact\n
\n before:\n
\n \n after:\n
\n \n \n );\n }\n\n if (log?.type === 'PROJECT_CONTACT_ASSIGNED') {\n renderLog = (\n <>\n has added contact {log?.data?.contact?.email} to project{' '}\n \n {log?.data?.project?.name}\n \n \n );\n }\n\n if (log?.type === 'PROJECT_CONTACT_DELETED') {\n renderLog = (\n <>\n has removed contact {log?.data?.contact?.email} from project{' '}\n \n {log?.data?.project?.name}\n \n \n );\n }\n\n if (log?.type === 'CASE_CONTACT_ASSIGNED') {\n renderLog = (\n <>\n has added contact {log?.data?.contact?.email} to case{' '}\n {log?.data?.form?.code}\n \n );\n }\n\n if (log?.type === 'CASE_CONTACT_REMOVE') {\n renderLog = (\n <>\n has removed contact {log?.data?.contact?.email} from case{' '}\n {log?.data?.form?.code}\n \n );\n }\n\n if (log?.type === 'CONTACT_ATTACHMENT_TAGS_EDIT' || log?.type === 'CONTACT_ATTACHMENT_TAGS_ADDED') {\n renderLog = (\n <>\n has added {log?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {log?.data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment: {log?.data?.file?.name} to contact:{' '}\n {log?.data?.contact?.email}\n \n );\n }\n\n if (log?.type === 'CONTACT_ATTACHMENT_TAGS_DELETE') {\n renderLog = (\n <>\n removed {log?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {log?.data?.tags?.map((tag) => (\n \n ))}{' '}\n from attachment: {log?.data?.file?.name} from contact:{' '}\n {log?.data?.contact?.email}\n \n );\n }\n\n if (log?.type === 'CONTACT_ATTACHMENT') {\n renderLog = (\n <>\n added new attachment\n \n );\n }\n\n if (log?.type === 'CONTACT_ATTACHMENT_ARCHIVED') {\n renderLog = (\n <>\n has archived the file{' '}\n {log?.data?.file?.name} on the contact{' '}\n {log?.data?.contact?.email}.\n \n );\n }\n\n if (log?.type === 'CONTACT_NOTE_UNARCHIVED') {\n renderLog = (\n <>\n has unarchived the file{' '}\n {log?.data?.comment?.comment} on the contact{' '}\n {log?.data?.contact?.email}.\n \n );\n }\n\n if (log?.type === 'CONTACT_NOTE_ARCHIVED') {\n renderLog = (\n <>\n has archived the file{' '}\n {log?.data?.comment?.comment} on the contact{' '}\n {log?.data?.contact?.email}.\n \n );\n }\n\n\n if (log?.type === 'CONTACT_ATTACHMENT_UNARCHIVED') {\n renderLog = (\n <>\n has unarchived the file{' '}\n {log?.data?.file?.name} on the contact{' '}\n {log?.data?.contact?.email}.\n \n );\n }\n\n return (\n \n {renderLog}\n \n );\n })}\n
\n );\n};\n\nContactHistory.propTypes = {\n id: PropTypes.number,\n};\n\nexport default ContactHistory;\n","/* eslint-disable no-nested-ternary */\nimport { Box, makeStyles, Typography, Tooltip } from '@material-ui/core';\nimport React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Link, useHistory } from 'react-router-dom';\nimport moment from 'moment';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { downloadImage } from '../../utils/libs';\nimport { LogCaseChange, PreviewImg } from '../../components/Log';\nimport { permissionsOptionsForCases } from '../Permissions/Permissions';\nimport TimeLineItem from './TimeLineItem';\nimport { validateIsoDate } from '../../utils';\nimport LogIcon from '../../components/LogIcon';\nimport HTMLContent from '../../components/HTMLContent';\nimport CaseTaskUpdateItem from './CaseTaskUpdateItem';\nimport CarouselModal from '../../components/CarouselModal';\nimport Tag from '../../components/Tag';\nimport { contactFieldsNames, parseChangeValue } from '../Contacts/ContactHistory';\nimport Tags from '../../components/Tags';\nimport TimeLineItemNotes from './TimeLineItemNotes';\n\nconst CasesInfoText = ({ casesInfo = [] }) => {\n const casesList = casesInfo?.map((caseInfo) => caseInfo?.entityId || caseInfo.code)?.slice(0, 2);\n const casesLength = casesInfo?.length;\n\n if (casesLength > 2) {\n return (\n <>\n {casesList.join(',')} and {casesLength - 2} more\n \n );\n }\n\n return {casesList.join(',')};\n};\n\nCasesInfoText.propTypes = {\n casesInfo: PropTypes.array,\n};\n\nconst ProjectsInfoText = ({ projectsInfo = [] }) => {\n const projectsList = projectsInfo?.map((projectInfo) => projectInfo?.entityId)?.slice(0, 2);\n const projectsLength = projectsInfo?.length;\n\n if (projectsLength > 2) {\n return (\n <>\n {projectsList.join(',')} and {projectsLength - 2} more\n \n );\n }\n\n return {projectsList.join(',')};\n};\n\nProjectsInfoText.propTypes = {\n casesInfo: PropTypes.array,\n};\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n imgModal: {\n objectFit: 'contain',\n maxWidth: 600,\n maxHeight: 400,\n },\n title: {\n fontSize: 16,\n fontWeight: '500',\n textTransform: 'capitalize',\n marginBottom: 22,\n },\n itemsContainer: {\n width: '100%',\n background: '#fff',\n borderRadius: 5,\n boxShadow: '0 3px 6px #00000005',\n padding: '20px 40px',\n },\n texxt: {\n fontSize: 14,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n emphasis: {\n color: '#4b7bff',\n fontWeight: '600',\n },\n}));\n\nconst UserInfo = ({ user }) => (user?.email ? {user?.email} : 'A user');\n\nUserInfo.propTypes = {\n user: PropTypes.shape({\n email: PropTypes.string.isRequired,\n }),\n};\n\nconst getUserInitials = (user) => {\n if (!user) {\n return '';\n }\n\n return user?.firstName?.[0] || '' + user?.lastName?.[0] || '';\n};\n\nconst stripHTML = (str) => {\n if (!str) return '';\n return str.replace(/<\\/?[^>]+(>|$)/g, '');\n};\n\nconst TimeLine = ({ items = [], title }) => {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n const history = useHistory();\n\n const convertValueToHTML = (value) => {\n if (Array.isArray(value)) {\n if (value.length) {\n return {value.join(', ')};\n } else {\n return 'an empty value';\n }\n }\n if (typeof value === 'boolean') {\n return {value ? 'Yes' : 'No'};\n }\n if (value === undefined || value === null || value === '') {\n return 'an empty value';\n }\n return value;\n };\n\n const handleOpen = (filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter((flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video'));\n setFilesSelected({ files: filesToOpen, selectedFileIndex: 0 });\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n };\n\n const handleClickEvents = (fl, files) => ({\n onDownload: () => downloadImage(fl.download_url, fl.name),\n onClick: () => handleOpen(files),\n });\n\n const stripHTML = (str) => {\n if (!str) return '';\n const plainText = str.replace(/<\\/?[^>]+(>|$)/g, '');\n return plainText.length\n };\n\n const getActionLabel = (key) => {\n if (key === 'startDateTime') {\n return 'Start Date Time';\n }\n if (key === 'endDateTime') {\n return 'End Date Time';\n }\n\n if (key === 'notes') {\n return 'Notes';\n }\n\n if (key === 'description') {\n return 'Description';\n }\n if (key === 'status') {\n return 'Status';\n }\n if (key === 'submittedDate') {\n return 'Submitted Date';\n }\n if (key === 'responseDate') {\n return 'Response Date';\n }\n if (key === 'bradyList') {\n return 'Brady list';\n }\n if (key === 'firstName') {\n return 'First name';\n }\n if (key === 'lastName') {\n return 'Last name';\n }\n if (key === 'email') {\n return 'Email';\n }\n if (key === 'raceEthnicity') {\n return 'Race/Ethnicity';\n }\n if (key === 'race') {\n return 'Race';\n }\n if (key === 'ethnicity') {\n return 'Ethnicity';\n }\n if (key === 'gender') {\n return 'Gender';\n }\n if (key === 'phoneNumber') {\n return 'Phone number';\n }\n if (key === 'photo') {\n return 'a profile picture';\n }\n };\n\n const getStatusTitle = (status) => {\n if (status) {\n return status;\n }\n };\n\n const renderText = (item) => {\n const currentTime = moment();\n\n const getDate = () =>\n `${moment(item.createdAt).format('MM/DD/YYYY')} at ${moment(item.createdAt).format('hh:mm A')}`;\n\n const getTooltipDate = () => {\n if (moment(item.createdAt).format('MM-DD-YYYY') === currentTime.format('MM-DD-YYYY')) {\n return `${moment(item.createdAt).fromNow()}`;\n }\n const days = currentTime.endOf('day').diff(moment(item.createdAt).endOf('day'), 'days');\n return `${days} Day${days === 1 ? '' : 's'} ago`;\n };\n\n const user = item?.data?.user;\n\n if (item.type === 'ADHOC_REPORT_CREATED') {\n return (\n \n \n created report {item?.data?.adHocReport?.name}\n \n \n );\n }\n\n if (item.type === 'ADHOC_REPORT_UPDATED') {\n return (\n \n \n updated report {item?.data?.adHocReport?.name}\n \n \n );\n }\n\n if (item.type === 'ADHOC_REPORT_DELETED') {\n return (\n \n \n deleted report {item?.data?.adHocReport?.name}\n \n \n );\n }\n\n if (item.type === 'CONTACT_UPDATED') {\n const changes = item?.data?.changes;\n\n return (\n \n {item?.data?.changes?.length > 0 ? (\n <>\n {changes.map((change, changeKey) => {\n const fieldName = contactFieldsNames[change.fieldName];\n\n if (!fieldName) return null;\n\n return (\n \n {change.oldValue ? (\n <>\n has changed {fieldName} from{' '}\n {parseChangeValue(change.oldValue, fieldName)} to{' '}\n {parseChangeValue(change.newValue, fieldName)} in\n contact{' '}\n \n {item?.data?.contact?.email}\n \n \n ) : (\n <>\n has added {fieldName} to contact{' '}\n {parseChangeValue(change.newValue, fieldName)} in\n contact{' '}\n \n {item?.data?.contact?.email}\n \n \n )}\n \n );\n })}\n \n ) : (\n <>\n has updated the contact without changes.\n \n )}\n \n );\n }\n\n if (item.type === 'CONTACT_CREATED') {\n return (\n \n \n has created contact{' '}\n \n {item?.data?.contact?.email}\n \n \n \n );\n }\n\n if (item.type === 'CONTACT_DELETED') {\n return (\n \n \n has removed contact{' '}\n {item?.data?.contact?.email}\n \n \n );\n }\n\n if (item.type === 'USER_CONFIG_NOTIFICATION_CREATED_CASE') {\n return (\n \n \n A new {item?.data?.form?.caseType || item.data?.caseType} with tracking number{' '}\n \n {item?.data?.form?.code || item?.data?.code}\n {' '}\n has been created.\n \n \n );\n }\n\n if (item.type === 'USER_CONFIG_NOTIFICATION_IS_ASSIGNED_TO') {\n return (\n \n \n {item?.data?.form?.caseType} with tracking number{' '}\n \n {item?.data?.form?.code}\n {' '}\n has been assigned to {item?.data?.user?.assignedUserNames}.\n \n \n );\n }\n\n if (item.type === 'USER_CONFIG_NOTIFICATION_UPDATED_CASE') {\n return (\n \n \n {item?.data?.form?.caseType} with tracking number{' '}\n \n {item?.data?.form?.code}\n {' '}\n assigned to {item?.data?.user?.assignedUserNames} has been updated.\n \n \n );\n }\n\n if (item.type === 'USER_CONFIG_NOTIFICATION_STATUS_BY_TIME') {\n return (\n \n \n The following cases have been in{' '}\n {item?.data?.form?.status} status for {item?.data?.time} days\n \n \n );\n }\n\n if (item.type === 'USER_CONFIG_NOTIFICATION_TASK_DUE_DATE') {\n return (\n \n \n The following cases assigned to{' '}\n {item?.data?.assignedToNames} have tasks due in {item?.data?.time} days\n \n \n );\n }\n\n if (item.type === 'USER_CONFIG_NOTIFICATION_ACTION_DATE') {\n const { action } = item.data;\n if (action === 'action') {\n return (\n \n \n The following projects have Action Tasks\n that took place {item?.data?.time} days ago\n \n \n );\n } else if (action === 'task') {\n return (\n \n \n {item?.data?.nameDataLinkReport ? (\n <>\n The following cases with Date field{' '}\n {item?.data?.nameDataLinkReport} took place{' '}\n {item?.data?.time} days ago\n \n ) : (\n <>\n The following cases have tasks that took\n place {item?.data?.time} days ago\n \n )}\n \n \n );\n } else if (action === 'fixed') {\n return (\n \n \n The following cases with Date field{' '}\n {item.data?.label} took place {item?.data?.time} days ago\n \n \n );\n } else {\n //item.action === 'data'\n return (\n \n \n The following cases with Date field{' '}\n {item?.data?.nameDataLinkReport} took place {item?.data?.time} days ago\n \n \n );\n }\n }\n\n if (item.type === 'USER_CONFIG_NOTIFICATION_OFFICER_LEVEL') {\n return (\n \n \n An officer with Badge ID {item?.data?.officer?.badgeNumber} has moved from{' '}\n {item?.data?.levelBefore} to {item?.data?.level} in the Early Intervention\n System (EIS).\n \n \n );\n }\n\n if (item.type === 'CASE_CONTACT_ASSIGNED') {\n return (\n \n \n has added contact{' '}\n \n {item?.data?.contact?.email}\n {' '}\n to case{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item?.type === 'CASE_CONTACT_REMOVE') {\n return (\n \n \n has removed contact{' '}\n {item?.data?.contact?.email} from case{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'PROJECT_CONTACT_ASSIGNED') {\n return (\n \n \n has added contact{' '}\n \n {item?.data?.contact?.email}\n {' '}\n to project{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n\n if (item.type === 'PROJECT_CONTACT_DELETED') {\n return (\n \n \n has removed contact{' '}\n \n {item?.data?.contact?.email}\n {' '}\n from project{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n\n if (item.type === 'CONTACT_ATTACHMENT_TAGS_EDIT' || item.type === 'CONTACT_ATTACHMENT_TAGS_ADDED') {\n return (\n \n \n has added {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment:{' '}\n \n {item?.data?.file?.name}\n {' '}\n to contact:{' '}\n \n \n {item.data.contact.firstName} {item.data.contact.lastName}\n \n \n \n \n );\n }\n\n if (item.type === 'CONTACT_COMMENT_OR_ATTACHMENT_ADDED') {\n const comment = item?.data?.comment;\n const files = item?.data?.files;\n\n return (\n \n \n made a{' '}\n new comment in the contact:{' '}\n \n {item?.data?.contact?.email}\n \n
\n \n
\n \n {files?.map((fl, i) => (\n <>\n \n \n \n \n \n ))}\n \n
\n \n );\n }\n\n if (item.type === 'CONTACT_COMMENT_OR_ATTACHMENT_EDIT') {\n const oldComment = item?.data?.oldComment;\n const newComment = item?.data?.newComment;\n\n return (\n \n \n edited a comment in the contact:{' '}\n \n {item?.data?.contact?.email}\n \n
\n before:\n
\n \n after:\n
\n \n
\n \n );\n }\n\n if (item.type === 'CONTACT_ATTACHMENT_TAGS_DELETE') {\n return (\n \n \n removed {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n from attachment: {item?.data?.file?.name} from\n contact:{' '}\n \n {item?.data?.contact?.email}\n \n \n \n );\n }\n\n if (item.type === 'OFFICER_ATTACHMENT_TAGS_ADDED') {\n return (\n \n \n has added {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment:{' '}\n \n {item?.data?.file?.name}\n {' '}\n to officer:{' '}\n \n \n {item.data.officer.firstName} {item.data.officer.lastName}\n \n \n \n \n );\n }\n\n if (item.type === 'OFFICER_ATTACHMENT_TAGS_DELETE') {\n return (\n \n \n has removed {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n from attachment: {item?.data?.file?.name} from\n officer:{' '}\n \n \n {item.data.officer.firstName} {item.data.officer.lastName}\n \n \n \n \n );\n }\n\n if (item.type === 'OFFICER_UPDATED') {\n return (\n \n \n {item?.data?.changes?.map((change, index) => (\n \n {!change?.oldValue ? (\n <>\n has added {getActionLabel(change?.fieldName)}{' '}\n {change?.newValue}{' '}\n \n ) : (\n <>\n has changed {getActionLabel(change?.fieldName)} from{' '}\n {change.oldValue.toString()} to{' '}\n {change.newValue.toString()}{' '}\n \n )}\n in officer{' '}\n \n \n {item.data.officer.firstName} {item.data.officer.lastName}\n \n \n \n ))}\n \n \n );\n }\n if (item.type === 'OFFICER_COMMENT_OR_ATTACHMENT' || item.type === 'OFFICER_ATTACHMENT') {\n const { files, comment, type: optionType, intervene, meeting, officer } = item.data;\n const _user = item.data.user;\n const hasFiles = files.length > 0;\n const commentText = comment ? (\n <>\n {' made a '}\n new comment\n \n ) : null;\n const filesText = hasFiles ? (\n <>\n \n {' Uploaded '} {files.length}\n {' '}\n file(s)\n \n ) : null;\n const optionText = optionType ? (\n <>\n {' to '}\n {optionType === 'INTERVENE' ? 'Intervene' : 'Monitor'}{' '}\n \n {optionType === 'INTERVENE' ? intervene : meeting ? `${meeting} months meeting` : null}\n \n \n ) : null;\n const whereText = (\n <>\n in the officer{' '}\n \n \n {officer.firstName} {officer.lastName}\n \n \n \n );\n\n return (\n \n
\n \n {commentText}\n {comment && hasFiles ? ' and ' : null}\n {filesText}\n {optionText}\n {whereText}\n
\n \n
\n {hasFiles ? (\n \n {files?.map((fl, i) => (\n \n \n \n ))}\n \n ) : null}\n
\n \n );\n }\n\n if (item.type === 'PROJECT_NOTE_TAGS_ADDED') {\n return (\n \n \n has added {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n to note to project: {item?.data?.project?.name}\n \n \n );\n }\n\n if (item.type === 'PROJECT_ATTACHMENT_TAGS_ADDED') {\n return (\n \n \n has added {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment: {item?.data?.file?.name} to\n project: {item?.data?.project?.name}\n \n \n );\n }\n\n if (item.type === 'PROJECT_ATTACHMENT_TAGS_DELETE') {\n return (\n \n \n has removed {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n from attachment: {item?.data?.file?.name} from\n project: {item?.data?.project?.name}\n \n \n );\n }\n\n if (item.type === 'PROJECT_NOTE_FILE' && item?.data?.note && !item?.data?.files.length) {\n return (\n \n \n made a new comment to project{' '}\n {/* */}\n {item?.data?.project?.name}\n {/* */}\n
\n \n
\n \n );\n }\n if (item.type === 'PROJECT_NOTE_FILE' && item?.data?.files.length > 0 && item?.data?.note) {\n return (\n \n \n made a new comment and{' '}\n uploaded {item?.data?.files.length} file(s) in the project:{' '}\n {/* */}\n {item?.data?.project?.name}\n {/* */}\n \n
\n \n {item?.data?.files?.map((fl, i) => (\n \n \n \n ))}\n \n
\n \n );\n }\n if (item.type === 'CASES_REACH_30_DAYS') {\n const cases = item?.data?.cases;\n return (\n <>\n \n \n \n The following case(s):{' '}\n {cases?.map((caseNumber, index) => (\n history.push(`/case/${caseNumber}`)}\n >\n {caseNumber},{' '}\n \n ))}\n {cases.length > 1 ? 'have ' : 'has '} reached 30 Days since its creation date{' '}\n {moment(item.createdAt).subtract(30, 'days').calendar()}\n \n \n \n \n {getDate()}\n \n \n \n );\n }\n if (item.type === 'CASES_REACH_60_DAYS') {\n const cases = item?.data?.cases;\n return (\n <>\n \n \n \n The following case(s):{' '}\n {cases?.map((caseNumber, index) => (\n history.push(`/case/${caseNumber}`)}\n >\n {caseNumber},{' '}\n \n ))}\n {cases.length > 1 ? 'have ' : 'has '} reached 60 Days since its creation date{' '}\n {moment(item.createdAt).subtract(60, 'days').calendar()}\n \n \n \n \n {getDate()}\n \n \n \n );\n }\n if (item.type === 'CASES_REACH_90_DAYS') {\n const cases = item?.data?.cases;\n return (\n <>\n \n \n \n The following case(s):{' '}\n {cases?.map((caseNumber, index) => (\n history.push(`/case/${caseNumber}`)}\n >\n {caseNumber},{' '}\n \n ))}\n {cases.length > 1 ? 'have ' : 'has '} reached 90 Days since its creation date{' '}\n {moment(item.createdAt).subtract(90, 'days').calendar()}\n \n \n \n \n {getDate()}\n \n \n \n );\n }\n if (item.type === 'PROJECT_ASSIGNED') {\n return (\n \n \n assigned{' '}\n \n {item?.data?.assignedUser?.firstName} {item?.data?.assignedUser?.lastName}\n {' '}\n to project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_UNASSIGNED') {\n return (\n \n \n removed{' '}\n \n {item?.data?.unassignedUser?.firstName} {item?.data?.unassignedUser?.lastName}\n {' '}\n to project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_RELATED') {\n return (\n \n \n related project{' '}\n \n {item?.data?.project1?.name}\n {' '}\n with project{' '}\n \n {item?.data?.project2?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_REMOVED_RELATED') {\n return (\n \n \n unrelated project{' '}\n \n {item?.data?.removedProject?.name}\n {' '}\n with project{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_RECOMMENDATIONS_DELETED') {\n return (\n \n \n deleted a recommendation from project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_RECOMMENDATIONS_EDITED') {\n const _user = item.data.user;\n\n return (\n \n \n {item?.data?.changes?.map((change, index) => {\n const isLongText = change.key === 'description' || change.key === 'notes';\n\n if (isLongText) {\n return (\n \n has {!change?.oldValue ? 'added' : 'changed'}{' '}\n {getActionLabel(change?.key)} in recommendation\n {!change?.oldValue ? (\n \n ) : (\n <>\n {' from: '}\n \n {' to: '}\n \n \n )}\n \n );\n }\n return (\n \n {!change?.oldValue ? (\n <>\n has added{' '}\n \n {validateIsoDate(change.newValue.toString())\n ? moment(change.newValue).format('DD-MM-YYYY')\n : change.newValue}\n {' '}\n to {getActionLabel(change?.key)} in recommendation\n \n ) : (\n <>\n has changed {getActionLabel(change?.key)} to recommendations{' '}\n \n {validateIsoDate(change.oldValue.toString())\n ? moment(change.oldValue).format('DD-MM-YYYY')\n : change.oldValue}\n {' '}\n to{' '}\n \n {validateIsoDate(change.newValue.toString())\n ? moment(change.newValue).format('DD-MM-YYYY')\n : change.newValue}\n {' '}\n \n )}\n \n );\n })}\n on project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_CREATED') {\n return (\n \n \n created project{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_DELETED') {\n return (\n \n \n deleted project{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_TEMPLATE_SAVED') {\n return (\n \n \n saved a project template{' '}\n \n {item?.data?.projectTemplate?.name}\n {' '}\n in the project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_ACTIONS_ADDED') {\n return (\n \n \n added a new action in the project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_ACTIONS_ASSIGNED') {\n return (\n \n \n assigned a new user{' '}\n \n {item?.data?.unassignedUser?.firstName} {item?.data?.unassignedUser?.lastName}\n {' '}\n to action in the project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_ACTIONS_REMOVED') {\n return (\n \n \n removed action in the project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_ACTIONS_UPDATED') {\n const { action, project } = item.data;\n const _user = item.data.user;\n return (\n \n \n {item?.data?.changes?.map((change, index) => {\n const isNotes = change.key === 'notes';\n if (isNotes) {\n return (\n \n {!change?.oldValue ? (\n <>\n has added a note to action {action} in the{' '}\n {getActionLabel(change?.key)} to project{' '}\n {project?.name}{' '}\n \n \n ) : (\n <>\n has changed action {action} {getActionLabel(change?.key)}\n {' for project '}\n {project?.name} {' from:'}\n \n {' to:'}\n \n \n )}\n \n );\n }\n return (\n \n {!change?.oldValue ? (\n <>\n has added a note to action {action} in the {getActionLabel(change?.key)}{' '}\n to project {project?.name}{' '}\n \n {item?.data?.user?.email} has added{' '}\n \n {validateIsoDate(change.newValue.toString())\n ? moment(change.newValue).format('DD-MM-YYYY')\n : change.newValue}\n {' '}\n to action in the {getActionLabel(change?.key)} to project{' '}\n {item?.data?.project?.name}{' '}\n \n ) : (\n <>\n has changed to action {getActionLabel(change?.key)}{' '}\n \n {validateIsoDate(change.oldValue.toString())\n ? moment(change.oldValue).format('DD-MM-YYYY')\n : change.oldValue}\n {' '}\n to{' '}\n \n {validateIsoDate(change.newValue.toString())\n ? moment(change.newValue).format('DD-MM-YYYY')\n : change.newValue}\n {' '}\n for project {item?.data?.project?.name}{' '}\n \n )}\n \n );\n })}\n \n \n );\n }\n if (item.type === 'PROJECT_VIEWED') {\n return (\n \n \n viewed project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_RECOMMENDATIONS_ADDED') {\n return (\n \n \n created a new recommendation in project{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_STATUS_CHANGED') {\n return (\n \n \n changed Status from{' '}\n \n {item?.data?.oldStatus}\n {' '}\n to{' '}\n \n {item?.data?.newStatus}\n {' '}\n in the project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_SUBTYPE_CHANGED') {\n return (\n \n \n changed Subtype from{' '}\n \n {item?.data?.oldSubType}\n {' '}\n to{' '}\n \n {item?.data?.newSubType}\n {' '}\n in the project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n if (item.type === 'PROJECT_TYPE_CHANGED') {\n return (\n \n \n changed Type from{' '}\n \n {item?.data?.oldType}\n {' '}\n to{' '}\n \n {item?.data?.newType}\n {' '}\n in the project:{' '}\n \n {item?.data?.project?.name}\n \n \n \n );\n }\n\n if (item.type === 'PROJECT_NOTE_UNARCHIVED') {\n return (\n \n has unarchived the note{' '}\n {stripHTML(item?.data?.comment?.comment)} on the project with tracking\n number{' '}\n {item?.data?.form?.code}\n\n \n );\n }\n\n if (item.type === 'PROJECT_NOTE_ARCHIVED') {\n return (\n \n has archived the note{' '}\n {stripHTML(item?.data?.comment?.comment)} on the project with tracking\n number{' '}\n {item?.data?.form?.code}\n \n );\n }\n if (item.type === 'USER_PASSWORD_RESETED') {\n return (\n \n \n {' '}\n \n reset the account password\n \n \n \n );\n }\n if (item.type === 'USER_PASSWORD_UPDATED') {\n return (\n \n \n {' '}\n \n updated the account password\n \n \n \n );\n }\n if (item.type === 'ADHOC_REPORT_DELETED') {\n return (\n \n \n deleted a{' '}\n \n {item?.data?.adHocReport?.type?.toLowerCase()}\n {' '}\n report with the name{' '}\n \n {item?.data?.adHocReport?.name?.toLowerCase()}\n \n .\n \n \n );\n }\n if (item.type === 'ADHOC_REPORT_CREATED') {\n return (\n \n \n created a{' '}\n \n {item?.data?.adHocReport?.type?.toLowerCase()}\n {' '}\n report with the name{' '}\n \n {item?.data?.adHocReport?.name?.toLowerCase()}\n \n \n \n );\n }\n if (item.type === 'ADHOC_REPORT_DELETED') {\n return (\n \n \n deleted a report.\n \n \n );\n }\n if (item.type === 'CASE_REFERRAL_DESTINATION') {\n return (\n \n \n This case was transferred from organization{' '}\n {item?.data?.oldOrganization?.name} with a new\n tracking number:\n \n \n {item?.data?.form?.code}\n \n {' '}\n \n \n );\n }\n if (item.type === 'CASE_REFERRAL_ORIGIN') {\n return (\n \n \n {item?.data?.user?.email} transfer case{' '}\n \n {item?.data?.form?.code}\n {' '}\n to organization{' '}\n {item?.data?.newOrganization?.name} with a new\n tracking number: {item?.data?.newForm?.code}\n \n \n );\n }\n if (item.type === 'CASES_DOWNLOAD') {\n return (\n \n \n downloaded{' '}\n {item?.data?.forms?.length}{' '}\n {item?.data?.forms?.length > 1 ? 'cases' : 'case'} with the following tracking number(s):{' '}\n \n {item?.data?.forms?.map((form, index) => (\n \n \n {form}\n \n \n ))}\n \n );\n }\n\n if (item.type === 'CASE_LINKED') {\n return (\n \n \n The case with tracking number{' '}\n \n {item?.data?.form?.code}\n {' '}\n has been linked to the case with tracking number{' '}\n \n {item?.data?.otherForm?.code}\n \n .\n \n \n );\n }\n\n if (item.type === 'CASE_UNLINKED') {\n return (\n \n \n The case with tracking number{' '}\n \n {item.data?.form?.code}\n {' '}\n has been unlinked to the case with tracking number{' '}\n \n {item.data?.otherForm?.code}\n \n .\n \n \n );\n }\n\n if (item.type === 'ALLEGATIONS_DOWNLOADED') {\n return (\n \n \n downloaded{' '}\n {item?.data?.count}{' '}\n {item?.data?.count === 1 ? 'allegation' : 'allegations'} with the following tracking number(s):{' '}\n \n {item?.data?.forms?.map((form, index) => (\n \n \n {form}\n \n \n ))}\n \n );\n }\n if (item.type === 'ACTIVITY_DOWNLOADED') {\n return (\n \n \n downloaded an activity file from{' '}\n \n {moment(item?.data?.startDate).format('MM-DD-YYYY')}\n {' '}\n to{' '}\n \n {moment(item?.data?.endDate).format('MM-DD-YYYY')}{' '}\n \n \n \n );\n }\n if (item.type === 'LOGOUT') {\n return (\n \n \n logged out.{' '}\n \n \n );\n }\n if (item.type === 'LOGIN') {\n return (\n \n \n logged in.{' '}\n \n \n );\n }\n\n if (item.type === 'CASE_EDIT_DATA') {\n return (\n \n \n edited case detail:{' '}\n \n {item?.data?.form?.code}\n \n
\n {item?.data?.changes?.length > 0 ? (\n <>\n {item?.data?.changes\n // ?.filter((change) => change?.newValue)\n ?.map((change) => (\n
\n \n changed {change?.fieldName} \n \n
\n ))}\n \n ) : (\n <>Without changes\n )}\n
\n \n );\n }\n\n if (item.type === 'CASE_VIEW') {\n return (\n \n \n viewed case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'CASE_ATTACHMENT_TAGS_ADDED') {\n return (\n \n \n has added {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment: {item?.data?.file?.name} to\n case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'CASE_ATTACHMENT_TAGS_DELETED') {\n return (\n \n \n has removed {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n from attachment {item?.data?.file?.name} from\n case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'CASE_TASK_ATTACHMENT_TAGS_ADDED') {\n return (\n \n \n has added {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n to task attachment: {item?.data?.file?.name} to\n case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'CASE_TASK_ATTACHMENT_TAGS_DELETED') {\n return (\n \n \n has removed {item?.data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {item?.data?.tags?.map((tag) => (\n \n ))}{' '}\n from task attachment {item?.data?.file?.name}{' '}\n from case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (\n item.type === 'CASE_TASK_UPDATED' ||\n item.type === 'CASE_TASK_ASSIGNMENT_ADD' ||\n item.type === 'CASE_TASK_ASSIGNMENT_REMOVE' ||\n item.type === 'CASE_TASK_ATTACHMENT_ADDED' ||\n item.type === 'CASE_TASK_ATTACHMENT_DELETED'\n ) {\n return ;\n }\n if (item.type === 'ORGANIZATION_TASK_TYPES_UPDATED') {\n return (\n \n \n updated task types\n \n \n );\n }\n if (item.type === 'ORGANIZATION_TASK_SETTINGS_UPDATED') {\n return (\n \n \n updated task settings\n \n \n );\n }\n if (item.type === 'FORMTYPE_TASK_UPDATED') {\n return (\n \n \n form type updated task:{' '}\n \n {item?.data?.formType?.name}\n \n \n \n );\n }\n if (item.type === 'CASE_ARCHIVED') {\n return (\n \n \n archived case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'CASE_UNARCHIVED') {\n return (\n \n \n restored case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'CASE_DELETE') {\n return (\n \n \n deleted case:{' '}\n {item?.data?.form?.code}\n \n \n );\n }\n if (item.type === 'CASE_ASSIGNMENT_ADD') {\n return (\n \n \n has assigned user:{' '}\n \n {item?.data?.assignments?.[0]?.firstName} {item?.data?.assignments?.[0]?.lastName}\n {' '}\n to case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'CASE_ASSIGNMENT_NOTIFY_ASSIGNED') {\n return (\n \n \n has assigned you to case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'CASE_ASSIGNMENT_REMOVE') {\n return (\n \n \n has removed user:{' '}\n \n {item?.data?.assignments?.[0]?.firstName} {item?.data?.assignments?.[0]?.lastName}\n {' '}\n from the case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'OFFICER_DELETED') {\n return (\n \n \n removed officer{' '}\n {`${item?.data?.officer?.firstName} ${item?.data?.officer?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n \n {item?.data?.officer?.badgeNumber}{' '}\n \n \n \n );\n }\n if (item.type === 'OFFICER_CREATED') {\n return (\n \n \n added officer{' '}\n {`${item?.data?.officer?.firstName} ${item?.data?.officer?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n \n {item?.data?.officer?.badgeNumber}{' '}\n \n \n \n );\n }\n\n if (item.type === 'CASE_OFFICER_ADD') {\n return (\n \n \n has added officer{' '}\n {`${item?.data?.officers?.[0]?.firstName} ${item?.data?.officers?.[0]?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n {item?.data?.officers?.[0]?.badgeNumber} to\n case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'CASE_OFFICER_REMOVE') {\n return (\n \n \n removed officer{' '}\n {`${item?.data?.officers?.[0]?.firstName} ${item?.data?.officers?.[0]?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n {item?.data?.officers?.[0]?.badgeNumber} from\n case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'OFFICER_CREATED') {\n return (\n \n \n created officer{' '}\n {`${item?.data?.officer?.firstName} ${item?.data?.officer?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n \n {item?.data?.officer?.badgeNumber}{' '}\n \n \n \n );\n }\n if (item.type === 'OFFICER_VIEW') {\n return (\n \n \n viewed officer{' '}\n {`${item?.data?.officer?.firstName} ${item?.data?.officer?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n \n {item?.data?.officer?.badgeNumber}{' '}\n \n \n \n );\n }\n if (item.type === 'USER_VIEW') {\n return (\n \n \n viewed user{' '}\n \n {`${item?.data?.otherUser?.firstName} ${item?.data?.otherUser?.lastName}`}\n \n \n \n );\n }\n if (item.type === 'INVITATION_CREATED') {\n return (\n \n \n invited user{' '}\n {`${item?.data?.invitation?.firstName} ${item?.data?.invitation?.lastName} (${item?.data?.invitation?.email})`}{' '}\n to {item?.data?.invitation?.type} role.\n \n \n );\n }\n if (item.type === 'INVITATION_RESEND') {\n return (\n \n \n resent an invitation to{' '}\n {`${item?.data?.invitation?.firstName} ${item?.data?.invitation?.lastName} (${item?.data?.invitation?.email})`}{' '}\n for the {item?.data?.invitation?.type} role.\n \n \n );\n }\n if (item.type === 'INVITATION_DELETED') {\n return (\n \n \n deleted the invitation for{' '}\n {`${item?.data?.invitation?.firstName} ${item?.data?.invitation?.lastName} (${item?.data?.invitation?.email})`}{' '}\n \n \n );\n }\n if (\n item.type === 'FORMTYPE_CREATED' ||\n item.type === 'FORMTYPE_UPDATED' ||\n item.type === 'FORMTYPE_DELETED' ||\n item.type === 'FORMTYPE_DUPLICATED'\n ) {\n const idForm = item?.data?.formType?._id ?? null;\n const dataUser = {\n email: item?.data?.user?.email ?? '',\n avatar: getUserInitials(item?.data?.user),\n photo: item?.data?.user?.photo?.public_url,\n };\n const nameForm = item?.data?.formType?.name ?? '';\n const nameOriginal = item?.data?.originalFormType?.name ?? '';\n const descriptionForm =\n item.type === 'FORMTYPE_CREATED'\n ? 'created form with the name:'\n : item.type === 'FORMTYPE_UPDATED'\n ? 'update form with the name:'\n : item.type === 'FORMTYPE_DELETED'\n ? 'erased form with the name:'\n : '';\n return (\n \n \n {descriptionForm}{' '}\n {item.type === 'FORMTYPE_DUPLICATED' ? (\n <>\n duplicated form from{' '}\n \n {nameOriginal}\n {' '}\n and create a new form with the name:{' '}\n \n ) : null}\n \n {nameForm}\n \n \n \n );\n }\n if (item.type === 'USER_REGISTERED') {\n return (\n \n \n {`${user?.firstName} ${user?.lastName} (${user?.email})`}{' '}\n completed registration as for the{' '}\n {item?.data?.user?.role} role.\n \n \n );\n }\n if (item.type === 'USER_DELETED') {\n return (\n \n \n deleted user{' '}\n {`${item?.data?.otherUser?.firstName} ${item?.data?.otherUser?.lastName} (${item?.data?.otherUser?.email})`}{' '}\n from the {item?.data?.otherUser?.role} role.\n \n \n );\n }\n if (item.type === 'CASE_ALLEGATION_ROW_ADD') {\n return (\n \n \n added an allegation row to Officer{' '}\n {`${item?.data?.officer?.firstName} ${item?.data?.officer?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n \n {item?.data?.officer?.badgeNumber}{' '}\n \n to case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'CASE_ALLEGATION_ROW_DELETE') {\n return (\n \n \n has removed an Allegation row to Officer{' '}\n {`${item?.data?.officer?.firstName} ${item?.data?.officer?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n \n {item?.data?.officer?.badgeNumber}{' '}\n \n to case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'CASE_COMMENT_OR_ATTACHMENT' && item?.data?.files.length > 0 && item?.data?.comment) {\n return (\n \n \n made a new comment and{' '}\n uploaded {item?.data?.files.length} file(s) in the case:{' '}\n \n {item?.data?.form?.code}\n \n
\n \n \n \n
\n \n {item?.data?.files?.map((fl, i) => (\n \n \n \n ))}\n \n
\n \n );\n }\n if (item.type === 'CASE_COMMENT_OR_ATTACHMENT' && item?.data?.comment) {\n return (\n \n \n made a new comment in the case:{' '}\n \n {item?.data?.form?.code}\n \n
\n \n \n \n
\n \n );\n }\n if (item.type === 'CASE_COMMENT_OR_ATTACHMENT' && item?.data?.files.length > 0) {\n return (\n \n \n uploaded {item?.data?.files.length}{' '}\n file(s) in the case:{' '}\n \n {item?.data?.form?.code}\n \n
\n \n {item?.data?.files?.map((fl, i) => (\n \n \n \n ))}\n \n
\n \n );\n }\n if (item.type === 'CASE_COMMENT_EDIT') {\n const { oldComment, newComment } = item.data;\n return (\n \n \n edited a comment in the case:{' '}\n \n {item?.data?.form?.code}\n \n
\n \n {' before:'}\n \n {' after:'}\n \n \n
\n \n );\n }\n\n if (item.type === 'CASE_ALLEGATION_ROW_UPDATE') {\n return (\n \n \n {item?.data?.changes?.map((change, index) => {\n if (change?.fieldName === 'allegation') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue}{' '}\n to Allegation for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n ) : (\n <>\n has changed the Allegation from{' '}\n {change.oldValue} to{' '}\n {change.newValue}\n for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n )}\n \n );\n }\n if (change?.fieldName === 'description') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added a Description for Officer{' '}\n \n {item?.data?.officer?.firstName}\n {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n \n ) : (\n <>\n has changed the Description for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n {' from:'}\n \n {' to:'}\n \n \n )}\n \n );\n }\n if (change?.fieldName === 'disposition') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue}{' '}\n to Disposition for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n ) : (\n <>\n has changed the Disposition from{' '}\n {change.oldValue} to{' '}\n {change.newValue} for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n )}\n \n );\n }\n if (change?.fieldName === 'discipline') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue}{' '}\n to Discipline for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n ) : (\n <>\n has changed the Discipline from{' '}\n {change.oldValue} to{' '}\n {change.newValue}\n to Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n )}\n \n );\n }\n if (change?.fieldName === 'reason') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue}{' '}\n to Reason for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n ) : (\n <>\n has changed the Reason from{' '}\n {change.oldValue} to{' '}\n {change.newValue} \n to Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n )}\n \n );\n }\n\n if (change?.fieldName === 'status') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue}{' '}\n in Status to Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n ) : (\n <>\n has changed the Allegation's Status from{' '}\n {change.oldValue} to{' '}\n {change.newValue} for Officer{' '}\n \n {item?.data?.officer?.firstName} {item?.data?.officer?.lastName}\n {' '}\n with Badge Number:{' '}\n \n {item?.data?.officer?.badgeNumber}\n \n \n )}\n \n );\n }\n\n return null;\n })}\n to case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n if (item.type === 'ORGANIZATION_PERMISSION_UPDATED') {\n return (\n item?.data?.changes?.length > 0 && (\n \n {item?.data?.changes?.map((change, index) => (\n \n change{' '}\n \n {change.fieldName?.split('.')[1] === 'formTypes'\n ? `${change.fieldName?.split('.')[0]} Forms`\n : change.fieldName?.split('.').join(' ')}\n {' '}\n permissions from{' '}\n \n {permissionsOptionsForCases.find((op) => op.value === change.oldValue).text}\n {' '}\n to{' '}\n \n {permissionsOptionsForCases.find((op) => op.value === change.newValue).text}\n \n \n ))}\n \n )\n );\n }\n if (item.type === 'CASE_UPDATE') {\n return (\n \n \n {item?.data?.changes?.map((change, index) => {\n if (change?.fieldName === 'status') {\n return (\n \n has changed the case status from{' '}\n {getStatusTitle(change?.oldValue)} to{' '}\n {getStatusTitle(change?.newValue)}\n \n );\n }\n\n if (change?.fieldName === 'type') {\n return (\n \n has changed the case type{' '}\n {getStatusTitle(change?.oldValue)} to{' '}\n {getStatusTitle(change?.newValue)}\n \n );\n }\n\n if (change?.fieldName === 'caseNumber') {\n return (\n \n {!change?.oldValue ? (\n <>\n has changed the case number to{' '}\n {change.newValue}\n \n ) : (\n <>\n has changed the case number from{' '}\n {change.oldValue} to{' '}\n {change.newValue}\n \n )}\n \n );\n }\n\n if (change?.fieldName === 'internalAffairsCaseNumber') {\n //Fix this field name\n change.fieldName = 'Internal Affairs Case Number';\n }\n if (change?.fieldName?.length > 0) {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {convertValueToHTML(change.newValue)} to{' '}\n {change?.fieldName}{' '}\n \n ) : (\n <>\n has changed the{' '}\n {change?.fieldName} from{' '}\n {convertValueToHTML(change.oldValue)} to {convertValueToHTML(change.newValue)}\n \n )}\n \n );\n }\n\n return null;\n })}\n to case:{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'IMPORT_CASE') {\n return (\n \n \n imported case{' '}\n \n {item?.data?.form?.code}{' '}\n \n \n \n );\n }\n if (item.type === 'IMPORT_CASES' && item?.data?.event === 'end') {\n return (\n \n \n imported{' '}\n {item?.data?.successCount} cases{' '}\n \n \n );\n }\n if (item.type === 'IMPORT_OFFICER') {\n return (\n \n \n imported Officer{' '}\n {`${item?.data?.officer?.firstName} ${item?.data?.officer?.lastName}`}{' '}\n with Badge/Serial Number{' '}\n \n {item?.data?.officer?.badgeNumber}{' '}\n \n \n \n );\n }\n if (item.type === 'IMPORT_USER') {\n return (\n \n \n imported User{' '}\n \n {`${item?.data?.invitation?.firstName} ${item?.data?.invitation?.lastName}`}{' '}\n \n to {`${item?.data?.invitation?.type} `} role.\n \n \n );\n }\n if (item.type === 'IMPORT_OFFICERS ' && item?.data?.event === 'end') {\n return (\n \n \n imported{' '}\n {item?.data?.successCount} officers{' '}\n \n \n );\n }\n if (item.type === 'IMPORT_USERS' && item?.data?.event === 'end') {\n return (\n \n \n imported{' '}\n {item?.data?.successCount} users.{' '}\n \n \n );\n }\n\n if (item.type === 'USER_EDIT_ROLE') {\n return (\n \n \n has changed the role of{' '}\n {item?.data?.requestedUser?.email} from{' '}\n {item?.data?.oldRole} to{' '}\n {item?.data?.newRole}\n \n \n );\n }\n\n if (item.type === 'CASE_TASK_ASSIGNED_TO_YOU') {\n return (\n \n \n has assigned you to the task{' '}\n {item.data?.task?.name} in the case{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'CASE_TASK_ASSIGNED') {\n return (\n \n \n has assigned{' '}\n \n {item.data?.users?.map((u) => `${u.firstName} ${u.lastName}`).join(', ')}\n {' '}\n to the task {item.data?.task?.name} in the case{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'CASE_TASK_UNASSIGNED_FROM_YOU') {\n return (\n \n \n has removed you from the task{' '}\n {item.data?.task?.name} in the case{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n\n if (item.type === 'CASE_TASK_UNASSIGNED') {\n return (\n \n \n has removed{' '}\n \n {item.data?.users?.map((u) => `${u.firstName} ${u.lastName}`).join(', ')}\n {' '}\n from the task {item.data?.task?.name} in the case{' '}\n \n {item?.data?.form?.code}\n \n \n \n );\n }\n };\n\n return (\n \n {title}\n\n \n \n \n \n \n \n\n \n {items?.map((item, id) => (\n {renderText(item)}\n ))}\n \n \n \n \n );\n};\n\nTimeLine.propTypes = {\n items: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string.isRequired,\n};\n\nconst TimeLineDot = styled.div`\n width: 9px;\n height: 9px;\n border-radius: 50%;\n ${(props) => (props.isFilled ? `background: #364F74;` : `border: 1px solid #364F74`)}\n`;\n\nexport default TimeLine;\n","import { Box, Button, CircularProgress, Divider, makeStyles, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport DatePickerMUI from '../../components/DatePickerMUi';\nimport SelectBox from '../../components/SelectBox';\nimport { getActivity } from '../../services/unarmed';\nimport { OutLineInput } from '../CaseDetails/UpdateCase';\nimport { onGetDateLabels } from './Activity';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\nconst ActivityFilter = ({\n onClick,\n code,\n module,\n typeOptions = [],\n from,\n to,\n setFrom,\n setIsFiltering,\n setTo,\n limit,\n before,\n setItems,\n onClearFilters,\n lastId,\n setLastId,\n setHasNextPage,\n}) => {\n const classes = useStyles();\n\n const [loading, setLoading] = useState(false);\n\n const onFilter = async () => {\n try {\n setLoading(true);\n const res = await getActivity({\n module: module.value,\n startDate: from,\n endDate: to,\n formCode: code.value,\n limit,\n });\n\n if (res.length > 0) {\n setHasNextPage(true);\n } else {\n setHasNextPage(false);\n }\n // if (typeof lastId === 'string' && lastId !== res[res.length - 1]?._id) {\n setLastId(res[res.length - 1]?._id);\n // }\n const dataFormattedByDate = {};\n res.forEach((itm) => {\n onGetDateLabels(itm, dataFormattedByDate);\n });\n\n setItems(dataFormattedByDate);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n\n console.log(error);\n }\n };\n return (\n {\n const keycode = e.keyCode ? e.keyCode : e.which;\n if (parseInt(keycode) === 13) {\n onFilter();\n }\n }}\n >\n \n \n Modules\n \n \n \n \n Tracking Number\n \n \n \n \n \n Activity Date\n \n \n \n \n \n \n \n \n\n \n \n \n \n Clear All Filters{' '}\n \n \n \n \n \n \n \n \n );\n};\n\nexport default ActivityFilter;\n","import { Box, CircularProgress, makeStyles, Typography } from '@material-ui/core';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport moment from 'moment';\nimport { Waypoint } from 'react-waypoint';\nimport FileDownload from 'js-file-download';\nimport { toast } from '../../components/Notification';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport useOrganization from '../../hooks/useOrganization';\nimport TimeLine from './TImeLine';\nimport { Context } from '../../Context';\nimport ActivityFilter from './ActivityFilter';\nimport useInput from '../../hooks/useInput';\nimport { getActivity, onGetActivityToExport } from '../../services/unarmed';\nimport useNearScreen from '../../hooks/userNearScreen';\nimport FilterButton from '../../components/FilterButton';\nimport DashButton from '../../components/DashButton';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n width: '100%',\n\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#1F63FF',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 445,\n outline: 0,\n },\n}));\n\nconst options = [\n // {\n // text: 'All',\n // value: 'all',\n // },\n {\n text: 'Allegations',\n value: 'allegations',\n },\n {\n text: 'Cases',\n value: 'cases',\n },\n {\n text: 'Import',\n value: 'import',\n },\n {\n text: 'Officers',\n value: 'officers',\n },\n // { text: 'Usage', value: 'usage' },\n {\n text: 'Users',\n value: 'users',\n },\n];\n\nexport const onGetDateLabels = (itm, setterData) => {\n if (moment(itm.createdAt).format('MM-DD-YYYY') === moment().format('MM-DD-YYYY')) {\n if (setterData.Today?.length > 0) {\n setterData.Today = [...setterData.Today, itm];\n } else {\n setterData.Today = [itm];\n }\n } else if (moment(itm.createdAt).format('MM-DD-YYYY') === moment().subtract(1, 'days').format('MM-DD-YYYY')) {\n if (setterData.Yesterday?.length > 0) {\n setterData.Yesterday = [...setterData.Yesterday, itm];\n } else {\n setterData.Yesterday = [itm];\n }\n } else {\n const dd = moment(itm.createdAt).format('MM-DD-YYYY').toString();\n\n if (setterData[dd]?.length > 0) {\n setterData[dd] = [...setterData[dd], itm];\n } else {\n setterData[dd] = [itm];\n }\n }\n};\n\nconst Activity = () => {\n const classes = useStyles();\n const { organization } = useOrganization();\n const { setActive } = useContext(Context);\n const [openFilter, setOpenFilter] = useState(false);\n const [hasNextPage, setHasNextPage] = useState(true);\n const code = useInput('');\n const module = useInput('');\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const [lastId, setLastId] = useState('');\n const [items, setItems] = useState({});\n\n const [loading, setLoading] = useState('idle');\n const externalRef = useRef();\n const { isNearScreen } = useNearScreen({\n externalRef: loading === 'pending' ? null : externalRef,\n once: false,\n });\n\n useEffect(() => {\n setActive('/activity');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setLoading('pending');\n getActivity({ limit: 10, startDate: from, endDate: to })\n .then((res) => {\n const dataFormattedByDate = {};\n res.forEach((itm) => {\n onGetDateLabels(itm, dataFormattedByDate);\n });\n\n setItems(dataFormattedByDate);\n setLastId(res[res.length - 1]?._id);\n setLoading('resolved');\n })\n .catch((err) => {\n setLoading('rejected');\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onClearFilters = () => {\n module.setValue('0');\n setTo(null);\n setFrom(null);\n setLastId('');\n code.setValue('');\n setHasNextPage(true);\n getActivity({ limit: 10 })\n .then((res) => {\n const dataFormattedByDate = {};\n res.forEach((itm) => {\n onGetDateLabels(itm, dataFormattedByDate);\n });\n\n setItems(dataFormattedByDate);\n\n setLastId(res[res.length - 1]?._id);\n setLoading('resolved');\n })\n .catch((err) => {\n setLoading('rejected');\n });\n };\n\n const getMoreActivities = () => {\n setLoading('pending');\n getActivity({\n limit: 15,\n before: lastId,\n startDate: from,\n endDate: to,\n formCode: code.value,\n module: module.value,\n })\n .then((res) => {\n if (res.length === 0) {\n setHasNextPage(false);\n return;\n }\n const dataFormattedByDate = {};\n res.forEach((itm) => {\n onGetDateLabels(itm, dataFormattedByDate);\n });\n if (typeof lastId === 'string' && lastId !== res[res.length - 1]?._id) {\n const dataKeys = Object.keys(dataFormattedByDate);\n const itemsCopy = { ...items };\n dataKeys.forEach((dataKey) => {\n if (itemsCopy[dataKey]) {\n itemsCopy[dataKey] = [...itemsCopy[dataKey], ...dataFormattedByDate[dataKey]];\n } else {\n itemsCopy[dataKey] = dataFormattedByDate[dataKey];\n }\n });\n setLastId(res[res.length - 1]?._id);\n // setItems((prevState) => [...prevState, ...res]);\n setItems(itemsCopy);\n } else {\n setLastId(false);\n }\n setLoading('resolved');\n })\n .catch((err) => {\n setLoading('rejected');\n });\n };\n\n const getActivityToExport = () => {\n if (!from || !to) {\n toast.error('Please select a date range in the filter to generate a CSV file.');\n return;\n }\n if (moment(from).diff(to, 'days') < -180) {\n toast.error('The max interval dates between activities are 6 months.');\n return;\n }\n onGetActivityToExport({\n before: lastId,\n startDate: from,\n endDate: to,\n formCode: code.value,\n module: module.value,\n })\n .then((res) => FileDownload(res, 'activities.csv'))\n .catch((err) => toast.error(err.message));\n };\n\n return (\n <>\n {organization && }\n \n \n Activity\n \n \n setOpenFilter(!openFilter)}\n marginRight=\"10px\"\n />\n \n Download\n \n \n {openFilter && (\n setOpenFilter(false)}\n limit={10}\n setItems={setItems}\n onClearFilters={onClearFilters}\n typeOptions={{ obj: options }}\n lastId={lastId}\n setLastId={setLastId}\n />\n )}\n \n {!Object.keys(items).length && loading === 'resolved' && (\n \n There is no activity logs for the selected time range\n \n )}\n {Object.keys(items)?.map((item, index) => (\n \n ))}\n
\n {isNearScreen && hasNextPage && lastId && (\n \n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default Activity;\n","import {\n Box,\n Button,\n CircularProgress,\n Divider,\n makeStyles,\n Typography,\n Switch,\n FormControlLabel,\n} from '@material-ui/core';\nimport React, { useState } from 'react';\nimport moment from 'moment';\nimport DatePickerMUI from '../../components/DatePickerMUi';\nimport SelectBox from '../../components/SelectBox';\nimport { getAllegations, getFormOptionsType, getOfficerOptions, updateFilterConfigById } from '../../services/unarmed';\nimport { AllegationOptions, DisciplineOptions, DispositionOptions, OutLineInput } from '../CaseDetails/UpdateCase';\nimport { CustomSwitch } from '../../formEngine/components/WrapperComponent';\nimport { activeColors } from '../../components/CaseFilters';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\nconst AllegationFilter = ({\n onClick,\n allegation,\n trackingNumber,\n badge,\n officerName,\n status,\n disposition,\n discipline,\n from,\n to,\n setFrom,\n setTo,\n setOpen,\n type,\n setAllegations,\n setPage,\n rowsPerPage,\n sortBy,\n sort,\n setIsFiltering,\n onClearFilters,\n openShowAdvancedFilters,\n filtersConfig,\n setfiltersConfig,\n filterConfigId,\n fetchFiltersConfig,\n filtersApplied,\n flaggedOnly,\n}) => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [showAdvancedFilter, setShowAdvancedFilers] = useState(openShowAdvancedFilters || false);\n const [officerOptions, setOfficerOptions] = useState([]);\n const [formOptions, setFormOptions] = useState([]);\n\n const getOfficersOptions = async () => {\n const { data } = await getOfficerOptions();\n setOfficerOptions(data);\n };\n\n const getFormOptionsTypes = async () => {\n const { data } = await getFormOptionsType();\n setFormOptions(data);\n console.log(data);\n };\n\n React.useEffect(() => {\n getOfficersOptions();\n getFormOptionsTypes();\n }, []);\n\n const onFilter = async () => {\n try {\n setIsFiltering(true);\n setLoading(true);\n setPage(1);\n const { data, headers } = await getAllegations({\n page: 1,\n limit: rowsPerPage,\n from: from ? moment(from).format('YYYY-MM-DD') : null,\n to: to ? moment(to).format('YYYY-MM-DD') : null,\n sort,\n sortBy,\n isFiltering: true,\n uniqueFieldId: badge.value,\n officerName: officerName.value,\n status: status.value,\n disposition: disposition.value,\n allegation: allegation.value,\n discipline: discipline.value,\n trackingNumber: trackingNumber.value,\n flaggedOnly: flaggedOnly.value,\n type: type.value,\n });\n // fetchFiltersConfig();\n const filterSaved = {\n from: from ? moment(from).format('YYYY-MM-DD') : null,\n to: to ? moment(to).format('YYYY-MM-DD') : null,\n sort,\n sortBy,\n uniqueFieldId: badge.value,\n officerName: officerName.value,\n status: status.value,\n disposition: disposition.value,\n allegation: allegation.value,\n discipline: discipline.value,\n trackingNumber: trackingNumber.value,\n type: type.value,\n flaggedOnly: flaggedOnly.value,\n };\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n\n await updateFilterConfigById(filterConfigId, filterSaved);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n\n console.log(error);\n }\n };\n\n const handleClearAllFilters = async () => {\n onClearFilters();\n try {\n setIsFiltering(true);\n setLoading(true);\n const filterSaved = {\n from: from ? moment(from).format('YYYY-MM-DD') : null,\n to: to ? moment(to).format('YYYY-MM-DD') : null,\n sort,\n sortBy,\n uniqueFieldId: '',\n officerName: '',\n status: '',\n disposition: '',\n allegation: '',\n discipline: '',\n trackingNumber: '',\n type: '',\n flaggedOnly: false,\n };\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n await updateFilterConfigById(filterConfigId, filterSaved);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n\n console.log(error);\n }\n };\n\n return (\n \n \n \n Allegation\n \n \n \n Case Type\n type.toLowerCase()) || []}\n value={type.value || null}\n onChange={type.onChange}\n outlined\n withColors={filtersApplied.type ? activeColors : null}\n />\n \n\n \n \n Tracking Number\n \n \n \n\n \n \n Created Date\n \n \n \n \n \n \n \n \n \n Unique Identifier\n \n \n \n \n\n {showAdvancedFilter && (\n \n \n \n Officer Name\n \n \n \n \n Status\n \n \n \n Disposition\n \n \n \n Discipline\n \n \n \n }\n label=\"Flagged only\"\n labelPlacement=\"start\"\n />\n \n \n )}\n\n \n \n \n setShowAdvancedFilers(!showAdvancedFilter)}\n >\n Advance Filters\n \n |\n \n Clear All Filters{' '}\n \n \n \n setOpen(false)}\n style={{ textTransform: 'capitalize' }}\n >\n Cancel\n \n \n \n \n \n );\n};\n\nexport default AllegationFilter;\n","function convertToCSV(objArray) {\n const array = typeof objArray !== 'object' ? JSON.parse(objArray) : objArray;\n let str = '';\n\n for (let i = 0; i < array.length; i++) {\n let line = ``;\n for (const index in array[i]) {\n if (line !== '') line += ',';\n\n const value = array[i][index];\n const isFlagUndefined = (index === 'Flag' && value === undefined);\n // Handle different value types appropriately\n if (value === null || value === undefined || isFlagUndefined) {\n if (isFlagUndefined) {\n line += 'false';\n } else {\n line += 'undefined';\n }\n } else if (typeof value === 'boolean') {\n line += value ? 'true' : 'false';\n } else if (typeof value === 'string' && value.includes(',')) {\n line += `\"${value.replaceAll('\"', '\"\"')}\"`;\n } else {\n line += value;\n }\n }\n str += `${line}\\r\\n`;\n }\n\n return str;\n}\n\nexport const exportCSVFile = (headers, items, fileTitle, csv = false, downloadNow = true) => {\n if (headers) {\n items.unshift(headers);\n }\n\n // Convert Object to JSON\n const jsonObject = typeof items === 'string' ? JSON.stringify(items) : items;\n\n let csvFile = null;\n if (!csv) {\n csvFile = convertToCSV(jsonObject);\n } else {\n csvFile = csv;\n }\n const exportedFilenmae = `${fileTitle}.csv` || 'export.csv';\n\n const blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, exportedFilenmae);\n } else {\n const link = document.getElementById('downloadLink');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', exportedFilenmae);\n if (downloadNow) {\n link.click();\n }\n }\n }\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n Backdrop,\n Box,\n Checkbox,\n CircularProgress,\n Fade,\n Modal,\n Tooltip,\n Typography,\n Popover,\n List,\n ListItem,\n Divider,\n TextField,\n InputAdornment,\n Button,\n Tabs,\n} from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport SearchIcon from '@material-ui/icons/Search';\nimport moment from 'moment';\nimport EnhancedTable from '../../components/Table';\nimport AllegationFilter from './AllegationFilter';\nimport FilterButton from '../../components/FilterButton';\nimport DashButton from '../../components/DashButton';\nimport { getAllegations, getfiltersConfigById, getViewByIdv } from '../../services/unarmed';\nimport AddMore from '../../components/AddMore';\nimport { TYPE_USER_TABS } from '../../utils/constants';\n\nexport const ViewTabAllegations = ({\n open,\n classes,\n handleClick,\n openPopover,\n anchorEl,\n handleClose,\n searchTerm,\n setSearchTerm,\n showColumns,\n handleToggleColumn,\n formatHeadersText,\n onEditMultipleAllegations,\n visibleColumns,\n hideColumns,\n from,\n to,\n setPage,\n flaggedOnly,\n setFrom,\n setTo,\n page,\n rowsPerPage,\n sort,\n sortBy,\n onClearFilters,\n setIsFiltering,\n selected,\n setOpen,\n type,\n fetchFiltersConfig,\n setSort,\n filtersLoaded,\n setFiltersLoaded,\n getVisibleColumns,\n setSortBy,\n renderRow,\n setChecked,\n checked,\n setSelected,\n handleChangeRowsPerPage,\n tabSelected,\n setVisibleColumns,\n loading,\n allegations,\n onGetAllegationRange,\n allegation,\n trackingNumber,\n badge,\n officerName,\n disposition,\n discipline,\n setAllegations,\n status,\n setLoading,\n location,\n isFiltering,\n}) => {\n const [view, setView] = useState();\n const [filtersConfig, setfiltersConfig] = useState({});\n const [filtersApplied, setFiltersApplied] = useState({});\n const [filterCount, setFilterCount] = useState(0);\n\n const onGetAllegation = async () => {\n try {\n setLoading(true);\n const { data, headers } = await getAllegations({\n page,\n limit: rowsPerPage,\n from,\n to,\n sort,\n sortBy,\n isFiltering,\n uniqueFieldId: badge.value,\n officerName: officerName.value,\n status: status.value,\n disposition: disposition.value,\n allegation: allegation.value,\n discipline: discipline.value,\n trackingNumber: trackingNumber.value,\n flaggedOnly: flaggedOnly.value,\n type: type.value,\n });\n setAllegations({ data, headers });\n console.log('DATA', data);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n\n console.log(error);\n }\n };\n\n const handleOnSetFiltersConfig = () => {\n const newFiltersApplied = {};\n if (filtersConfig) {\n const configCopy = { ...filtersConfig };\n\n delete configCopy.sortOrder;\n delete configCopy.sortBy;\n delete configCopy.page;\n delete configCopy.limit;\n delete configCopy.isFiltering;\n Object.keys(configCopy).forEach((key) => {\n const value = configCopy[key];\n let isApplied = false;\n\n if (value === null || !value || value === '0') {\n isApplied = false;\n } else if (Array.isArray(value)) {\n isApplied = value.length > 0;\n } else if (typeof value === 'boolean') {\n isApplied = value === true;\n } else {\n isApplied = true;\n }\n\n newFiltersApplied[key] = isApplied;\n });\n\n const newCount = Object.values(newFiltersApplied).filter((item) => item).length;\n setFilterCount(newCount);\n setFiltersApplied(newFiltersApplied);\n }\n };\n\n const onGetAllegation1 = async ({\n fromV,\n toV,\n sortV,\n sortByV,\n badgeV,\n officerNameV,\n statusV,\n dispositionV,\n allegationV,\n disciplineV,\n trackingNumberV,\n typeV,\n flaggedOnlyV,\n }) => {\n try {\n setLoading(true);\n const { data, headers } = await getAllegations({\n page,\n limit: rowsPerPage,\n from: fromV,\n to: toV,\n sort: sortV,\n sortBy: sortByV,\n isFiltering,\n uniqueFieldId: badgeV,\n officerName: officerNameV,\n status: statusV,\n disposition: dispositionV,\n allegation: allegationV,\n discipline: disciplineV,\n trackingNumber: trackingNumberV,\n flaggedOnly: flaggedOnlyV,\n type: typeV,\n });\n setAllegations({ data, headers });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n\n console.log(error);\n }\n };\n\n useEffect(() => {\n handleOnSetFiltersConfig();\n if (filtersConfig) {\n allegation.setValue(filtersConfig?.allegation);\n disposition.setValue(filtersConfig?.disposition);\n discipline.setValue(filtersConfig?.discipline);\n setFrom(filtersConfig?.startDate);\n setTo(filtersConfig?.endDate);\n officerName.setValue(filtersConfig?.name);\n badge.setValue(filtersConfig?.uniqueFieldId);\n status.setValue(filtersConfig?.status);\n setSort(sort || filtersConfig?.sortOrder);\n setSortBy(sortBy || filtersConfig?.sortBy);\n type.setValue(filtersConfig?.type?.toLowerCase() || '');\n trackingNumber.setValue(filtersConfig?.code);\n flaggedOnly.setValue(filtersConfig?.flaggedOnly);\n\n setIsFiltering(true);\n setFiltersLoaded(true);\n onGetAllegation1({\n fromV: filtersConfig?.startDate,\n toV: filtersConfig?.endDate,\n sortV: sort || filtersConfig?.sortOrder,\n sortByV: sortBy || filtersConfig?.sortBy,\n badgeV: filtersConfig?.uniqueFieldId,\n officerNameV: filtersConfig?.name,\n statusV: filtersConfig?.status,\n dispositionV: filtersConfig?.disposition,\n allegationV: filtersConfig?.allegation,\n disciplineV: filtersConfig?.discipline,\n trackingNumberV: filtersConfig?.code,\n typeV: filtersConfig?.type?.toLowerCase(),\n flaggedOnlyV: filtersConfig?.flaggedOnly,\n });\n } else if (filtersConfig === null) {\n setIsFiltering(false);\n setFiltersLoaded(true);\n onGetAllegation();\n }\n }, [filtersConfig, page, sort, sortBy]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (tabSelected?.displayObjectId && tabSelected?.displayObjectType === TYPE_USER_TABS.VIEW) {\n const responseView = await getViewByIdv(tabSelected?.displayObjectId);\n if (responseView?.data?.view[0]) {\n setView(responseView.data.view[0]);\n setVisibleColumns(responseView.data.view[0].columns);\n\n\n }\n }\n };\n\n fetchData();\n }, [tabSelected]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (view) {\n const responsefiltersConfig = await getfiltersConfigById(view?.filtersConfigId);\n setfiltersConfig(responsefiltersConfig?.data?.filterConfig[0]?.config);\n }\n };\n\n fetchData();\n }, [view]);\n\n return (\n <>\n \n \n \n \n All Allegations ({allegations?.headers?.['x-pagination-totalitems']})\n \n\n \n\n \n \n \n \n Show / Hide Columns\n \n \n\n \n\n setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n disableUnderline: true,\n style: {\n fontSize: '12px',\n height: '28px',\n },\n }}\n style={{\n padding: '5px 0',\n backgroundColor: 'transparent',\n fontSize: '12px',\n height: '28px',\n }}\n />\n\n \n\n \n \n Visible\n \n \n\n \n {showColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n\n \n\n \n \n Hidden\n \n \n\n \n {hideColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n \n \n \n\n \n setOpen(!open)}\n marginRight=\"10px\"\n />\n \n Flag\n \n \n Download\n \n \n \n {open && (\n \n )}\n \n \n \n \n );\n};\n","import { Box, Checkbox, makeStyles, TableCell, TableRow, Typography } from '@material-ui/core';\nimport React, { useCallback, useContext, useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport moment from 'moment';\nimport { toast } from '../../components/Notification';\nimport { getAllegationRange, getAllegations, editMultipleAllegations, updateViewsById } from '../../services/unarmed';\nimport { Context } from '../../Context';\nimport EnhancedTable from '../../components/Table';\nimport AllegationFilter from './AllegationFilter';\nimport useInput from '../../hooks/useInput';\nimport Flagged from '../../assets/flagged.png';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport useOrganization from '../../hooks/useOrganization';\nimport { convertStatusToLowerCase } from '../../components/OfficerAdded';\nimport { exportCSVFile } from '../../utils/convertJsonCsv';\nimport { logEvent } from '../../services/firebase';\nimport useFiltersConfig from '../../hooks/useFiltersConfig';\nimport { useTabsUtil } from '../../hooks/useTabs';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport TabsModules from '../../components/TabsModules';\nimport ArrayTooltip from '../../components/ArrayTooltip';\nimport { ViewTabAllegations } from './ViewTabAllegations';\n\nconst showStatus = (status) => {\n switch (status) {\n case 'RECEIVED':\n return 'Received';\n\n case 'IN_PROGRESS':\n return 'In Progress';\n\n case 'CLOSED':\n return 'Closed';\n\n default:\n return 'N/A';\n }\n};\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n}));\n\nconst Allegations = () => {\n const classes = useStyles();\n const location = useLocation();\n const [loading, setLoading] = useState(false);\n const [open, setOpen] = useState(location?.state?.openFilter || false);\n const [page, setPage] = useState(1);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [checked, setChecked] = useState(false);\n const { authUser, setActive } = useContext(Context);\n const [allegations, setAllegations] = useState(null);\n const allegation = useInput(location?.state?.allegation || '');\n const trackingNumber = useInput('');\n const badge = useInput(location?.state?.badge || '');\n const officerName = useInput('');\n const status = useInput('');\n const type = useInput('');\n const disposition = useInput(location?.state?.disposition || '');\n const discipline = useInput('');\n const flaggedOnly = useInput(false, false, false, true);\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const [isFiltering, setIsFiltering] = useState(location?.state?.openFilter || false);\n const isSelected = (name) => selected.indexOf(name) !== -1;\n const { organization } = useOrganization();\n const history = useHistory();\n\n const baseColumns = {\n flag: true,\n allegation: true,\n disposition: false,\n discipline: false,\n caseType: true,\n trackingNumber: true,\n createdDate: true,\n uniqueFieldId: true,\n officerName: true,\n code: false,\n status: true,\n };\n const [loadingEditAllegations, setLoadingEditAllegations] = useState(false);\n const [view, setView] = useState(null);\n const [visibleColumns, setVisibleColumns] = useState(baseColumns);\n const [anchorEl, setAnchorEl] = useState(null);\n const [searchTerm, setSearchTerm] = useState('');\n\n const filteredColumns = Object.keys(visibleColumns).filter((column) =>\n column.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n const showColumns = filteredColumns.filter((column) => visibleColumns[column]);\n const hideColumns = filteredColumns.filter((column) => !visibleColumns[column]);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const openPopover = Boolean(anchorEl);\n const popoverId = open ? 'column-popover' : undefined;\n\n const {\n filtersConfig,\n filterCount,\n filtersLoaded,\n filtersApplied,\n resetFilterCount,\n setFiltersLoaded,\n fetchFiltersConfig,\n } = useFiltersConfig('allegations');\n\n useEffect(() => {\n setActive('/allegations');\n }, []);\n\n const {\n activeTab,\n setActiveTab,\n tabSelected,\n setTabSelected,\n onGetUserTabs,\n userTabs,\n updateNameTab,\n setUserTabs,\n handleSaveTab,\n handleTabSelection,\n nextPosition,\n setShowReportTable,\n handleTabsReorder,\n handleTabSelectionAction,\n deleteSelectedTab,\n activeTabName,\n setActiveTabName,\n } = useTabsUtil({ moduleName: 'ALLEGATIONS' });\n\n const onGetAllegationRange = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `allegationIds[]=${id}`;\n } else {\n ids += `allegationIds[]=${id}&`;\n }\n }\n try {\n const { data } = await getAllegationRange(authUser.tokenId, ids);\n\n const csvObj = data.map((dt) => {\n let firstName =\n dt?.officer?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'First Name'\n );\n\n let lastName =\n dt?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'Last Name'\n );\n\n if (!dt?.officer) {\n firstName = { value: \"Not\" };\n lastName = { value: \"Specified\" };\n }\n\n if ((!firstName?.value || !lastName?.value) && dt?.officer) {\n const names = dt?.officer?.customFields?.[0]?.sections?.[0]?.components?.filter(\n (field) => field?.data?.special === true\n );\n\n if (names && names.at(0)) {\n firstName = names[0];\n }\n\n if (names && names.at(1)) {\n lastName = names[1];\n }\n\n if (!names || (!names.at(0) && !names.at(1))) {\n firstName = { value: \"Not\" };\n lastName = { value: \"Specified\" };\n }\n }\n\n return {\n 'Allegation Type': dt.allegation?.allegation || 'N/A',\n 'Tracking Number': dt.code,\n 'Created Date': moment(dt?.allegation.createdAt).format(`MM-DD-YYYY`),\n 'Unique Identifier': dt?.officer?.uniqueFieldId?.value,\n 'Officer Name': `${firstName?.value} ${lastName?.value}`,\n Status: convertStatusToLowerCase(dt?.allegation?.status) || 'N/A',\n }\n });\n exportCSVFile(\n ['Allegation Type', 'Tracking Number', 'Created Date', 'Badge/Serial Number', 'Officer Name', 'Status'],\n csvObj,\n `Oversight-Allegations-${moment().format('MMMM-DD-YYYY')}`\n );\n // const obj = document.getElementById('downloadLink');\n // obj.click();\n } catch (error) {\n console.log(error);\n toast.error('Something went wron when exporting allegations...');\n }\n };\n\n const handleToggleColumn = async (viewId, columnName) => {\n try {\n const updatedColumns = {\n ...visibleColumns,\n [columnName]: !visibleColumns[columnName],\n };\n\n const response = await updateViewsById(viewId, { columns: updatedColumns });\n\n if (response && response.status === 200 && response.view) {\n setVisibleColumns(response.view.columns);\n } else {\n console.error('Failed to update columns:', response);\n }\n } catch (error) {\n console.error('Error updating column visibility:', error);\n }\n };\n\n const formatHeadersText = (str) => {\n const result = str.replace(/([A-Z])/g, ' $1');\n\n return result.replace(/^./, (firstChar) => firstChar.toUpperCase()).trim();\n };\n\n const onEditMultipleAllegations = async () => {\n const selectedAllegations = allegations.data.filter((allegation) => selected.includes(allegation._id));\n const allAreFlagged = selectedAllegations.every((allegation) => allegation.flagged);\n try {\n setLoadingEditAllegations(true);\n await editMultipleAllegations(selected);\n\n setAllegations((prevAllegations) => {\n const updatedData = prevAllegations.data.map((allegation) => {\n if (selected.includes(allegation.allegation._id)) {\n return {\n ...allegation,\n allegation: {\n ...allegation.allegation,\n flagged: !allegation.allegation.flagged,\n },\n };\n }\n return allegation;\n });\n\n return {\n ...prevAllegations,\n data: updatedData,\n };\n });\n\n setLoadingEditAllegations(false);\n setSelected([]);\n toast.success(allAreFlagged ? 'Successfully unflagged allegations' : 'Successfully flagged allegations');\n } catch (error) {\n setLoadingEditAllegations(false);\n toast.error(error.message);\n }\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const onClearFilters = useCallback(async () => {\n status.setValue('0');\n allegation.setValue('0');\n disposition.setValue('0');\n discipline.setValue('0');\n setFrom(null);\n setTo(null);\n trackingNumber.setValue(null);\n officerName.setValue(null);\n badge.setValue(null);\n type.setValue('0');\n flaggedOnly.setValue(false);\n setIsFiltering(false);\n resetFilterCount();\n try {\n setLoading(true);\n const { data, headers } = await getAllegations(\n filtersConfig ? filtersConfig._id : null,\n page,\n rowsPerPage,\n from,\n to,\n sort,\n sortBy,\n false\n );\n setAllegations({ data, headers });\n setLoading(false);\n fetchFiltersConfig();\n toast.success('Successfully cleared filters!');\n } catch (error) {\n setLoading(false);\n\n console.log(error.message);\n }\n }, [filtersConfig, page, rowsPerPage, from, to, sort, sortBy]);\n\n const gotToOfficerProfile = (e, row, handleClick) => {\n const go = handleClick(e, row.allegation?._id);\n if (go) {\n setActive('/cases');\n history.push(`/case/${row.code}`, { tab: 'officer' });\n logEvent('enter_allegation_details');\n }\n };\n\n const renderRow = (row, index, handleClick) => {\n const isItemSelected = isSelected(row.allegation?._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n\n let firstName =\n row?.officer?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'First Name'\n );\n\n let lastName =\n row?.officer?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'Last Name'\n );\n\n if (!row?.officer) {\n firstName = { value: \"Not\" };\n lastName = { value: \"Specified\" };\n }\n\n if ((!firstName?.value || !lastName?.value) && row?.officer) {\n const names = row?.officer?.customFields?.[0]?.sections?.[0]?.components?.filter(\n (field) => field?.data?.special === true\n );\n\n if (names && names.at(0)) {\n firstName = names[0];\n }\n\n if (names && names.at(1)) {\n lastName = names[1];\n }\n\n if (!names || (!names.at(0) && !names.at(1))) {\n firstName = { value: \"Not\" };\n lastName = { value: \"Specified\" };\n }\n }\n\n return (\n gotToOfficerProfile(e, row, handleClick)}\n aria-checked={isItemSelected}\n selected={isItemSelected}\n role=\"checkbox\"\n tabIndex={-1}\n key={index}\n className={classes.row}\n style={{ cursor: 'pointer', height: 50 }}\n >\n \n \n \n {Object.entries(visibleColumns).map(([key, isVisible]) => {\n if (!isVisible) return null;\n switch(key) {\n case 'flag':\n return (\n \n {row?.allegation?.flagged && \"Flagged\"}\n \n );\n case 'allegation':\n return (\n \n {row?.allegation?.allegation}\n \n );\n case 'disposition':\n return {row?.allegation?.disposition};\n case 'discipline':\n return {row?.allegation?.discipline};\n case 'caseType':\n return (\n \n {row?.type?.toLowerCase()}\n \n );\n case 'trackingNumber':\n return {row?.code};\n case 'createdDate':\n return (\n \n {row?.allegation?.createdAt ? moment(row?.allegation?.createdAt).format('MMMM DD, YYYY') : null}\n \n );\n case 'officerName':\n return (\n \n {`${firstName?.value} ${lastName?.value}`}\n \n );\n case 'uniqueIdentifier':\n return (\n \n {row?.officer?.uniqueFieldId?.value || 'Not Specified'}\n \n );\n case 'code':\n return (\n \n {showStatus(row?.code)}\n \n );\n case 'status':\n return (\n \n {showStatus(row?.allegation?.status)}\n \n );\n default:\n return <>;\n }\n })}\n \n );\n };\n\n const getVisibleColumns = () => {\n return Object.keys(visibleColumns)\n .filter((column) => visibleColumns[column])\n .map((column) => formatHeadersText(column));\n }\n\n return (\n <>\n {organization && }\n \n \n Allegations \n \n {}}\n saveTab={handleSaveTab}\n onTabSelect={handleTabSelection}\n nextPosition={nextPosition}\n saveTabPositions={handleTabsReorder}\n onTabAction={handleTabSelectionAction}\n deleteTab={deleteSelectedTab}\n moduleName=\"ALLEGATIONS\"\n />\n\n {activeTab === TYPE_USER_TABS.MAIN && (\n \n )}\n\n {activeTab === TYPE_USER_TABS.VIEW && (\n \n )}\n \n \n );\n};\n\nexport default Allegations;\n","/* eslint-disable no-else-return */\nimport { Box, Button, Card, CardContent, Divider, makeStyles, TextField, Typography } from '@material-ui/core';\nimport React, { useState, useContext } from 'react';\nimport { toast } from '../../../components/Notification';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { useHistory } from 'react-router-dom';\nimport * as firebase from 'firebase';\n\nimport microsoftLogo from '../../../assets/Microsoft_logo.svg.png';\nimport useInput from '../../../hooks/useInput';\nimport { signInWithEmailAndPassword, signInWithMicrosoft } from '../../../services/firebase';\nimport { unarmedWithToken, unarmed } from '../../../services/axios';\nimport useOrganization from '../../../hooks/useOrganization';\nimport LogoHome from '../../../components/LogoHome';\nimport { Context } from '../../../Context';\n\nconst useStyles = makeStyles(() => ({\n card: {\n width: 500,\n padding: 30,\n },\n unarmedImg: {\n objectFit: 'contain',\n height: 60,\n width: 150,\n alignSelf: 'center',\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n padding: 0,\n },\n cardTitle: {\n marginTop: 20,\n fontWeight: '500',\n },\n text: {\n color: '#00000099',\n },\n form: {\n marginTop: 10,\n },\n textField: {\n width: '100%',\n marginBottom: 20,\n },\n button: {\n background: ' #364F74',\n color: '#fff',\n width: '100%',\n ':hover': {\n background: '#364F74',\n },\n marginTop: 10,\n marginBottom: 20,\n },\n\n divider: {\n width: '47%',\n background: '#0000001F',\n },\n googleButton: {\n width: '100%',\n margin: '20px 0',\n border: '1px solid #0000001F',\n textTransform: 'none',\n color: '#5E5E5E',\n },\n link: {\n color: '#4B7BFF',\n cursor: 'pointer',\n marginTop: 20,\n display: 'flex',\n alignItems: 'center',\n },\n googleIcon: {\n width: 20,\n height: 20,\n objectFit: 'cover',\n marginRight: 10,\n },\n}));\n\n// const appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha');\n\nconst LoginForm = () => {\n const classes = useStyles();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [loading, setLoading] = useState(false);\n const email = useInput('', isSubmitting);\n const password = useInput('', isSubmitting);\n const [showTwoFactor, setShowTwoFactorCode] = useState(false);\n const verificationCode = useInput('');\n const [verifyLoading, setVerifyLoading] = useState(false);\n const [verificationID, setVerificationID] = useState(null);\n const [res, setRes] = useState(null);\n const { getOrganizationCallback, organization } = useOrganization();\n const { signUpUser, setSignUpUser } = useContext(Context);\n const history = useHistory();\n\n const onLogin = async (e) => {\n e.preventDefault();\n setIsSubmitting(true);\n if (!email.value || !password.value) {\n return;\n }\n const _organization = await getOrganizationCallback();\n\n try {\n setLoading(true);\n // await signInPhone(email.value, password.value);\n const { user } = await signInWithEmailAndPassword(email.value, password.value);\n await unarmedWithToken().post('/activity/login');\n\n if (signUpUser) {\n setSignUpUser(null);\n }\n\n if (user.multiFactor.enrolledFactors.length === 0 && _organization?.features?.dashboard?.forceMFA?.enabled) {\n history.push('/mfa');\n } else {\n history.push('/');\n }\n setLoading(false);\n } catch (error) {\n if (error?.code === 'auth/multi-factor-auth-required') {\n if (!_organization?.features?.dashboard?.forceMFA?.enabled) {\n await unarmed().post('/user/check/mfa', {\n email: email.value,\n }, {\n headers: {\n 'X-Tenant-Id': _organization.tenantId\n }\n });\n onLogin(e);\n return;\n }\n const { resolver } = error;\n setRes(resolver);\n const appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha', {\n size: 'invisible',\n });\n\n const phoneInfoOptions = {\n multiFactorHint: resolver.hints[0],\n session: resolver.session,\n };\n const phoneAuthProvider = new firebase.auth.PhoneAuthProvider();\n // Send SMS verification code.\n return phoneAuthProvider\n .verifyPhoneNumber(phoneInfoOptions, appVerifier)\n .then(function (verificationId) {\n // verificationId will be needed for sign-in completion.\n setLoading(false);\n setShowTwoFactorCode(true);\n setVerificationID(verificationId);\n })\n .catch((error) => {\n toast.error(error.message);\n });\n } else if (error?.code?.includes('auth/user-not-found')) {\n email.setError('This email is not registered');\n } else if (error?.code?.includes('auth/wrong-password')) {\n password.setError('Please, check your credentials');\n } else {\n // Display any other possible error\n toast.error(error.message);\n }\n\n setLoading(false);\n }\n };\n\n const socialLogin = async () => {\n const _organization = await getOrganizationCallback();\n try {\n const { user } = await signInWithMicrosoft();\n if (!user) {\n return;\n }\n\n if (user.code === 'auth/popup-closed-by-user' || user.code === 'auth/network-request-failed') {\n return;\n }\n\n if (user.multiFactor.enrolledFactors.length === 0 && _organization?.features?.dashboard?.forceMFA?.enabled) {\n history.push('/mfa');\n } else {\n history.push('/');\n }\n } catch (error) {\n if (error?.code === 'auth/multi-factor-auth-required') {\n if (!_organization?.features?.dashboard?.forceMFA?.enabled) {\n await unarmed().post('/user/check/mfa', {\n email: email.value,\n }, {\n headers: {\n 'X-Tenant-Id': _organization.tenantId\n }\n });\n onLogin();\n return;\n }\n const { resolver } = error;\n setRes(resolver);\n const appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha', {\n size: 'invisible',\n });\n\n const phoneInfoOptions = {\n multiFactorHint: resolver.hints[0],\n session: resolver.session,\n };\n const phoneAuthProvider = new firebase.auth.PhoneAuthProvider();\n // Send SMS verification code.\n return phoneAuthProvider\n .verifyPhoneNumber(phoneInfoOptions, appVerifier)\n .then(function (verificationId) {\n // verificationId will be needed for sign-in completion.\n setLoading(false);\n setShowTwoFactorCode(true);\n setVerificationID(verificationId);\n })\n .catch((error) => {\n toast.error(error.message);\n });\n } else if (error?.code?.includes('auth/user-not-found')) {\n email.setError('This email is not registered');\n } else if (error?.code?.includes('auth/wrong-password')) {\n password.setError('Please, check your credentials');\n } else {\n // Display any other possible error\n toast.error(error.message);\n }\n setLoading(false);\n }\n };\n\n const onVerifyCode = async () => {\n if (!verificationCode.value) {\n verificationCode.setError('Please fill in the input');\n return;\n }\n verificationCode.setError('');\n\n try {\n setVerifyLoading(true);\n const cred = firebase.auth.PhoneAuthProvider.credential(verificationID, verificationCode.value);\n const multiFactorAssertion = firebase.auth.PhoneMultiFactorGenerator.assertion(cred);\n // Complete sign-in.\n setVerifyLoading(false);\n await res.resolveSignIn(multiFactorAssertion);\n await unarmedWithToken().post('/activity/login');\n } catch (error) {\n if (error.code === 'auth/invalid-verification-code') {\n verificationCode.setError('Upps! Wrong code');\n } else {\n toast.error(error.message);\n }\n\n setVerifyLoading(false);\n }\n };\n\n return (\n \n \n \n {showTwoFactor ? (\n <>\n \n Verification Code\n \n \n We sent the code to {res?.f?.mfaInfo[0]?.phoneInfo}\n \n \n \n {verifyLoading ? : 'Verify code'}\n \n \n ) : (\n <>\n \n Login\n \n \n Enter your email address and password to access admin panel.\n \n
\n \n \n \n history.push('/reset-password')}\n >\n Reset password \n \n \n \n {loading ? : 'LOGIN'}\n \n \n {organization?.features?.dashboard?.dashboard?.microsoft_sso && (\n <>\n \n \n Or\n \n \n \n \"404\" Sign in with Microsoft\n \n \n )}\n \n )}\n
\n
\n );\n};\n\nexport default LoginForm;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport LoginForm from './LoginForm';\n\nconst useStyles = makeStyles(() => ({\n login: {\n display: 'flex',\n width: '100%',\n height: '116.1vh',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FAFBFF',\n },\n card: {\n width: 500,\n padding: 30,\n },\n}));\n\nconst Login = () => {\n const classes = useStyles();\n\n return (\n
\n \n
\n
\n );\n};\n\nexport default Login;\n","import React, { Fragment, useEffect, useRef, useState } from 'react';\nimport { Page, Text, View, Image, Document, StyleSheet, PDFViewer, Font } from '@react-pdf/renderer';\nimport { Box } from '@material-ui/core';\nimport moment, { version } from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport { useParams, useLocation } from 'react-router-dom';\n\nimport useTrackForm from '../../hooks/useTrackForm';\nimport LoadingScreen from '../../components/LoadingScreen';\nimport { getAboutUsValue } from './AditionalDetails';\nimport useOrganization from '../../hooks/useOrganization';\nimport formatTxt from '../../utils/formatText';\nimport { getDemographicsLabel, getTypeText } from './FormTypeJson';\nimport { formatPhoneNumber, checkValueType } from '../../utils';\n\nfunction useQuery() {\n const { search } = useLocation();\n\n return React.useMemo(() => new URLSearchParams(search), [search]);\n}\n\nFont.register({\n family: 'Roboto',\n src: 'https://cdnjs.cloudflare.com/ajax/libs/ink/3.1.10/fonts/Roboto/roboto-regular-webfont.ttf',\n});\nFont.register({\n family: 'Roboto-bold',\n src: 'https://cdnjs.cloudflare.com/ajax/libs/ink/3.1.10/fonts/Roboto/roboto-bold-webfont.ttf',\n});\n\n// Create styles\nconst styles = StyleSheet.create({\n body: {\n paddingTop: 35,\n paddingBottom: 65,\n height: '100%',\n paddingHorizontal: 35,\n backgroundColor: '#fff',\n },\n title: {\n fontSize: 11,\n textAlign: 'left',\n },\n titleDisplayName: {\n fontSize: 14,\n fontWeight: 'bold',\n textAlign: 'left',\n },\n tag: {\n padding: 10,\n fontSize: 10,\n width: '100px',\n textAlign: 'center',\n backgroundColor: '#EDEEEF',\n textTransform: 'uppercase',\n borderRadius: 5,\n },\n author: {\n fontSize: 10,\n textAlign: 'left',\n color: '#585858',\n },\n subtitle: {\n fontSize: 18,\n },\n text: {\n margin: 12,\n fontSize: 14,\n textAlign: 'justify',\n },\n image: {\n marginVertical: 15,\n marginHorizontal: 100,\n },\n header: {\n fontSize: 12,\n marginBottom: 20,\n textAlign: 'center',\n color: '#fff',\n },\n pageNumber: {\n position: 'absolute',\n fontSize: 12,\n bottom: 30,\n left: 0,\n right: 0,\n textAlign: 'center',\n color: 'grey',\n },\n box: {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'row',\n alignItems: 'center',\n },\n section: {\n width: '100%',\n marginTop: 20,\n backgroundColor: '#fff',\n borderBottom: '1px solid #ccc',\n borderBottomWidth: 1,\n borderRight: '1px solid #ccc',\n borderRightWidth: 1,\n borderLeft: '1px solid #ccc',\n borderLeftWidth: 1,\n },\n boxSection: {\n borderBottom: '1px solid #ccc',\n borderBottomWidth: 1,\n borderRight: '1px solid #ccc',\n borderRightWidth: 1,\n borderLeft: '1px solid #ccc',\n borderLeftWidth: 1,\n },\n sectionName: {\n fontSize: 12,\n fontWeight: '500',\n color: '#4b7bff',\n },\n link: {\n color: '#4b7bff',\n marginBottom: 10,\n fontSize: 11,\n },\n label: {\n fontSize: 8,\n color: '#585858',\n },\n value: {\n fontSize: 10,\n marginTop: 5,\n fontFamily: 'Roboto',\n },\n description: {\n fontSize: 11,\n marginTop: 7,\n height: '100%',\n },\n viewValue: {\n flexGrow: 1,\n },\n logo: {\n width: 80,\n height: 50,\n objectFit: 'contain',\n marginBottom: 20,\n },\n sectionText: {\n fontWeight: 'bold',\n textAlign: 'center',\n fontSize: 11,\n backgroundColor: 'black',\n color: 'white',\n padding: '5px 10px',\n },\n sectionInput: {\n display: 'flex',\n flexDirection: 'row',\n borderBottom: '1px solid #ccc',\n borderBottomWidth: 1,\n },\n subSection: {\n border: 1,\n borderColor: '#ccc',\n borderTopWidth: 0,\n backgroundColor: '#f2f2f2',\n padding: '5px 10px',\n },\n\n sectionItem: {\n width: '50%',\n padding: '5px 10px',\n\n // borderRight: '1px solid #ccc',\n // borderRightWidth: 1,\n // borderLeft: '1px solid #ccc',\n // borderLeftWidth: 1,\n },\n sectionItemRight: {\n width: '50%',\n padding: '5px 10px',\n\n // borderLeft: '1px solid #ccc',\n // borderLeftWidth: 1,\n },\n sectionItemFull: {\n width: '100%',\n paddingTop: 5,\n paddingBottom: 5,\n paddingHorizontal: 10,\n\n // borderRight: '1px solid #ccc',\n // borderRightWidth: 1,\n // borderLeft: '1px solid #ccc',\n // borderLeftWidth: 1,\n },\n checkBox: {\n width: 10,\n height: 10,\n border: 1,\n borderColor: '#585858',\n marginRight: 5,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n\n filled: {\n width: 5,\n height: 5,\n backgroundColor: '#585858',\n },\n titles: {\n width: '100%',\n fontWeight: '500',\n fontSize: 14,\n textAlign: 'center',\n marginTop: 10,\n },\n subTitle: {\n width: '100%',\n fontWeight: '400',\n fontSize: 11.5,\n marginLeft: 10,\n marginTop: 10,\n },\n sectionTitle: {\n fontSize: 11.5,\n fontWeight: '700',\n color: '#222',\n },\n componentGeneral: {\n borderBottom: '1px solid #ccc',\n borderBottomWidth: 1,\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n});\n\n// Create Document Component\nconst CasePdf = () => {\n const [loading, setLoading] = useState(true);\n const { id } = useParams();\n const { form } = useTrackForm(id);\n const query = useQuery();\n const { organization } = useOrganization();\n const counter = useRef(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n counter.current = 0;\n }, []);\n\n setTimeout(function () {\n setLoading(false);\n }, 2000);\n\n // const onPrintNumber = (number, type, altNumber) => {\n // if (form?.type === type || form?.originalType === type) {\n // counter.current = number;\n // return number;\n // }\n // counter.current = altNumber;\n // return altNumber;\n // };\n\n const getParentLabel = (component, text) => (\n \n \n {component?.data?.question ||\n getTypeText(text || (component.type === 'questionBank' ? component.data.type : component.type))}\n \n \n );\n\n const formPages =\n (query.get('version') === 'original' && form?.originalPages?.length\n ? form?.originalPages\n : form?.formType?.pages) || [];\n\n console.log(query.get('version'), formPages);\n\n return loading ? (\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n {form?.formType?.name}\n \n \n {t('Tracking Number')} {form?.code}\n \n \n {t('Created')}{' '}\n {form?.civilian?.firstName\n ? `${form?.civilian?.firstName} ${form?.civilian?.lastName} -`\n : 'Not specified -'}{' '}\n {moment(form?.createdAt).format('MMMM DD, YYYY')}\n \n \n {t(query.get('version') === 'original' ? 'Original version' : 'Edited version')}\n \n \n \n {t(form?.type?.toLowerCase())}\n \n \n {formPages?.map((page, pageIndex) => (\n \n {page.sections.map((section, sectionIndex) => (\n \n \n {page.name}\n\n \n {form?.external && sectionIndex === 0 && (\n \n \n City\n \n {form.external?.cityBySivil?.organization?.city || 'N/A'}\n \n \n \n Department\n {form.external?.cityBySivil?.department?.name || 'N/A'}\n \n \n Location\n {form.external?.cityBySivil?.place?.name || 'N/A'}\n \n \n )}\n {section.components.map((component, componentIndex) => {\n if (component.type === 'title') {\n return (\n \n {component?.data?.text}\n \n );\n }\n if (component.type === 'subtitle') {\n return (\n \n {component?.data?.text}\n \n );\n }\n if (component.value === null) {\n return (\n \n {getParentLabel(component)}\n \n Not Specified\n \n \n );\n }\n\n if (Array.isArray(component.value)) {\n if (\n component.value &&\n Array.isArray(component?.value[0]) &&\n component?.value[0]?.every((file) => file?.hasOwnProperty('url'))\n ) {\n return (\n <>\n {component?.value[0]?.map((file, fileIndex) => (\n \n {getParentLabel(component)}\n\n \n File - {fileIndex + 1}\n {formatTxt(file?.name, 14) || 'Not Specified'}\n \n \n ))}\n \n );\n }\n\n if (!component.value[0] && component.value?.length === 1) {\n return (\n \n {getParentLabel(component)}\n \n Not Specified\n \n \n );\n }\n return component.value.map((objkey, objIndex) => {\n if (Array.isArray(objkey)) {\n if (objkey[0]?.hasOwnProperty('firstName')) {\n return objkey.map((obKey, objIndex2) => {\n const keysObj = Object.keys(obKey);\n\n return (\n \n {getParentLabel(component)}\n {keysObj.map((key, idx) => (\n \n {getTypeText(key)}\n \n {' '}\n {formatPhoneNumber(obKey[key]) || 'Not Specified'}\n \n \n ))}\n \n );\n });\n }\n if (objkey[objIndex]?.hasOwnProperty('download_url')) {\n return objkey.map((obKey, objIndex2) => (\n \n {getParentLabel(component)}\n\n \n File - {objIndex2 + 1}\n \n {formatTxt(obKey?.name, 14) || 'Not Specified'}\n \n \n \n ));\n }\n return (\n \n {getParentLabel(\n component,\n component?.data?.type === 'demographics' && getDemographicsLabel(objIndex)\n )}\n \n {/* \n {' '}\n {component?.data?.question ||\n component?.data?.type}\n */}\n {component.data.type === 'howDidYouHearAboutUs' ? (\n \n {objkey.map((key) => getAboutUsValue(key)).join(', ') || 'Not Specified'}\n \n ) : Array.isArray(objkey) ? (\n \n {objkey.join(', ') || 'Not Specified'}\n \n ) : (\n \n {objkey || 'Not Specified'}\n \n )}\n \n \n );\n }\n\n if (!objkey) {\n return (\n \n {getParentLabel(\n component,\n component?.data?.type === 'demographics' && getDemographicsLabel(objIndex)\n )}\n \n \n Not Specified\n \n \n \n );\n }\n\n if (component.type === 'fileUpload') {\n return (\n <>\n {objIndex === 0 && getParentLabel(component)}\n \n \n File-{objIndex + 1}\n \n\n \n {formatTxt(objkey?.name, 20)}\n \n \n \n );\n }\n\n if (component.type === 'multipleChoices' || component.type === 'dropdown') {\n return (\n <>\n {objIndex === 0 && getParentLabel(component)}\n\n \n \n {(objIndex === 0 && component.value.join(', ')) || ''}\n \n \n \n );\n }\n\n if (typeof objkey === 'object') {\n const objKeysFromArray = Object.keys(objkey);\n return (\n \n {getParentLabel(component)}\n {objKeysFromArray.map((keyFromArray, indexFromArray) => (\n \n \n {getTypeText(keyFromArray)}\n \n {keyFromArray === 'fileAnonymously' ? (\n \n {objkey[keyFromArray] ? 'Yes' : 'No'}\n \n ) : (\n \n {formatPhoneNumber(objkey[keyFromArray]) || 'Not Specified'}\n \n )}\n \n ))}\n \n );\n }\n\n return (\n \n {getParentLabel(component, component?.data?.type === 'demographics' && 'dateOfBirth')}\n \n {/* \n {' '}\n {component?.data?.question ||\n component?.data?.type}\n */}\n \n {component?.data?.type === 'isEnglishPrimaryLanguage'\n ? formatTxt(objkey !== 'yes' ? `No, ${objkey}` : 'Yes') || 'Not Specified'\n : checkValueType(objkey, component?.data?.type) || 'Not Specified'}\n \n \n \n );\n });\n }\n\n if (typeof component.value === 'object') {\n const objectData = component.data;\n const objKeys = Object.keys(component.value).filter((key) => {\n if (key === 'fileAnonymously') {\n return objectData.showFileAnonymously;\n }\n return objectData[key]?.visible;\n });\n return (\n \n {getParentLabel(component)}\n {objKeys.map((objkey, objIndex) => (\n \n \n {objectData[objkey]?.question ||\n objectData[objkey]?.text ||\n getTypeText(objkey) ||\n objkey}\n \n {objkey === 'fileAnonymously' ? (\n \n {component.value[objkey] === true ? 'Yes' : 'No' || 'Not Specified'}\n \n ) : (\n \n {formatPhoneNumber(component.value[objkey]?.name) ||\n formatPhoneNumber(component.value[objkey], component.value[objkey]) ||\n 'Not Specified'}\n \n )}\n \n ))}\n \n );\n }\n\n return (\n \n {getParentLabel(component)}\n \n {/* \n {' '}\n {component?.data?.question ||\n component?.data?.type}\n */}\n \n {' '}\n {checkValueType(component?.value, component?.type) || 'Not Specified'}\n \n \n \n );\n })}\n \n \n \n ))}\n \n ))}\n {/* \n \n I. {t('Personal Information')}\n \n \n \n \n 1. {t('Civilian First Name')}\n \n \n {form?.civilian?.firstName || 'Not specified'}\n \n {form?.type === 'COMPLAINT' && (\n \n \n {form?.anonymously && (\n \n )}\n \n \n {' '}\n {t('anonymous')}\n \n \n )}\n \n \n 2. {t('Civilian Last Name')}\n \n {form?.civilian?.lastName || 'Not specified'}\n \n \n \n \n \n 3. {t('Email Address')}\n \n {form?.civilian?.email || 'Not specified'}\n \n \n \n 4. {t('Phone Number')}\n \n {form?.civilian?.phone || 'Not specified'}\n \n \n \n \n \n 5. {t('Address')}\n \n {`${\n form?.civilian?.addressLine1\n ? form?.civilian?.addressLine1 + ','\n : ''\n } ${\n form?.civilian?.addressLine2\n ? form?.civilian?.addressLine2 + ', '\n : ''\n }${\n form?.civilian?.city?.name\n ? form?.civilian?.city?.name + ','\n : ''\n } ${\n form?.civilian?.state?.name\n ? form?.civilian?.state?.name + ','\n : ''\n } ${\n form?.civilian?.zipCode ? form?.civilian?.zipCode : ''\n }`}\n\n {!form?.civilian?.addressLine1 &&\n !form?.civilian?.addressLine2 &&\n !form?.civilian?.state?.name &&\n !form?.civilian?.city?.name &&\n !form?.civilian?.zipCode &&\n 'Not specified'}\n \n \n \n \n\n \n \n {' '}\n II. {t('Incident Details')}\n \n\n {form?.type === 'COMPLIMENT' && (\n \n \n 6. {t('whyWouldYouLike')}\n \n {form?.whyYouWantToThank || 'Not specified'}\n \n \n \n )}\n\n \n \n \n {onPrintNumber(7, 'COMPLIMENT', 6)}. {t('Statement')}\n \n {form?.statement}\n \n \n \n \n \n {' '}\n {onPrintNumber(8, 'COMPLIMENT', 7)}. {t('links')}\n \n {form?.links?.map((link, i) => (\n \n {link}\n \n ))}\n \n \n\n {form?.type === 'COMPLAINT' && (\n <>\n \n \n {t('Incident Details')}\n \n \n \n \n \n {' '}\n {onPrintNumber(8, 'COMPLAINT')}. {t('location')}\n \n \n {`${\n form?.location?.address\n ? form?.location?.address + ','\n : ''\n } ${\n form?.location?.city?.name\n ? form?.location?.city?.name + ','\n : ''\n } ${\n form?.location?.state?.name\n ? form?.location?.state?.name + ','\n : ''\n }`}\n {!form?.location?.address &&\n !form?.location?.city?.name &&\n !form?.location?.state?.name &&\n 'Not specified'}\n \n \n \n \n {' '}\n {onPrintNumber(9, 'COMPLAINT')}. {t('date')}\n \n \n {form?.location?.datetime\n ? moment(form?.location?.datetime).format(\n 'MM/DD/YYYY'\n )\n : 'Not specified'}\n \n \n \n \n {' '}\n {onPrintNumber(10, 'COMPLAINT')}. {t('time')}\n \n \n {getTimeRange(form) || 'Not specified'}\n \n \n \n \n )}\n\n \n \n {t('officers')}\n \n \n {form?.employees?.map((row, i) => (\n \n \n \n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('officer name')} #{i + 1}\n \n {row.firstName}\n \n \n \n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('officer lastName')} #{i + 1}\n \n {row.lastName}\n \n \n \n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('officer badge')} #{i + 1}\n \n {row.id}\n \n \n ))}\n {form?.type === 'COMPLAINT' && (\n <>\n \n \n {t('witness')}\n \n \n {form?.others?.map((row, i) => (\n <>\n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('witness name')}\n \n {row.firstName}\n \n \n \n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('witness lastName')}\n \n {row.lastName}\n \n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('Phone Number')}\n \n {row.phone}\n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('Email Address')}\n \n {row.email}\n \n \n \n ))}\n \n )}\n\n {form?.type === 'COMPLIMENT' && (\n <>\n \n \n {t('EventInfo')}\n \n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('eventLocationL')}\n \n \n {form?.location?.address || 'Not specified'}\n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('eventDate')}\n \n \n {form?.location?.datetime\n ? moment(form?.location?.datetime).format(\n 'MM/DD/YYYY'\n )\n : 'Not specified'}\n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('eventTime')}\n \n \n {getTimeRange(form) || 'Not specified'}\n \n \n \n \n )}\n \n\n \n \n {' '}\n III. {t('additional information')}\n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t(`how`)}\n \n\n \n {' '}\n {form?.howDidYouHearAboutUs?.map((how, i) => (\n \n {getAboutUsValue(how)}\n {form?.howDidYouHearAboutUs?.length > 1 &&\n form?.howDidYouHearAboutUs?.length !== i + 1 &&\n ','}{' '}\n \n )) || 'Not specified'}\n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('whatDescribeYou')}\n \n \n {form?.whatBestDescribesYou || 'Not specified'}\n \n \n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('birth')}\n \n \n {form?.demographic?.birthdate\n ? moment(form?.demographic?.birthdate).format(\n 'MM/DD/YYYY'\n )\n : 'Not specified'}\n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('gender')}\n \n \n {form?.demographic?.gender.map((gd, i) => (\n \n {gd}\n {form?.demographic?.gender?.length > 1 &&\n form?.demographic?.gender?.length !== i + 1 &&\n ','}{' '}\n \n ))}\n {form?.demographic?.gender.length === 0 && (\n Not specified\n )}\n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('sOrientation')}\n \n \n {form?.demographic?.sexualOrientation.map((so, i) => (\n \n {so}\n {form?.demographic?.sexualOrientation?.length > 1 &&\n form?.demographic?.sexualOrientation?.length !==\n i + 1 &&\n ','}{' '}\n \n ))}\n {form?.demographic?.sexualOrientation.length === 0 && (\n Not specified\n )}\n \n \n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('race')}\n \n \n {form?.demographic?.raceEthnicity.map((rc, i) => (\n \n {rc}\n {form?.demographic?.raceEthnicity?.length > 1 &&\n form?.demographic?.raceEthnicity?.length !== i + 1 &&\n ','}{' '}\n \n ))}\n {form?.demographic?.raceEthnicity.length === 0 && (\n Not specified\n )}\n \n \n \n \n {' '}\n {onPrintNumber(\n counter.current + 1,\n 'COMPLIMENT',\n counter.current + 1\n )}\n . {t('language')}\n \n \n {form?.demographic?.primaryLanguage || 'Not specified'}\n \n \n \n */}\n \n \n \n \n );\n};\n\nexport default CasePdf;\n","import { Box, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport InfoIcon from '@material-ui/icons/Info';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nconst alertStatus = {\n info: '#4B7BFF',\n error: '#FC3A3A',\n warning: '#FEC664',\n};\n\nconst useStyles = makeStyles(() => ({\n alertContainer: {\n height: 52,\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '0 15px',\n borderRadius: 2,\n marginTop: 35,\n marginBottom: 10,\n },\n text: {},\n}));\n\nconst Alert = ({ children, onClick, status = 'error' }) => {\n const classes = useStyles();\n\n return (\n \n \n \n {children}\n \n {typeof onClick === 'function' && (\n \n )}\n \n );\n};\n\nexport default Alert;\n","import React, { useState } from 'react';\nimport { Box, Typography, Avatar } from '@material-ui/core';\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport formatTxt from '../utils/formatText';\n\n/**\n * Renders a tooltip showing assigned users.\n *\n * @param {Array} users - An array of users assigned to a task.\n * @returns {JSX.Element} - A tooltip element displaying assigned users.\n */\nconst AssignedToTooltip = ({ users }) => {\n const [onHover, setOnHover] = useState(false);\n\n const usersToShow = users.slice(1);\n\n return (\n \n {users.map((user, i) => {\n if (i === 0) {\n if (user?.photo?.url || user?.profile_img) {\n return (\n setOnHover(true)}\n onMouseLeave={() => setOnHover(false)}\n >\n \n {`${formatTxt(user?.firstName, 20)} ${formatTxt(\n user?.lastName,\n 20\n )}`}\n {users.length > 1 && (\n (+{users.length - 1})\n )}\n \n );\n }\n\n return (\n setOnHover(true)}\n onMouseLeave={() => setOnHover(false)}\n >\n \n \n {' '}\n {user?.firstName ? `${user?.firstName} ${user?.lastName}` : 'Unassigned'}\n \n {users.length > 1 && (\n (+{users.length - 1})\n )}\n \n );\n }\n\n return null;\n })}\n {users.length > 1 && (\n \n {usersToShow.map((user, userKey) => (\n \n \n {`${formatTxt(user?.firstName, 20)} ${formatTxt(\n user?.lastName,\n 20\n )}`}\n \n ))}\n \n )}\n \n );\n};\n\nconst Container = styled.div`\n position: absolute;\n left: -30px;\n top: 45px;\n width: 250px;\n background-color: #fff;\n border-radius: 8px;\n z-index: 99;\n padding: 16px;\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14),\n 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n visibility: hidden;\n\n ${(props) =>\n props.visible &&\n `\n visibility: visible;\n `}\n`;\n\nAssignedToTooltip.propTypes = {\n users: PropTypes.arrayOf(\n PropTypes.shape({\n firstName: PropTypes.string.isRequired,\n lastName: PropTypes.string.isRequired,\n role: PropTypes.string.isRequired,\n })\n ).isRequired,\n};\n\nexport default AssignedToTooltip;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst PageWrapper = ({ children }) => {\n return {children};\n};\n\nconst Container = styled.div`\n width: 100%;\n padding: 20px;\n`;\n\nexport default PageWrapper;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n Box,\n Checkbox,\n Tooltip,\n Typography,\n Popover,\n IconButton,\n List,\n ListItem,\n Divider,\n TextField,\n InputAdornment,\n} from '@material-ui/core';\nimport SearchIcon from '@material-ui/icons/Search';\nimport moment from 'moment';\nimport PageButtons from '../../components/PageButtons';\nimport CaseFilters from '../../components/CaseFilters';\nimport EnhancedTable from '../../components/Table';\nimport Alert from '../../components/Alert';\nimport { getCivilianCases, getfiltersConfigById, getViewByIdv } from '../../services/unarmed';\nimport AddMore from '../../components/AddMore';\nimport { TYPE_USER_TABS } from '../../utils/constants';\n\nexport const ViewTabCases = ({\n classes,\n forms,\n handleClick,\n openPopover,\n anchorEl,\n handleClose,\n searchTerm,\n setSearchTerm,\n showColumns,\n handleToggleColumn,\n formatHeadersText,\n visibleColumns,\n hideColumns,\n openFilter,\n setOpenFilter,\n onEditMultipleForms,\n selected,\n setOpenModal,\n onGetFormRange,\n fetchFiltersConfig,\n setForms,\n onClearFilters,\n setPage,\n rowsPerPage,\n sort,\n sortBy,\n authUser,\n setFormType,\n formType,\n code,\n from,\n to,\n status,\n setFrom,\n setTo,\n name,\n assigned,\n setAssigned,\n source,\n reporter,\n investigator,\n allegation,\n disposition,\n discipline,\n setAllegation,\n setDisposition,\n setDiscipline,\n location,\n isFiltering,\n setIsFiltering,\n archivedOnly,\n transferredOnly,\n flaggedOnly,\n subType,\n isFilteringByContact,\n showAlert,\n onClearOfficersCases,\n setSort,\n getVisibleColumns,\n setSortBy,\n renderRow,\n setChecked,\n checked,\n loading,\n page,\n setSelected,\n handleChangeRowsPerPage,\n tabSelected,\n setVisibleColumns,\n}) => {\n const [view, setView] = useState();\n const [filtersConfig, setfiltersConfig] = useState({});\n const [filtersApplied, setFiltersApplied] = useState({});\n const [filterCount, setFilterCount] = useState(0);\n\n const getFormsCivilians = async ({\n typeV,\n fromV,\n toV,\n codeV,\n statusV,\n nameV,\n assignedToV,\n sourceV,\n reporterV,\n investigatorV,\n allegationV,\n dispositionV,\n disciplineV,\n subTypeV,\n }) => {\n try {\n const { data, headers } = await getCivilianCases({\n token: authUser.tokenId,\n page,\n limit: rowsPerPage,\n sortBy,\n sort,\n isFiltering,\n type: typeV,\n from: fromV ? moment(fromV).format('YYYY-MM-DD') : null,\n to: toV ? moment(toV).format('YYYY-MM-DD') : null,\n code: codeV,\n status: statusV,\n name: nameV,\n assignedTo: assignedToV?._id || (assigned === 'null' ? assignedToV : location.state?.unassigned),\n source: sourceV || [],\n reporter: reporterV || [],\n investigator: investigatorV || [],\n allegation: allegationV || [],\n disposition: dispositionV || [],\n discipline: disciplineV || [],\n flaggedOnly: flaggedOnly.value,\n subType: subTypeV || [],\n contact: isFilteringByContact ? location?.state?.id : undefined,\n filtersConfigId: filtersConfig?._id,\n archivedOnly: filtersConfig?.archivedOnly,\n transferredOnly: filtersConfig?.transferredOnly,\n });\n\n if (filtersConfig?.archivedOnly) {\n archivedOnly.setValue(filtersConfig.archivedOnly || false);\n }\n if (filtersConfig?.transferredOnly) {\n transferredOnly.setValue(filtersConfig.transferredOnly || false);\n }\n\n setForms({ data, headers });\n fetchFiltersConfig();\n } catch (error) {\n console.log({ error });\n }\n };\n\n const handleOnSetFiltersConfig = () => {\n const newFiltersApplied = {};\n if (filtersConfig) {\n const configCopy = { ...filtersConfig };\n\n delete configCopy.sortOrder;\n delete configCopy.sortBy;\n delete configCopy.page;\n delete configCopy.limit;\n delete configCopy.isFiltering;\n Object.keys(configCopy).forEach((key) => {\n const value = configCopy[key];\n let isApplied = false;\n\n if (value === null || !value || value === '0' || value === '') {\n isApplied = false;\n } else if (Array.isArray(value)) {\n isApplied = value.length > 0;\n } else if (typeof value === 'boolean') {\n isApplied = value === true;\n } else if (typeof value === 'object' && value !== null) {\n isApplied = value.value !== undefined && value.value !== null && value.value !== '' && value.value !== false;\n } else {\n isApplied = true;\n }\n\n newFiltersApplied[key] = isApplied;\n });\n const newCount = Object.values(newFiltersApplied).filter((item) => item).length;\n setFilterCount(newCount);\n setFiltersApplied(newFiltersApplied);\n }\n };\n\n useEffect(() => {\n const fetchData = async () => {\n if (\n tabSelected?.displayObjectId &&\n (tabSelected?.displayObjectType === TYPE_USER_TABS.VIEW ||\n tabSelected?.displayObjectType === TYPE_USER_TABS.MAIN)\n ) {\n const responseView = await getViewByIdv(tabSelected?.displayObjectId);\n if (responseView?.data?.view[0]) {\n setView(responseView.data.view[0]);\n setVisibleColumns(responseView.data.view[0].columns);\n }\n }\n };\n\n fetchData();\n }, [tabSelected]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (view) {\n const responsefiltersConfig = await getfiltersConfigById(view?.filtersConfigId);\n setfiltersConfig(responsefiltersConfig?.data?.filterConfig[0]?.config);\n }\n };\n\n fetchData();\n }, [view]);\n\n useEffect(() => {\n if (filtersConfig) {\n handleOnSetFiltersConfig();\n setFrom(filtersConfig.from);\n setTo(filtersConfig.to);\n setFormType(filtersConfig.type);\n flaggedOnly.setValue(filtersConfig.flaggedOnly?.value);\n code.setValue(filtersConfig.code);\n name.setValue(filtersConfig.name);\n setAssigned(filtersConfig.assignedTo);\n status.setValue(filtersConfig.status);\n transferredOnly.setValue(filtersConfig.transferredOnly || false);\n archivedOnly.setValue(filtersConfig.archivedOnly || false);\n subType.setValue(filtersConfig.subtype || []);\n source.setValue(filtersConfig.source || []);\n reporter.setValue(filtersConfig.reporter || []);\n setAllegation(filtersConfig.allegations || []);\n setDisposition(filtersConfig.dispositions || []);\n setDiscipline(filtersConfig.disciplines || []);\n investigator.setValue(filtersConfig.investigator || []);\n setIsFiltering(true);\n getFormsCivilians({\n typeV: filtersConfig.type,\n fromV: filtersConfig.from,\n toV: filtersConfig.to,\n codeV: filtersConfig.code,\n statusV: filtersConfig.status,\n nameV: filtersConfig.name,\n assignedToV: filtersConfig.assignedTo,\n sourceV: filtersConfig.source,\n reporterV: filtersConfig.reporter,\n investigatorV: filtersConfig.investigator,\n allegationV: filtersConfig.allegations,\n dispositionV: filtersConfig.dispositions,\n disciplineV: filtersConfig.disciplines,\n subTypeV: filtersConfig.subtype,\n });\n } else if (filtersConfig === null) {\n setIsFiltering(false);\n getCivilianCases();\n }\n }, [filtersConfig, page, sort, sortBy]);\n\n return (\n <>\n \n \n \n All Cases ({forms?.headers?.['x-pagination-totalitems']})\n \n\n \n \n \n \n \n Show / Hide Columns\n \n \n\n \n\n setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n disableUnderline: true,\n style: {\n fontSize: '12px',\n height: '28px',\n },\n }}\n style={{\n padding: '5px 0',\n backgroundColor: 'transparent',\n fontSize: '12px',\n height: '28px',\n }}\n />\n\n \n\n \n \n Visible\n \n \n\n \n {showColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n\n \n\n \n \n Hidden\n \n \n\n \n {hideColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n \n \n \n setOpenModal(true)}\n disabledDelete={selected.length === 0}\n onClickDownload={onGetFormRange}\n disabledDownload={selected.length === 0}\n filterButtonDataTestId=\"cases-button-open-filters\"\n deleteButtonDataTestId=\"cases-button-delete-cases\"\n downloadButtonDataTestId=\"cases-button-download\"\n />\n \n\n {openFilter && (\n setOpenFilter(false)}\n setFormType={setFormType}\n formType={formType}\n code={code}\n from={from}\n to={to}\n status={status}\n setFrom={setFrom}\n setTo={setTo}\n name={name}\n assigned={assigned}\n setAssigned={setAssigned}\n source={source}\n reporter={reporter}\n investigator={investigator}\n allegation={allegation}\n disposition={disposition}\n discipline={discipline}\n setAllegation={setAllegation}\n setDisposition={setDisposition}\n setDiscipline={setDiscipline}\n uniqueFieldId={location?.state?.uniqueFieldId || null}\n isFiltering={isFiltering}\n setIsFiltering={setIsFiltering}\n archivedOnly={archivedOnly}\n transferredOnly={transferredOnly}\n flaggedOnly={flaggedOnly}\n subType={subType}\n isFilteringByContact={isFilteringByContact}\n contactId={location?.state?.id}\n filtersConfig={filtersConfig}\n />\n )}\n\n {showAlert && (\n \n \n {isFilteringByContact ? (\n <>\n You are only seeing cases from Contact: {location?.state?.name} email:{' '}\n {location?.state?.email}\n \n ) : (\n <>\n You are only seeing cases from Officer: {location?.state?.name} Unique Identifier:{' '}\n {location?.state?.uniqueFieldId}\n \n )}\n \n \n )}\n\n \n \n \n \n );\n};\n","/* eslint-disable jsx-a11y/anchor-has-content */\n/* eslint-disable no-nested-ternary */\nimport {\n Backdrop,\n Box,\n Checkbox,\n CircularProgress,\n Fade,\n makeStyles,\n Modal,\n TableCell,\n TableRow,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport { useHistory, useLocation, Link } from 'react-router-dom';\nimport React, { useContext, useState } from 'react';\nimport AddIcon from '@material-ui/icons/Add';\nimport moment from 'moment';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\nimport Flagged from '../../assets/flagged.png';\nimport TabsModules from '../../components/TabsModules';\nimport { Context } from '../../Context';\nimport OpenInNewIcon from '@material-ui/icons/OpenInNew';\nimport {\n deleteForm,\n getCivilianCases,\n getFormsRange,\n getViewById,\n editMultipleForms,\n updateViewsById,\n} from '../../services/unarmed';\nimport formatTxt from '../../utils/formatText';\nimport CaseFilters from '../../components/CaseFilters';\nimport useInput from '../../hooks/useInput';\nimport Alert from '../../components/Alert';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport useOrganization from '../../hooks/useOrganization';\nimport { logEvent } from '../../services/firebase';\nimport { axiosCatchError, transformStatus } from '../../utils';\nimport { exportCSVFile } from '../../utils/convertJsonCsv';\nimport AssignedToTooltip from '../../components/AssignedToTooltip';\nimport ArrayTooltip from '../../components/ArrayTooltip';\nimport PageWrapper from '../../components/PageWrapper';\nimport PageButtons from '../../components/PageButtons';\nimport { StyledButtonOutlined } from '../../styles/GlobalStyles';\nimport useFiltersConfig from '../../hooks/useFiltersConfig';\nimport { useTabsUtil } from '../../hooks/useTabs';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport { ViewTabCases } from './ViewTabCases';\n\nconst useStyles = makeStyles((theme) => ({\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n outline: 0,\n },\n row: {\n cursor: 'pointer',\n height: 50,\n maxHeight: 50,\n background: '#fff',\n '&:hover': {\n backgroundColor: '#f5f5f5',\n '& $externalIcon': {\n visibility: 'visible',\n color: '#1F63FF',\n },\n },\n },\n externalIcon: {\n visibility: 'hidden',\n },\n}));\n\nconst getStatusTitle = (row) => {\n const currentStatus = row?.availableStatuses?.filter((status) => status.status === row?.status);\n return transformStatus(currentStatus[0]?.status);\n};\n\nconst capitalize = (word) => {\n const lowerCase = word.toLowerCase();\n return lowerCase.charAt(0).toUpperCase() + lowerCase.slice(1);\n};\n\nexport const TransferredFrom = ({ referralOrg }) => {\n if (!referralOrg) {\n return null;\n }\n\n const tooltipTitle = `Transferred from ${referralOrg?.name}`;\n return (\n \n TransferredFrom\n \n );\n};\n\nTransferredFrom.propTypes = {\n referralOrg: PropTypes.string.isRequired,\n};\n\nexport const TransferredTo = ({ referralOrg }) => {\n if (!referralOrg) {\n return null;\n }\n\n const tooltipTitle = `Transferred to ${referralOrg?.name}`;\n return (\n \n TransferredTo\n \n );\n};\n\nTransferredTo.propTypes = {\n referralOrg: PropTypes.string.isRequired,\n};\n\nexport const CaseRenderRow = ({\n isItemSelected,\n index,\n row,\n labelId,\n description,\n handleClick,\n withCheckbox,\n visibleColumns,\n}) => {\n const classes = useStyles();\n const history = useHistory();\n\n const goToCaseDetails = (e) => {\n const go = handleClick(e, row._id);\n if (go) {\n history.push(`/case/${row.code}`);\n logEvent('enter_case_detail');\n }\n };\n\n return (\n \n {withCheckbox && (\n \n \n \n )}\n\n {visibleColumns?.flag && (\n \n {row?.flagged && \"Flagged\"}\n \n )}\n {visibleColumns?.type && (\n \n {row?.typeDisplayText}\n \n )}\n {visibleColumns?.subtype && (\n \n \n \n )}\n {visibleColumns?.trackingNumber && {row?.code}}\n {visibleColumns?.caseNumber && {row?.caseNumber}}\n {visibleColumns?.internalAffairsCaseNumber && {row?.internalAffairsCaseNumber}}\n {visibleColumns?.createdDate && (\n \n {moment(row.createdAt).format('MMMM DD, YYYY')}\n \n )}\n {visibleColumns?.name && (\n \n {row.civilian?.firstName\n ? `${formatTxt(row.civilian?.firstName, 10)} ${formatTxt(row.civilian?.lastName, 10)}`\n : ''}\n \n )}\n {visibleColumns?.assignedTo && (\n \n !!assigned)} />\n \n )}\n {visibleColumns?.source && (\n \n \n \n )}\n {visibleColumns?.status && (\n \n \n \n

{getStatusTitle(row)}

\n

\n {row?.statusLog && moment(row?.statusLog?.[row?.status]?.datetime).format('MMMM DD, hh:mm a')}\n

\n
\n
\n
\n )}\n\n {visibleColumns?.reporter && (\n \n \n \n )}\n\n {visibleColumns?.investigator && (\n \n \n \n )}\n\n {visibleColumns?.allegations && (\n \n \n \n )}\n\n {visibleColumns?.dispositions && (\n \n \n \n )}\n\n {visibleColumns?.discipline && (\n \n \n \n )}\n \n \n {\n e.stopPropagation();\n return false;\n }}\n >\n \n \n \n \n \n );\n};\n\nCaseRenderRow.propTypes = {\n row: PropTypes.object.isRequired,\n index: PropTypes.number.isRequired,\n description: PropTypes.string.isRequired,\n labelId: PropTypes.string.isRequired,\n isItemSelected: PropTypes.bool.isRequired,\n withCheckbox: PropTypes.bool,\n handleClick: PropTypes.func.isRequired,\n visibleColumns: PropTypes.object.isRequired,\n};\n\nconst Cases = () => {\n const classes = useStyles();\n const location = useLocation();\n const { authUser } = useContext(Context);\n const [forms, setForms] = useState([]);\n const [loading, setLoading] = useState(false);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [checked, setChecked] = useState(false);\n const isSelected = (_name) => selected.indexOf(_name) !== -1;\n const [openFilter, setOpenFilter] = useState(location.state?.openFilter || false);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const [open, setOpenModal] = useState(false);\n const [loadingDeleteCase, setLoadingDeleteCase] = useState(false);\n const filterSaved = JSON.parse(localStorage.getItem('filters'));\n const [formType, setFormType] = useState(location.state?.formType ? location.state?.formType : null);\n const code = useInput('');\n const [assigned, setAssigned] = useState();\n const status = useInput(() => (location.state?.filter ? location.state?.filter : null));\n const subType = useInput([]);\n const source = useInput([]);\n const reporter = useInput([]);\n const investigator = useInput([]);\n const baseColumns = {\n flag: true,\n type: true,\n subtype: false,\n trackingNumber: true,\n caseNumber: false,\n internalAffairsCaseNumber: false,\n createdDate: true,\n name: true,\n assignedTo: true,\n source: false,\n status: true,\n reporter: false,\n investigator: false,\n allegations: false,\n dispositions: false,\n discipline: false,\n };\n const [allegation, setAllegation] = useState([]);\n const [disposition, setDisposition] = useState([]);\n\n const [discipline, setDiscipline] = useState(filterSaved?.discipline || []);\n const name = useInput(filterSaved?.name || '');\n const [from, setFrom] = useState(filterSaved?.from || null);\n const [to, setTo] = useState(filterSaved?.to || null);\n const archivedOnly = useInput(false, false, false, true);\n const transferredOnly = useInput(false, false, false, true);\n const flaggedOnly = useInput(false, false, false, true);\n const { organization } = useOrganization();\n\n const [isFiltering, setIsFiltering] = useState(() =>\n location.state?.isFiltering ? location.state?.isFiltering : false\n );\n\n const [showAlert, setShowAlert] = useState(location?.state?.showAlert || false);\n const [isFilteringByContact, setIsFilteringByContact] = useState(location?.state?.isFilteringByContact || false);\n\n const [loadingEditForms, setLoadingEditForms] = useState(false);\n const [visibleColumns, setVisibleColumns] = useState(baseColumns);\n const [anchorEl, setAnchorEl] = useState(null);\n const [searchTerm, setSearchTerm] = useState('');\n\n const filteredColumns = Object.keys(visibleColumns).filter((column) =>\n column.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n const showColumns = filteredColumns.filter((column) => visibleColumns[column]);\n const hideColumns = filteredColumns.filter((column) => !visibleColumns[column]);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const openPopover = Boolean(anchorEl);\n const popoverId = open ? 'column-popover' : undefined;\n\n const {\n filtersConfig,\n filterCount,\n filtersApplied,\n resetFilterCount,\n fetchFiltersConfig,\n } = useFiltersConfig('forms');\n\n const {\n activeTab,\n setActiveTab,\n tabSelected,\n setTabSelected,\n userTabs,\n updateNameTab,\n setUserTabs,\n handleSaveTab,\n handleTabSelection,\n nextPosition,\n handleTabsReorder,\n handleTabSelectionAction,\n deleteSelectedTab,\n activeTabName,\n setActiveTabName,\n } = useTabsUtil({ moduleName: 'CASES' });\n\n const onClearFilters = async () => {\n setFormType('0');\n subType.setValue([]);\n setFrom(null);\n setTo(null);\n code.setValue(null);\n status.setValue('0');\n name.setValue(null);\n setAssigned(null);\n source.setValue([]);\n reporter.setValue([]);\n investigator.setValue([]);\n setAllegation([]);\n setDisposition([]);\n setDiscipline([]);\n localStorage.removeItem('filters');\n setIsFiltering(false);\n archivedOnly.setValue(false);\n transferredOnly.setValue(false);\n flaggedOnly.setValue(false);\n\n resetFilterCount();\n try {\n setLoading(true);\n const { data, headers } = await getCivilianCases({\n token: authUser.tokenId,\n page,\n limit: rowsPerPage,\n sortBy,\n sort,\n isFiltering: false,\n contact: isFilteringByContact ? location?.state?.id : undefined,\n ...(filtersConfig ? { filtersConfigId: filtersConfig?._id } : {}),\n });\n\n setForms({ data, headers });\n setLoading(false);\n fetchFiltersConfig();\n toast.success('Successfully cleared filters!');\n } catch (error) {\n setLoading(false);\n toast.error(error.message);\n }\n };\n\n const onClearOfficersCases = async () => {\n setShowAlert(false);\n setIsFilteringByContact(false);\n };\n\n const handleToggleColumn = async (viewId, columnName) => {\n try {\n const updatedColumns = {\n ...visibleColumns,\n [columnName]: !visibleColumns[columnName],\n };\n\n const response = await updateViewsById(viewId, { columns: updatedColumns });\n\n if (response && response.status === 200 && response.view) {\n setVisibleColumns(response.view.columns);\n } else {\n console.error('Failed to update columns:', response);\n }\n } catch (error) {\n console.error('Error updating column visibility:', error);\n }\n };\n\n\n const formatHeadersText = (str) => {\n const result = str.replace(/([A-Z])/g, ' $1');\n\n return result.replace(/^./, (firstChar) => firstChar.toUpperCase()).trim();\n };\n\n const onEditMultipleForms = async () => {\n let ids = '';\n const selectedForms = forms.data.filter((form) => selected.includes(form._id));\n const allAreFlagged = selectedForms.every((form) => form.flagged);\n\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingEditForms(true);\n await editMultipleForms(ids);\n\n setForms((prevForms) => {\n const updatedData = prevForms.data.map((form) => {\n if (selected.includes(form._id)) {\n return {\n ...form,\n flagged: !allAreFlagged,\n };\n }\n return form;\n });\n\n return {\n ...prevForms,\n data: updatedData,\n };\n });\n\n setLoadingEditForms(false);\n setSelected([]);\n toast.success(allAreFlagged ? 'Successfully unflagged cases' : 'Successfully flagged cases');\n } catch (error) {\n setLoadingEditForms(false);\n toast.error(error.message);\n }\n };\n\n const onGetFormRange = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `formIds[]=${id}`;\n } else {\n ids += `formIds[]=${id}&`;\n }\n }\n try {\n const { data } = await getFormsRange(authUser.tokenId, ids, {\n archivedOnly: archivedOnly.value,\n transferredOnly: transferredOnly.value,\n });\n\n const headers = [\n 'Flag',\n 'Type',\n 'Tracking Number',\n 'Created Date',\n 'Name',\n 'Assigned To',\n 'Status',\n 'Status Date',\n ];\n\n const dataToExport = data?.map((row) => ({\n [headers[0]]: row?.flagged,\n [headers[1]]: capitalize(row?.type),\n [headers[2]]: row.code || '',\n [headers[3]]: row.createdAt ? moment(row.createdAt).format('MMMM DD, YYYY') : '',\n [headers[4]]: `${row?.civilian?.firstName || ''} ${row?.civilian?.lastName || ''}`,\n [headers[5]]: row?.assigned\n .map(\n (assignedUser) =>\n `${assignedUser?.firstName || ''} ${assignedUser?.lastName || ''} (${assignedUser?.email || ''})`\n )\n .join(', '),\n [headers[6]]: capitalize(row.status) || '',\n [headers[7]]: row?.statusLog?.[row?.status]?.datetime\n ? moment(row?.statusLog?.[row?.status]?.datetime).format('MMMM DD, YYYY')\n : '',\n }));\n\n // const csvObj = data.map((dt) => ({\n // 'Allegation Type': dt.allegation?.allegation || 'N/A',\n // 'Tracking Number': dt.code,\n // 'Created Date': moment(dt?.allegation.createdAt).format(`MM-DD-YYYY`),\n // 'Badge/Serial Number': dt?.officer.badgeNumber,\n // 'Officer Name': `${dt?.officer?.firstName} ${dt?.officer?.lastName}`,\n // Status: convertStatusToLowerCase(dt?.allegation?.status) || 'N/A',\n // }));\n exportCSVFile(headers, dataToExport, `Oversight-Cases-${moment().format('MMMM-DD-YYYY')}`);\n\n // setOpen(false);\n } catch (error) {\n toast.error(error.message);\n }\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const onDeleteForm = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingDeleteCase(true);\n setIsFiltering(true);\n const res = await deleteForm(ids);\n\n if (res.data) {\n if (res.data.deleted && res.data.deleted.length > 0) {\n const casesDeleted = res.data.deleted.join(', ');\n\n toast.success(`The cases ${casesDeleted} was deleted successfully`);\n }\n\n if (res.data.notDeleted && res.data.notDeleted.length > 0) {\n const casesNotDeleted = res.data.notDeleted.join(', ');\n\n toast.error(\n `The cases ${casesNotDeleted}, can not be deleted please un-link related cases to be able to delete the cases`\n );\n }\n }\n\n const { data, headers } = await getCivilianCases({\n token: '',\n page,\n limit: rowsPerPage,\n sortBy,\n sort,\n isFiltering: true,\n type: formType,\n from: from ? moment(from).format('YYYY-MM-DD') : null,\n to: to ? moment(to).format('YYYY-MM-DD') : null,\n code: code.value,\n status: status.value,\n name: name.value,\n assignedTo: assigned?._id || (assigned === 'null' ? assigned : location.state?.unassigned),\n source: source.value,\n reporter: reporter.value,\n investigator: investigator.value,\n allegation,\n disposition,\n discipline,\n badgeNumber: location?.state?.badgeNumber || null,\n archivedOnly: archivedOnly.value,\n transferredOnly: transferredOnly.value,\n flaggedOnly: flaggedOnly.value,\n subType: subType.value,\n contact: undefined,\n ...(filtersConfig ? { filtersConfigId: filtersConfig?._id } : {}),\n });\n\n setForms({ data, headers });\n setLoadingDeleteCase(false);\n setOpenModal(false);\n setSelected([]);\n } catch (error) {\n setLoadingDeleteCase(false);\n axiosCatchError(error);\n }\n };\n\n const renderRow = (row, index, handleClick) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n const description = [\n row.archived ? 'Archived' : null,\n row.transferred && row.referral?.previous?.organization ? (\n \n ) : null,\n row.transferred && row.referral?.next?.organization ? (\n \n ) : null,\n ]\n .filter(Boolean)\n .flatMap((value, _index, array) => {\n if (_index < array.length - 1) {\n return [value, ' - '];\n }\n\n return [value];\n });\n\n return (\n \n );\n };\n\n const getVisibleColumns = () => [\n ...Object.keys(visibleColumns)\n .filter((column) => visibleColumns[column])\n .map((column) => formatHeadersText(column)),\n ''\n ];\n\n return (\n <>\n {organization && }\n\n \n \n Cases\n \n\n {}}\n saveTab={handleSaveTab}\n onTabSelect={handleTabSelection}\n nextPosition={nextPosition}\n saveTabPositions={handleTabsReorder}\n onTabAction={handleTabSelectionAction}\n deleteTab={deleteSelectedTab}\n moduleName=\"CASES\"\n formType={formType}\n />\n\n {activeTab === TYPE_USER_TABS.MAIN && (\n \n )}\n\n {activeTab === TYPE_USER_TABS.VIEW && (\n \n )}\n \n\n
\n\n setOpenModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{ timeout: 500 }}\n >\n \n
\n Are you sure you want to delete?\n \n Cases will be archived for 7 years before being permanently deleted.\n \n \n setOpenModal(false)}>\n CANCEL\n \n \n {loadingDeleteCase ? : 'DELETE'}\n \n \n
\n
\n \n \n );\n};\n\nexport default Cases;\n","import {\n Box,\n Button,\n CircularProgress,\n FormControlLabel,\n Grid,\n makeStyles,\n Radio,\n RadioGroup,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React from 'react';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport useInput from '../../hooks/useInput';\nimport { createReport } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n width: '100%',\n\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: 0,\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: 0,\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n alignSelf: 'center',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n}));\n\nexport default function CreateReport({ setOpen, setReports, }) {\n const classes = useStyles();\n const [loading, setLoading] = React.useState(false);\n const type = useInput();\n const name = useInput();\n const description = useInput();\n\n const onCreateReport = async () => {\n if (!type.value || !description.value || !name.value) {\n toast.error('Please fill in all inputs');\n return;\n }\n\n try {\n setLoading(true);\n const response = await createReport({\n name: name.value,\n description: description.value,\n type: type.value,\n });\n\n setLoading(false);\n setReports((prevState) => {\n const stateCopy = { ...prevState };\n stateCopy.data = [response.data, ...stateCopy.data];\n return stateCopy;\n });\n\n setOpen(false);\n toast.success('New Report was successfully created!');\n } catch (error) {\n toast.error(error.response.data.error.details[0].message);\n setLoading(false);\n }\n };\n\n return (\n <>\n Create Reports\n Please enter the report name and description in the fields below.\n \n \n Report Name}\n style={{ width: '100%' }}\n value={name.value}\n onChange={name.onChange}\n inputProps={{\n 'data-testid': 'create-report-input-name',\n }}\n />\n \n \n Description}\n style={{ width: '100%' }}\n value={description.value}\n onChange={description.onChange}\n inputProps={{\n 'data-testid': 'create-report-input-description',\n }}\n />\n \n \n \n Type\n \n } label=\"Global\" />\n } label=\"Private\" />\n \n \n \n setOpen(false)}\n >\n CANCEL\n \n \n {loading ? : 'CREATE'}\n \n \n \n );\n}\n\nCreateReport.propTypes = {\n setOpen: PropTypes.func,\n setReports: PropTypes.func,\n};\n","import {\n Box,\n makeStyles,\n TableRow,\n Typography,\n TableCell,\n Checkbox,\n Button,\n CircularProgress,\n Tooltip,\n} from '@material-ui/core';\nimport moment from 'moment';\nimport React, { useCallback, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\nimport InfoIcon from '@material-ui/icons/Info';\nimport DashButton from '../../components/DashButton';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport EnhancedTable from '../../components/Table';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport { Context } from '../../Context';\nimport useOrganization from '../../hooks/useOrganization';\nimport { deleteReport, duplicateReport, getReports } from '../../services/unarmed';\nimport CreateReport from './CreateReport';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n width: '100%',\n\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n}));\n\nconst columns = ['Report Name', 'Description', 'Created Date', 'Owner Name', 'Type'];\n\nexport default function Data() {\n const classes = useStyles();\n const [loading, setLoading] = React.useState(false);\n const [page, setPage] = React.useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [open, setOpen] = React.useState(false);\n const [openDelete, setOpenDelete] = React.useState(false);\n const { authUser, setActive, myUser } = React.useContext(Context);\n const [sortBy, setSortBy] = React.useState('createdAt');\n const [sort, setSort] = React.useState('desc');\n const [checked, setChecked] = React.useState(false);\n const [reports, setReports] = React.useState([]);\n const [loadingDeleteReport, setLoadingDeleteReport] = React.useState(false);\n const history = useHistory();\n const isSelected = (name) => selected.indexOf(name) !== -1;\n const { organization } = useOrganization();\n\n useEffect(() => {\n setActive('/data');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClickDuplicate = async () => {\n try {\n setLoading(true);\n const { data } = await duplicateReport({ reportIds: selected });\n\n await onGetReports();\n\n toast.success(data.message);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n console.log(error);\n }\n }\n\n const onGetReports = async () => {\n try {\n setLoading(true);\n const { data, headers } = await getReports(page, rowsPerPage, sort, sortBy);\n\n setReports({ data, headers });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n\n toast.error(error?.response?.data?.message);\n }\n };\n\n useEffect(() => {\n if (authUser) {\n onGetReports();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [authUser, page, rowsPerPage, sort, sortBy]);\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const gotToOfficerProfile = useCallback((e, row, handleClick) => {\n const go = handleClick(e, row._id);\n\n if (go) {\n history.push(`/data/${row._id}`);\n setActive('/data');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onDeleteReport = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingDeleteReport(true);\n\n await deleteReport(ids);\n await onGetReports();\n\n setLoadingDeleteReport(false);\n setSelected([]);\n setOpenDelete(false);\n toast.success('Report(s) deleted Successfully');\n } catch (error) {\n toast.error(error?.response?.data?.message);\n setLoadingDeleteReport(false);\n }\n };\n\n const renderRow = (row, index, handleClick) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n return (\n \n gotToOfficerProfile(e, row, handleClick)}>\n {myUser?.role !== 'admin' && myUser?._id !== row?.owner?._id ? (\n \n \n \n \n \n ) : (\n \n )}\n \n gotToOfficerProfile(e, row, handleClick)}>\n {row?.name}\n \n gotToOfficerProfile(e, row, handleClick)}>\n {row?.description}\n \n gotToOfficerProfile(e, row, handleClick)}>\n {moment(row.createdAt).format('MMMM DD, YYYY')}\n \n\n gotToOfficerProfile(e, row, handleClick)}>\n {`${row?.owner?.firstName || 'System'} ${row?.owner?.lastName || ''}`}\n \n gotToOfficerProfile(e, row, handleClick)}\n style={{ textTransform: 'capitalize' }}\n >\n {row?.type?.toLowerCase()}\n \n \n );\n };\n\n return (\n <>\n {organization && }\n \n Data\n \n \n All Data ({reports?.headers?.['x-pagination-totalitems'] || 0})\n \n \n setOpenDelete(true)}\n disabled={selected.length === 0}\n marginRight=\"10px\"\n >\n Delete\n \n handleClickDuplicate()}\n disabled={selected.length === 0}\n marginRight=\"10px\"\n >\n Duplicate\n \n setOpen(true)} marginRight=\"10px\">\n Create Report\n \n \n \n \n \n \n \n \n \n \n Are you sure you want to delete?\n This action can't be undone!\n \n \n \n \n \n \n \n );\n}\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\nimport styled from 'styled-components';\nimport CheckIcon from '@material-ui/icons/Check';\n\nconst FormStepper = ({\n stepsArr = [],\n color,\n active,\n dividerColor = '#000000ad',\n defaultColor = '#000000ad',\n}) => (\n \n {stepsArr.map((step, i) => (\n \n i}\n >\n {active > i ? : i + 1}\n \n \n {step}\n \n {i + 1 < stepsArr.length && (\n \n )}\n \n ))}\n \n);\n\nexport default FormStepper;\n\nconst FormStepperContainer = styled.div`\n padding: 20px 4px;\n display: flex;\n align-items: center;\n width: fit-content;\n display: none;\n @media screen and (min-width: 769px) {\n display: flex;\n }\n`;\n\nconst StepItem = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst StepPosition = styled.div`\n width: 25px;\n height: 25px;\n border-radius: 50%;\n font-size: 13px;\n border: 1px dashed ${(props) => props.defaultColor};\n display: flex;\n align-items: center;\n margin-right: 10px;\n justify-content: center;\n color: ${(props) => props.defaultColor};\n ${(props) =>\n props.active &&\n `\n background: ${props.bg};\n border: 1px solid ${props.bg};\n color: #fff;\n `}\n ${(props) =>\n props.completed &&\n `\n background: ${props.bg};\n border: 1px solid ${props.bg};\n color: #fff;\n `}\n`;\n\nconst DividerPosition = styled.div`\n height: 1px;\n min-width: 20px;\n background-color: ${(props) => props.dividerColor};\n margin: 0 10px;\n`;\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport RecordVoiceOverIcon from '@material-ui/icons/RecordVoiceOver';\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport police from '../../assets/blueBadge.png';\nimport GroupIcon from '@material-ui/icons/Group';\n\nconst useStyles = makeStyles(() => ({\n module: {\n width: 291,\n height: 72,\n border: '1px solid #7070701A',\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 20,\n background: '#fff',\n cursor: 'pointer',\n marginTop: 20,\n },\n icon: {\n width: 24,\n height: 24,\n objectFit: 'cover',\n },\n}));\n\nconst Module = ({ module, onClick, isSelected }) => {\n const classes = useStyles();\n const onRenderModule = () => {\n switch (module) {\n case 'Cases':\n return ;\n case 'Allegations':\n return ;\n case 'Officers':\n return ;\n case 'Users':\n return ;\n\n default:\n return null;\n }\n };\n\n return (\n \n {onRenderModule()}\n \n {module}\n \n \n );\n};\n\nexport default Module;\n","import { FormControl, FormHelperText, makeStyles, MenuItem, Select } from '@material-ui/core';\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n select: {\n border: '1px solid #0000001f',\n background: '#fff',\n padding: '2.5px 10px',\n borderRadius: 4,\n '&.MuiInput-underline:hover:not(.Mui-disabled):before': {\n border: 0,\n },\n '&.MuiInput-underline:before': {\n border: 0,\n },\n '&:focus-visible': {\n outline: '#0000001f',\n },\n\n '&.MuiInput-underline:after': {\n border: 0,\n },\n },\n\n placeHolder: {\n color: '#00000040',\n fontSize: 14,\n fontStyle: 'normal',\n },\n\n item: {\n fontSize: 14,\n },\n}));\n\nexport default function SelectEngine({ options = [], onChange, value, width = 120 }) {\n const classes = useStyles();\n return (\n \n {\n if (!selected) {\n return Select an Option;\n }\n\n return options.find((option) => option.value === selected)?.text;\n }}\n value={value}\n onChange={onChange}\n >\n \n \n Select an Option\n \n \n {options.map((option, index) => (\n \n {option.text}\n \n ))}\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport { DropzoneArea } from 'material-ui-dropzone';\nimport BackupIcon from '@material-ui/icons/Backup';\nimport { Box, CircularProgress, makeStyles, Typography } from '@material-ui/core';\n\nimport Module from '../Module';\nimport { getAvailableFormType, getImportOptions } from '../../../services/unarmed';\nimport { exportCSVFile } from '../../../utils/convertJsonCsv';\nimport SelectEngine from '../../../components/Select';\n\nconst useStyles = makeStyles(() => ({\n alertContainer: {\n height: 'fit-content',\n width: '100%',\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n background: '#FFFBF3',\n borderLeft: '6px solid #FFC64C',\n borderRadius: 2,\n margin: '32px 0',\n padding: '10px',\n },\n csvStatus: {\n width: '100%',\n height: 52,\n border: '1px solid #7070701A',\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginRight: 20,\n background: '#fff',\n padding: '0 24px',\n },\n}));\n\nconst Step1 = ({ orgId, csv, handleFileUpload, setSelectOptions, selectedModule, setSelectedModule, selectedForm }) => {\n const classes = useStyles();\n const [formsAvailable, setFormsAvailable] = useState([]);\n\n useEffect(() => {\n const onGetAvailableForms = async () => {\n try {\n const { data } = await getAvailableFormType(orgId, `&limit=100`);\n const options = data.map((dt) => ({ text: dt?.name, value: dt?._id }));\n setFormsAvailable(options);\n } catch (error) {\n console.log(error);\n }\n };\n if (orgId) {\n onGetAvailableForms();\n }\n }, [orgId]);\n\n const generateFileName = (module, formTypeId) => {\n if (module === 'Cases') {\n // Search for selected formTypeId\n const selectedFormType = formsAvailable.find((form) => form.value === formTypeId);\n // Generate file name using form name\n return `${module}-${selectedFormType.text}-example`.toLowerCase();\n }\n\n return `${module}-example`.toLowerCase();\n };\n\n const onGetImportOption = (module, formTypeId) => {\n getImportOptions(module, formTypeId)\n .then((res) => {\n const headers = {};\n const bodyObj = {};\n const selectedOptions = [];\n for (const item of res) {\n headers[item.target] = item.label;\n bodyObj[item.target] = item.example;\n\n selectedOptions.push({\n value: item.target,\n text: item.label,\n beKey: item.target,\n disabled: false,\n type: item.type,\n required: item.required || false,\n });\n }\n\n // Generate the file name\n const filename = generateFileName(module, formTypeId);\n setSelectOptions(selectedOptions);\n exportCSVFile(headers, [bodyObj], filename, false, false);\n })\n .catch((err) => console.log(err));\n };\n\n // FIX: Fixed redundant code\n const casesModuleClick = (module) => {\n setSelectedModule(module);\n };\n const officerModuleClick = (module) => {\n onGetImportOption(module);\n setSelectedModule(module);\n };\n const usersModuleClick = (module) => {\n onGetImportOption(module);\n setSelectedModule(module);\n };\n\n const modules = [\n { module: 'Cases', onClick: casesModuleClick },\n { module: 'Officers', onClick: officerModuleClick },\n { module: 'Users', onClick: usersModuleClick },\n ];\n\n return (\n <>\n \n Choose the module where you want to import your csv file\n \n \n {modules.map((module, i) => (\n module.onClick(module.module)}\n />\n ))}\n \n\n {selectedModule && (\n \n {selectedModule === 'Cases' && (\n <>\n \n {\n selectedForm.onChange(e);\n onGetImportOption('Cases', e.target.value);\n }}\n />\n \n {selectedForm.value && (\n <>\n \n \n Download the {selectedModule} CSV template to organize information in the respective columns\n before importing the file.\n \n \n \n
\n \n Download\n \n \n \n \n \n Upload your CSV File\n \n \n You can upload any .csv file.{' '}\n \n Remember the first row must contain the names of the fields\n \n \n {csv ? (\n \n {csv.name}\n \n \n \n processing your file…\n \n \n \n ) : (\n {\n if (fl.length > 0) {\n handleFileUpload(fl[fl.length - 1]);\n }\n }}\n clearOnUnmount\n filesLimit={1}\n dropzoneText=\"Drag and drop your CSV file here or browser\"\n showPreviewsInDropzone={false}\n Icon={() => }\n />\n )}\n \n \n )}\n \n )}\n {selectedModule !== 'Cases' && (\n <>\n \n \n Download the {selectedModule} CSV template to organize information in the respective columns before\n importing the file.\n \n \n \n \n Download\n \n \n \n \n Upload your CSV File\n \n \n You can upload any .csv file.{' '}\n Remember the first row must contain the names of the fields\n \n {csv ? (\n \n {csv.name}\n \n \n \n processing your file…\n \n \n \n ) : (\n {\n if (fl.length > 0) {\n handleFileUpload(fl[fl.length - 1]);\n }\n }}\n clearOnUnmount\n filesLimit={1}\n dropzoneText=\"Drag and drop your CSV file here or browser\"\n showPreviewsInDropzone={false}\n Icon={() => }\n />\n )}\n \n \n )}\n \n )}\n \n );\n};\n\nexport default Step1;\n","import { Box, Button, makeStyles, Typography } from '@material-ui/core';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport React, { useEffect, useState } from 'react';\nimport SelectBox from '../../components/SelectBox';\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\nimport CheckIcon from '@material-ui/icons/Check';\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #4b7bff',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n labelHightlighted: {\n height: 26,\n padding: '5px 10px',\n width: 'fit-content',\n background: '#6D738526',\n borderRadius: '2px',\n fontWeight: '500',\n },\n}));\n\nconst MatchFieldRow = ({\n field,\n options = [],\n checkRowValues,\n setSelectOptions,\n indexRow,\n setConfirmRows,\n confirmRows,\n setRowSelected,\n rowValues,\n confirmAll,\n setConfirmAll,\n}) => {\n const classes = useStyles();\n\n const getPreselectedOption = options.find((option) => option.text === field);\n const [selected, setSelected] = useState(() => {\n if (getPreselectedOption) {\n const optionsCopy = options.slice();\n const index = options.findIndex((option) => option.text === field);\n optionsCopy[index].disabled = true;\n setSelectOptions(optionsCopy);\n return getPreselectedOption.value;\n }\n return rowValues[indexRow]?.selected || '';\n });\n const [lock, setLock] = useState(false);\n const { rowItems, totalItems } = checkRowValues(field);\n\n const onChangeOptions = (e) => {\n const { value } = e.target;\n if (value === '0') {\n return;\n }\n const optionsCopy = options.slice();\n const index = options.findIndex((option) => option.value === value);\n optionsCopy[index].disabled = true;\n if (selected) {\n const selectedIndex = options.findIndex((option) => option.value === selected);\n optionsCopy[selectedIndex].disabled = false;\n }\n\n setSelected(value);\n setSelectOptions(optionsCopy);\n if (lock) {\n const confirmRowsCopy = { ...confirmRows };\n delete confirmRowsCopy[indexRow];\n\n setLock(false);\n setConfirmRows(confirmRowsCopy);\n }\n };\n\n const onMapRow = () => {\n setLock(true);\n const getSelectedOption = options.find((option) => option.value === selected);\n\n setConfirmRows((prevState) => ({\n ...prevState,\n [indexRow]: {\n field,\n selected,\n text: getSelectedOption?.text,\n beKey: getSelectedOption?.beKey,\n type: getSelectedOption?.type,\n },\n }));\n setRowSelected(indexRow, { selected });\n };\n\n useEffect(() => {\n if (confirmAll && getPreselectedOption?.value === selected) {\n onMapRow();\n setConfirmAll(false);\n } else if (confirmAll && selected) {\n onMapRow();\n setConfirmAll(false);\n }\n }, [confirmAll]);\n return (\n \n \n \n {field}\n \n\n \n \n \n \n \n \n \n \n {getPreselectedOption && getPreselectedOption.value === selected && (\n \n \n \n This field matched with{' '}\n \n \n \n )}\n {rowItems === totalItems ? (\n \n \n All cells contain data\n \n ) : (\n \n \n \n {rowItems}/{totalItems} cells contain data\n \n \n )}\n \n \n {lock ? (\n \n \n Confirmed mapping\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default MatchFieldRow;\n","import { Box, Button, CircularProgress, Divider, makeStyles, Typography } from '@material-ui/core';\nimport set from 'lodash.set';\nimport get from 'lodash.get';\nimport React, { useEffect, useState } from 'react';\nimport { toast } from '../../../components/Notification';\nimport { onImport } from '../../../services/unarmed';\nimport MatchFieldRow from '../MatchFieldRow';\n\nconst time = [\n { text: 'Night - 12:00am - 5:59am', value: 1 },\n { text: 'Morning - 6:00am - 11:59am', value: 2 },\n { text: 'Afternoon - 12:00pm - 5:59pm', value: 3 },\n { text: 'Evening - 6:00pm - 11:59pm', value: 4 },\n];\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #4b7bff',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n outlined: {\n background: '#fff',\n color: '#4b7bff',\n border: '1px solid #4b7bff',\n '&:hover': {\n background: 'transparent',\n },\n marginTop: 10,\n marginBottom: 20,\n textTransform: 'capitalize',\n },\n}));\n\nexport const getKeyImported = (module) => {\n switch (module) {\n case 'Cases':\n return 'forms';\n case 'Officers':\n return 'officers';\n case 'Users':\n return 'users';\n\n default:\n throw new Error('Unssoported module');\n }\n};\n\nconst Step2 = ({\n rows,\n columns,\n setStep,\n setCsv,\n prepareForms,\n setCsvErrors,\n setOrderedHeaders,\n setRowSelected,\n rowValues,\n selectOptions,\n setSelectOptions,\n onResetMatchFieldOptions,\n selectedModule,\n onResetRowSelected,\n formTypeId,\n}) => {\n const classes = useStyles();\n\n const [loading, setLoading] = useState('idle');\n\n const [confirmRows, setConfirmRows] = useState({});\n const [confirmAll, setConfirmAll] = useState(false);\n\n useEffect(\n () => () => {\n onResetRowSelected({});\n },\n []\n );\n\n const getRequireOptions = () => {\n const requireOptions = selectOptions.filter((option) => option.required);\n return requireOptions;\n };\n\n const checkRowValues = (field) => {\n const rowKeys = Object.keys(rows[0]);\n\n const columnCount = rowKeys.reduce((acum, currentValue) => ({ ...acum, [currentValue]: 0 }), {});\n\n rows.forEach((row) => {\n rowKeys.forEach((key) => {\n if (row[key]) {\n columnCount[key] += 1;\n }\n });\n });\n\n return { rowItems: columnCount[field], totalItems: rows.length };\n };\n\n const onAddRowToJson = (field, selectedOption, type, forms) => {\n const data = [...forms];\n\n let counter = 0;\n rows.forEach((row, index) => {\n if (field === 'Investigator') counter++;\n\n if (row[field] && (counter <= 1 || (counter > 1 && field !== 'Investigator'))) {\n const getTypeItem = () => {\n if (type === 'array') {\n return row[field].split(',');\n }\n if (type === 'boolean') {\n return row[field] === 'yes';\n }\n\n // if (type === 'date') {\n // return moment(row[field]).format();\n // }\n\n return row[field]?.trim();\n };\n switch (selectedOption) {\n case 'Investigator1': {\n console.log({ row, selectedOption, field: row[field] });\n //set(data[index], selectedOption, finded.value);\n break;\n }\n\n case 'location.time': {\n const finded = time.find((tm) => tm.text.toLowerCase().includes(row[field]?.toLowerCase()));\n if (finded) {\n set(data[index], selectedOption, finded.value);\n } else {\n set(data[index], selectedOption, row[field]?.trim());\n }\n\n break;\n }\n\n // case 'createdAt': {\n // const date = moment(row[field]).format();\n // set(data[index], selectedOption, date);\n // break;\n // }\n\n case 'fileAnonymously': {\n set(\n data[index],\n selectedOption,\n row[field].toLowerCase() === 'yes' ? true : row[field].toLowerCase() === 'no' ? false : row[field]?.trim()\n );\n break;\n }\n\n default:\n set(data[index], selectedOption, getTypeItem());\n break;\n }\n\n if (!data[index]?.row) {\n data[index] = { ...data[index], row: index + 1 };\n }\n } else if (field === 'Investigator' && counter > 1) {\n set(data[index], selectedOption, [row[field + '1']]);\n } else {\n if (\n selectedOption &&\n typeof selectedOption === 'string' &&\n selectedOption.includes('sections') &&\n selectedOption.includes('components') &&\n (selectedOption.includes('firstName') ||\n selectedOption.includes('lastName') ||\n selectedOption.includes('badgeNumber'))\n ) {\n set(data[index], selectedOption, null);\n } else {\n set(data[index], selectedOption, undefined);\n }\n }\n });\n\n return data;\n };\n\n const onUploadForms = () => {\n if (columns.length !== Object.keys(confirmRows || {}).length) {\n return;\n }\n setLoading('pending');\n\n const confirmedRows = Object.keys(confirmRows);\n\n let forms = rows.map(() => ({}));\n\n confirmedRows.forEach((rowIndex) => {\n const test = onAddRowToJson(\n confirmRows[rowIndex].field,\n confirmRows[rowIndex].selected,\n confirmRows[rowIndex].type,\n forms\n );\n\n forms = [...test];\n });\n\n const errors = getRequireOptions().filter((option) => {\n const value = get(forms[0], option.value);\n if (value === undefined || value === null) {\n return option;\n }\n });\n\n if (errors.length > 0) {\n const error = errors.map((err) => (\n \n * {err.text}\n \n ));\n\n toast.error(\n \n {' '}\n \n {errors.length > 1 ? 'These Fields are required' : 'This Field is required'}{' '}\n \n {error}\n \n );\n\n setLoading('rejected');\n\n return;\n }\n\n const orderedHeaders = confirmedRows.reduce(\n (accum, current) => {\n accum[current] = confirmRows[current];\n return accum;\n },\n\n new Array(confirmedRows.length)\n );\n\n setOrderedHeaders(orderedHeaders);\n prepareForms(forms);\n\n const data = {\n validateOnly: true,\n ...(selectedModule === 'Cases' ? { formTypeId } : {}),\n [getKeyImported(selectedModule)]: forms,\n };\n\n onImport(data, selectedModule)\n .then(() => {\n setCsvErrors(null);\n setStep(2);\n setLoading('resolved');\n })\n .catch((err) => {\n const err422 = err?.response?.data?.error?.details?.[0]?.message;\n\n if (err422) {\n toast.error(err422);\n } else {\n setCsvErrors(err?.response?.data?.errors);\n setStep(2);\n }\n setLoading('rejected');\n });\n };\n const onCheckIfIsConfirmed = () => {\n if (columns.length !== Object.keys(confirmRows || {}).length) {\n return true;\n }\n return false;\n };\n\n return (\n \n \n \n Importing {rows.length} rows\n \n \n {\n setStep(0);\n onResetMatchFieldOptions();\n setCsv(null);\n }}\n >\n Previous Step\n \n\n \n {loading === 'pending' ? : 'Continue'}\n \n \n \n\n \n \n CSV Field\n \n \n Cases Field\n \n setConfirmAll(true)}\n >\n Confirm All Mapping\n \n \n \n\n \n {columns.map((column, index) => (\n \n ))}\n \n \n \n );\n};\n\nexport default Step2;\n","/* eslint-disable react/prop-types */\nimport {\n Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade,\n makeStyles,\n Modal,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport React, { useState } from 'react';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { useHistory } from 'react-router-dom';\nimport { VariableSizeGrid as Grid } from 'react-window';\nimport PropTypes from 'prop-types';\n\nimport { onImport } from '../../../services/unarmed';\nimport formatTxt from '../../../utils/formatText';\nimport { getKeyImported } from './Step2';\nimport { toast } from '../../../components/Notification';\n\nconst useStyles = makeStyles((theme) => ({\n button: {\n background: ' #4b7bff',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n outlined: {\n background: '#fff',\n color: '#4b7bff',\n border: '1px solid #4b7bff',\n '&:hover': {\n background: 'transparent',\n },\n marginTop: 10,\n marginBottom: 20,\n textTransform: 'capitalize',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 445,\n outline: 0,\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\nconst Step3 = ({ setStep, rows, csvErrors = [], orderedHeaders, forms, selectedModule, formTypeId }) => {\n const classes = useStyles();\n const [loading, setLoading] = useState('idle');\n const [open, setOpen] = useState(false);\n const history = useHistory();\n\n const getRowsWithErrors = () => {\n if (csvErrors) {\n const rowsWithErrors = csvErrors.reduce((acc, curr) => [...acc, curr.row], []);\n\n return rowsWithErrors;\n }\n\n return [];\n };\n\n const onImportForm = () => {\n setLoading('pending');\n const jsonWithErrorsSkipped = forms.filter((json) => !getRowsWithErrors().includes(json.row));\n\n const data = {\n validateOnly: false,\n [getKeyImported(selectedModule)]: jsonWithErrorsSkipped,\n ...(selectedModule === 'Cases' ? { formTypeId } : {}),\n };\n\n onImport(data, selectedModule)\n .then(() => {\n history.push('/success-imported');\n setLoading('resolved');\n })\n .catch((err) => {\n toast.error(err?.response?.data?.error?.details?.[0]?.message);\n setLoading('rejected');\n });\n };\n\n const joinPathKey = (path) => {\n if (path.length === 2) {\n if (Number.isNaN(parseInt(path[1]))) {\n return `${path[0]}.${path[1]}`;\n }\n return path[0];\n }\n if (path.length === 3) {\n if (!Number.isNaN(parseInt(path[1])) && typeof path[2] === 'string') {\n return `${path[0]}[${path[1]}].${path[2]}`;\n }\n if (Number.isNaN(parseInt(path[1]))) {\n return `${path[0]}.${path[1]}`;\n }\n }\n return path[0];\n };\n\n const errorsFormatted = () => {\n let mapErrors = [];\n if (csvErrors?.length > 0) {\n csvErrors.forEach((currentErr) => {\n if (currentErr) {\n const mapErrs = currentErr?.errors?.map((errs, errsKey) => ({\n beKey: errs.fullPath || joinPathKey(errs.path),\n message: errs.message,\n componentType: errs.componentType,\n path: errs.path,\n errsKey,\n row: currentErr.row,\n }));\n\n mapErrors = [...mapErrors, ...mapErrs];\n }\n });\n }\n\n mapErrors = mapErrors.map((error) => {\n if (error.beKey.split('.').length > 1) {\n return error;\n }\n const curlyBracketIndex = error.beKey.indexOf('[');\n if (curlyBracketIndex >= 0) {\n error.beKey = error.beKey.slice(0, curlyBracketIndex);\n }\n return error;\n });\n return mapErrors;\n };\n\n const getColumnErrorIndex = (row, currentIteration = 0, currentBeKey) => {\n const headers = [...orderedHeaders];\n\n const rowHasError = errorsFormatted()?.filter((rowErr) => rowErr.row === row + 1);\n\n if (rowHasError?.length > 0) {\n const columnsHasError = rowHasError.filter((rowErr) => rowErr.beKey === currentBeKey);\n if (columnsHasError.length > 0) {\n const index = headers.findIndex((header) => {\n if (header) {\n return header.beKey === columnsHasError[0]?.beKey;\n }\n\n return false;\n });\n\n return {\n index,\n message: columnsHasError[0]?.message,\n rowIndex: columnsHasError[0]?.row,\n };\n }\n\n if (rowHasError[currentIteration]?.path?.length > 0) {\n return {\n index: currentIteration,\n message: rowHasError[currentIteration]?.message,\n rowIndex: rowHasError[currentIteration]?.row,\n };\n }\n\n return {\n index: 0,\n message: rowHasError.map((_row) => `${_row?.componentType}:${_row?.message}`).join('. '),\n rowIndex: rowHasError[0]?.row,\n };\n }\n\n return {\n index: -1,\n };\n };\n\n const Cell = ({ columnIndex, rowIndex, style }) => {\n if (rowIndex === 0) {\n const header = orderedHeaders[columnIndex];\n return (\n \n {header?.text}\n \n );\n }\n\n const i = rowIndex - 1;\n const index = columnIndex;\n const row = rows[rowIndex - 1];\n const rowKeys = ['', ...Object.keys(row)];\n const rowKey = rowKeys[columnIndex];\n const headersKeys = [...orderedHeaders];\n headersKeys[0] = '';\n\n const { index: columnError, message } = getColumnErrorIndex(i, index, headersKeys[index]?.beKey);\n\n if (columnError !== -1 && columnError === columnIndex) {\n return (\n \n {columnIndex === 0 ? (\n {i + 1}\n ) : (\n {formatTxt(row[rowKey], 25)}\n )}\n \n \n \n \n \n \n );\n }\n\n return (\n \n {!rowKey ? i + 1 : formatTxt(row[rowKey], 25)}\n {!rowKey && getRowsWithErrors()?.includes(i + 1) && message && (\n \n \n \n \n \n )}\n \n );\n };\n\n return (\n \n \n \n Importing {rows?.length || 0} rows\n \n \n {\n setStep(1);\n }}\n style={{ marginRight: 20 }}\n >\n Previous Step\n \n \n \n \n\n \n (index === 0 ? 90 : 240)}\n height={500}\n rowCount={rows.length + 1}\n rowHeight={() => 50}\n width={1200}\n >\n {Cell}\n \n \n\n setOpen(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n Continue with import?\n \n We found {errorsFormatted().length} errors.  Please note: Sivil cannot import rows with\n errors. Please select cancel to fix errors or import to proceed.\n \n\n \n \n \n \n
\n
\n \n \n \n );\n};\n\nStep3.propTypes = {\n setStep: PropTypes.func.isRequired, // setStep prop must be a function and is required\n rows: PropTypes.array.isRequired, // rows prop must be an array and is required\n csvErrors: PropTypes.array, // csvErrors prop must be an array (optional, defaults to empty array)\n orderedHeaders: PropTypes.array.isRequired, // orderedHeaders prop must be an array and is required\n forms: PropTypes.array.isRequired, // forms prop must be an array and is required\n selectedModule: PropTypes.string.isRequired, // selectedModule prop must be a string and is required\n formTypeId: PropTypes.number.isRequired, // formTypeId prop must be a number and is required\n};\n\nexport default Step3;\n","/* eslint-disable no-plusplus */\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport Papa from 'papaparse';\nimport FormStepper from '../../components/FormStepper';\nimport Step1 from './Steps/Step1';\nimport Step2 from './Steps/Step2';\nimport Step3 from './Steps/Step3';\nimport { Context } from '../../Context';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport useOrganization from '../../hooks/useOrganization';\nimport useInput from '../../hooks/useInput';\n// import { matchfieldOptions } from '../../utils/options';\n\nconst steps = ['File Import', 'Match Field', 'Preview'];\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n width: '100%',\n },\n}));\n\nconst FileImport = () => {\n const classes = useStyles();\n const [activeStep, setActiveStep] = useState(0);\n const [rows, setRows] = useState([]);\n const [columns, setColumns] = useState([]);\n const [csv, setCsv] = useState(null);\n const [forms, setForms] = useState([]);\n const [csvErrors, setCsvErrors] = useState(null);\n const [orderedHeaders, setOrderedHeaders] = useState([]);\n const [rowSelected, setRowSelected] = useState({});\n const [selectOptions, setSelectOptions] = useState([]);\n const [selectedModule, setSelectedModule] = useState('');\n const { setActive } = useContext(Context);\n const { organization } = useOrganization();\n const selectedForm = useInput('');\n\n const onResetMatchFieldOptions = () => {\n const setOffOptions = selectOptions.map((option) => {\n option.disabled = false;\n return option;\n });\n setSelectOptions(setOffOptions);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => onResetMatchFieldOptions(), []);\n\n useEffect(() => {\n setActive('/import');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const processData = (data) => {\n const list = [];\n const headers = data[0];\n const r = data[data.length - 1].length === 1 ? data.slice(1, -1) : data.slice(1);\n\n for (const row of r) {\n const obj = {};\n let counter = 0;\n for (let i = 0; i < headers.length; i++) {\n if (headers[i] === 'Investigator') {\n counter++;\n if (counter > 1) {\n obj[headers[i] + '1'] = row[i];\n } else {\n obj[headers[i]] = row[i];\n }\n } else {\n obj[headers[i]] = row[i];\n }\n }\n list.push(obj);\n }\n\n let investigatorCounter = 0;\n const clms = data[0].map((c) => {\n if (c === 'Investigator') {\n investigatorCounter++;\n if (investigatorCounter > 1) {\n return {\n name: c + '1',\n selector: c + '1',\n };\n }\n }\n return {\n name: c,\n selector: c,\n };\n });\n\n console.log({ list });\n const filterEmptyList = list.filter((item) => {\n const keys = Object.keys(item);\n const nullValuesCount = keys.reduce((acum, currentValue) => {\n if (!item[currentValue]) {\n return acum + 1;\n }\n return acum;\n }, 0);\n return nullValuesCount !== keys.length;\n });\n console.log({ clms, filterEmptyList });\n setRows(filterEmptyList);\n setColumns(clms);\n };\n\n const handleFileUpload = (file) => {\n setCsv(file);\n // const reader = new FileReader();\n // reader.onload = (evt) => {\n // /* Parse data */\n // const bstr = evt.target.result;\n // const wb = XLSX.read(bstr, { type: 'binary' });\n // /* Get first worksheet */\n // const wsname = wb.SheetNames[0];\n // const ws = wb.Sheets[wsname];\n // /* Convert array of arrays */\n // const data = XLSX.utils.sheet_to_csv(ws, { header: 1 });\n // console.log(data);\n //\n // };\n // reader.readAsBinaryString(file);\n\n const timeout = setTimeout(() => {\n clearTimeout(timeout);\n Papa.parse(file, {\n complete(results) {\n processData(results.data);\n setActiveStep(1);\n },\n skipEmptyLines: true,\n });\n }, 2000);\n };\n\n const getJsonHeaders = () => {\n const keys = Object.keys(forms[0]);\n let fullKeys = [];\n keys.forEach((key) => {\n if (Array.isArray(forms[0][key])) {\n fullKeys = [...fullKeys, key];\n } else if (typeof forms[0][key] === 'object') {\n const nestedKeys = Object.keys(forms[0][key]);\n fullKeys = [...fullKeys, ...nestedKeys];\n } else {\n fullKeys = [...fullKeys, key];\n }\n });\n\n return fullKeys.slice(1);\n };\n\n const onSetRowSelected = (index, obj) => {\n setRowSelected({ ...rowSelected, [index]: { ...obj } });\n };\n\n const onRenderStep = () => {\n if (activeStep === 0) {\n return (\n \n );\n }\n if (activeStep === 1) {\n return (\n setRowSelected({})}\n />\n );\n }\n return (\n \n );\n };\n\n return (\n <>\n {organization && }\n \n Import \n \n \n \n {onRenderStep()}\n \n \n \n \n );\n};\n\nexport default FileImport;\n","import { Box, Button, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport EmailIcon from '@material-ui/icons/Email';\nimport { useHistory } from 'react-router-dom';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n margin: '20px 0',\n },\n containerTitle: {\n padding: '10px 20px',\n borderBottom: '1px solid #e2e2e2',\n },\n resaltText: {\n color: '#4b7bff',\n fontWeight: 600,\n fontSize: 13,\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n button: {\n background: ' #4b7bff',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n}));\n\nconst SuccessImported = () => {\n const history = useHistory();\n const classes = useStyles();\n return (\n \n \n \n CSV data import successful\n \n \n We are uploading the data from your CSV file, we will notify you by email when the process is finished.\n \n\n \n \n );\n};\n\nexport default SuccessImported;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport default function Input({\n value,\n onChange,\n style,\n disabled,\n placeholder,\n type = 'text',\n limit,\n}) {\n return (\n \n );\n}\n\nconst InputEngine = styled.input`\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #0000001f;\n width: 100%;\n font-size: 14px;\n padding: 11px;\n ::placeholder {\n color: #00000040;\n font-size: 14;\n }\n outline: #0000001f;\n`;\n","import React, { useCallback } from 'react';\nimport update from 'immutability-helper';\nimport { Box } from '@material-ui/core';\n\nconst DnDArea = ({ selectedItems = [], setSelectedItems, renderer }) => {\n const moveItem = useCallback(\n (dragIndex, hoverIndex) => {\n const dragItem = selectedItems[dragIndex];\n setSelectedItems(\n update(selectedItems, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, dragItem],\n ],\n })\n );\n },\n [selectedItems, setSelectedItems]\n );\n\n return {renderer(moveItem)};\n};\n\nexport default DnDArea;\n","import React, { useRef } from 'react';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport { Box } from '@material-ui/core';\nimport { useDrag, useDrop } from 'react-dnd';\nimport PropTypes from 'prop-types';\n\nimport { COMPONENT } from '../formEngine/utils/constants';\n\n/**\n * DnDItem - A draggable and droppable item for use in a drag and drop context.\n * @param {Object} props - The props object containing various configuration options.\n * @param {number} props.index - The index of the item.\n * @param {Function} props.moveItem - Function to move the item.\n * @param {ReactNode} props.children - The child components.\n * @param {Function} props.onMoveComponent - Function to handle moving the component.\n * @param {string} props.dragType - The type of drag operation. Defaults to 'ITEM'.\n * @param {boolean} props.noIndicator - Flag indicating whether to show drag and drop indicators.\n * @param {boolean} props.marginBottomItem - Flag indicating whether to apply bottom margin to the item.\n */\nexport default function DnDItem({\n index,\n moveItem,\n children,\n onMoveComponent,\n dragType = 'ITEM',\n noIndicator = false,\n marginBottomItem = false,\n}) {\n const ref = useRef(null);\n const [, drop] = useDrop({\n accept: dragType,\n // drop(item, monitor) {\n drop(item) {\n if (dragType === COMPONENT && item.isCustomComponent) {\n onMoveComponent(item, index);\n return;\n }\n\n if (!ref.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n\n if (dragIndex === hoverIndex) {\n return;\n }\n\n // const hoverBoundingRect = ref.current?.getBoundingClientRect();\n // const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n // const clientOffset = monitor.getClientOffset();\n // const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n // return;\n // }\n\n // if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n // return;\n // }\n\n moveItem(dragIndex, hoverIndex);\n\n item.index = hoverIndex;\n },\n });\n const [{ isDragging }, drag] = useDrag({\n type: dragType,\n item: { type: dragType, index },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n drag(drop(ref));\n\n const opacity = isDragging ? 0.5 : 1;\n return (\n \n {!noIndicator ? (\n \n ) : null}\n {children}\n \n );\n}\n\nDnDItem.propTypes = {\n index: PropTypes.number.isRequired,\n moveItem: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n onMoveComponent: PropTypes.func.isRequired,\n dragType: PropTypes.string,\n noIndicator: PropTypes.bool,\n marginBottomItem: PropTypes.bool,\n};\n","/**\n * @description this function is used to change values inside a DnD area\n */\nexport const onChangeDnDValue = (e, setDnDValue, index, prop = 'value', caseSensitive = false, callback = null) => {\n const { value } = e.target;\n\n setDnDValue((prevState) => {\n const stateCopy = prevState.slice();\n stateCopy[index][prop] = caseSensitive ? value.toUpperCase() : value;\n if (callback) {\n callback(stateCopy);\n }\n return stateCopy;\n });\n};\n\n/**\n * @description this function is used to add values inside a DnD area\n */\nexport const onAddDnDItem = (items, setItems, id, inicialValue = null, othersProps) => {\n setItems([\n ...items,\n {\n label: items[0]?.label,\n value: inicialValue,\n order: items.length + 1,\n id: `${id}${items.length + 1}`,\n ...othersProps,\n },\n ]);\n};\n\n/**\n * @description this function is used to remove values inside a DnD area\n */\nexport const onRemoveDnDItem = (items, setItems, index, callback = null) => {\n // const itemsCopy = items.slice();\n // itemsCopy.splice(index, 1);\n // setItems(itemsCopy);\n setItems((prevState) => {\n const stateCopy = [...prevState];\n stateCopy.splice(index, 1);\n if (callback) {\n callback(stateCopy);\n }\n return stateCopy;\n });\n};\n\n/**\n * @description this function is used to change values in questions\n */\nexport const handleOnChangeQuestion = (e, index, setCheckQuestion) => {\n setCheckQuestion((prevState) => {\n const checkQuestionCopy = [...prevState];\n checkQuestionCopy[index] = e.target.checked;\n\n return checkQuestionCopy;\n });\n};\n\n/**\n * @description this function is used to limit the number of characters in a text field to 100\n */\nexport const rangeNumber100 = (number) => {\n if (number.match(/\\b([1-9]|[1-9][0-9]|100)\\b/)) {\n return true;\n }\n\n return false;\n};\n\n/**\n * @description this function is used to limit the number of characters in a text field to 1000\n */\nexport const rangeNumber1000 = (number) => {\n if (number.match(/\\b([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|1000)\\b/)) {\n return true;\n }\n\n return false;\n};\n\n/**\n * @description this function is used to change checkbox values in question\n */\nexport const handleChangeCheckBox = (e, index, prop, items, setItems) => {\n const { checked } = e.target;\n\n const itemsCopy = items.slice();\n itemsCopy[index][prop] = checked;\n setItems(itemsCopy);\n};\n\n/**\n * @description this function is used to add a component to the json\n */\nexport const addComponentToJson = ({ setPages, page, components, component, currentSection }) => {\n setPages((prevState) => {\n const pagesCopy = [...prevState];\n const newComponents = [...components, component];\n pagesCopy[page.pageIndex].sections[currentSection].components = newComponents;\n\n return pagesCopy;\n });\n};\n\n/**\n * @description this function is used to remove a component to the json\n */\nexport const DeleteComponentFromJson = ({ pages, setPages, page, components, componentIndex, currentSection }) => {\n const pagesCopy = Array.from(pages);\n const componentsCopy = [...components];\n componentsCopy.splice(componentIndex, 1);\n pagesCopy[page.pageIndex].sections[currentSection].components = componentsCopy;\n\n setPages(pagesCopy);\n};\n\n/**\n * @description this function is used to update a component in the json\n */\nexport const onUpdateJson = ({ setPages, page, componentIndex, data, currentSection, subProp = null }) => {\n const currentSectionComponents = page?.sections?.[currentSection]?.components || [];\n\n setPages((prevState) => {\n const pagesCopy = [...prevState];\n const componentsCopy = [...currentSectionComponents];\n if (componentsCopy[componentIndex]?.data) {\n componentsCopy[componentIndex].data = data;\n }\n\n if (subProp) {\n const parentComponent = componentsCopy[componentIndex];\n const componentFinded = parentComponent?.components?.find((component) => component.type === subProp);\n const compIndex = parentComponent?.components?.findIndex((component) => component.type === subProp);\n\n if (componentFinded) {\n parentComponent.components[compIndex].data = data;\n }\n // componentFinded.data = data;\n // componentsCopy[componentIndex][subProp] = data;\n }\n\n if (pagesCopy[page.pageIndex].sections[currentSection]) {\n pagesCopy[page.pageIndex].sections[currentSection].components = componentsCopy;\n }\n return pagesCopy;\n });\n};\n","import { unarmedWithToken } from './axios';\n\nexport const getCubes = () => unarmedWithToken().get(`/cubes`);\nexport const fetchCube = (id, paginationParams) => \n unarmedWithToken().get(`/adhoc-reports/${id}`, { params: paginationParams });\n\nexport const saveCube = (id, data) =>\n unarmedWithToken().put(`/adhoc-reports/${id}`, data);\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useCallback, useState, useEffect, useRef } from 'react';\nimport { Box, Button, CircularProgress, Typography, makeStyles } from '@material-ui/core';\nimport { toast } from './Notification';\nimport PropTypes from 'prop-types';\n\nimport { CustomSwitch } from '../formEngine/components/WrapperComponent';\nimport { createCubeBucket, fetchCubeBuckets } from '../services/unarmed';\nimport { componentsName } from '../pages/CaseDetails/UpdateCaseComponents/CaseUpdateRenderer';\nimport { useDataReportLinkProvider } from '../provider/DataReportLinkProvider';\nimport { getCubes } from '../services/cube';\n\nconst normalizeCubeName = (name) => name.trim();\n\nconst useStyles = makeStyles(() => ({\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n searchBox: {\n padding: '8px',\n width: 300,\n backgroundColor: '#fff',\n border: '1px solid rgb(184 184 184)',\n borderRadius: 4,\n },\n button: {\n color: '#2e66fe',\n fontSize: 14,\n fontWeight: '600',\n },\n input: {\n color: '#575a66',\n border: 0,\n fontWeight: '600',\n width: '100%',\n borderBottom: '1px solid rgb(184 184 184)',\n height: 30,\n fontSize: 14,\n '&::placeholder': {\n color: 'rgb(136 141 160)',\n fontWeight: 600,\n },\n },\n colorText: {\n color: 'rgb(136 141 160)',\n fontWeight: 'bold',\n textAlign: 'center',\n fontSize: 14,\n },\n boxContent: {\n borderBottom: '1px solid rgb(184 184 184)',\n },\n resultText: {\n color: 'rgb(184 184 184)',\n fontWeight: '600',\n fontSize: 14,\n marginBottom: 8,\n cursor: 'pointer',\n },\n selectedText: {\n color: '#575a66',\n fontWeight: '600',\n fontSize: 14,\n },\n}));\n\n/**\n * DataReportLink component allows users to search and create data report links.\n *\n * @component\n * @param {Object} props - The component props\n * @param {string} props.componentId - The unique identifier for the component\n * @param {string} props.componentType - The type of the component\n * @param {Function} props.onSelect - Callback function invoked when a data report link is selected\n * @param {Object} props.defaultDataReportLink - The default data report link\n * @returns {JSX.Element}\n */\n\nconst DataReportLink = ({\n componentId,\n componentType,\n onSelect,\n onChangeChecked,\n defaultDataReportLink,\n isMultipleChoice,\n from,\n disabled = false,\n}) => {\n const [search, setSearch] = useState('');\n const [checked, setChecked] = useState(false);\n const [noDataFound, setNoDataFound] = useState(false);\n const [noDataFoundText, setNoDataFoundText] = useState('');\n const [showResults, setShowResults] = useState(false);\n const [selected, setSelected] = useState(undefined);\n const [addedDefault, setAddedDefault] = useState(false);\n const [loading, setLoading] = useState(false);\n const [selectedMultipleChoice, setSelectedMultipleChoice] = useState(undefined);\n\n const { componentsChanged, setComponentsChanged } = useDataReportLinkProvider();\n\n const [results, setResults] = useState([]);\n\n const classes = useStyles();\n const intervalRef = useRef();\n const doneTypingInterval = 750;\n\n const handleOnFetchCubeBucketsByType = useCallback(() => {\n if (checked) {\n setLoading(true);\n fetchCubeBuckets({\n type: componentType,\n ...(componentType === 'dropdown' ? { dropdownMultipleChoice: isMultipleChoice } : {}),\n from,\n })\n .then((res) => {\n setLoading(false);\n if (res.data.length > 0) {\n setResults(res.data);\n setShowResults(true);\n setNoDataFound(false);\n setNoDataFoundText('');\n } else {\n setNoDataFound(true);\n setShowResults(false);\n if (componentType === 'dropdown') {\n setNoDataFoundText(`${componentType} - ${isMultipleChoice ? 'multiple choice' : 'single choice'}`);\n } else {\n setNoDataFoundText(componentType);\n }\n }\n })\n .catch((error) => {\n toast.error(\n error?.response?.data?.error?.details?.[0]?.message || error?.response?.data?.message || error?.message\n );\n });\n }\n }, [checked, componentType, isMultipleChoice, from]);\n\n const handleOnFetchCubeBuckets = useCallback(() => {\n if (search !== '') {\n setLoading(true);\n fetchCubeBuckets({\n desc: normalizeCubeName(search),\n type: componentType,\n ...(componentType === 'dropdown' ? { dropdownMultipleChoice: isMultipleChoice } : {}),\n from,\n })\n .then((res) => {\n setLoading(false);\n if (res.data.length === 0) {\n setNoDataFound(true);\n setShowResults(false);\n setNoDataFoundText(search);\n } else {\n setResults(res.data);\n setShowResults(true);\n setNoDataFound(false);\n setNoDataFoundText('');\n }\n })\n .catch((error) => {\n toast.error(\n error?.response?.data?.error?.details?.[0]?.message || error?.response?.data?.message || error?.message\n );\n });\n }\n }, [search, isMultipleChoice, componentType, from]);\n\n const handleOnCreateCubeBucket = useCallback(() => {\n createCubeBucket({\n type: componentType,\n description: normalizeCubeName(search),\n ...(componentType === 'dropdown' ? { dropdownMultipleChoice: isMultipleChoice } : {}),\n from,\n })\n .then((res) => {\n toast.success(\n 'Cube bucket created successfully! Note: This new cube bucket can take a few minutes to appear on the data module'\n );\n setSearch('');\n setAddedDefault(true);\n onSelect(res.data?._id);\n setSelected(res.data);\n setShowResults(false);\n setNoDataFound(false);\n setNoDataFoundText('');\n getCubes();\n setComponentsChanged((components) => ({\n ...components,\n [componentId]: {\n dataReportLink: res.data,\n checked: true,\n },\n }));\n })\n .catch((error) => {\n toast.error(\n error?.response?.data?.error?.details?.[0]?.message || error?.response?.data?.message || error?.message\n );\n });\n }, [componentType, search, isMultipleChoice, from, componentId, onSelect, setComponentsChanged]);\n\n const handleOnClickBox = useCallback(\n (e) => {\n e.preventDefault();\n if (!disabled && selected) {\n setSelected(undefined);\n }\n },\n [selected, disabled]\n );\n\n const handleOnCancel = useCallback(() => {\n const dataReportLink =\n typeof defaultDataReportLink === 'string' || defaultDataReportLink === undefined\n ? componentsChanged[componentId]?.dataReportLink\n : defaultDataReportLink;\n if (!selected && dataReportLink) {\n setSelected(dataReportLink);\n }\n setSearch('');\n setShowResults(false);\n setNoDataFound(false);\n setNoDataFoundText('');\n }, [selected, defaultDataReportLink, componentId, componentsChanged]);\n\n useEffect(() => {\n if (defaultDataReportLink && !addedDefault) {\n const dataReportLink =\n typeof defaultDataReportLink === 'string'\n ? componentsChanged[componentId]?.dataReportLink\n : defaultDataReportLink;\n onSelect(dataReportLink?._id);\n setSelected(dataReportLink);\n setChecked(true);\n onChangeChecked(true);\n setAddedDefault(true);\n setComponentsChanged((components) => ({\n ...components,\n [componentId]: {\n dataReportLink,\n checked: true,\n },\n }));\n }\n }, [defaultDataReportLink, addedDefault, componentsChanged, componentId, onSelect, onChangeChecked]);\n\n useEffect(() => {\n if (componentsChanged[componentId]?.checked) {\n setChecked(true);\n onChangeChecked(true);\n }\n }, [componentsChanged, componentId, onChangeChecked]);\n\n useEffect(() => {\n handleOnFetchCubeBucketsByType();\n }, [checked, isMultipleChoice, handleOnFetchCubeBucketsByType]);\n\n useEffect(() => {\n if (\n componentType === 'dropdown' &&\n selectedMultipleChoice !== undefined &&\n isMultipleChoice !== selectedMultipleChoice\n ) {\n setSearch('');\n setShowResults(false);\n setNoDataFound(false);\n setNoDataFoundText('');\n onSelect(undefined);\n setSelected(undefined);\n setComponentsChanged((components) => ({\n ...components,\n [componentId]: {\n dataReportLink: undefined,\n checked,\n },\n }));\n } else {\n setSelectedMultipleChoice(isMultipleChoice);\n }\n }, [checked, selectedMultipleChoice, componentType, componentId, setComponentsChanged]);\n\n return (\n \n \n Data Report Link\n {\n if (disabled) return;\n const _checked = e.target.checked;\n if (!_checked && defaultDataReportLink) {\n onSelect(undefined);\n }\n setComponentsChanged((components) => ({\n ...components,\n [componentId]: {\n ...components[componentId],\n checked: _checked,\n },\n }));\n setChecked(_checked);\n onChangeChecked(_checked);\n }}\n />\n \n {checked && (\n \n {selected ? (\n <>\n \n {selected.description} {selected.type ? `- ${componentsName?.[selected?.type]}` : ''}\n \n \n ) : (\n <>\n {\n const { value } = e.target;\n const valueNormalized = value.replace(/^ +/, '');\n setSearch(valueNormalized.replace(/^\\d+/, ''));\n }}\n onKeyUp={() => {\n clearTimeout(intervalRef.current);\n intervalRef.current = setTimeout(() => {\n handleOnFetchCubeBuckets();\n }, doneTypingInterval);\n }}\n onKeyDown={() => {\n clearTimeout(intervalRef.current);\n }}\n />\n {loading && (\n \n \n \n )}\n {!loading && showResults && (\n \n {results.map((result, resultKey) => (\n {\n setSelectedMultipleChoice(isMultipleChoice);\n setAddedDefault(true);\n setSelected(result);\n setShowResults(false);\n setResults([]);\n setSearch('');\n onSelect(result?._id);\n setComponentsChanged((components) => ({\n ...components,\n [componentId]: {\n dataReportLink: result,\n checked: true,\n },\n }));\n }}\n >\n {result.description} {result.type ? `- ${componentsName?.[result?.type]}` : ''}\n \n ))}\n \n )}\n {!loading && noDataFound && (\n \n \n {componentType === 'dropdown' ? (\n <>\n No data with the component \"{noDataFoundText}\"
were found\n \n ) : (\n <>\n No data with the name \"{noDataFoundText}\"
were found\n \n )}\n
\n \n )}\n \n \n \n CREATE\n \n \n \n )}\n
\n )}\n \n );\n};\n\nDataReportLink.propTypes = {\n componentId: PropTypes.string.isRequired,\n componentType: PropTypes.string.isRequired,\n onSelect: PropTypes.func.isRequired,\n defaultDataReportLink: PropTypes.object,\n isMultipleChoice: PropTypes.bool,\n onChangeChecked: PropTypes.func,\n disabled: PropTypes.bool,\n};\n\nexport default DataReportLink;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport {\n Box,\n Checkbox,\n FormControlLabel,\n FormGroup,\n makeStyles,\n Typography,\n Radio,\n RadioGroup,\n Button,\n Modal,\n} from '@material-ui/core';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\n\nimport Input from '../../components/Input';\nimport SelectEngine from '../../components/Select';\nimport { CustomSwitch } from '../components/WrapperComponent';\nimport { handleOnChangeQuestion, rangeNumber100, rangeNumber1000 } from './utls';\nimport DataReportLink from '../../components/DataReportLink';\nimport Alert from '../../components/Alert';\n\nconst responseOptions = [\n { value: 'AT_LEAST', text: 'At least' },\n { value: 'EXACT', text: 'Exact' },\n { value: 'AT_MOST', text: 'At most' },\n];\nconst sizeOptions = [\n { value: 5, text: '5 MB' },\n { value: 50, text: '50 MB' },\n { value: 100, text: '100 MB' },\n { value: 250, text: '250 MB' },\n { value: 500, text: '500 MB' },\n];\n\nconst useStyles = makeStyles(() => ({\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n marginBottom: 10,\n },\n}));\n\n/**\n * @description question types that can be configured\n * ['description']\n * ['required]\n * ['response validation]\n * ['multiple choice']\n * ['max']\n * ['file type']\n * ['file size']\n */\n\n/**\n * @typedef {Object} SettingsProps\n * @property {string} componentId - ID of the component.\n * @property {string} componentType - Type of the component.\n * @property {Function} onSelectDataReportLink - Function to handle data report link selection.\n * @property {string} defaultDataReportLink - Default data report link.\n * @property {string[]} questions - Array of questions.\n * @property {boolean[]} checkQuestion - Array of boolean values indicating if a question is checked.\n * @property {Object} descriptionQuestion - Object containing description question value and onChange function.\n * @property {Object} requiredQuestion - Object containing required question value and onChange function.\n * @property {Function} setCheckQuestion - Function to set checkQuestion state.\n * @property {Object} responseValidation - Object containing response validation value and onChange function.\n * @property {Object} responseTypeValidation - Object containing response type validation value and onChange function.\n * @property {Object} maxCharacter - Object containing max character value, onChange function, and type.\n * @property {string} fileType - Array of FileType objects representing file types.\n * @property {Function} onChangeFileType - Function to handle file type change.\n * @property {Object} sizeSelect - Object containing size select value and onChange function.\n * @property {Function} saveOnTimeOut - Function to save on timeout.\n */\n\nexport default function Settings({\n visible = { value: '', onChange: () => {} },\n special = { value: false, onChange: () => {} },\n indexUniqueFieldId,\n multipleChoice,\n customFieldModule = false,\n componentIndex,\n uniqueFieldId = { value: '', onChange: () => {} },\n componentId,\n componentType,\n onSelectDataReportLink,\n defaultDataReportLink,\n questions = [],\n checkQuestion,\n descriptionQuestion,\n requiredQuestion,\n setCheckQuestion,\n responseValidation,\n responseTypeValidation,\n maxCharacter,\n maxCharacterType,\n fileType,\n onChangeFileType,\n sizeSelect,\n saveOnTimeOut,\n required = { value: false, onChange: () => {} },\n from = 'formtypes',\n question = { value: '' },\n allComponents = [],\n}) {\n const classes = useStyles();\n const [showAlert, setShowAlert] = useState(false);\n const [showConfirmModal, setShowConfirmModal] = useState(false);\n const [dataReportLinkChecked, setDataReportLinkChecked] = useState(false);\n const [dateFormatValue, setDateFormatValue] = useState('MM/DD/YYYY');\n const [currentIdentifierName, setCurrentIdentifierName] = useState(null);\n const [newIdentifierName, setNewIdentifierName] = useState(null);\n\n const handleChangeDateFormat = (event) => {\n saveOnTimeOut();\n setDateFormatValue(event.target.value);\n };\n const handleSwitchUniqueFieldId = (e) => {\n const currentUniqueFieldIdIndex = allComponents.findIndex(\n (component) => component?.data.uniqueFieldId\n );\n const currentUniqueFieldId = allComponents[currentUniqueFieldIdIndex];\n const newUniqueFieldId = allComponents[componentIndex];\n\n const ifCurrentNotExist = !currentUniqueFieldId;\n const isSameComponent = currentUniqueFieldIdIndex === componentIndex;\n const currentUniqueFieldComponent = currentUniqueFieldId?.data?.question === newUniqueFieldId?.data?.question;\n const currentUniqueFieldIsEnabled = !e.target.checked;\n\n if (ifCurrentNotExist || isSameComponent || currentUniqueFieldComponent || currentUniqueFieldIsEnabled) {\n // const newCheckQuestion\n uniqueFieldId.onChange(e);\n const requiredIndex = questions.indexOf('required');\n const newCheckQuestion = [...checkQuestion];\n if (requiredIndex !== -1) {\n newCheckQuestion[requiredIndex] = false;\n }\n required.onChange({ target: { checked: true } });\n setCheckQuestion(newCheckQuestion);\n saveOnTimeOut();\n return;\n };\n\n toast.error(`'${currentUniqueFieldId?.data.question}‘ is already set as the Unique Identifier. Disable it before selecting another one.`);\n }\n\n const renderQuestion = questions.map((question, index) => {\n if (question === 'description') {\n return (\n \n \n Description Question\n handleOnChangeQuestion(e, index, setCheckQuestion)}\n />\n \n {checkQuestion[index] && (\n {\n descriptionQuestion.onChange(e);\n saveOnTimeOut();\n }}\n />\n )}\n \n );\n }\n if (question === 'required') {\n return (\n \n \n Required Question Message\n handleOnChangeQuestion(e, index, setCheckQuestion)}\n />\n \n {checkQuestion[index] && (\n <>\n \n This error message will be displayed by default when this question is not answered.\n \n {\n requiredQuestion.onChange(e);\n saveOnTimeOut();\n }}\n style={{ width: 280 }}\n />\n \n )}\n \n );\n }\n if (question === 'checkboxQuestion') {\n return (\n \n \n Checkbox\n handleOnChangeQuestion(e, index, setCheckQuestion)}\n />\n \n \n );\n }\n if (question === 'response validation') {\n return (\n \n \n Response Validation\n handleOnChangeQuestion(e, index, setCheckQuestion)}\n />\n \n {checkQuestion[index] && (\n <>\n Number of options that the user must answer.\n \n {\n responseTypeValidation.onChange(e);\n saveOnTimeOut();\n }}\n value={responseTypeValidation.value}\n />\n {\n responseValidation.onChange(e);\n saveOnTimeOut();\n }}\n style={{ width: 60, marginLeft: 10 }}\n />\n \n \n )}\n \n );\n }\n if (question === 'multiple choice') {\n return (\n \n \n Multiple Choice\n {\n if (dataReportLinkChecked) {\n // Toast WARN\n toast.error('Please disable data report link before enable/disable multiple choice field');\n } else {\n handleOnChangeQuestion(e, index, setCheckQuestion);\n multipleChoice.onChange(e);\n saveOnTimeOut();\n }\n }}\n // onChange={(e) => handleOnChangeQuestion(e, index, setCheckQuestion)}\n />\n \n \n );\n }\n if (question === 'max') {\n return (\n \n \n Max Characters\n {\n const value = e?.target?.checked || false;\n handleOnChangeQuestion({ target: { checked: value }}, index, setCheckQuestion)\n saveOnTimeOut();\n }}\n />\n \n {checkQuestion[index] && (\n {\n if (e.target.value.length === 0) {\n maxCharacter.onChange({ target: { value: 0 }});\n saveOnTimeOut();\n }\n if (maxCharacterType === 'short' && rangeNumber100(e.target.value)) {\n maxCharacter.onChange(e);\n saveOnTimeOut();\n }\n if (maxCharacterType === 'long' && rangeNumber1000(e.target.value)) {\n maxCharacter.onChange(e);\n saveOnTimeOut();\n }\n }}\n style={{ width: 120 }}\n />\n )}\n \n );\n }\n if (question === 'multiple links') {\n return (\n \n \n Multiple Links\n {\n handleOnChangeQuestion(e, index, setCheckQuestion);\n saveOnTimeOut();\n }}\n />\n \n \n );\n }\n if (question === 'file') {\n return (\n \n \n \n File Types\n {\n handleOnChangeQuestion(e, index, setCheckQuestion);\n saveOnTimeOut();\n }}\n />\n \n {checkQuestion[index] && (\n \n \n {fileType.map((ft, idx) => (\n {\n onChangeFileType(e, idx);\n saveOnTimeOut();\n }}\n color=\"primary\"\n />\n }\n label={ft.text}\n labelPlacement=\"end\"\n />\n ))}\n \n \n )}\n \n \n \n File Size\n \n {\n sizeSelect.onChange(e);\n saveOnTimeOut();\n }}\n value={sizeSelect.value}\n />\n \n \n );\n }\n if (question === 'date validation') {\n return (\n \n \n Date Validation\n {\n handleOnChangeQuestion(e, index, setCheckQuestion);\n saveOnTimeOut();\n }}\n />\n \n {checkQuestion[index] && (\n \n \n {\n requiredQuestion.onChange(e);\n saveOnTimeOut();\n }}\n style={{ width: 280 }}\n />\n \n \n \n Format\n \n \n \n \n } label=\"MM/DD/YYYY\" />\n } label=\"DD/MM/YYYY\" />\n \n \n \n )}\n \n );\n }\n return 'Component not supported';\n });\n\n const renderUniqueFieldIdSwitch = () => {\n if (!special.value) {\n return (\n \n \n Unique Identifier\n handleSwitchUniqueFieldId(e)}\n disabled={\n (\n componentType === 'dropdown' &&\n multipleChoice?.value\n )\n }\n />\n \n \n );\n }\n return null;\n };\n\n const handleConfirmChangeIdentifier = () => {\n uniqueFieldId.onChange({ target: { checked: !uniqueFieldId.value }});\n const requiredIndex = questions.indexOf('required');\n const newCheckQuestion = [...checkQuestion];\n if (requiredIndex !== -1) {\n newCheckQuestion[requiredIndex] = false;\n }\n setCheckQuestion(newCheckQuestion);\n required.onChange({ target: { checked: true } });\n sessionStorage.setItem('itemToUnmark', currentIdentifierName?.componentIndex);\n saveOnTimeOut();\n setShowConfirmModal(false);\n };\n\n const handleSwitchVisible = (e) => {\n visible.onChange(e);\n };\n\n const multipleChoiceQuestionIndex = questions.indexOf('multiple choice');\n const multipleChoiceValue = multipleChoiceQuestionIndex !== -1 ? checkQuestion[multipleChoiceQuestionIndex] : false;\n\n useEffect(() => {\n if (multipleChoice && multipleChoice.value && uniqueFieldId.value) {\n uniqueFieldId.onChange({ target: { checked: false } });\n saveOnTimeOut();\n }\n }, [multipleChoice?.value]);\n\n return (\n <>\n {renderQuestion}\n {componentType && onSelectDataReportLink && (\n \n )}\n {customFieldModule &&\n componentType !== 'multipleChoices' &&\n componentType !== 'yesNo'\n && renderUniqueFieldIdSwitch()\n }\n {customFieldModule && (\n \n Visible\n handleSwitchVisible(e)} />\n \n )}\n {showAlert && (\n \n \n There can only be one unique identifier. If you want to change this, you must deselect the selected one.\n \n \n )}\n setShowConfirmModal(false)}\n aria-labelledby=\"confirm-identifier-modal\"\n >\n \n \n Change the Unique Identifier\n \n \n Do you want to change the unique identifier from{' '}\n {currentIdentifierName?.component?.data?.question} to{' '}\n {newIdentifierName?.component?.data?.question}?\n \n \n \n \n \n \n \n \n );\n}\n\nSettings.propTypes = {\n componentId: PropTypes.string.isRequired,\n componentType: PropTypes.string.isRequired,\n onSelectDataReportLink: PropTypes.func,\n defaultDataReportLink: PropTypes.string,\n questions: PropTypes.arrayOf(PropTypes.string),\n checkQuestion: PropTypes.arrayOf(PropTypes.bool),\n descriptionQuestion: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n }),\n requiredQuestion: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n }),\n setCheckQuestion: PropTypes.func.isRequired,\n responseValidation: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n }),\n responseTypeValidation: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n }),\n maxCharacter: PropTypes.shape({\n setValue: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n type: PropTypes.string.isRequired,\n }),\n maxCharacterType: PropTypes.string.isRequired,\n fileType: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n })\n ),\n onChangeFileType: PropTypes.func.isRequired,\n sizeSelect: PropTypes.shape({\n value: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n }),\n saveOnTimeOut: PropTypes.func.isRequired,\n question: PropTypes.shape({\n value: PropTypes.string.isRequired,\n }),\n allComponents: PropTypes.arrayOf(PropTypes.object),\n};\n\nexport const CustomCheckbox = styled(Checkbox)`\n &.MuiCheckbox-colorPrimary.Mui-checked {\n color: #2e66fe;\n }\n`;\n","import React from 'react';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function PreviewLabel({ question, required, qNumber }) {\n const classes = useStyles();\n return (\n \n Q{qNumber}\n \n {question}\n {required && *}\n \n );\n}\n","import { Box, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\n\nexport default function HideAnswer({\n onClick,\n marginLeft = '40px',\n marginTop = '7px',\n message = 'Hide Answer',\n children,\n}) {\n const [show, setShow] = useState(true);\n return (\n <>\n setShow(!show)}\n >\n \n \n {message}\n \n \n {show && children}\n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, FormControl, InputLabel, makeStyles, Select, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n}));\n\nexport const mapOptionsToState = (options) => {\n if (options) {\n return options.map((option) => {\n if (typeof option === 'string') {\n return {\n value: option,\n };\n }\n\n return { value: option.label };\n });\n }\n\n return [{ value: '' }, { value: '' }, { value: '' }];\n};\n\nexport default function Dropdown({\n indexUniqueFieldId,\n customFieldModule = false,\n type,\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n shouldRenderSettings = true,\n allowDnD = true,\n includeRequired,\n isStaticComponent = false,\n visible,\n refActionModal,\n setModal,\n from = 'formtypes',\n allComponents = [],\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage, !!data?.multipleChoice]);\n const visibleSpecial = useInput((data?.visible === undefined || data?.visible === null || data?.visible === true) ? true : false, false, false, true);\n const required = useInput(!!data?.required, false, false, true);\n const multipleChoice = useInput(!!data?.multipleChoice, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n let dataJson = {};\n\n if (isStaticComponent) {\n dataJson = {\n [question.value.toLowerCase()]: {\n visible: visible.value,\n values: answers.map((answer) => answer.value),\n },\n };\n } else {\n dataJson = {\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n question: question.value,\n required: required.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n multipleChoice: multipleChoice.value,\n options: answers.map((answer) => answer.value),\n };\n }\n\n onUpdateJson(dataJson);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const item = (answer, index) => (\n \n \n A{index + 1}\n \n\n {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n style={{ textTransform: 'capitalize' }}\n />\n {\n onRemoveDnDItem(answers, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n \n );\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => {\n if (allowDnD) {\n return (\n \n {item(answer, index)}\n \n );\n }\n return item(answer, index);\n });\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 100);\n };\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n questions={['description', 'required', 'multiple choice']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n Select an Option\n \n \n {answers.map((answer, index) => (\n \n \n {answer.value}\n \n ))}\n \n \n \n );\n\n return (\n \n \n \n Dropdown\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n disabled={isStaticComponent}\n />\n \n \n {/* */}\n \n {/* */}\n \n onAddDnDItem(answers, setAnswers, 'radio', '')}\n marginLeft={allowDnD ? '77px' : '18px'}\n />\n \n );\n}\n","import React, { useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport { handleChangeCheckBox } from '../utils/utls';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n },\n\n dropzoneText: {\n display: 'block',\n fontSize: 12,\n marginTop: 10,\n },\n}));\n\nconst fileTypesF = [\n { value: false, text: 'JPG' },\n { value: false, text: 'PNG' },\n { value: false, text: 'MP4' },\n { value: false, text: 'MOV' },\n { value: false, text: 'PDF' },\n { value: false, text: 'DOC' },\n];\n\nexport default function File({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n data?.fileTypes?.length > 0,\n ]);\n const sizeSelect = useInput(data?.maxFileSize || '');\n\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const [fileType, setFileType] = useState(\n fileTypesF.map((fl) => {\n if (data?.fileTypes?.includes(fl.text)) {\n return { ...fl, value: true };\n }\n\n return fl;\n })\n );\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(checkQuestion[2]\n ? {\n fileTypes: fileType.filter((ft) => ft.value).map((filetype) => filetype.text),\n }\n : {}),\n ...(sizeSelect.value ? { maxFileSize: +sizeSelect.value } : {}),\n required: required.value,\n };\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n\n const renderSettings = () => (\n {\n handleChangeCheckBox(e, index, 'value', fileType, setFileType);\n saveOnTimeOut();\n }}\n sizeSelect={sizeSelect}\n />\n );\n\n const renderPreview = () => (\n \n \n\n \n \n \n \n File upload\n \n \n \n \n );\n\n return (\n \n \n \n File upload\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n \n \n Drag files here or browser\n \n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, makeStyles, TextField, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport LongTextIcon from '@material-ui/icons/Notes';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function LongText({\n indexUniqueFieldId,\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n includeRequired,\n customFieldModule = false,\n from = 'formtypes',\n allComponents = [],\n}) {\n const classes = useStyles();\n const maxCharacters = useInput(data?.maxCharacters || '');\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n !!data?.maxCharacters,\n ]);\n const required = useInput(!!data?.required, false, false, true);\n const visibleSpecial = useInput((data?.visible === undefined || data?.visible === null || data?.visible === true) ? true : false, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(checkQuestion[2] ? { maxCharacters: +maxCharacters.value } : { maxCharacters: 0 }),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n question: question.value,\n required: required.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n };\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 100);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n saveOnTimeOut={saveOnTimeOut}\n questions={['description', 'required', 'max']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n maxCharacter={maxCharacters}\n maxCharacterType=\"long\"\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n \n \n \n );\n\n return (\n \n \n \n Long text\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, Checkbox, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\n\nimport HideAnswer from '../../components/HideAnswer';\nimport { mapOptionsToState } from './Dropdown';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n}));\n\nexport default function MultipleChoice({\n indexUniqueFieldId,\n type,\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n includeRequired,\n onChangeDataInput,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n from = 'formtypes',\n customFieldModule = false,\n allComponents = [],\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n const responseValidation = useInput(data?.responseValidationNumber || '');\n const selectTypeResponseValidation = useInput(data?.responseValidationOption || '');\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n !!data?.responseValidation,\n ]);\n const visibleSpecial = useInput((data?.visible === undefined || data?.visible === null || data?.visible === true) ? true : false, false, false, true);\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(checkQuestion[2] ? { responseValidationOption: selectTypeResponseValidation.value } : {}),\n ...(checkQuestion[2] ? { responseValidationNumber: +responseValidation.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n question: question.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n responseValidation: checkQuestion[2],\n required: required.value,\n options: answers.map((answer) => answer.value),\n };\n\n onUpdateJson(dataJson);\n };\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => (\n \n \n A{index + 1}\n \n {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n {\n onRemoveDnDItem(answers, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n \n \n ));\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n saveOnTimeOut={saveOnTimeOut}\n questions={['description', 'required', 'response validation']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n responseValidation={responseValidation}\n responseTypeValidation={selectTypeResponseValidation}\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n {answers.map((answer, index) => (\n \n \n {answer.value}\n \n ))}\n \n \n \n );\n\n return (\n \n \n \n Multiple Choice\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n {/* */}\n \n {/* */}\n onAddDnDItem(answers, setAnswers, 'radio', '')}\n />\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, makeStyles, TextField, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport ShortTextIcon from '@material-ui/icons/ShortText';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function ShortText({\n indexUniqueFieldId,\n customFieldModule = false,\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n allowDnd,\n isStaticComponent = false,\n visible,\n refActionModal,\n includeRequired,\n setModal,\n from = 'formtypes',\n allComponents = [],\n}) {\n const classes = useStyles();\n const maxCharacters = useInput(data?.maxCharacters || '');\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n !!data?.maxCharacters,\n ]);\n\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const visibleSpecial = useInput((data?.visible === undefined || data?.visible === null || data?.visible === true) ? true : false, false, false, true);\n const special = useInput(data?.special || false, false, false, true);\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n let dataJson = {};\n\n if (isStaticComponent) {\n dataJson = {\n [question.value.toLowerCase()]: {\n visible: visible.value,\n },\n };\n } else {\n dataJson = {\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(checkQuestion[2] ? { maxCharacters: +maxCharacters.value } : { maxCharacters: 0 }),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n question: question.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n required: required.value,\n };\n }\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 100);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n saveOnTimeOut={saveOnTimeOut}\n questions={['description', 'required', 'max']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n maxCharacter={maxCharacters}\n maxCharacterType=\"short\"\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n \n \n \n );\n return (\n \n \n \n Short text\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport Radio from '@material-ui/core/Radio';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\nimport { mapOptionsToState } from './Dropdown';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n}));\n\nexport default function SingleChoice({\n indexUniqueFieldId,\n customFieldModule = false,\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n includeRequired,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n from = 'formtypes',\n allComponents,\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n const visibleSpecial = useInput((data?.visible === undefined || data?.visible === null || data?.visible === true) ? true : false, false, false, true);\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const [loading, setLoading] = React.useState(false);\n\n const required = useInput(!!data?.required, false, false, true);\n\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const handleSaveComponent = () => {\n const dataJson = {\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n question: question.value,\n required: required.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n options: answers.map((answer) => answer.value),\n };\n\n onUpdateJson(dataJson);\n };\n\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 100);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => (\n \n \n A{index + 1}\n \n {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n {\n onRemoveDnDItem(answer, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n \n \n ));\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n saveOnTimeOut={saveOnTimeOut}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n {answers.map((answer, index) => (\n \n \n {answer.value}\n \n ))}\n \n \n \n );\n\n return (\n \n \n \n Single Choice\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n {/* */}\n \n {/* */}\n onAddDnDItem(answers, setAnswers, 'radio', '')}\n />\n \n \n );\n}\n","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nconst SvgRuleBlack24Dp = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n enableBackground: \"new 0 0 24 24\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#000000\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"none\",\n height: 24,\n width: 24\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.54,11L13,7.46l1.41-1.41l2.12,2.12l4.24-4.24l1.41,1.41L16.54,11z M11,7H2v2h9V7z M21,13.41L19.59,12L17,14.59 L14.41,12L13,13.41L15.59,16L13,18.59L14.41,20L17,17.41L19.59,20L21,18.59L18.41,16L21,13.41z M11,15H2v2h9V15z\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgRuleBlack24Dp, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/rule_black_24dp.ad2bd8f0.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react';\nimport { Box, makeStyles, Typography, Radio, RadioGroup, FormControlLabel } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport { ReactComponent as YesNoIcon } from '../../assets/icons/rule_black_24dp.svg';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function YesNo({\n indexUniqueFieldId,\n customFieldModule = false,\n type,\n questionBankComponent,\n path,\n id,\n componentId,\n data,\n componentIndex,\n onUpdateJson,\n onDeleteComponent,\n duplicateComponent,\n refActionModal,\n setModal,\n includeRequired,\n from = 'formtypes',\n allComponents = [],\n}) {\n const classes = useStyles();\n const visibleSpecial = useInput((data?.visible === undefined || data?.visible === null || data?.visible === true) ? true : false, false, false, true);\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage, !!data?.checkbox]);\n const descriptionQuestion = useInput(data?.description || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const required = useInput(!!data?.required, false, false, true);\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n question: question.value,\n required: required.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n checkbox: checkQuestion[2],\n };\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n questions={['description', 'required', 'checkboxQuestion']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n // const inputQuestion = useInput('');\n const [yesNoValue, setYesNoValue] = React.useState('');\n const handleChangeYesNo = (event) => {\n setYesNoValue(event.target.value);\n };\n\n const [showAnswerBool, setShowAnswerBool] = React.useState(true);\n const handleShowAnswerBool = (state) => {\n setShowAnswerBool((state) => !state);\n // console.log(hideShowMessage)\n };\n\n const renderPreview = () => (\n \n \n \n \n {showAnswerBool && (\n {\n handleChangeYesNo(e);\n saveOnTimeOut();\n }}\n >\n } label=\"Yes\" disabled />\n } label=\"No\" disabled />\n \n )}\n \n \n );\n\n return (\n \n \n \n Yes/No\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","import React, { useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport LinkIcon from '@material-ui/icons/Link';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function Url({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n indexUniqueFieldId,\n customFieldModule = false,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage, !!data?.multiple]);\n\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n required: required.value,\n multiple: checkQuestion[2],\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n };\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n questions={['description', 'required', 'multiple links']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n required={required}\n from={from}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n \n \n URL\n \n \n \n \n \n );\n\n return (\n \n \n \n URL\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect } from 'react';\nimport TitleIcon from '@material-ui/icons/Title';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport HideAnswer from '../../components/HideAnswer';\nimport WrapperComponent from './WrapperComponent';\nimport PreviewLabel from '../utils/Label';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n borderRadius: 5,\n border: '1px solid #2E66FE33',\n },\n header: {\n background: '#fff',\n borderRadius: '5px 5px 0 0',\n borderBottom: '1px solid #2E66FE1A',\n },\n body: {\n background: '#F9FAFD80',\n borderRadius: 5,\n },\n button: {\n background: '#1F63FF',\n textTransform: 'capitalize',\n cursor: 'pointer',\n minWidth: 36,\n boxShadow: 'unset',\n color: '#fff',\n padding: '6px 16px',\n '&:hover': {\n background: '#1F63FF',\n boxShadow: 'unset',\n },\n },\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function Title({\n indexUniqueFieldId,\n customFieldModule = false,\n onDeleteComponent,\n duplicateComponent,\n onUpdateJson,\n id,\n path,\n data,\n componentIndex,\n refActionModal,\n setModal,\n}) {\n const classes = useStyles();\n\n const inputTitle = useInput(data?.text || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const required = useInput(false, false, false, true);\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n text: inputTitle.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n };\n\n onUpdateJson(dataJson);\n };\n\n const renderPreview = () => (\n \n \n \n \n \n \n Title\n \n \n \n \n );\n\n return (\n {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n }}\n renderPreview={renderPreview}\n onDeleteComponent={onDeleteComponent}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n id={id}\n loading={loading}\n path={path}\n handleSaveComponent={handleSaveComponent}\n includeRequired={false}\n dataSaved={data?.text}\n refActionModal={refActionModal}\n setModal={setModal}\n required={required}\n >\n \n \n Title\n \n \n Q{componentIndex + 1}\n \n {\n inputTitle.onChange(e);\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n }}\n />\n \n \n );\n}\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport TitleIcon from '@material-ui/icons/Title';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport HideAnswer from '../../components/HideAnswer';\nimport WrapperComponent from './WrapperComponent';\nimport PreviewLabel from '../utils/Label';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n borderRadius: 5,\n border: '1px solid #2E66FE33',\n },\n header: {\n background: '#fff',\n borderRadius: '5px 5px 0 0',\n borderBottom: '1px solid #2E66FE1A',\n },\n body: {\n background: '#F9FAFD80',\n borderRadius: 5,\n },\n button: {\n background: '#1F63FF',\n textTransform: 'capitalize',\n cursor: 'pointer',\n minWidth: 36,\n boxShadow: 'unset',\n color: '#fff',\n padding: '6px 16px',\n '&:hover': {\n background: '#1F63FF',\n boxShadow: 'unset',\n },\n },\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function SubTitle({\n indexUniqueFieldId,\n customFieldModule = false,\n onDeleteComponent,\n duplicateComponent,\n onUpdateJson,\n id,\n path,\n componentIndex,\n data,\n refActionModal,\n setModal,\n}) {\n const classes = useStyles();\n const [loading, setLoading] = React.useState(false);\n const inputTitle = useInput(data?.text || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const required = useInput(false, false, false, true);\n\n const handleSaveComponent = () => {\n const dataJson = {\n text: inputTitle.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n };\n\n onUpdateJson(dataJson);\n };\n\n const renderPreview = () => (\n \n \n \n \n \n \n Sub Title\n \n \n \n \n );\n\n return (\n {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n }}\n renderPreview={renderPreview}\n onDeleteComponent={onDeleteComponent}\n duplicateComponent={duplicateComponent}\n componentIndex={componentIndex}\n id={id}\n path={path}\n loading={loading}\n includeRequired={false}\n dataSaved={data?.text}\n refActionModal={refActionModal}\n setModal={setModal}\n required={required}\n >\n \n \n Sub Title\n \n \n Q{componentIndex + 1}\n \n {\n inputTitle.onChange(e);\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n }}\n />\n \n \n );\n}\n","import React, { Fragment } from 'react';\nimport styled from 'styled-components';\n\nexport default function OutLineTable({\n columns = [],\n rows = [],\n renderRows,\n withTr = true,\n}) {\n return (\n \n \n {columns.map((column, index) => (\n \n ))}\n \n {withTr\n ? rows.map((row, index) => (\n {renderRows(row, index)}\n ))\n : rows.map((row, index) => (\n {renderRows(row, index)}\n ))}\n
\n {column.name}\n
\n );\n}\n\nconst Table = styled.table`\n border-collapse: separate;\n border-spacing: 0 10px;\n width: 100%;\n`;\n\nconst Th = styled.th`\n text-align: left;\n\n fontsize: 14px;\n color: #000000de;\n fontweight: 500;\n`;\n\nconst TrD = styled.tr`\n margin-bottom: 15px;\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Box, Grid, makeStyles, Radio, TextField, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport PersonIcon from '@material-ui/icons/Person';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport { handleChangeCheckBox, onChangeDnDValue } from '../utils/utls';\n\nimport useInput from '../../hooks/useInput';\nimport Settings, { CustomCheckbox } from '../utils/Settings';\nimport OutLineTable from '../../components/OutLineTable';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n fieldLabel: {\n fontSize: 14,\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n type: {\n width: 131,\n },\n labelContainer: {\n width: 425,\n marginLeft: 20,\n },\n\n td: {},\n}));\nconst columns = [\n { name: 'Type', styles: {} },\n { name: 'Label', styles: {} },\n { name: 'Visible', styles: { textAlign: 'right' } },\n { name: 'Required', styles: { textAlign: 'right' } },\n];\n\nexport const onChangeValues = (e, values, setValue, index, prop = 'value') => {\n const { value } = e.target;\n const valuesCopy = Array.from(values);\n valuesCopy[index][prop] = value;\n\n setValue(valuesCopy);\n};\n\nexport default function ContactInfo({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n const [rows, setRows] = useState([\n {\n type: 'Anonymously',\n visible: true,\n required: false,\n },\n { type: 'First Name', value: 'First Name', visible: true, required: false },\n { type: 'Last Name', value: 'Last Name', visible: true, required: false },\n {\n type: 'Email Address',\n value: 'Email Address',\n visible: true,\n required: false,\n },\n {\n type: 'Home/Cell Telephone',\n value: 'Home/Cell Telephone',\n visible: true,\n required: false,\n },\n {\n type: 'Work Telephone',\n value: 'Work Telephone',\n visible: true,\n required: false,\n },\n ]);\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description]);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n useEffect(() => {\n if (data?.hasOwnProperty('email')) {\n const preFetchData = [\n {\n type: 'Anonymously',\n\n visible: data?.showFileAnonymously?.visible,\n required: data?.showFileAnonymously?.required,\n },\n {\n type: 'First Name',\n value: data?.firstName?.text,\n visible: data?.firstName?.visible,\n required: data?.firstName?.required,\n },\n {\n type: 'Last Name',\n value: data?.lastName?.text,\n visible: data?.lastName?.visible,\n required: data?.lastName?.required,\n },\n {\n type: 'Email Address',\n value: data?.email?.text,\n visible: data?.email?.visible,\n required: data?.email?.required,\n },\n {\n type: 'Home/Cell Telephone',\n value: data?.phone?.text,\n visible: data?.phone?.visible,\n required: data?.phone?.required,\n },\n {\n type: 'Work Telephone',\n value: data?.workTelephone?.text,\n visible: data?.workTelephone?.visible,\n required: data?.workTelephone?.required,\n },\n ];\n setRows(preFetchData);\n }\n }, [data]);\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n showFileAnonymously: {\n visible: rows[0].visible,\n required: rows[0].required,\n },\n firstName: {\n text: rows[1].value,\n visible: rows[1].visible,\n required: rows[1].required,\n },\n\n lastName: {\n text: rows[2].value,\n visible: rows[2].visible,\n required: rows[2].required,\n },\n email: {\n text: rows[3].value,\n visible: rows[3].visible,\n required: rows[3].required,\n },\n phone: {\n text: rows[4].value,\n visible: rows[4].visible,\n required: rows[4].required,\n },\n workTelephone: {\n text: rows[5].value,\n visible: rows[5].visible,\n required: rows[5].required,\n },\n };\n\n onUpdateJson(dataJson);\n };\n\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n questions={['description']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n {rows.map((row, index) => {\n if (row.visible) {\n if (row.type === 'Anonymously') {\n return (\n \n \n \n Yes\n \n \n \n No\n \n \n );\n }\n return (\n \n \n {row.value} {row.required && *}{' '}\n \n }\n variant=\"standard\"\n disabled\n style={{ width: '100%' }}\n placeholder={row.type}\n />\n \n );\n }\n })}\n \n \n \n \n );\n\n const renderRows = (row, index) => (\n <>\n \n \n {row.type}\n {row.type !== 'Anonymously' && }\n \n \n \n \n {row.type !== 'Anonymously' && (\n {\n onChangeValues(e, rows, setRows, index);\n // saveOnTimeOut();\n }}\n />\n )}\n \n \n \n \n {\n handleChangeCheckBox(e, index, 'visible', rows, setRows);\n saveOnTimeOut();\n }}\n />\n \n \n \n \n {\n handleChangeCheckBox(e, index, 'required', rows, setRows);\n saveOnTimeOut();\n }}\n />\n \n \n \n );\n\n return (\n \n \n \n Contact Information\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n \n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, Grid, makeStyles, Radio, TextField, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport LocationOnIcon from '@material-ui/icons/LocationOn';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport { handleChangeCheckBox, onChangeDnDValue } from '../utils/utls';\n\nimport useInput from '../../hooks/useInput';\nimport Settings, { CustomCheckbox } from '../utils/Settings';\nimport OutLineTable from '../../components/OutLineTable';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n fieldLabel: {\n fontSize: 14,\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n type: {\n width: 131,\n },\n labelContainer: {\n width: 425,\n marginLeft: 20,\n },\n\n td: {},\n}));\nconst columns = [\n { name: 'Type', styles: {} },\n { name: 'Label', styles: {} },\n { name: 'Visible', styles: { textAlign: 'right' } },\n { name: 'Required', styles: { textAlign: 'right' } },\n];\nexport default function ContactInfo({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n const [rows, setRows] = useState([\n {\n type: 'Street Name',\n value: 'Street Name',\n visible: true,\n required: false,\n },\n { type: 'Apt/Unit #', value: 'Apt/Unit #', visible: true, required: false },\n {\n type: 'State',\n value: 'State',\n visible: true,\n required: false,\n },\n {\n type: 'City',\n value: 'City',\n visible: true,\n required: false,\n },\n {\n type: 'Zip Code',\n value: 'Zip Code',\n visible: true,\n required: false,\n },\n ]);\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description]);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n useEffect(() => {\n if (data?.hasOwnProperty('street')) {\n const preFetchData = [\n {\n type: 'Street Name',\n value: data?.street?.text,\n visible: data?.street?.visible,\n required: data?.street?.required,\n },\n {\n type: 'Apt/Unit #',\n value: data?.aptUnit?.text,\n visible: data?.aptUnit?.visible,\n required: data?.aptUnit?.required,\n },\n {\n type: 'State',\n value: data?.state?.text,\n visible: data?.state?.visible,\n required: data?.state?.required,\n },\n {\n type: 'City',\n value: data?.city?.text,\n visible: data?.city?.visible,\n required: data?.city?.required,\n },\n {\n type: 'Zip Code',\n value: data?.zipCode?.text,\n visible: data?.zipCode?.visible,\n required: data?.zipCode?.required,\n },\n ];\n setRows(preFetchData);\n }\n }, [data]);\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n street: {\n text: rows[0].value,\n visible: rows[0].visible,\n required: rows[0].required,\n },\n aptUnit: {\n text: rows[1].value,\n visible: rows[1].visible,\n required: rows[1].required,\n },\n\n state: {\n text: rows[2].value,\n visible: rows[2].visible,\n required: rows[2].required,\n },\n city: {\n text: rows[3].value,\n visible: rows[3].visible,\n required: rows[3].required,\n },\n\n zipCode: {\n text: rows[4].value,\n visible: rows[4].visible,\n required: rows[4].required,\n },\n };\n\n onUpdateJson(dataJson);\n };\n\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n questions={['description']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n {rows.map((row, index) => {\n if (row.visible) {\n return (\n \n \n {row.value} {row.required && *}{' '}\n \n }\n variant=\"standard\"\n disabled\n style={{ width: '100%' }}\n placeholder={row.type}\n />\n \n );\n }\n })}\n \n \n \n \n );\n\n const renderRows = (row, index) => (\n <>\n \n \n {row.type}\n {row.type !== 'Anonymously' && }\n \n \n \n \n {row.type !== 'Anonymously' && (\n {\n onChangeDnDValue(e, setRows, index);\n // saveOnTimeOut();\n }}\n />\n )}\n \n \n \n \n {\n handleChangeCheckBox(e, index, 'visible', rows, setRows);\n saveOnTimeOut();\n }}\n />\n \n \n \n \n {\n handleChangeCheckBox(e, index, 'required', rows, setRows);\n saveOnTimeOut();\n }}\n />\n \n \n \n );\n\n return (\n \n \n \n Address Information\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n \n \n \n );\n}\n","import React, { useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n labelAnswer: {\n fontSize: 16,\n color: '#6D7385',\n fontWeight: '500',\n paddingLeft: '10px',\n },\n}));\n\nexport default function Hour({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n onChangeDataInput,\n duplicateComponent,\n refActionModal,\n setModal,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n const question = useInput(data?.question || '');\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const [loading, setLoading] = React.useState(false);\n\n const [hideShowMessage, setHideShowMessage] = React.useState('Hide Answer');\n\n const [showAnswerBool, setShowAnswerBool] = React.useState(true);\n const handleShowAnswerBool = (state) => {\n setShowAnswerBool((state) => !state);\n };\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n required: required.value,\n };\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n saveOnTimeOut={saveOnTimeOut}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n from={from}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n {showAnswerBool && (\n \n \n Hour\n \n )}\n \n \n );\n\n return (\n \n \n \n Hour\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nconst SvgTodayBlack24Dp = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#000000\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"none\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgTodayBlack24Dp, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/today_black_24dp.e4ca587e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport { ReactComponent as CalendarIcon } from '../../assets/icons/today_black_24dp.svg';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n labelAnswer: {\n fontSize: 16,\n color: '#6D7385',\n fontWeight: '500',\n paddingLeft: '10px',\n },\n}));\n\nexport default function Date({\n indexUniqueFieldId,\n customFieldModule = false,\n questionBankComponent,\n type,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n from = 'formtypes',\n allComponents = [],\n}) {\n const classes = useStyles();\n\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n // false,\n ]);\n const visibleSpecial = useInput(\n data?.visible === undefined || data?.visible === null || data?.visible === true ? true : false,\n false,\n false,\n true\n );\n const question = useInput(data?.question || '');\n const required = useInput(!!data?.required, false, false, true);\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n question: question.value,\n required: required.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n };\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 100);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n const [showAnswerBool, setShowAnswerBool] = React.useState(true);\n const handleShowAnswerBool = (state) => {\n setShowAnswerBool((state) => !state);\n // console.log(hideShowMessage)\n };\n\n const renderPreview = () => (\n \n \n \n \n {showAnswerBool && (\n \n {/* */}\n MM/DD/YYYY\n \n )}\n \n \n );\n\n return (\n \n \n \n Date\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","import { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport PhoneInput from 'react-phone-input-2';\nimport 'react-phone-input-2/lib/material.css';\n\nconst InputPhone = ({\n value,\n onChange,\n label = 'Phone Number',\n error,\n showDropdown = false,\n disabled,\n country,\n}) => {\n return (\n \n {label && (\n \n {label}\n \n )}\n onChange(phone)}\n inputStyle={{\n padding: '4px 14px 8.5px 5px',\n border: 0,\n borderRadius: 0,\n outline: 0,\n borderBottom: '1px solid rgba(0, 0, 0, 0.42)',\n width: '100%',\n fontSize: '1rem',\n background: 'transparent',\n }}\n buttonStyle={{ display: showDropdown ? 'block' : 'none' }}\n />\n {error && (\n \n This field is required\n \n )}\n \n );\n};\n\nexport default InputPhone;\n","import React, { useEffect, useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport PhoneIcon from '@material-ui/icons/Phone';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport InputPhone from '../../components/PhoneInput';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function Phone({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n indexUniqueFieldId,\n customFieldModule = false,\n from = \"formtypes\",\n allComponents = [],\n}) {\n const classes = useStyles();\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n const visibleSpecial = useInput((data?.visible === undefined || data?.visible === null || data?.visible === true) ? true : false, false, false, true);\n\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n ...(customFieldModule ? { visible: visibleSpecial.value } : {}),\n required: required.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n };\n\n onUpdateJson(dataJson);\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 100);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n saveOnTimeOut={saveOnTimeOut}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n required={required}\n from={from}\n question={question}\n allComponents={allComponents}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n \n \n \n );\n\n return (\n \n \n \n Phone\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, makeStyles, TextField, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport EmailIcon from '@material-ui/icons/Email';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function Email({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n indexUniqueFieldId,\n customFieldModule = false,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const uniqueFieldId = useInput(data?.uniqueFieldId, false, false, true);\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n question: question.value,\n required: required.value,\n ...(customFieldModule ? { uniqueFieldId: uniqueFieldId.value } : {}),\n };\n\n onUpdateJson(dataJson);\n };\n\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 100);\n };\n\n useEffect(() => {\n const itemToUnmark = sessionStorage.getItem('itemToUnmark') || null;\n if (itemToUnmark !== null && `${componentIndex}` === itemToUnmark) {\n uniqueFieldId.onChange({ target: { checked: false }});\n sessionStorage.setItem('itemToUnmark', null);\n saveOnTimeOut();\n }\n });\n\n const renderSettings = () => (\n onUpdateJson({ ...data, dataReportLink })}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n required={required}\n from={from}\n />\n );\n\n const renderPreview = () => (\n \n \n \n \n \n \n \n \n );\n\n return (\n \n \n \n Email\n \n \n Q{componentIndex + 1}\n \n {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n \n \n );\n}\n","import React from 'react';\nimport Dropdown from '../../formEngine/components/Dropdown';\nimport File from '../../formEngine/components/FIle';\nimport LongText from '../../formEngine/components/LongText';\nimport MultipleChoice from '../../formEngine/components/MultipleChoice';\nimport ShortText from '../../formEngine/components/ShortText';\nimport SingleChoice from '../../formEngine/components/SingleChoice';\nimport YesNo from '../../formEngine/components/YesNo';\nimport URL from '../../formEngine/components/URL';\nimport Title from '../../formEngine/components/Title';\nimport Subtitle from '../../formEngine/components/Subtitle';\nimport ContactInfo from '../../formEngine/components/ContactInfo';\nimport AddressInformation from '../../formEngine/components/AddressInformation';\nimport Hour from '../../formEngine/components/Hour';\nimport Date from '../../formEngine/components/Date';\nimport Phone from '../../formEngine/components/Phone';\nimport Email from '../../formEngine/components/Email';\n\nexport default function FormEngine() {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n <Subtitle />\n <YesNo />\n <Date />\n <Hour />\n <URL />\n <AddressInformation />\n </>\n );\n}\n","import {\n FormControl,\n makeStyles,\n TextField,\n Button,\n Box,\n CircularProgress,\n Typography,\n Grid,\n InputLabel,\n Select,\n} from '@material-ui/core';\n\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\nimport useInput from '../../hooks/useInput';\nimport { createFormTypes } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: 0,\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: 0,\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n minWidth: 400,\n outline: 0,\n },\n}));\n\n/**\n * CreateForm component to create a new form type.\n *\n * @component\n * @example\n * const refreshCallback = () => {};\n * const setOpen = (open) => {};\n * const formTypes = ['Type1', 'Type2'];\n * return (\n * <CreateForm refreshCallback={refreshCallback} setOpen={setOpen} formTypes={formTypes} />\n * );\n *\n * @param {Object} props - The component props.\n * @param {function} props.refreshCallback - Callback function to refresh the form types list.\n * @param {function} props.setOpen - Function to control the open state of the parent modal/dialog.\n * @param {Array.<string>} props.formTypes - Array of form type options.\n */\nexport default function CreateForm({ refreshCallback, setOpen, formTypes }) {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const formName = useInput('');\n const description = useInput('');\n const type = useInput('');\n const name = useInput('');\n\n const onCreateFormTypes = async () => {\n if (!type.value || !formName.value || !description.value) {\n return;\n }\n\n setLoading(true);\n try {\n await createFormTypes({\n type: type.value.replace(/ /g, '_').toUpperCase(),\n typeDisplayText: type.value,\n name: formName.value,\n description: description.value,\n adminName: name.value,\n });\n setOpen(false);\n await refreshCallback();\n toast.success('Form Type was created successfully!');\n } catch (error) {\n setLoading(false);\n toast.error('Something went wrong creating the form type');\n }\n };\n\n return (\n <div className={classes.paper}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Create Form</Typography>\n <Typography style={{ fontSize: 14, marginTop: 15, marginBottom: 10 }}>\n Please enter the name and description of the form in the fields below.\n </Typography>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <TextField\n id=\"standard-required1\"\n label={\n <Typography>\n {' '}\n Name <span style={{ color: 'red', fontSize: 12 }}>*</span>\n </Typography>\n }\n style={{ width: '100%' }}\n value={name.value}\n onChange={name.onChange}\n inputProps={{\n 'data-testid': 'create-form-input-name',\n }}\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n id=\"standard-required1\"\n label={\n <Typography>\n {' '}\n Display Name <span style={{ color: 'red', fontSize: 12 }}>*</span>\n </Typography>\n }\n style={{ width: '100%' }}\n value={formName.value}\n onChange={formName.onChange}\n inputProps={{\n 'data-testid': 'create-form-input-display-name',\n }}\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n id=\"standard-required1\"\n label={\n <Typography>\n {' '}\n Description <span style={{ color: 'red', fontSize: 12 }}>*</span>\n </Typography>\n }\n style={{ width: '100%' }}\n value={description.value}\n onChange={description.onChange}\n inputProps={{\n 'data-testid': 'create-form-input-description',\n }}\n />\n <Typography style={{ fontSize: 14 }}>\n This description will be visible on the portal when the form is published.\n </Typography>\n </Grid>\n </Grid>\n <br />\n <Grid item xs={6}>\n <FormControl className={classes.formControl} style={{ width: '100%' }}>\n <InputLabel htmlFor=\"age-native-simple\">\n Type <span style={{ color: 'red', fontSize: 12 }}>*</span>\n </InputLabel>\n <Select\n native\n defaultValue=\"Select an Option\"\n value={type.value}\n onChange={type.onChange}\n error={type.error}\n helperText={type.error}\n inputProps={{\n 'data-testid': 'create-form-select-type',\n }}\n >\n <option aria-label=\"None\" value={null}>\n Select an Option\n </option>\n {formTypes.map((_type, index) => (\n <option\n value={Array.isArray(_type) ? _type[1] : _type}\n key={index}\n >\n {Array.isArray(_type) ? _type[1] : _type}\n </option>\n ))}\n </Select>\n <span style={{ color: 'red', fontSize: 12, marginTop: 4 }}>{type.error}</span>\n </FormControl>\n </Grid>\n <br />\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n style={{ color: '#1F63FF' }}\n onClick={() => setOpen(false)}\n >\n CANCEL\n </Button>\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={onCreateFormTypes}\n disabled={loading || !formName.value || !description.value || !type.value}\n >\n {loading ? <CircularProgress color=\"#4b7bff\" size=\"25px\" /> : 'Create'}\n </Button>\n </Box>\n </div>\n );\n}\n\nCreateForm.propTypes = {\n refreshCallback: PropTypes.func.isRequired,\n setOpen: PropTypes.func.isRequired,\n formTypes: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n","import { Box, Typography, Button, CircularProgress, makeStyles } from '@material-ui/core';\n\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\nimport { deleteFormTypes } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n minWidth: 400,\n outline: 0,\n },\n}));\n\n/**\n * DeleteForms component to confirm and delete selected form types.\n *\n * @component\n * @example\n * const selected = [1, 2, 3];\n * const setOpen = (open) => {};\n * const setSelected = (selected) => {};\n * const refreshCallBack = () => {};\n * return (\n * <DeleteForms selected={selected} setOpen={setOpen} setSelected={setSelected} refreshCallBack={refreshCallBack} />\n * );\n *\n * @param {Object} props - The component props.\n * @param {Array.<number>} props.selected - Array of selected form type IDs to delete.\n * @param {function} props.setOpen - Function to control the open state of the parent modal/dialog.\n * @param {function} props.setSelected - Function to update the selected form types.\n * @param {function} props.refreshCallBack - Callback function to refresh the form types list.\n */\nexport default function DeleteForms({ selected, setOpen, setSelected, refreshCallBack }) {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n\n const onDeleteFormTypes = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoading(true);\n\n await deleteFormTypes(ids);\n await refreshCallBack();\n\n setLoading(false);\n setSelected([]);\n setOpen(false);\n toast.success('Form Type(s) deleted Successfully');\n } catch (error) {\n toast.error(error?.response?.data?.message);\n setLoading(false);\n }\n };\n\n return (\n <div className={classes.paper}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Are you sure you want to delete?</Typography>\n <Typography variant=\"body2\">This action can’t be undone!</Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button\n data-testid=\"delete-forms-button-cancel\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => setOpen(false)}\n >\n CANCEL\n </Button>\n <Button\n data-testid=\"delete-forms-button-delete\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={onDeleteFormTypes}\n >\n {loading ? <CircularProgress color=\"#fff\" size=\"25px\" /> : 'DELETE'}\n </Button>\n </Box>\n </div>\n );\n}\n\nDeleteForms.propTypes = {\n selected: PropTypes.arrayOf(PropTypes.number).isRequired,\n setOpen: PropTypes.func.isRequired,\n setSelected: PropTypes.func.isRequired,\n refreshCallBack: PropTypes.func.isRequired,\n};\n","import React, { useState } from 'react';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\nimport {\n Box,\n Button,\n CircularProgress,\n ListItemIcon,\n MenuItem,\n Typography,\n} from '@material-ui/core';\nimport FilterNoneIcon from '@material-ui/icons/FilterNone';\nimport PopperPortal from '../../components/PopperPortal';\nimport { createFormTypes } from '../../services/unarmed';\nimport { toast } from '../../components/Notification';\n\nexport default function RenderTableOptions({ id, refreshCallBack }) {\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const onDuplicate = async () => {\n setLoading(true);\n try {\n await createFormTypes({ copyFrom: id });\n await refreshCallBack();\n setOpen(false);\n setLoading(false);\n toast.success('Form Type was successfully duplicated');\n } catch (error) {\n setLoading(false);\n toast.success('Something went wrong when duplicate form type');\n }\n };\n\n return (\n <Box position=\"relative\">\n <Button onClick={() => setOpen(true)}>\n <MoreHorizIcon />\n </Button>\n <PopperPortal open={open} setOpen={setOpen} left={-155} top={-9}>\n {loading ? (\n <CircularProgress color=\"#333\" />\n ) : (\n <MenuItem onClick={onDuplicate}>\n <ListItemIcon>\n <FilterNoneIcon fontSize=\"small\" />\n </ListItemIcon>\n <Typography variant=\"inherit\" noWrap>\n Duplicate\n </Typography>\n </MenuItem>\n )}\n </PopperPortal>\n </Box>\n );\n}\n","/* eslint-disable no-nested-ternary */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Box,\n FormControlLabel,\n makeStyles,\n Switch,\n Typography,\n Fade,\n Backdrop,\n Button,\n Modal,\n CircularProgress,\n} from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport { updateFormTypes } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n minWidth: 400,\n outline: 0,\n },\n}));\n\n/**\n * UpdateStatusFormPopup component for updating the status of a form.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {number} props.index - The index of the form in the list.\n * @param {Object} props.row - The form data.\n * @param {Function} props.setForms - Function to update the list of forms.\n * @param {Function} props.setStatus - Function to update the status of the forms.\n * @param {boolean[]} props.status - Array of boolean values representing the status of each form.\n * @param {Object} props.forms - The current forms data.\n * @param {string} [props.statusKey='published'] - The key to update the status in the form object.\n * @param {Function} [props.callback] - Optional callback function to run after status update.\n * @returns {React.ReactElement} The UpdateStatusFormPopup component.\n */\nexport default function UpdateStatusFormPopup({\n index,\n row,\n setForms,\n setStatus,\n status,\n forms,\n statusKey = 'published',\n callback,\n}) {\n const [loading, setLoading] = useState(false);\n const [open, setOpen] = useState(false);\n const classes = useStyles();\n\n const handleUpdateStatus = async () => {\n setLoading(true);\n try {\n const { data } = await updateFormTypes(row?._id, {\n [statusKey]: !status[index],\n });\n\n const formsCopy = [...forms.data];\n formsCopy[index][statusKey] = data[statusKey];\n formsCopy[index].portalStatus = false;\n setForms((prevState) => ({ ...prevState, data: formsCopy }));\n const statusCopy = [...status];\n statusCopy[index] = !status[index];\n\n setStatus(statusCopy);\n if (callback) {\n callback(index, false);\n }\n setOpen(false);\n setLoading(false);\n toast.success('The form was updated successfully');\n } catch (err) {\n setLoading(false);\n toast.error(err.response?.data?.message);\n }\n };\n\n return (\n <>\n <FormControlLabel\n control={<Switch color=\"primary\" checked={status[index] || row?.[statusKey]} onChange={() => setOpen(true)} />}\n label={status[index] || row?.[statusKey] ? 'Live' : 'Draft'}\n style={{ marginLeft: 0 }}\n labelPlacement=\"start\"\n />\n <Modal\n aria-labelledby=\"transition-modal-title1\"\n aria-describedby=\"transition-modal-description1\"\n open={open}\n className={classes.modal}\n onClose={() => setOpen(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={open}>\n <div className={classes.paper}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>\n Are you sure you want to {status[index] ? 'unpublish' : 'publish'} this form?\n </Typography>\n {!status[index] && (\n <Typography variant=\"body2\">\n There can only be one \"<span style={{ textTransform: 'capitalize' }}>{row?.typeDisplayText || row?.type?.toLowerCase()}</span>{' '}\n type\" public at the same time\n </Typography>\n )}\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button\n data-testid=\"forms-button-update-status-cancel\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => setOpen(false)}\n >\n CANCEL\n </Button>\n <Button\n data-testid=\"forms-button-update-status\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={handleUpdateStatus}\n >\n {loading ? <CircularProgress color=\"#fff\" size=\"25px\" /> : status[index] ? 'DRAFT' : 'PUBLISH'}\n </Button>\n </Box>\n </div>\n </Fade>\n </Modal>\n </>\n );\n}\n\nUpdateStatusFormPopup.propTypes = {\n index: PropTypes.number.isRequired,\n row: PropTypes.shape({\n _id: PropTypes.string.isRequired,\n published: PropTypes.bool,\n type: PropTypes.string,\n }).isRequired,\n setForms: PropTypes.func.isRequired,\n setStatus: PropTypes.func.isRequired,\n status: PropTypes.arrayOf(PropTypes.bool).isRequired,\n forms: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n }).isRequired,\n statusKey: PropTypes.string,\n callback: PropTypes.func,\n};\n","/* eslint-disable no-nested-ternary */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Box,\n FormControlLabel,\n makeStyles,\n Switch,\n Typography,\n Fade,\n Backdrop,\n Button,\n Modal,\n CircularProgress,\n} from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport { updateFormTypes } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n minWidth: 400,\n outline: 0,\n },\n}));\n\n/**\n * UpdateStatusFormPortal component for updating the status of a form.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {number} props.index - The index of the form in the list.\n * @param {Object} props.row - The form data.\n * @param {Function} props.setForms - Function to update the list of forms.\n * @param {Function} props.setStatus - Function to update the status of the forms.\n * @param {boolean[]} props.status - Array of boolean values representing the status of each form.\n * @param {Object} props.forms - The current forms data.\n * @param {string} [props.statusKey='portalStatus'] - The key to update the status in the form object.\n * @param {Function} [props.callback=() => {}] - Optional callback function to run after status update.\n * @returns {React.ReactElement} The UpdateStatusFormPortal component.\n */\nexport default function UpdateStatusFormPortal({\n index,\n row,\n setForms,\n setStatus,\n status,\n forms,\n statusKey = 'portalStatus',\n callback = () => {},\n}) {\n const [loading, setLoading] = useState(false);\n const [open, setOpen] = useState(false);\n const classes = useStyles();\n\n const handleUpdateStatus = async () => {\n setLoading(true);\n try {\n const { data } = await updateFormTypes(row?._id, {\n [statusKey]: !status[index],\n });\n\n const formsCopy = [...forms.data];\n formsCopy[index][statusKey] = data[statusKey];\n\n setForms((prevState) => ({ ...prevState, data: formsCopy }));\n const statusCopy = [...status];\n statusCopy[index] = !status[index];\n setStatus(statusCopy);\n setOpen(false);\n setLoading(false);\n callback();\n toast.success('The form was updated successfully');\n } catch (err) {\n setLoading(false);\n toast.error(err.response?.data?.message);\n }\n };\n\n return (\n <>\n <FormControlLabel\n control={<Switch color=\"primary\" checked={status[index] || row?.[statusKey]} onChange={() => setOpen(true)} />}\n label={status[index] || row?.[statusKey] ? 'Live' : 'Hide'}\n style={{ marginLeft: 0 }}\n labelPlacement=\"start\"\n />\n <Modal\n aria-labelledby=\"transition-modal-title1\"\n aria-describedby=\"transition-modal-description1\"\n open={open}\n className={classes.modal}\n onClose={() => setOpen(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={open}>\n <div className={classes.paper}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>\n Are you sure you want to update portal status?\n </Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button\n data-testid=\"forms-button-update-portal-status-cancel\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => setOpen(false)}\n >\n CANCEL\n </Button>\n <Button\n data-testid=\"forms-button-update-portal-status\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={handleUpdateStatus}\n >\n {loading ? <CircularProgress color=\"#fff\" size=\"25px\" /> : status[index] ? 'HIDE' : 'LIVE'}\n </Button>\n </Box>\n </div>\n </Fade>\n </Modal>\n </>\n );\n}\n\nUpdateStatusFormPortal.propTypes = {\n index: PropTypes.number.isRequired,\n row: PropTypes.shape({\n _id: PropTypes.string.isRequired,\n portalStatus: PropTypes.bool,\n }).isRequired,\n setForms: PropTypes.func.isRequired,\n setStatus: PropTypes.func.isRequired,\n status: PropTypes.arrayOf(PropTypes.bool).isRequired,\n forms: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n }).isRequired,\n statusKey: PropTypes.string,\n callback: PropTypes.func,\n};\n","import React from 'react';\nimport { Card, CardContent, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useHistory } from 'react-router-dom';\nimport formatTxt from '../utils/formatText';\n\nconst CardWrapper = styled(Card)`\n background: #fff;\n box-shadow: none;\n border: 1px solid #e7e7e7;\n border-radius: 9px;\n padding: 0px 24px;\n margin: 8px 0px;\n width: 100%;\n cursor: pointer;\n transition: box-shadow 0.3s ease;\n\n &:hover {\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n background-color: rgb(245, 245, 245);\n }\n`;\n\nconst TypographyText = styled(Typography)`\n font-size: 14px !important;\n color: #00000099;\n`;\n\nconst TypeFormTag = styled.span`\n height: 24px;\n font-size: 12px;\n color: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 30px;\n padding: 0px 6px;\n margin-left: 8px;\n`;\n\nconst TagWrapper = styled.div`\n margin-top: 16px;\n display: inline-block;\n padding: 8px 16px;\n border-radius: 30px;\n font-size: 13px;\n font-weight: 500;\n color: #fff;\n text-transform: capitalize;\n`;\n\n/**\n * FormCard component to display a clickable card with a title, description, and type tag.\n * @param {Object} props - Component props.\n * @param {string} props.name - Name/title of the card.\n * @param {string} props.description - Description of the card.\n * @param {string} props.routeUrl - URL for the card action.\n * @param {string} props.colorBg - Background color for the type tag.\n * @param {string} props.typeForm - Type of the form.\n * @param {string} props.buttonName - Name to display in the type tag.\n * @returns {JSX.Element} FormCard component.\n */\nconst FormCard = ({ name, description, routeUrl, colorBg, typeForm, buttonName, pages }) => {\n const history = useHistory();\n\n const handleCardClick = () => {\n history.push(routeUrl, { pages });\n };\n\n return (\n <CardWrapper\n onClick={handleCardClick}\n style={{\n boxShadow: 'none',\n height: '100%',\n overflow: 'visible',\n }}\n >\n <CardContent style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center', padding: '12px 10px' }}>\n <Typography variant=\"h6\" style={{ fontWeight: 600, fontSize: 18 }}>\n {name}\n </Typography>\n <TypographyText>{description}</TypographyText>\n {/* <TagWrapper style={{ backgroundColor: colorBg }}>\n {buttonName || typeForm}\n </TagWrapper> */}\n </CardContent>\n </CardWrapper>\n );\n};\n\n// PropTypes validation for FormCard\nFormCard.propTypes = {\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n routeUrl: PropTypes.string.isRequired,\n colorBg: PropTypes.string.isRequired,\n typeForm: PropTypes.string.isRequired,\n buttonName: PropTypes.string,\n pages: PropTypes.object,\n};\n\n/**\n * FormCardLite component to display a simplified version of FormCard.\n * @param {Object} props - Component props.\n * @param {string} props.name - Name/title of the card.\n * @param {string} props.colorBg - Background color for the button.\n * @param {string} props.typeForm - Type of the form.\n * @param {string} props.buttonName - Name of the button.\n * @returns {JSX.Element} FormCardLite component.\n */\nexport const FormCardLite = ({ name, colorBg, buttonName, typeForm }) => (\n <CardWrapper style={{ display: 'flex', alignItems: 'center', flexDirection: 'row', minHeight: 70 }}>\n <CardContent style={{ padding: 0, display: 'flex', alignItems: 'center', flexDirection: 'row' }}>\n <Typography variant=\"h4\" style={{ fontSize: 18, fontWeight: 600 }}>\n {formatTxt(name, 30)}\n </Typography>\n <TypeFormTag\n style={{\n background: colorBg,\n color: '#fff',\n textTransform: 'capitalize',\n }}\n >\n {formatTxt(buttonName?.toLowerCase(), 20) || typeForm}\n </TypeFormTag>\n </CardContent>\n </CardWrapper>\n);\n\nFormCardLite.propTypes = {\n name: PropTypes.string.isRequired,\n colorBg: PropTypes.string.isRequired,\n buttonName: PropTypes.string,\n typeForm: PropTypes.string.isRequired,\n};\n\nexport default FormCard;\n","import { Typography, Button, Box, CircularProgress, makeStyles } from '@material-ui/core';\nimport { DndProvider } from 'react-dnd';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { toast } from '../../components/Notification';\n\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { FormCardLite } from '../../components/FormCard';\nimport { getFormColor } from '../../utils';\nimport { updateFormTypesOrder } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: 0,\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: 0,\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 24,\n maxWidth: 700,\n maxHeight: '90vh',\n outline: 0,\n overflowY: 'scroll',\n borderRadius: 4,\n },\n}));\n\n/**\n * SortForms component for arranging forms in a specific order.\n * @param {Object} props - Component props.\n * @param {Array} props.defaultLiveForms - Default live forms to be sorted.\n * @param {Function} props.onClose - Function to handle cancel action.\n * @returns {JSX.Element} SortForms component.\n */\nconst SortForms = ({ defaultLiveForms, onClose, onSaved }) => {\n const classes = useStyles();\n\n // State variables\n const [liveForms, setLiveForms] = useState([...defaultLiveForms]);\n const [loading, setLoading] = useState(false);\n\n /**\n * Handler for saving the sorted forms.\n * @param {Array} liveForms - Sorted live forms.\n * @returns {void}\n */\n const handleOnSaveSortForms = async (_liveForms) => {\n const ids = _liveForms.map((liveForm) => liveForm?._id);\n\n let response;\n\n setLoading(true);\n\n try {\n response = await updateFormTypesOrder(ids);\n } catch (error) {\n toast.error(error?.response?.data?.error?.details?.[0]?.message || error?.response?.data?.message);\n }\n\n if (response) {\n onSaved();\n onClose();\n toast.success('Forms order updated successfully!');\n }\n\n setLoading(false);\n };\n\n /**\n * Renderer function for mapping liveForms to DnDItem components.\n * @param {Function} moveItem - Function to handle item movement.\n * @returns {JSX.Element[]} Array of DnDItem components.\n */\n const renderer = (moveItem) =>\n liveForms.map((form, index) => (\n <DnDItem key={index} moveItem={moveItem} index={index}>\n <FormCardLite\n key={index}\n type=\"lite\"\n colorBg={getFormColor(form.type)}\n typeForm={form.type}\n logEventTrack=\"make_compliment\"\n routeUrl={`/form-dashboard/${form._id}`}\n name={form.name}\n description={form.description}\n pages={form.pages}\n buttonName={form.type}\n />\n </DnDItem>\n ));\n\n return (\n <div className={classes.paper}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Sort Forms</Typography>\n <Typography style={{ fontSize: 14, marginTop: 16, marginBottom: 16 }}>\n Arrange the forms in the order you would like them to be shown on the Portal\n </Typography>\n <DndProvider backend={HTML5Backend}>\n <DnDArea selectedItems={liveForms} setSelectedItems={setLiveForms} renderer={renderer} />\n </DndProvider>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button\n data-testid=\"sort-forms-button-cancel\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n style={{ color: '#1F63FF' }}\n onClick={onClose}\n >\n CANCEL\n </Button>\n <Button\n data-testid=\"sort-forms-button-save\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => handleOnSaveSortForms(liveForms)}\n disabled={loading}\n >\n {loading ? <CircularProgress color=\"#4b7bff\" size=\"25px\" /> : 'Save'}\n </Button>\n </Box>\n </div>\n );\n};\n\n// PropTypes validation\nSortForms.propTypes = {\n defaultLiveForms: PropTypes.array.isRequired,\n onClose: PropTypes.func.isRequired,\n onSaved: PropTypes.func.isRequired,\n};\n\nexport default SortForms;\n","/* eslint-disable no-nested-ternary */\nimport {\n Box,\n Checkbox,\n makeStyles,\n TableCell,\n TableRow,\n Typography,\n Fade,\n Backdrop,\n Modal,\n Tooltip,\n} from '@material-ui/core';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { toast } from '../../components/Notification';\nimport { useHistory } from 'react-router-dom';\n\nimport EnhancedTable from '../../components/Table';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport useOrganization from '../../hooks/useOrganization';\nimport { getAvailableFormType, getFormTypes } from '../../services/unarmed';\nimport DashButton from '../../components/DashButton';\nimport CreateForm from './CreateForm';\nimport DeleteForms from './DeleteForms';\nimport RenderTableOptions from './RenderTableOptions';\nimport UpdateStatusFormPopup from './UpdateStatusFormPopup';\nimport UpdateStatusFormPortal from './UpdateStatusFormPortal';\nimport formatTxt from '../../utils/formatText';\nimport SortForms from './SortForms';\nimport { sortOrderForms } from '../../utils';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n minWidth: 400,\n outline: 0,\n },\n}));\n\nconst columns = ['Name', 'Display Name', 'Type', 'Created By', 'Created Date', 'Status', 'Portal Status', 'Actions'];\n\nconst Forms = () => {\n const classes = useStyles();\n const [forms, setForms] = useState([]);\n const [loading, setLoading] = useState(false);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [checked, setChecked] = useState(false);\n const { organization } = useOrganization();\n const [status, setStatus] = useState([]);\n const [availableFormDashboard, setAvailableFormDashboard] = useState([]);\n const [open, setOpenModal] = useState(false);\n const [openCreate, setOpenCreate] = useState(false);\n const isSelected = (name) => selected.indexOf(name) !== -1;\n const history = useHistory();\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('asc');\n const [showOpenSortForms, setShowOpenSortForms] = useState(false);\n const [availableFormsTypes, setAvailableFormTypes] = useState([]);\n\n const onGetAvailableFormsTypes = useCallback(async () => {\n try {\n const { data } = await getAvailableFormType(organization?._id);\n setAvailableFormTypes(sortOrderForms(data));\n } catch (error) {\n toast.error(error.message);\n }\n }, [organization]);\n\n const onUpdatePortalStatusCallBack = (index, value) => {\n const statusCopy = [...availableFormDashboard];\n statusCopy[index] = value;\n setAvailableFormDashboard(statusCopy);\n onGetAvailableFormsTypes();\n };\n\n const onGetFormTypes = () => {\n setLoading(true);\n getFormTypes(page, rowsPerPage, sort, sortBy)\n .then(({ data, headers }) => {\n setForms({ data, headers });\n const stats = data.map((dt) => dt?.published);\n const dashboardForm = data.map((dt) => dt?.portalStatus);\n setAvailableFormDashboard(dashboardForm);\n setStatus(stats);\n setLoading(false);\n })\n .catch((err) => {\n console.log(err);\n setLoading(false);\n });\n };\n\n useEffect(() => {\n onGetFormTypes();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [page, rowsPerPage, sortBy, sort]);\n\n useEffect(() => {\n if (organization) {\n onGetAvailableFormsTypes();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [organization]);\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const goToCaseDetails = (e, row, handleClick) => {\n const go = handleClick(e, row._id);\n if (go) {\n history.push(`/form/${row._id}`);\n }\n };\n\n const handleOnClickSortForms = () => {\n setShowOpenSortForms(true);\n };\n\n function toTitleCase(str) {\n return str.replace(\n /\\w\\S*/g,\n text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase()\n );\n }\n\n const renderRow = (row, index, handleClick) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n\n return (\n <TableRow\n hover\n aria-checked={isItemSelected}\n selected={isItemSelected}\n role=\"checkbox\"\n tabIndex={-1}\n key={index}\n className={classes.row}\n style={{\n cursor: 'pointer',\n height: 50,\n maxHeight: 50,\n background: '#fff',\n }}\n >\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {row.defaultForm ? (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n <Tooltip title=\"This is a default form and cannot be deleted\">\n <InfoIcon htmlColor=\"#4B7BFF\" />\n </Tooltip>\n </Box>\n ) : (\n <Checkbox checked={isItemSelected} inputProps={{ 'aria-labelledby': labelId }} color=\"primary\" />\n )}\n </TableCell>\n\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {formatTxt(row?.adminName, 13)}\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {formatTxt(row?.name, 13)}\n </TableCell>\n <TableCell\n component=\"th\"\n scope=\"row\"\n align=\"left\"\n onClick={(e) => goToCaseDetails(e, row, handleClick)}\n style={{\n fontWeight: '500',\n color:\n row?.type?.toLowerCase() === 'complaint'\n ? '#FF4242'\n : row?.type?.toLowerCase() === 'compliment'\n ? '#008858'\n : '#2E66FE',\n }}\n >\n {row?.typeDisplayText ? row?.typeDisplayText : toTitleCase(row?.type)}\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {row?.createdByData?.firstName} {row?.createdByData?.lastName}\n </TableCell>\n\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {moment(row.createdAt).format('MMMM DD, YYYY')}\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" align=\"left\">\n <UpdateStatusFormPopup\n index={index}\n row={row}\n setForms={setForms}\n setStatus={setStatus}\n status={status}\n forms={forms}\n callback={onUpdatePortalStatusCallBack}\n />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" align=\"left\">\n <UpdateStatusFormPortal\n index={index}\n row={row}\n setForms={setForms}\n setStatus={setAvailableFormDashboard}\n status={availableFormDashboard}\n forms={forms}\n statusKey=\"portalStatus\"\n callback={onGetAvailableFormsTypes}\n />\n </TableCell>\n <TableCell component=\"th\" align=\"justify\">\n <RenderTableOptions id={row?._id} refreshCallBack={onGetFormTypes} />\n </TableCell>\n </TableRow>\n );\n };\n\n return (\n <>\n {organization && <UpgradeModal open={!organization?.features?.dashboard?.forms?.enabled} />}\n <PageWrapper\n className={classes.container}\n style={\n !organization?.features?.dashboard?.forms?.enabled\n ? {\n filter: 'blur(6px)',\n height: '70vh',\n overflow: 'hidden',\n }\n : {}\n }\n >\n <Box display=\"flex\" justifyContent=\"space-between\">\n <Typography variant=\"h5\">Forms </Typography>\n </Box>\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"flex-end\">\n <Typography className={classes.title} variant=\"subtitle2\" id=\"tableTitle\" component=\"div\">\n All Forms ({forms?.headers?.['x-pagination-totalitems'] || 0})\n </Typography>\n <Box display=\"flex\">\n <DashButton\n data-testid=\"forms-button-delete-forms\"\n onClick={() => setOpenModal(true)}\n disabled={selected.length === 0}\n marginRight=\"10px\"\n >\n Delete\n </DashButton>\n <DashButton data-testid=\"forms-button-sort-forms\" marginRight=\"10px\" onClick={handleOnClickSortForms}>\n Sort Forms\n </DashButton>\n <DashButton data-testid=\"forms-button-create-form\" onClick={() => setOpenCreate(true)} marginRight=\"10px\">\n Create Form\n </DashButton>\n </Box>\n </Box>\n <Box marginBottom=\"0\">\n <EnhancedTable\n columns={columns}\n rows={forms.data}\n showCheckBox\n rowRender={renderRow}\n setChecked={setChecked}\n checked={checked}\n loading={loading}\n setSort={setSort}\n sort={sort}\n tab=\"forms\"\n setSortBy={setSortBy}\n page={page}\n setPage={setPage}\n selected={selected}\n setSelected={setSelected}\n count={forms?.headers?.['x-pagination-totalitems']}\n rowsPerPage={rowsPerPage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n />\n </Box>\n </PageWrapper>\n <Modal\n aria-labelledby=\"transition-modal-title1\"\n aria-describedby=\"transition-modal-description1\"\n open={showOpenSortForms}\n className={classes.modal}\n onClose={() => setShowOpenSortForms(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={showOpenSortForms}>\n <SortForms\n onClose={() => setShowOpenSortForms(false)}\n defaultLiveForms={sortOrderForms(availableFormsTypes)}\n onSaved={() => onGetAvailableFormsTypes()}\n />\n </Fade>\n </Modal>\n <Modal\n aria-labelledby=\"transition-modal-title1\"\n aria-describedby=\"transition-modal-description1\"\n open={openCreate}\n className={classes.modal}\n onClose={() => setOpenCreate(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={openCreate}>\n <CreateForm refreshCallback={onGetFormTypes} setOpen={setOpenCreate} formTypes={organization?.formTypes} />\n </Fade>\n </Modal>\n <Modal\n aria-labelledby=\"transition-modal-title1\"\n aria-describedby=\"transition-modal-description1\"\n open={open}\n className={classes.modal}\n onClose={() => setOpenModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={open}>\n <DeleteForms\n setOpen={setOpenModal}\n selected={selected}\n setSelected={setSelected}\n refreshCallBack={onGetFormTypes}\n />\n </Fade>\n </Modal>\n </>\n );\n};\n\nconst PageWrapper = styled.div`\n width: 100%;\n`;\n\nexport default Forms;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Divider, LinearProgress, makeStyles, Paper, Typography } from '@material-ui/core';\n\n/**\n * Custom styles for the DashboardCard component.\n */\nconst useStyles = makeStyles(() => ({\n paper: {\n padding: '10px 20px',\n width: 280,\n height: 140,\n marginRight: 20,\n cursor: 'pointer',\n },\n iconContainer: {\n width: 50,\n height: 50,\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n width: 20,\n height: 20,\n },\n textLink: {\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n}));\n\n/**\n * DashboardCard component for displaying card with an icon, text, and optional progress bar.\n * @param {Object} props - The props of the component.\n * @param {string} props.icon - The URL of the icon image.\n * @param {string} props.color - The background color of the icon container.\n * @param {string} props.cardText - The text to display on the card.\n * @param {React.ElementType} [props.IconComponent] - The custom icon component to render.\n * @param {string} props.iconColor - The color of the icon.\n * @param {string} props.value - The value to display on the card.\n * @param {string} props.buttonText - The text for the button.\n * @param {Function} props.onClickButton - The function to handle button click.\n * @param {boolean} props.showProgressBar - Whether to show the progress bar.\n * @param {number} props.progressBarValue - The value of the progress bar.\n * @param {Object} props.styleContainer - The inline style for the container.\n * @param {string} props.barColor - The color of the progress bar.\n * @param {boolean} props.showChildren - Whether to show children elements.\n * @param {string} props.dataTestId - The data test ID for testing.\n * @param {React.ReactNode} [props.children] - The optional children elements.\n * @returns {JSX.Element} DashboardCard component.\n */\nconst DashboardCard = ({\n icon,\n color,\n cardText,\n IconComponent,\n iconColor,\n value,\n buttonText,\n onClickButton,\n showProgressBar,\n progressBarValue,\n styleContainer,\n barColor = 'primary',\n showChildren,\n dataTestId,\n children,\n}) => {\n const classes = useStyles();\n return (\n <Paper data-testid={dataTestId} className={classes.paper} onClick={onClickButton} style={styleContainer}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Typography style={{ color: '#000000AD', fontSize: 16, fontWeight: '500' }}>{cardText}</Typography>\n <div className={classes.iconContainer} style={{ background: color }}>\n {IconComponent ? (\n <IconComponent htmlColor={iconColor} />\n ) : (\n <div\n className={classes.icon}\n style={{\n background: `url(${icon})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n }}\n />\n )}\n </div>\n </Box>\n <Typography variant=\"h5\" style={{ color: '#000000AD' }}>\n {value}\n </Typography>\n {showProgressBar && (\n <Box width=\"100%\" mr={1} marginTop=\"3px\">\n <LinearProgress variant=\"determinate\" value={progressBarValue} color={barColor} style={{ marginBottom: 5 }} />\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Typography\n style={{\n color: '#00000061',\n fontSize: 12,\n marginTop: 3,\n fontWeight: '500',\n }}\n >\n {progressBarValue || 0}%\n </Typography>\n {showChildren && children}\n </Box>\n </Box>\n )}\n {!showProgressBar && <Divider />}\n {buttonText && (\n <Typography\n variant=\"subtitle2\"\n className={classes.textLink}\n style={{\n color: '#000000AD',\n paddingTop: 7,\n fontSize: 13,\n marginTop: 5,\n display: 'inline-block',\n }}\n onClick={onClickButton}\n >\n {buttonText}\n </Typography>\n )}\n </Paper>\n );\n};\n\n// PropTypes\nDashboardCard.propTypes = {\n icon: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n cardText: PropTypes.string.isRequired,\n IconComponent: PropTypes.elementType,\n iconColor: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n buttonText: PropTypes.string,\n onClickButton: PropTypes.func.isRequired,\n showProgressBar: PropTypes.bool.isRequired,\n progressBarValue: PropTypes.number.isRequired,\n styleContainer: PropTypes.object,\n barColor: PropTypes.string,\n showChildren: PropTypes.bool,\n dataTestId: PropTypes.string,\n children: PropTypes.node,\n};\n\nexport default DashboardCard;\n","/* eslint-disable no-nested-ternary */\nimport { Backdrop, Box, Button, Fade, makeStyles, Modal, TableCell, TableRow, Typography } from '@material-ui/core';\nimport React, { useEffect, useState, useContext } from 'react';\nimport styled from 'styled-components';\nimport { useHistory } from 'react-router-dom';\nimport PersonIcon from '@material-ui/icons/Person';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport moment from 'moment';\nimport { toast } from '../../components/Notification';\n\nimport DashboardCard from '../../components/DashboardCard';\nimport iconYellow from '../../assets/yelloCard.png';\nimport { getAvailableFormType, getCivilianCases, getForms } from '../../services/unarmed';\nimport { Context } from '../../Context';\nimport useOrganization from '../../hooks/useOrganization';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport EnhancedTable from '../../components/Table';\nimport formatTxt from '../../utils/formatText';\nimport { sortOrderForms, transformStatus } from '../../utils';\nimport DashButton from '../../components/DashButton';\nimport FormCard from '../../components/FormCard';\nimport AssignedToTooltip from '../../components/AssignedToTooltip';\n\nconst getStatusTitle = (row) => {\n const currentStatus = row?.availableStatuses?.filter((status) => status.status === row?.status);\n return transformStatus(currentStatus[0]?.status);\n};\n\nconst columns = ['Type', 'Tracking Number', 'Created Date', 'Name', 'Assigned To', 'Status'];\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 480,\n outline: 0,\n height: 545,\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n}));\n\nconst getFormColor = (form) => {\n switch (form) {\n case 'COMPLIMENT':\n return '#008858';\n case 'COMPLAINT':\n return '#e52828';\n default:\n return '#364F74';\n }\n};\n\nconst Home = () => {\n const classes = useStyles();\n const [dashboardData, setDashboardData] = useState([]);\n const { organization } = useOrganization();\n const { authUser, myUser, setActive } = useContext(Context);\n const [forms, setForms] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n const [open, setOpenModal] = useState(false);\n const [formTypes, setFormTypes] = useState([]);\n const [filteredCaseCount, setFilteredCaseCount] = useState(0);\n\n useEffect(() => {\n setActive('/');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const onGetForms = async () => {\n try {\n const { data } = await getForms();\n setDashboardData(data[0]);\n } catch (error) {\n toast.error(error.message);\n }\n };\n const onGetFormType = async () => {\n try {\n const { data } = await getAvailableFormType(organization?._id);\n setFormTypes(sortOrderForms(data));\n } catch (error) {\n toast.error(error.message);\n }\n };\n if (authUser && organization?._id) {\n onGetFormType();\n onGetForms();\n }\n }, [authUser, organization?._id]);\n\n const getFormsCivilians = async () => {\n try {\n setLoading(true);\n\n const { data, headers } = await getCivilianCases({\n token: authUser.tokenId,\n page: 1,\n limit: 5,\n sortBy: 'createdAt',\n sort: 'desc',\n });\n\n setForms({ data, headers });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n toast.error(error.message);\n }\n };\n\n useEffect(() => {\n if (authUser) {\n getFormsCivilians();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [authUser]);\n\n const goToCaseDetails = (e, row) => {\n history.push(`/case/${row.code}`);\n };\n\n const renderRow = (row, index, handleClick) => (\n <TableRow\n hover\n role=\"checkbox\"\n tabIndex={-1}\n key={index}\n className={classes.row}\n style={{ cursor: 'pointer', height: 55 }}\n >\n <TableCell\n component=\"th\"\n scope=\"row\"\n align=\"left\"\n onClick={(e) => goToCaseDetails(e, row, handleClick)}\n style={{\n color: row.type === 'COMPLAINT' ? '#FF4242' : row.type === 'COMPLIMENT' ? '#008858' : '#2E66FE',\n textTransform: 'capitalize',\n fontWeight: '500',\n }}\n >\n {row?.typeDisplayText}\n </TableCell>\n\n <TableCell align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {row.code}\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {moment(row.createdAt).format('MMMM DD, YYYY')}\n </TableCell>\n <TableCell\n align=\"left\"\n style={{ textTransform: 'capitalize' }}\n onClick={(e) => goToCaseDetails(e, row, handleClick)}\n >\n {row.civilian?.firstName\n ? `${formatTxt(row.civilian?.firstName, 10)} ${formatTxt(row.civilian?.lastName, 10)}`\n : ''}\n </TableCell>\n\n <TableCell align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n <AssignedToTooltip users={row.assigned?.filter((assigned) => !!assigned)} />\n </TableCell>\n <TableCell align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n <p style={{ fontWeight: '500' }}>{getStatusTitle(row)}</p>\n <p style={{ fontSize: 12, color: '#585858' }}>\n {row?.statusLog && moment(row?.statusLog?.[row?.status]?.datetime).format('MMMM DD, hh:mm a')}\n </p>\n </TableCell>\n </TableRow>\n );\n\n return (\n <>\n {organization && (\n <UpgradeModal\n open={!organization?.features?.dashboard?.dashboard?.enabled}\n callback={() => history.push('/permissions')}\n />\n )}\n <PageWrapper\n className={classes.container}\n style={\n !organization?.features?.dashboard?.dashboard?.enabled\n ? {\n filter: 'blur(6px)',\n height: '70vh',\n overflow: 'hidden',\n }\n : {}\n }\n >\n <Box display=\"flex\" justifyContent=\"space-between\">\n <Typography variant=\"h5\">Dashboard </Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" mt=\"30px\" flexWrap=\"wrap\">\n <DashboardCard\n dataTestId=\"home-card-my-cases\"\n cardText=\"My Cases\"\n color=\"#2E66FE26\"\n IconComponent={PersonIcon}\n iconColor=\"#2E66FE\"\n value={dashboardData?.MyCases || 0}\n styleContainer={{ marginBottom: 20 }}\n buttonText=\"View all cases assigned to me\"\n onClickButton={() => {\n history.push('/cases', {\n unassigned: myUser?._id,\n openFilter: true,\n isFiltering: true,\n resetAllFilters: true,\n });\n setActive('/cases');\n }}\n />\n <DashboardCard\n dataTestId=\"home-card-total-cases\"\n cardText=\"Total Cases\"\n color=\"#007FFF26\"\n IconComponent={DescriptionIcon}\n iconColor=\"#007FFF\"\n styleContainer={{ marginBottom: 20 }}\n value={dashboardData?.TotalCases || 0}\n buttonText=\"View all cases\"\n onClickButton={() => {\n history.push('/cases', {\n openFilter: true,\n resetAllFilters: true,\n isFiltering: true,\n });\n setActive('/cases');\n }}\n />\n <DashboardCard\n dataTestId=\"home-card-unassigned-cases\"\n cardText=\"Unassigned Cases\"\n color=\"#FFF7D8\"\n icon={iconYellow}\n value={dashboardData?.Unassigned || 0}\n buttonText=\"View all unassigned cases\"\n styleContainer={{ marginBottom: 20 }}\n onClickButton={() => {\n history.push('/cases', {\n unassigned: 'null',\n openFilter: true,\n isFiltering: true,\n resetAllFilters: true,\n });\n setActive('/cases');\n }}\n />\n </Box>\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"flex-end\">\n <Typography variant=\"subtitle2\" id=\"tableTitle\" component=\"div\" style={{ marginTop: 15 }}>\n Recent Cases\n </Typography>\n <DashButton dataTestId=\"home-button-complete-form\" onClick={() => setOpenModal(true)} marginRight=\"10px\">\n Complete Form\n </DashButton>\n </Box>\n <Box marginBottom=\"0\">\n <EnhancedTable\n disableHeaderArrows\n pagination={false}\n columns={columns}\n rows={forms.data}\n rowRender={renderRow}\n loading={loading}\n count={filteredCaseCount}\n />\n </Box>\n </PageWrapper>\n <Modal\n aria-labelledby=\"transition-modal-title2\"\n aria-describedby=\"transition-modal-description2\"\n className={classes.modal}\n open={open}\n onClose={() => setOpenModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={open}>\n <div className={classes.paper}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Select Form</Typography>\n <Typography style={{ fontSize: 14, marginBottom: 50 }}>\n Please select a form to fill from dashboard.\n </Typography>\n <Box display=\"flex\" flexDirection=\"column\" style={{ height: 365, overflowY: 'auto' }}>\n <Box display=\"flex\" flexDirection=\"column\">\n {formTypes?.map((form) => (\n <FormCard\n key={form._id}\n colorBg={getFormColor(form.type)}\n typeForm={form.type}\n logEventTrack=\"make_compliment\"\n routeUrl={`/form-dashboard/${form._id}`}\n name={form.name}\n description={form.description}\n pages={form.pages}\n />\n ))}\n </Box>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\">\n <Button style={{ color: '#666666' }} onClick={() => setOpenModal(false)}>\n CANCEL\n </Button>\n </Box>\n </div>\n </Fade>\n </Modal>\n </>\n );\n};\n\nconst PageWrapper = styled.div`\n width: 100%;\n`;\n\nexport default Home;\n","import React from 'react';\nimport { Box, Input, InputLabel, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nimport { TextMaskCustom } from '../Officers/OfficersTable';\n\nconst MfaStep1 = ({ phone }) => (\n <>\n <Typography style={{ marginTop: 10, fontSize: 14, color: '#000000AD' }}>\n Protect your account by adding an extra layer of security. We need you to enter your phone number in the field\n below to send you a verification code.\n </Typography>\n <Box display=\"flex\" alignItems=\"flex-end\">\n <Typography style={{ position: 'relative', top: -4, left: -2 }}>+1</Typography>\n <Box marginTop=\"25px\">\n <InputLabel htmlFor=\"formatted-text-mask-input\" style={{ marginBottom: 3, fontSize: 12 }}>\n Phone Number\n </InputLabel>\n <Input\n inputProps={{\n 'data-testid': 'mfa-step-1-phone-number',\n }}\n value={phone.value}\n onChange={phone.onChange}\n name=\"textmask\"\n id=\"formatted-text-mask-input\"\n inputComponent={TextMaskCustom}\n />\n </Box>\n </Box>\n </>\n);\n\nMfaStep1.propTypes = {\n phone: PropTypes.object,\n};\n\nexport default MfaStep1;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport { Typography } from '@material-ui/core';\nimport ReactCodeInput from 'react-code-input';\nimport PropTypes from 'prop-types';\n\nconst inputStyle = {\n border: 0,\n borderBottom: '1px solid #000000',\n height: 44,\n width: 44,\n fontFamily: 'Roboto',\n fontSize: 20,\n color: '#273240',\n outline: 'none',\n textAlign: 'center',\n};\n\nexport default function MfaStep2({ phoneNumber, code, setCode, resendCode }) {\n return (\n <>\n <Typography style={{ marginTop: 10, fontSize: 14, color: '#000000AD' }}>\n We sent a message to <strong>{phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{4})/g, '($1) $2-$3')}</strong> with a\n verification code. please enter the code in the field below to continue.\n </Typography>\n <ReactCodeInput\n type=\"number\"\n fields={6}\n inputMode=\"numeric\"\n inputStyle={inputStyle}\n value={code}\n onChange={(cd) => {\n setCode(cd);\n }}\n />\n <Typography style={{ marginTop: 20, fontSize: 14, color: '#000000AD' }} align=\"center\">\n Didn’t get?{' '}\n <strong onClick={resendCode} style={{ cursor: 'pointer', color: '#2E66FE' }}>\n Resend\n </strong>\n </Typography>\n </>\n );\n}\n\nMfaStep2.propTypes = {\n phoneNumber: PropTypes.object,\n code: PropTypes.object,\n setCode: PropTypes.func,\n resendCode: PropTypes.func,\n};\n","import { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport circle from '../../assets/circle.png';\n\nexport default function MfaStep3() {\n return (\n <>\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <img\n src={circle}\n style={{\n width: 83,\n height: 83,\n objectFit: 'contain',\n marginBottom: 26,\n marginTop: 40,\n }}\n alt=\"check_mark\"\n />\n </Box>\n <Typography style={{ marginTop: 10, fontSize: 14, color: '#000000AD' }} align=\"center\">\n You have set up two-factor authentication successful, you will introduce the code each time you log in with\n email and password\n </Typography>\n </>\n );\n}\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\n\nconst MfaVerifyEmail = () => (\n <Typography style={{ marginTop: 10, fontSize: 14, color: '#000000AD' }}>\n Please check your inbox to verify your email address.\n </Typography>\n);\n\nexport default MfaVerifyEmail;\n","import { Box, Button, CircularProgress, makeStyles, Step, StepLabel, Stepper, Typography } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport * as firebase from 'firebase';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport MfaStep1 from './MfaStep1';\nimport MfaStep2 from './MfaStep2';\nimport MfaStep3 from './MfaStep3';\nimport MfaVerifyEmail from './MfaVerifyEmail';\nimport { Context } from '../../Context';\nimport useInput from '../../hooks/useInput';\nimport { toast } from '../../components/Notification';\n\nconst recap = {\n recaptchaVerifier: undefined,\n};\n\nfunction recaptchaVerifierInvisible() {\n // [START auth_phone_recaptcha_verifier_invisible]\n recap.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container', {\n size: 'invisible',\n });\n // [END auth_phone_recaptcha_verifier_invisible]\n}\n\nfunction recaptchaRender() {\n /** @type {firebase.auth.RecaptchaVerifier} */\n const { recaptchaVerifier } = recap;\n\n // [START auth_phone_recaptcha_render]\n recaptchaVerifier.render().then((widgetId) => {\n recap.recaptchaWidgetId = widgetId;\n });\n // [END auth_phone_recaptcha_render]\n}\n\nconst useStyles = makeStyles(() => ({\n stepper: {\n background: 'transparent',\n width: '100%',\n padding: '24px 0',\n },\n}));\n\nconst steps = ['Verify Email Address', 'Phone number', 'Verify', 'Summary'];\n\nconst Mfa = ({ shouldShowSkip }) => {\n const classes = useStyles();\n const [activeStep, setActiveStep] = useState(0);\n const [verificationID, setVerificationID] = useState(null);\n const [code, setCode] = useState();\n const [loading, setLoading] = useState(false);\n const user = firebase.auth().currentUser;\n const { myUser: me, removeAuthToLogin, removeAuth } = useContext(Context);\n const phone = useInput();\n const history = useHistory();\n\n useEffect(() => {\n recaptchaVerifierInvisible();\n recaptchaRender();\n }, []);\n\n useEffect(() => {\n if (user && user.emailVerified) {\n setActiveStep(1);\n }\n if (user && user.multiFactor.enrolledFactors.length > 0) {\n setActiveStep(3);\n }\n }, [user]);\n\n useEffect(() => {\n if (me) {\n phone.setValue(me.phoneNumber);\n }\n }, [me]);\n\n const onNextStep = () => {\n if (phone.value.replace(/[^A-Z0-9]+/gi, '').length === 0) {\n toast.error('Please enter your phone number ');\n return;\n }\n\n if (phone.value.replace(/[^A-Z0-9]+/gi, '').length !== 10) {\n toast.error('Please enter a valid phone number');\n return;\n }\n if (activeStep === 1) {\n // onReAuth();\n\n setLoading(true);\n user.multiFactor\n .getSession()\n .then((multiFactorSession) => {\n const phoneInfoOptions = {\n phoneNumber: `+1${phone.value.replace(/[^A-Z0-9]+/gi, '')}`,\n session: multiFactorSession,\n };\n\n const phoneAuthProvider = new firebase.auth.PhoneAuthProvider();\n return phoneAuthProvider\n .verifyPhoneNumber(phoneInfoOptions, recap.recaptchaVerifier)\n .then(function (verificationId) {\n // verificationId will be needed for enrollment completion.\n setLoading(false);\n toast.success('SMS sent Successfully');\n setVerificationID(verificationId);\n setActiveStep(activeStep + 1);\n })\n .catch((error) => {\n if (error.code === 'auth/unsupported-first-factor') {\n removeAuthToLogin();\n history.push('/login');\n }\n\n if (error.code === 'auth/requires-recent-login') {\n removeAuthToLogin();\n history.push('/login');\n }\n setLoading(false);\n });\n })\n .catch((error) => {\n setLoading(false);\n toast.error(error.message);\n });\n }\n };\n\n const onResendCode = async () => {\n try {\n setLoading(true);\n user.multiFactor.getSession().then((multiFactorSession) => {\n const phoneInfoOptions = {\n phoneNumber: `+1${phone.value.replace(/[^A-Z0-9]+/gi, '')}`,\n session: multiFactorSession,\n };\n\n const phoneAuthProvider = new firebase.auth.PhoneAuthProvider();\n return phoneAuthProvider\n .verifyPhoneNumber(phoneInfoOptions, recap.recaptchaVerifier)\n .then(function (verificationId) {\n // verificationId will be needed for enrollment completion.\n setLoading(false);\n\n setVerificationID(verificationId);\n });\n });\n toast.success('SMS re-sent Successfully');\n } catch (error) {\n setLoading(false);\n toast.error(error.message);\n }\n };\n\n const onVerifyCode = async () => {\n if (!code) {\n toast.error('Please fill the code sent to your phone number.');\n return;\n }\n\n try {\n setLoading(true);\n const cred = await firebase.auth.PhoneAuthProvider.credential(verificationID, code);\n\n const multiFactorAssertion = firebase.auth.PhoneMultiFactorGenerator.assertion(cred);\n user.multiFactor\n .enroll(multiFactorAssertion, 'My personal phone number')\n .then(() => {\n window.location.reload();\n setTimeout(() => {\n setLoading(false);\n setActiveStep(activeStep + 1);\n }, 2000);\n })\n .catch((error) => {\n if (error.code === 'auth/invalid-verification-code') {\n toast.error('Upps! Wrong code');\n }\n setLoading(false);\n });\n } catch (error) {\n toast.error(error.message);\n setLoading(false);\n }\n };\n\n function onHandler() {\n if (activeStep === 1) {\n onNextStep();\n } else if (activeStep === 2) {\n onVerifyCode();\n } else if (activeStep === 3) {\n history.push('/');\n }\n }\n\n return (\n <>\n <Box\n height=\"116.1vh\"\n width=\"100%\"\n display=\"flex\"\n style={{ background: '#FAFBFF' }}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Box\n width=\"100%\"\n maxWidth=\"650px\"\n height=\"374px\"\n style={{ background: '#fff' }}\n padding=\"32px\"\n borderRadius=\"4px\"\n boxShadow=\"0 3px 6px #0000000D\"\n >\n <Box display=\"flex\" flexDirection=\"column\" height=\"100%\">\n <Box flexGrow=\"1\">\n <Typography style={{ color: '#000000DE', fontSize: 22 }}>Setup Two Factor Authentication</Typography>\n {activeStep < 3 && (\n <Steps activeStep={activeStep} className={classes.stepper} typeFormColor=\"#2E66FE\">\n {steps?.map((status) => (\n <Step key={status}>\n <StepLabel className={classes.stepLabel}>{status}</StepLabel>\n </Step>\n ))}\n </Steps>\n )}\n {activeStep === 0 && <MfaVerifyEmail />}\n {activeStep === 1 && <MfaStep1 phone={phone} />}\n {activeStep === 2 && (\n <MfaStep2 phoneNumber={phone.value} code={code} setCode={setCode} resendCode={onResendCode} />\n )}\n {activeStep === 3 && <MfaStep3 />}\n </Box>\n\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Box>\n {!shouldShowSkip && (\n <Button\n data-testid=\"mfa-button-skip\"\n style={{\n color: '#2E66FE',\n fontSize: 14,\n fontWeight: '500',\n textTransform: 'capitalize',\n }}\n onClick={() => history.push('/cases')}\n >\n Skip <ArrowRightAltIcon style={{ fontSize: 10 }} htmlColor=\"#2E66FE\" />\n </Button>\n )}\n </Box>\n <Box display=\"flex\" alignItems=\"center\">\n {activeStep === 2 && (\n <Button\n data-testid=\"mfa-button-back\"\n variant=\"outlined\"\n onClick={() => {\n setActiveStep(activeStep - 1);\n }}\n style={{\n borderColor: '#2F4F77',\n color: '#2F4F77',\n marginRight: 10,\n }}\n >\n Back\n </Button>\n )}\n\n {activeStep > 0 && (\n <Button\n data-testid=\"mfa-button-next\"\n variant=\"contained\"\n onClick={onHandler}\n style={{ background: '#2F4F77', color: '#fff' }}\n disabled={loading}\n >\n {loading ? <CircularProgress size=\"20px\" style={{ color: '#fff' }} /> : 'Next'}\n </Button>\n )}\n </Box>\n </Box>\n </Box>\n </Box>\n </Box>\n <Box position=\"absolute\" style={{ bottom: 100, right: 20 }}>\n <Button\n data-testid=\"mfa-button-logout\"\n variant=\"contained\"\n onClick={removeAuth}\n style={{ background: '#2F4F77', color: '#fff' }}\n disabled={loading}\n >\n Log out\n </Button>\n </Box>\n <div id=\"recaptcha-container\" />\n </>\n );\n};\n\nconst Steps = styled(Stepper)`\n .MuiStepIcon-root {\n border: 1px solid #ccc;\n border-radius: 50%;\n color: transparent;\n .MuiStepIcon-text {\n fill: #000000ad;\n }\n }\n .MuiStepIcon-root.MuiStepIcon-active {\n border: 1px solid #4b7bff;\n border-radius: 50%;\n background-color: #4b7bff !important;\n color: #4b7bff !important;\n .MuiStepIcon-text {\n fill: #fff;\n }\n }\n\n /* .MuiStepIcon-root.MuiStepIcon-active {\n color: #fff !important;\n .MuiStepIcon-text {\n fill: #000;\n }\n }\n .MuiStepIcon-root.MuiStepIcon-completed {\n color: #4b7bff !important;\n }\n .MuiStepLabel-label {\n color: #fff !important;\n } */\n\n ${(props) =>\n props.typeFormColor &&\n `\n .MuiStepIcon-root.MuiStepIcon-completed {\n color: ${props.typeFormColor} !important;\n border: 0;\n .MuiStepLabel-labelContainer.MuiStepLabel-label {\n color: #000000AD;\n }\n }\n .MuiStepLabel-label.MuiStepLabel-completed {\n color: #000000AD;\n font-weight: 500;\n }\n `}\n\n .MuiStepLabel-label {\n color: #00000099 !important;\n }\n\n width: unset;\n margin: auto;\n @media screen and (min-width: 600px) {\n width: 100%;\n }\n`;\n\nMfa.propTypes = {\n shouldShowSkip: PropTypes.bool,\n};\n\nexport default Mfa;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst colorsByPriority = [\n {\n low: {\n color: '#FEB535',\n backgroundColor: '#fcf7d2',\n },\n },\n {\n high: {\n color: '#FF4242',\n backgroundColor: '#FEBFBF',\n },\n },\n {\n medium: {\n color: '#fca249',\n backgroundColor: '#FFE4C9',\n },\n },\n];\n\nconst getColorByPriority = (priority, selectedPriority) => {\n const color = colorsByPriority.find((clr) => clr[priority]);\n if (selectedPriority) {\n return {\n backgroundColor: color[priority].color,\n };\n }\n return color[priority];\n};\n\nexport default function LabelWithColor({ label, priority = 'medium', selectedPriority }) {\n return <LabelContainer style={getColorByPriority(priority, selectedPriority)}>{label}</LabelContainer>;\n}\n\nconst LabelContainer = styled.div`\n border-radius: 120px;\n padding: 5px 10px;\n text-align: center;\n font-size: 12px;\n font-weight: 500;\n width: 100%;\n`;\n","import { Box, Button, CircularProgress, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { DropzoneArea } from 'material-ui-dropzone';\nimport { toast } from '../../../components/Notification';\nimport MultiSelectBox from '../../../components/MultiSelectBox';\nimport { genderOptions, raceEthnicityOptions } from '../../../utils/options';\nimport { FillInputPhone } from '../../CaseDetails/NewOfficer';\nimport { OutLineInput } from '../../CaseDetails/UpdateCase';\nimport { TextMaskCustom } from '../../Officers/OfficersTable';\nimport officerProfile from '../../../assets/officer.png';\nimport CircularProgressWithLabel from '../../../components/CircularProgressWithLabel';\nimport { ImageContainer, useGlobalStyles } from '../../../styles/GlobalStyles';\n\nconst useStyles = makeStyles(() => ({\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n textTransform: 'capitalize',\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#fff',\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid #4b7bff ',\n color: '#4b7bff',\n '&:hover': {\n background: '#fff',\n border: '1px solid #4b7bff ',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n textTransform: 'capitalize',\n },\n}));\n\n/**\n * EditOfficer component for editing an officer's profile.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {Object} props.phone - Phone number object with value and onChange handler.\n * @param {Object} props.firstName - First name object with value, onChange handler, and error.\n * @param {Object} props.lastName - Last name object with value, onChange handler, and error.\n * @param {Object} props.gender - Gender value and setter function.\n * @param {Function} props.setGender - Function to set the gender.\n * @param {Object} props.race - Race value and setter function.\n * @param {Function} props.setRace - Function to set the race.\n * @param {Function} props.onSave - Function to handle save action.\n * @param {boolean} props.loading - Loading state for the save button.\n * @param {Object} props.image - Image object containing the public_url.\n * @param {Function} props.uploadOnLoad - Function to handle image upload.\n * @param {number} props.loadingPercentage - Percentage of image upload completion.\n * @param {Function} props.onCancel - Function to handle cancel action.\n * @param {Object} props.email - Email object with value, onChange handler, and error.\n * @returns {React.ReactElement} The EditOfficer component.\n */\nexport default function EditOfficer({\n phone,\n firstName,\n lastName,\n gender,\n setGender,\n race,\n setRace,\n onSave,\n loading,\n image,\n uploadOnLoad,\n loadingPercentage,\n onCancel,\n email,\n}) {\n const classes = useStyles();\n const globalClasses = useGlobalStyles();\n\n return (\n <Box minWidth={300}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Edit Profile</Typography>\n <Box mt={2} position=\"relative\" display=\"flex\" alignItems=\"center\">\n <img\n src={image?.public_url || officerProfile}\n alt=\"profileImg\"\n className={classes.img}\n style={{ cursor: 'pointer' }}\n />\n <ImageContainer>\n <DropzoneArea\n inputProps={{ multiple: false }}\n maxFileSize={500000000}\n onDropRejected={(files) => {\n if (files[0].size > 1000000) {\n toast.error(\n 'The file is too large, please upload to a file repository and share the link on incident External links section.'\n );\n }\n }}\n onChange={(fl) => {\n if (fl.length > 0) {\n uploadOnLoad(fl[fl.length - 1]);\n }\n }}\n clearOnUnmount\n filesLimit={1}\n showPreviewsInDropzone={false}\n />\n </ImageContainer>\n {loadingPercentage > 0 && loadingPercentage < 100 ? (\n <Box\n className={globalClasses.boxProgressWithLabel}\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n style={{ backgroundColor: 'rgba(0, 0, 0, .1)' }}\n >\n <CircularProgressWithLabel value={loadingPercentage} />\n </Box>\n ) : null}\n </Box>\n <Box mt={2}>\n <Typography variant=\"body2\" className={classes.label}>\n First Name <strong style={{ color: 'red' }}>*</strong>\n </Typography>\n <OutLineInput\n placeholder=\"First Name\"\n value={firstName.value}\n onChange={firstName.onChange}\n error={firstName.error}\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n 'data-testid': 'officer-edit-input-first-name',\n }}\n labelWidth={0}\n />\n <span className={classes.labelError}>{firstName.error}</span>\n </Box>\n <Box mt={2}>\n <Typography variant=\"body2\" className={classes.label}>\n Last Name <strong style={{ color: 'red' }}>*</strong>\n </Typography>\n <OutLineInput\n placeholder=\"Last Name\"\n value={lastName.value}\n onChange={lastName.onChange}\n error={lastName.error}\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n 'data-testid': 'officer-edit-input-last-name',\n }}\n labelWidth={0}\n />\n <span className={classes.labelError}>{lastName.error}</span>\n </Box>\n <Box mt={2}>\n <Typography variant=\"body2\" className={classes.label}>\n Email\n </Typography>\n <OutLineInput\n placeholder=\"Email\"\n value={email.value}\n onChange={email.onChange}\n error={email.error}\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n 'data-testid': 'officer-edit-input-email',\n }}\n labelWidth={0}\n />\n <span className={classes.labelError}>{email.error}</span>\n </Box>\n <Box mt={2}>\n <Typography variant=\"body2\" className={classes.label}>\n Phone\n </Typography>\n <FillInputPhone\n value={phone.value}\n onChange={phone.onChange}\n autoComplete=\"off\"\n name=\"textmask\"\n style={{\n width: '100%',\n color: '#000',\n }}\n error={phone.error}\n id=\"formatted-text-mask-input\"\n inputComponent={TextMaskCustom}\n inputProps={{\n 'data-testid': 'officer-edit-input-phone',\n }}\n />\n <span className={classes.labelError}>{phone.error}</span>\n </Box>\n <Box mt={2}>\n <Typography variant=\"body2\" className={classes.label}>\n Gender{' '}\n </Typography>\n <MultiSelectBox\n dataTestId=\"officer-edit-select-gender\"\n value={gender}\n onChange={(e) => setGender(e.target.value)}\n id=\"genderMultiSelect\"\n options={genderOptions || []}\n />\n </Box>\n <Box mt={2}>\n <Typography variant=\"body2\" className={classes.label}>\n Race/Ethnicity{' '}\n </Typography>\n <MultiSelectBox\n dataTestId=\"officer-edit-select-race-ethnicity\"\n value={race}\n onChange={(e) => setRace(e.target.value)}\n id=\"raceEthnicityMultiSelect\"\n options={raceEthnicityOptions || []}\n />\n </Box>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" mt={3}>\n <Button\n data-testid=\"officer-edit-button-cancel\"\n onClick={onCancel}\n className={classes.buttonOutlined}\n variant=\"outlined\"\n >\n Cancel\n </Button>\n <Button data-testid=\"officer-edit-button-save\" onClick={onSave} className={classes.button} disabled={loading}>\n {loading ? <CircularProgress color=\"#fff\" size=\"25px\" /> : 'Save'}\n </Button>\n </Box>\n </Box>\n );\n}\n\nEditOfficer.propTypes = {\n phone: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n }).isRequired,\n firstName: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n }).isRequired,\n lastName: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n }).isRequired,\n gender: PropTypes.oneOfType([PropTypes.string, PropTypes.array]).isRequired,\n setGender: PropTypes.func.isRequired,\n race: PropTypes.oneOfType([PropTypes.string, PropTypes.array]).isRequired,\n setRace: PropTypes.func.isRequired,\n onSave: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n image: PropTypes.shape({\n public_url: PropTypes.string,\n }),\n uploadOnLoad: PropTypes.func.isRequired,\n loadingPercentage: PropTypes.number.isRequired,\n onCancel: PropTypes.func.isRequired,\n email: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n }).isRequired,\n};\n\nEditOfficer.defaultProps = {\n image: officerProfile,\n};\n","import React from 'react';\nimport { Box, Typography, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n contactAttr: {\n fontSize: 12,\n color: '#a1a1a1',\n wordWrap: 'break-word',\n overflowWrap: 'break-word'\n },\n contactAttrText: {\n fontSize: 14,\n color: '#000',\n wordWrap: 'break-word',\n overflowWrap: 'break-word'\n },\n}));\n\nconst UserAttr = ({ title, value }) => {\n const classes = useStyles();\n\n const displayValue = () => {\n if (value === true) return 'true';\n if (value === false) return 'false';\n return value || 'Not Specified';\n };\n\n return (\n <Box mb={1} style={{ maxWidth: '100%' }}>\n <Typography className={classes.contactAttr}>{title}</Typography>\n <Typography className={classes.contactAttrText}>{displayValue()}</Typography>\n </Box>\n );\n};\n\nUserAttr.propTypes = {\n title: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport default UserAttr;\n","import {\n Backdrop,\n Box,\n Button,\n Checkbox,\n CircularProgress,\n Fade,\n FormControlLabel,\n makeStyles,\n Modal,\n Typography,\n useMediaQuery,\n Grid,\n Divider,\n} from '@material-ui/core';\nimport { DropzoneArea } from 'material-ui-dropzone';\nimport React, { useEffect, useState } from 'react';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport BackupIcon from '@material-ui/icons/Backup';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport { onUpdateOfficerProfile, uploadFormImg } from '../../services/unarmed';\nimport officerProfile from '../../assets/officer.png';\nimport LabelWithColor from './LabelWithColor';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport EditOfficer from './components/EditOfficer';\nimport UserAttr from '../../components/UserAttr';\nimport { ModalCreateOrEditOfficer } from '../Officers/components/modalCreateOrEditOfficer';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#fff',\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid #4b7bff ',\n color: '#4b7bff',\n '&:hover': {\n background: '#fff',\n border: '1px solid #4b7bff ',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n img: {\n width: theme.spacing(18),\n height: theme.spacing(18),\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#F9FAFF',\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: 20,\n },\n}));\n\nconst turnOnRiskLevels = (currentRisk, riskLevel) => {\n if (riskLevel === 'LOW') {\n return currentRisk === 'low' ? 'LOW' : null;\n }\n if (riskLevel === 'MEDIUM') {\n if (currentRisk === 'low') {\n return 'LOW';\n }\n return currentRisk === 'medium' ? 'MEDIUM' : null;\n }\n if (riskLevel === 'HIGH') {\n return 'HIGH';\n }\n return null;\n};\n\n/**\n * Officer Information Component\n * @param {Object} props - Component props\n * @param {Object} props.officer - Officer object\n * @param {string} props.firstName - First name of the officer\n * @param {string} props.badge - Badge number of the officer\n * @param {string} props.lastName - Last name of the officer\n * @param {boolean} props.loading - Loading indicator\n * @param {string} props.phone - Phone number of the officer\n * @param {string} props.id - Officer ID\n * @param {Function} props.setOfficer - Function to set officer data\n * @param {string} props.gender - Gender of the officer\n * @param {Function} props.setGender - Function to set officer gender\n * @param {Function} props.setRace - Function to set officer race\n * @param {string} props.race - Race of the officer\n * @param {Function} props.renderCards - Function to render cards\n * @param {string} props.email - Email of the officer\n * @param {Object} props.organization - Organization object\n * @returns {JSX.Element} OfficerInfo component\n */\nconst OfficerInfo = ({\n officer,\n firstName,\n badge,\n lastName,\n loading,\n phone,\n id,\n setOfficer,\n gender,\n setGender,\n setRace,\n race,\n renderCards,\n email,\n organization,\n}) => {\n const classes = useStyles();\n const matches = useMediaQuery('(min-width: 1400px)');\n const [open, setOpen] = React.useState(false);\n const [image, setImage] = useState({});\n const [firstNameOfficer, setFirstNameOfficer] = useState('');\n const [lastNameOfficer, setLastNameOfficer] = useState('');\n const [uniqueIdentifier, setUniqueIdentifier] = useState('');\n const [hashFile, setHashFile] = useState('');\n const [loadingUpdateProfile, setLoadingUpdateProfile] = useState(false);\n const [customFields, setCustomFields] = useState([]);\n const [openEdit, setOpenEdit] = useState(false);\n const [bradyList, setBradyList] = useState(false);\n const [loadingPercentage, setLoadingPercentage] = useState(0);\n const [editingImg, setEditingImg] = useState({});\n const [stateSubmit, setStateSubmit] = useState(false);\n\n useEffect(() => {\n if (officer?._id) {\n setUniqueIdentifier(officer?.uniqueFieldId?.value);\n setImage(officer?.photo);\n setEditingImg(officer?.photo);\n setBradyList(officer?.bradyList);\n if (officer?.customFields?.length > 0) {\n const firstName = officer?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'First Name'\n );\n\n const lastName = officer?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'Last Name'\n );\n\n if (!firstName?.value || !lastName?.value) {\n const names = officer?.customFields?.[0]?.sections?.[0]?.components?.filter(\n (field) => field?.data?.special === true\n );\n\n if (names && names.at(0)) {\n setFirstNameOfficer(names[0]?.value);\n }\n\n if (names && names.at(1)) {\n setLastNameOfficer(names[1]?.value);\n }\n\n if (!names || (!names.at(0) && !names.at(1))) {\n setFirstNameOfficer('Not');\n setLastNameOfficer('Specified');\n }\n }\n\n setFirstNameOfficer(firstName?.value);\n setLastNameOfficer(lastName?.value);\n\n const components = officer?.customFields[0].sections[0].components;\n const result = components.map((component) => {\n return {\n visible: component?.data?.visible,\n question: component?.data?.question,\n value: component?.value,\n type: component?.type,\n };\n });\n setCustomFields(result);\n }\n }\n }, [officer]);\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const onSave = async () => {\n const profileData = {\n firstName: firstName.value,\n lastName: lastName.value,\n badgeNumber: badge.value,\n phoneNumber: phone.value,\n email: email.value,\n gender,\n raceEthnicity: race,\n };\n if (hashFile) {\n profileData.photo = hashFile;\n }\n setLoadingUpdateProfile(true);\n onUpdateOfficerProfile(id, profileData)\n .then((res) => {\n setOfficer(res);\n\n toast.success('Officer profile updated Successfully');\n setOpenEdit(false);\n })\n .catch((err) => {\n toast.error(err.response?.data?.error?.details[0]?.message || 'Something went Wrong');\n })\n .finally(() => {\n setLoadingUpdateProfile(false);\n });\n };\n\n const onUpdateBradyList = async (bl) => {\n const profileData = {\n bradyList: bl,\n };\n\n onUpdateOfficerProfile(id, profileData)\n .then((res) => {\n setOfficer(res);\n setBradyList(bl);\n toast.success('Officer brady list updated Successfully');\n })\n .catch((err) => {\n toast.error(err.response?.data?.error?.details[0]?.message || 'Something went Wrong');\n })\n .finally(() => {\n setOpenEdit(false);\n setLoadingUpdateProfile(false);\n });\n };\n\n const uploadOnLoad = async (fl) => {\n const imgData = new FormData();\n imgData.append('file', fl);\n imgData.append('organizationId', organization?._id);\n setOpen(false);\n try {\n const img = await uploadFormImg(imgData, setLoadingPercentage);\n setEditingImg({\n mimetype: img.mimetype,\n public_url: img.publicUrl,\n download_url: img.download_url,\n });\n setHashFile(img.hashId);\n } catch (error) {\n console.log(error);\n }\n };\n const onCancel = () => {\n setImage(officer?.photo || officerProfile);\n setHashFile('');\n firstName.setValue(officer.firstName);\n lastName.setValue(officer.lastName);\n badge.setValue(officer.badgeNumber);\n setGender(officer.gender);\n setRace(officer.raceEthnicity);\n setOpenEdit(false);\n };\n\n useEffect(() => {\n if (stateSubmit) {\n window.location.reload();\n }\n }, [stateSubmit]);\n\n return (\n <>\n <Box width=\"100%\" bgcolor=\"#fff\">\n <Box\n width=\"100%\"\n display=\"flex\"\n padding={2}\n alignItems=\"center\"\n borderBottom=\"1px solid #0000001F\"\n justifyContent=\"space-between\"\n >\n <Typography variant=\"h5\">Officer Profile</Typography>\n <Button\n data-testid=\"officer-profile-button-edit\"\n onClick={() => setOpenEdit(true)}\n color=\"primary\"\n variant=\"contained\"\n className={classes.button}\n >\n Edit Profile\n </Button>\n </Box>\n {loading ? (\n <Box width=\"100%\" height=\"300px\" display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n <CircularProgress color=\"#000\" size=\"40px\" />\n </Box>\n ) : (\n <Box paddingX={4} paddingY={3}>\n <Box width=\"100%\" alignItems=\"center\" display=\"flex\" justifyContent=\"space-between\" height={200}>\n <Box display=\"flex\" alignItems=\"center\">\n <Box mr={2} width=\"180px\">\n <img src={image?.public_url || officerProfile} alt=\"profileImg\" className={classes.img} />\n </Box>\n <Box display=\"flex\" justifyContent=\"flex-start\" flexDirection=\"column\">\n <Typography variant=\"h5\" style={{ fontSize: 20, fontWeight: 'bold' }}>\n {`${firstNameOfficer} ${lastNameOfficer}`}\n </Typography>\n <UserAttr title=\"Unique Identifier\" value={uniqueIdentifier || 'N/A'} />\n <UserAttr\n title=\"Early Intervention System\"\n value={`${officer?.EIS?.complaints} Complaints / ${\n organization?.EIS?.riskLevel?.evaluationTime || 0\n } Months`}\n />\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 5 }} minWidth=\"200px\">\n <LabelWithColor\n priority=\"low\"\n label=\"\"\n selectedPriority={turnOnRiskLevels('low', turnOnRiskLevels('low', officer?.EIS?.riskLevel))}\n />\n <LabelWithColor\n priority=\"medium\"\n label=\"\"\n selectedPriority={turnOnRiskLevels('medium', turnOnRiskLevels('medium', officer?.EIS?.riskLevel))}\n />\n <LabelWithColor\n priority=\"high\"\n label=\"\"\n selectedPriority={turnOnRiskLevels('high', turnOnRiskLevels('high', officer?.EIS?.riskLevel))}\n />\n </Box>\n </Box>\n </Box>\n {matches ? renderCards() : null}\n </Box>\n {matches ? null : renderCards()}\n <Grid container alignItems=\"center\">\n <Grid item xs={12}>\n <Box paddingY={4}>\n <Divider />\n </Box>\n <Box display=\"grid\" gridTemplateColumns=\"repeat(auto-fit, minmax(225px, 1fr))\" gridGap=\"8px\">\n {customFields?.map((field) => {\n if (!field.visible) return;\n return (\n <div key={field?.dataReportLink}>\n <UserAttr\n title={field?.question}\n value={\n Array.isArray(field?.value)\n ? field?.value.length > 0\n ? field?.value.join(', ')\n : 'N/A'\n : typeof field?.value === 'boolean'\n ? field?.value\n ? 'Yes'\n : 'No'\n : field?.value || 'N/A'\n }\n />\n </div>\n );\n })}\n </Box>\n </Grid>\n </Grid>\n </Box>\n )}\n </Box>\n <ModalCreateOrEditOfficer\n officer={officer}\n open={openEdit}\n setOpen={setOpenEdit}\n stateSubmit={stateSubmit}\n setStateSubmit={setStateSubmit}\n />\n <Modal\n aria-labelledby=\"transition-modal-title\"\n aria-describedby=\"transition-modal-description\"\n className={classes.modal}\n open={open}\n onClose={handleClose}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={open}>\n <div className={classes.paper}>\n <Box display=\"flex\" justifyContent=\"flex-end\">\n <CancelIcon style={{ cursor: 'pointer' }} onClick={() => setOpen(false)} />\n </Box>\n <DropzoneArea\n // acceptedFiles={[\"image/jpeg\", \"image/png\", \"image/jpg\"]}\n dropzoneClass=\"default-dropzone-class\"\n maxFileSize={5000000}\n onChange={(fl) => {\n if (fl.length > 0) {\n uploadOnLoad(fl[fl.length - 1]);\n }\n }}\n filesLimit={3}\n dropzoneText=\"Click or drag and drop an image here\"\n showPreviewsInDropzone={false}\n Icon={() => <BackupIcon fontSize=\"large\" htmlColor=\"#A2BAFF\" />}\n />\n </div>\n </Fade>\n </Modal>\n </>\n );\n};\n\nOfficerInfo.propTypes = {\n officer: PropTypes.object,\n firstName: PropTypes.string,\n badge: PropTypes.string,\n lastName: PropTypes.string,\n loading: PropTypes.bool,\n phone: PropTypes.string,\n id: PropTypes.string,\n setOfficer: PropTypes.func,\n gender: PropTypes.string,\n setGender: PropTypes.func,\n setRace: PropTypes.func,\n race: PropTypes.string,\n renderCards: PropTypes.func,\n email: PropTypes.string,\n organization: PropTypes.object,\n};\n\nexport default OfficerInfo;\n","import { Tabs } from '@material-ui/core';\nimport React from 'react';\nimport { TabComp } from '../../CaseDetails/CaseDetails';\n\nconst tabsArray = [\n { label: 'Actions', value: 0 },\n { label: 'Recommendations', value: 1 },\n { label: 'Contacts', value: 2 },\n { label: 'Notes', value: 3 },\n { label: 'Attachments', value: 4 },\n { label: 'History', value: 5 },\n];\n\nexport default function HeaderTabs({ tabValue, handleChangeTab, a11yProps, tabs = tabsArray }) {\n return (\n <div>\n <Tabs\n value={tabValue}\n onChange={handleChangeTab}\n aria-label=\"simple tabs example\"\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n {tabs.map((tab, i) => (\n <TabComp label={tab.label} {...a11yProps(tab.value)} key={i} />\n ))}\n </Tabs>\n </div>\n );\n}\n","import { Avatar, Box, makeStyles, TableCell, TableRow, Typography } from '@material-ui/core';\nimport React, { useEffect, useState, useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport moment from 'moment';\nimport { Context } from '../../Context';\nimport useOrganization from '../../hooks/useOrganization';\nimport EnhancedTable from '../../components/Table';\nimport formatTxt from '../../utils/formatText';\nimport { transformStatus } from '../../utils';\nimport { getCivilianCases } from '../../services/unarmed';\n\nconst columns = ['Type', 'Tracking Number', 'Created Date', 'Name', 'Assigned To', 'Status'];\n\nconst getStatusTitle = (row) => {\n const currentStatus = row?.availableStatuses?.filter((status) => status.status === row?.status);\n return transformStatus(currentStatus[0]?.status);\n};\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n outline: 0,\n },\n}));\n\nexport default function OfficerCases({ uniqueFieldId, officerBadgeNumber }) {\n const classes = useStyles();\n const { myUser } = useContext(Context);\n const { organization } = useOrganization();\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const [forms, setForms] = useState([]);\n const [loading, setLoading] = useState(false);\n const [filteredCaseCount, setFilteredCaseCount] = useState(0);\n\n const history = useHistory();\n\n useEffect(() => {\n const getFormsCivilians = async () => {\n try {\n setLoading(true);\n const { data, headers } = await getCivilianCases({\n token: '',\n page,\n limit: rowsPerPage,\n sortBy,\n sort,\n isFiltering: true,\n type: '',\n from: null,\n to: null,\n code: '',\n status: '',\n name: '',\n assignedTo: '',\n uniqueFieldId,\n badgeNumber: '',\n transferredOnly: false,\n });\n\n setForms({ data, headers });\n } catch (error) {\n console.log(error.message);\n } finally {\n setLoading(false);\n }\n };\n\n if (uniqueFieldId?.value) {\n getFormsCivilians();\n }\n }, [page, rowsPerPage, sortBy, sort, uniqueFieldId]);\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const goToCaseDetails = (e, row, handleClick) => {\n history.push(`/case/${row.code}`);\n };\n const renderRow = (row, index, handleClick) => (\n <TableRow\n hover\n tabIndex={-1}\n key={index}\n className={classes.row}\n style={{\n cursor: 'pointer',\n height: 50,\n maxHeight: 50,\n background: '#fff',\n }}\n >\n <TableCell\n component=\"th\"\n scope=\"row\"\n align=\"left\"\n onClick={(e) => goToCaseDetails(e, row, handleClick)}\n style={{\n color: row.type === 'COMPLAINT' ? '#FF4242' : row.type === 'COMPLIMENT' ? '#008858' : '#2E66FE',\n textTransform: 'capitalize',\n fontWeight: '500',\n }}\n >\n {row.type?.toLowerCase()}\n {row?.archived && <Typography style={{ fontSize: 10, color: '#585858' }}>Archived</Typography>}\n </TableCell>\n\n <TableCell align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {row.code}\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n {moment(row.createdAt).format('MMMM DD, YYYY')}\n </TableCell>\n <TableCell\n align=\"left\"\n style={{ textTransform: 'capitalize' }}\n onClick={(e) => goToCaseDetails(e, row, handleClick)}\n >\n {row.civilian?.firstName\n ? `${formatTxt(row.civilian?.firstName, 10)} ${formatTxt(row.civilian?.lastName, 10)}`\n : ''}\n </TableCell>\n\n <TableCell align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-start\">\n {row?.assigned.map((user, i) => {\n if (i === 0) {\n if (user?.photo?.url || user?.profile_img) {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Avatar\n src={user?.photo?.url || user?.profile_img}\n style={{ marginRight: 10, width: 30, height: 30 }}\n />\n <Typography variant=\"subtitle2\">{`${formatTxt(user.firstName, 20)} ${formatTxt(\n user?.lastName,\n 20\n )}`}</Typography>\n </Box>\n );\n }\n\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <AccountCircleIcon htmlColor=\"#364F74\" fontSize=\"large\" style={{ marginRight: 10 }} />\n <Typography variant=\"subtitle2\">\n {' '}\n {user?.firstName ? `${user?.firstName} ${user?.lastName}` : 'Unassigned'}\n </Typography>\n </Box>\n );\n }\n })}\n {row?.assigned?.length > 1 && (\n <span style={{ color: 'rgb(75, 123, 255)', marginLeft: 20 }}>(+{row?.assigned?.length - 1})</span>\n )}\n </Box>\n </TableCell>\n <TableCell align=\"left\" onClick={(e) => goToCaseDetails(e, row, handleClick)}>\n <p style={{ fontWeight: '500' }}>{getStatusTitle(row)}</p>\n <p style={{ fontSize: 12, color: '#585858' }}>\n {row?.statusLog && moment(row?.statusLog?.[row?.status]?.datetime).format('MMMM DD, hh:mm a')}\n </p>\n </TableCell>\n </TableRow>\n );\n return (\n <EnhancedTable\n sort={sort}\n setSort={setSort}\n columns={columns}\n rows={forms.data}\n setSortBy={setSortBy}\n rowRender={renderRow}\n loading={loading}\n page={page}\n setPage={setPage}\n count={filteredCaseCount}\n rowsPerPage={rowsPerPage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n />\n );\n}\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React, { useContext, useState } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { downloadImage } from '../../../utils/libs';\nimport LogIcon from '../../../components/LogIcon';\nimport TimeLineItem from '../../Activity/TimeLineItem';\nimport HTMLContent from '../../../components/HTMLContent';\nimport Tags from '../../../components/Tags';\nimport CarouselModal from '../../../components/CarouselModal';\nimport ArchivedImage from '../../../components/ArchivedImage';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { CustomModalDelete } from '../../../components/CustomModalDelete';\nimport TimeLineItemNotes from '../../Activity/TimeLineItemNotes';\nimport useOrganization from '../../../hooks/useOrganization';\nimport { Context } from '../../../Context';\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n imgModal: {\n objectFit: 'contain',\n maxWidth: 600,\n maxHeight: 400,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n emphasis: {\n color: '#4b7bff',\n textTransform: 'capitalize',\n fontWeight: '600',\n },\n deleteButton: {\n color: '#848484',\n cursor: 'pointer',\n fontSize: '24px',\n display: 'none',\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n position: 'absolute',\n top: '12px',\n right: '12px',\n },\n timelineItem: {\n fontSize: 14,\n position: 'relative',\n '&:hover': {\n '& $editButton': {\n display: 'block',\n },\n '& $deleteButton': {\n display: 'block',\n },\n },\n },\n}));\n\nconst UserInfo = ({ user, userInfo }) => {\n const email = user?.email || userInfo?.email;\n return email ? <strong>{email}</strong> : 'A user';\n};\n\nUserInfo.propTypes = {\n user: PropTypes.string.isRequired,\n userInfo: PropTypes.shape({\n name: PropTypes.string.isRequired,\n age: PropTypes.number.isRequired,\n email: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default function Log({ createdAt, files = [], comment, user, userInfo, meeting, intervene, handleRestoreClick, handleDeleteNote, archivedDate }) {\n const classes = useStyles();\n const { organization } = useOrganization();\n const { myUser } = useContext(Context);\n const [open, setOpen] = React.useState(false);\n const [openDelete, setOpenDelete] = useState(false)\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const handleOpen = (filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter((flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video'));\n setFilesSelected({ files: filesToOpen, selectedFileIndex: 0 });\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n };\n\n const handleClickEvents = (fl) => ({\n onDownload: () => downloadImage(fl.download_url, fl.name),\n onClick: () => handleOpen(files),\n });\n\n const renderName = (wholeName = false) => {\n if (userInfo && !wholeName) {\n return `${userInfo?.email[0]?.toUpperCase()} ${userInfo?.email[1]?.toUpperCase()}`;\n }\n\n if (userInfo && wholeName) {\n return userInfo?.email;\n }\n\n if (!user && !userInfo && !wholeName) {\n return 'DU';\n }\n if (!user && !userInfo && wholeName) {\n return 'Deleted User';\n }\n };\n\n const getCanDelete = () => {\n if(myUser.role === 'admin' && organization?.permissions?.[myUser?.role]?.canDeleteNotesOfficers !== 0 ){\n return true\n }else if(organization?.permissions?.[myUser?.role]?.canDeleteNotesOfficers !== 0 && (myUser._id === user._id) ){\n return true\n }else{\n return false\n }\n }\n\n const renderLog = () => {\n const hasFiles = files.length > 0;\n const hasComment = !!comment;\n const hasBoth = hasFiles && hasComment;\n\n return (\n <>\n <UserInfo user={user} userInfo={userInfo} />{' '}\n {hasComment && (\n <>\n made a <span className={classes.emphasis}>new comment</span>\n </>\n )}\n {hasBoth && ' and '}\n {hasFiles && (\n <>\n <span className={classes.emphasis}>uploaded {files.length}</span> file(s)\n </>\n )}{' '}\n {intervene && (\n <>\n to <span className={classes.emphasis}>{intervene}</span>\n </>\n )}\n {typeof meeting === 'number' && (\n <>\n to <span className={classes.emphasis}>{`${meeting} months meeting`}</span>\n </>\n )}\n {hasComment && (\n <>\n <HTMLContent content={comment} />\n </>\n )}\n {hasFiles && (\n <>\n <Box display=\"flex\" flexDirection=\"column\">\n {files.map((file, index) => {\n const showPreview = !file?.archivedDate;\n return (\n <div key={index}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-start\">\n <PreviewImg\n key={file._id}\n style={\n !file.name.includes('.pdf')\n ? { height: 100, margin: 6 }\n : { minHeight: 35, width: 'fit-content' }\n }\n >\n {showPreview ? (\n <LogIcon fl={file} handleClickEvents={handleClickEvents(file)} index={index} />\n ) : (\n <ArchivedImage />\n )}\n </PreviewImg>\n <Typography style={{ fontSize: 14 }}>{file.name}</Typography>\n </Box>\n <Tags fileId={file?._id} defaultTags={file?.tags || []} allTags={[]} tagsRecently={[]} />\n </div>\n );\n })}\n </Box>\n </>\n )}\n </>\n );\n };\n\n return (\n <>\n <TimeLineItemNotes\n createdAt={createdAt}\n profileImg={null}\n avatar={renderName()}\n onRestoreClick={handleRestoreClick}\n archivedDate={archivedDate}\n //canEdit={myUser?._id === createdBy?._id}\n canDelete={getCanDelete() }\n onDeleteClick={() => setOpenDelete(true)}\n editing={false} >\n {renderLog()}\n <CustomModalDelete\n open={openDelete}\n handleClose={() => setOpenDelete(false)}\n fileName={comment}\n onConfirm={handleDeleteNote}\n />\n </TimeLineItemNotes>\n <CarouselModal\n open={open}\n setOpen={setOpen}\n filesSelected={filesSelected}\n setLoadingOpenFiles={setLoadingOpenFiles}\n loadingOpenFiles={loadingOpenFiles}\n />\n </>\n );\n}\n\nLog.propTypes = {\n handleRestoreClick: PropTypes.func.isRequired,\n handleDeleteNote: PropTypes.func.isRequired,\n archivedDate: PropTypes.instanceOf(Date).isRequired,\n createdAt: PropTypes.instanceOf(Date).isRequired,\n files: PropTypes.arrayOf(PropTypes.string),\n comment: PropTypes.string.isRequired,\n user: PropTypes.string.isRequired,\n userInfo: PropTypes.shape({\n name: PropTypes.string,\n age: PropTypes.number,\n email: PropTypes.string,\n }),\n meeting: PropTypes.shape({\n title: PropTypes.string,\n location: PropTypes.string,\n date: PropTypes.instanceOf(Date),\n }),\n intervene: PropTypes.bool,\n};\n\nconst PreviewImg = styled.div`\n height: 100px;\n position: relative;\n\n overflow: hidden;\n margin-right: 10px;\n & div:hover {\n opacity: 1;\n }\n`;\n","import { Box, CircularProgress, Typography } from '@material-ui/core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Waypoint } from 'react-waypoint';\nimport { toast } from '../../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport useNearScreen from '../../../hooks/userNearScreen';\nimport { getOfficerLogs, onArchiveNoteOfficer, onUnArchiveNoteOfficer } from '../../../services/unarmed';\nimport Log from './Log';\n\nconst sortByCreatedAt = (data, order = 'desc') => {\n return data.sort((x, y) => {\n const dateX = new Date(x.createdAt).getTime();\n const dateY = new Date(y.createdAt).getTime();\n return order === 'asc' ? dateX - dateY : dateY - dateX;\n });\n};\n\nconst useOfficerLogs = (officerId, type, shouldRefetch, sortOrder) => {\n const [logs, setLogs] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [lastId, setLastId] = useState('');\n const [hasNextPage, setHasNextPage] = useState(true);\n\n useEffect(() => {\n const fetchLogs = async () => {\n setLoading(true);\n try {\n const { data } = await getOfficerLogs(officerId, type);\n const sortedData = sortByCreatedAt(data, sortOrder);\n setLogs(sortedData);\n setLastId(sortedData[sortedData.length - 1]?._id);\n } catch (error) {\n toast.error(error?.message);\n } finally {\n setLoading(false);\n }\n };\n if (officerId) {\n fetchLogs();\n }\n }, [officerId, shouldRefetch, type, sortOrder]);\n\n const getMoreLogs = async () => {\n try {\n const { data } = await getOfficerLogs(officerId, type, 15, lastId);\n if (!data.length) {\n setHasNextPage(false);\n return;\n }\n\n if (lastId && typeof lastId === 'string' && lastId !== data[data.length - 1]?._id) {\n const sortedData = sortByCreatedAt([...logs, ...data], sortOrder);\n setLogs(sortedData);\n setLastId(sortedData[sortedData.length - 1]?._id);\n }\n } catch (error) {\n toast.error(error?.message);\n }\n };\n\n return { logs, loading, getMoreLogs, lastId, hasNextPage, setLogs };\n};\n\nexport default function OfficerLogs({ officerId, type, shouldRefetch, sortOrder, archivedOnly }) {\n const { logs, loading, getMoreLogs, lastId, hasNextPage, setLogs } = useOfficerLogs(officerId, type, shouldRefetch, sortOrder);\n const [notesShow, setNotesShow] = useState([]);\n const externalRef = useRef();\n\n useEffect(() => {\n if(archivedOnly) {\n const newLogs = logs.filter(log => log.hasOwnProperty('archivedDate') && log.archivedDate !== null);\n setNotesShow(newLogs)\n }else{\n const newLogsWithoutArchivedDate = logs.filter(log => !log.hasOwnProperty('archivedDate'));\n setNotesShow(newLogsWithoutArchivedDate)\n }\n }, [logs, archivedOnly]);\n\n return (\n <Box\n style={{ background: '#fff', borderRadius: 5 }}\n boxShadow=\"0 3px 6px #00000005\"\n width=\"100%\"\n height=\"fit-content\"\n padding=\"10px\"\n >\n {loading && (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n <CircularProgress color=\"#333\" size=\"30px\" style={{ marginLeft: 10 }} />\n </Box>\n )}\n {notesShow.length === 0 && !loading && (\n <Typography variant=\"body2\" style={{ fontWeight: '500', fontSize: 14, textAlign: 'center' }}>\n There is not any {type} notes added yet\n </Typography>\n )}\n {notesShow.map(({ createdAt, files = [], comment, user, userInfo, meeting, intervene, archivedDate, _id }, index) => (\n <Log\n key={createdAt + index}\n createdAt={createdAt}\n archivedDate={archivedDate}\n files={files}\n handleDeleteNote={async() => {\n await onArchiveNoteOfficer(officerId, _id)\n const { data } = await getOfficerLogs(officerId, type);\n const sortedData = sortByCreatedAt(data, sortOrder);\n setLogs(sortedData);\n }}\n handleRestoreClick={async() => {\n await onUnArchiveNoteOfficer(officerId, _id)\n const { data } = await getOfficerLogs(officerId, type);\n const sortedData = sortByCreatedAt(data, sortOrder);\n setLogs(sortedData);\n }}\n comment={comment}\n user={user}\n userInfo={userInfo}\n meeting={meeting}\n intervene={intervene}\n />\n ))}\n <div id=\"bottom\" ref={externalRef} />\n </Box>\n );\n}\n\nOfficerLogs.propTypes = {\n officerId: PropTypes.number.isRequired,\n type: PropTypes.string.isRequired,\n shouldRefetch: PropTypes.bool.isRequired,\n sortOrder: PropTypes.string.isRequired,\n};\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport { toast } from '../../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport SelectBox from '../../../components/SelectBox';\nimport { addOfficerComments } from '../../../services/unarmed';\nimport CaseComment from '../../CaseDetails/CaseComment';\nimport Card from '../../../components/Card';\nimport { Paper } from '../../../styles/GlobalStyles';\n\nexport default function NoteUpdate({\n organizationId,\n officerId,\n type,\n label,\n options = [],\n value,\n onChange,\n onResetSelect,\n setShouldRefetch,\n}) {\n const handleSave = async (files, comment, resetValues) => {\n try {\n const reqData = {\n type,\n ...(value && type === 'MONITOR' ? { meeting: value?.replace('months meeting', '') } : {}),\n ...(value && type === 'INTERVENE' ? { intervene: value } : {}),\n ...(comment ? { comment } : {}),\n files,\n };\n\n await addOfficerComments(officerId, reqData);\n setShouldRefetch((prevState) => !prevState);\n onResetSelect();\n resetValues();\n toast.success('Comment added successfully');\n } catch (error) {\n toast.error(error.response?.error.details[0].message || 'something went wrong');\n }\n };\n\n return (\n <Box marginLeft={2}>\n <Box marginBottom={2}>\n <Card title={label}>\n <SelectBox\n options={options}\n hidePlaceholderWhenSelectedValue\n value={value}\n onChange={onChange}\n id=\"subtypeSelectbox\"\n />\n </Card>\n </Box>\n <Paper>\n <CaseComment organizationId={organizationId} containerStyles={null} callBack={handleSave} />\n </Paper>\n </Box>\n );\n}\n\nNoteUpdate.propTypes = {\n organizationId: PropTypes.number.isRequired,\n officerId: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n options: PropTypes.array,\n value: PropTypes.any.isRequired,\n onChange: PropTypes.func.isRequired,\n onResetSelect: PropTypes.func.isRequired,\n setShouldRefetch: PropTypes.func.isRequired,\n};\n","import React, { useState, useContext, useEffect } from 'react';\nimport { Context } from '../../Context';\nimport { Box, Typography, FormControlLabel } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { CustomSwitch } from '../../formEngine/components/WrapperComponent';\nimport { updateNotesSortOrder } from '../../services/unarmed';\nimport useInput from '../../hooks/useInput';\nimport { toast } from '../../components/Notification';\nimport OfficerLogs from './components/OfficerLogs';\nimport NoteUpdate from './components/NoteUpdate';\nimport Card from '../../components/Card';\n\nexport default function InterveneTab({ organizationId, interveneOptions, officerId }) {\n const { myUser } = useContext(Context);\n const [shouldRefetch, setShouldRefetch] = useState(false);\n const [archivedOnly, setArchivedOnly] = useState(false);\n const handleArchiveOnly = () => {\n setArchivedOnly(!archivedOnly)\n }\n // Load sort order from localStorage or fallback to user's backend setting\n const initialSortOrder = localStorage.getItem('interveneOfficerLogsSortOrder') || (myUser?.notesSortOrderDesc?.officers ? 'desc' : 'asc');\n const [sortOrder, setSortOrder] = useState(initialSortOrder || 'desc');\n\n const intervene = useInput('');\n\n const toggleSortOrder = () => {\n const newSortOrder = sortOrder === 'asc' ? 'desc' : 'asc';\n const updatedSortOrder = newSortOrder === 'desc';\n\n updateNotesSortOrder(myUser?._id, 'officers', updatedSortOrder)\n .then(() => {\n setSortOrder(newSortOrder);\n localStorage.setItem('interveneOfficerLogsSortOrder', newSortOrder);\n })\n .catch((error) => {\n toast.error('Failed to update sort order');\n });\n };\n\n return (\n <Box display=\"flex\" marginTop={2}>\n <Card\n title={\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\">\n <Box>\n <Typography variant=\"h6\">Notes</Typography>\n </Box>\n <Box style={{ display: 'flex'}}>\n <FormControlLabel\n control={\n <CustomSwitch\n checked={sortOrder === 'desc'}\n onChange={toggleSortOrder}\n color=\"primary\"\n />\n }\n label={sortOrder === 'desc' ? 'Most Recent' : 'Oldest'}\n labelPlacement=\"end\"\n style={{ marginLeft: '500px' }}\n />\n <FormControlLabel\n style={{ margin: 0 }}\n control={<CustomSwitch checked={archivedOnly} onChange={handleArchiveOnly} />}\n labelPlacement=\"end\"\n label=\"Archived only\"\n />\n </Box>\n </Box>\n }\n >\n <OfficerLogs officerId={officerId} type=\"intervene\" shouldRefetch={shouldRefetch} sortOrder={sortOrder} archivedOnly={archivedOnly} />\n </Card>\n\n <Box width=\"70%\">\n <NoteUpdate\n organizationId={organizationId}\n label=\"Checklist\"\n options={interveneOptions}\n marginTop={2}\n value={intervene.value}\n onChange={intervene.onChange}\n onResetSelect={() => {\n intervene.setValue('');\n }}\n type=\"INTERVENE\"\n officerId={officerId}\n setShouldRefetch={setShouldRefetch}\n />\n </Box>\n </Box>\n );\n}\n\nInterveneTab.propTypes = {\n organizationId: PropTypes.string.isRequired,\n interveneOptions: PropTypes.arrayOf(PropTypes.string).isRequired,\n officerId: PropTypes.string.isRequired,\n};\n","import React, { useState, useContext, useEffect } from 'react';\nimport { Context } from '../../Context';\nimport { Box, Typography, FormControlLabel } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport useInput from '../../hooks/useInput';\nimport NoteUpdate from './components/NoteUpdate';\nimport OfficerLogs from './components/OfficerLogs';\nimport { toast } from '../../components/Notification';\nimport { CustomSwitch } from '../../formEngine/components/WrapperComponent';\nimport { updateNotesSortOrder } from '../../services/unarmed';\nimport Card from '../../components/Card';\n\nexport default function MonitorTab({ organizationId, monitorOptions, officerId }) {\n const { myUser } = useContext(Context);\n const [shouldRefetch, setShouldRefetch] = useState(false);\n const [archivedOnly, setArchivedOnly] = useState(false);\n const handleArchiveOnly = () => {\n setArchivedOnly(!archivedOnly)\n }\n const initialSortOrder = localStorage.getItem('officerLogsSortOrder') || (myUser?.notesSortOrderDesc?.officers ? 'desc' : 'asc');\n const [sortOrder, setSortOrder] = useState(initialSortOrder);\n\n const monitor = useInput('');\n\n const toggleSortOrder = () => {\n const newSortOrder = sortOrder === 'asc' ? 'desc' : 'asc';\n const updatedSortOrder = newSortOrder === 'desc';\n\n updateNotesSortOrder(myUser?._id, 'officers', updatedSortOrder)\n .then(() => {\n setSortOrder(newSortOrder);\n localStorage.setItem('officerLogsSortOrder', newSortOrder);\n })\n .catch((error) => {\n toast.error('Failed to update sort order');\n });\n };\n\n return (\n <Box display=\"flex\" marginTop={2}>\n <Card\n title={\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\">\n <Box>\n <Typography variant=\"h6\">Notes</Typography>\n </Box>\n <Box style={{ display: 'flex'}}>\n <FormControlLabel\n control={\n <CustomSwitch\n checked={sortOrder === 'desc'}\n onChange={toggleSortOrder}\n color=\"primary\"\n />\n }\n label={sortOrder === 'desc' ? 'Most Recent' : 'Oldest'}\n labelPlacement=\"end\"\n style={{ marginLeft: '500px' }}\n />\n <FormControlLabel\n style={{ margin: 0 }}\n control={<CustomSwitch checked={archivedOnly} onChange={handleArchiveOnly} />}\n labelPlacement=\"end\"\n label=\"Archived only\"\n />\n </Box>\n </Box>\n }\n >\n <OfficerLogs officerId={officerId} type=\"monitor\" shouldRefetch={shouldRefetch} sortOrder={sortOrder} archivedOnly={archivedOnly} />\n </Card>\n\n <Box width=\"70%\">\n <NoteUpdate\n organizationId={organizationId}\n label=\"Meetings\"\n options={monitorOptions?.map((option) => `${option} months meeting`)}\n value={monitor.value}\n onChange={monitor.onChange}\n officerId={officerId}\n type=\"MONITOR\"\n onResetSelect={() => {\n monitor.setValue('');\n }}\n setShouldRefetch={setShouldRefetch}\n />\n </Box>\n </Box>\n );\n}\n\nMonitorTab.propTypes = {\n organizationId: PropTypes.string.isRequired,\n monitorOptions: PropTypes.arrayOf(PropTypes.string).isRequired,\n officerId: PropTypes.string.isRequired,\n};\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Link } from '@reach/router';\n\nimport { downloadImage } from '../../../utils/libs';\nimport LogIcon from '../../../components/LogIcon';\nimport TimeLineItem from '../../Activity/TimeLineItem';\nimport HTMLContent from '../../../components/HTMLContent';\nimport CarouselModal from '../../../components/CarouselModal';\nimport Tags from '../../../components/Tags';\nimport Tag from '../../../components/Tag';\nimport ArchivedImage from '../../../components/ArchivedImage';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n imgModal: {\n objectFit: 'contain',\n maxWidth: 600,\n maxHeight: 400,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n emphasis: {\n color: '#4b7bff',\n textTransform: 'capitalize',\n fontWeight: '600',\n },\n}));\n\nconst getActionLabel = (key) => {\n if (key === 'bradyList') {\n return 'Brady list';\n }\n if (key === 'firstName') {\n return 'First name';\n }\n if (key === 'lastName') {\n return 'Last name';\n }\n if (key === 'email') {\n return 'Email';\n }\n if (key === 'raceEthnicity') {\n return 'Race/Ethnicity';\n }\n if (key === 'gender') {\n return 'Gender';\n }\n if (key === 'phoneNumber') {\n return 'Phone number';\n }\n if (key === 'photo') {\n return 'a profile picture';\n }\n};\n\nconst HistoryLog = ({ data, type, createdAt }) => {\n const classes = useStyles();\n const { user, changes, type: optionType, comment, intervene, meeting, files } = data;\n\n const [open, setOpen] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const handleOpen = (filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter((flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video'));\n setFilesSelected({ files: filesToOpen, selectedFileIndex: 0 });\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n };\n\n const handleClickEvents = (fl) => ({\n onDownload: () => downloadImage(fl.download_url, fl.name),\n onClick: () => handleOpen(files),\n });\n\n const stripHTML = (str) => {\n if (!str) return '';\n return str.replace(/<\\/?[^>]+(>|$)/g, '');\n };\n\n const renderText = () => {\n if (type === 'OFFICER_ATTACHMENT_TAGS_ADDED') {\n return (\n <span>\n <strong>{user?.email}</strong> has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n <Tag bg={tag?.backgroundColor} color={tag?.textColor} key={tag?._id} text={tag?.name} />\n ))}{' '}\n to attachment: <span className={classes.emphasis}>{data?.file?.name}</span> to officer:{' '}\n <Link to={`/officer/${data?.officer?._id}`}>\n <span className={classes.emphasis}>\n {data?.officer?.firstName} {data?.officer?.lastName}\n </span>\n </Link>\n </span>\n );\n }\n\n if (type === 'OFFICER_COMMENT_OR_ATTACHMENT_TAGS_ADDED') {\n return (\n <span>\n <strong>{user?.email}</strong> has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n <Tag bg={tag?.backgroundColor} color={tag?.textColor} key={tag?._id} text={tag?.name} />\n ))}{' '}\n to attachment: <span className={classes.emphasis}>{data?.file?.name}</span> to{' '}\n {optionType === 'INTERVENE' ? 'Intervene' : 'Monitor'}:\n <HTMLContent content={comment} />\n </span>\n );\n }\n\n if (type === 'OFFICER_ATTACHMENT_TAGS_DELETE') {\n return (\n <span>\n <strong>{user?.email}</strong> removed {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n <Tag bg={tag?.backgroundColor} color={tag?.textColor} key={tag?._id} text={tag?.name} />\n ))}{' '}\n from attachment: <span className={classes.emphasis}>{data?.file?.name}</span> from officer:{' '}\n <Link to={`/officer/${data?.officer?._id}`}>\n <span className={classes.emphasis}>\n {data?.officer?.firstName} {data?.officer?.lastName}\n </span>\n </Link>\n </span>\n );\n }\n\n if (type === 'OFFICER_UPDATED') {\n return changes?.map((change, index) => (\n <Box key={index}>\n {!change?.oldValue && typeof change?.oldValue !== 'boolean' ? (\n <>\n <strong>{user.email}</strong> has added <strong>{getActionLabel(change?.fieldName)}</strong> to officer{' '}\n <span className={classes.emphasis}>{change?.newValue}</span>{' '}\n </>\n ) : (\n <>\n <strong>{user.email}</strong> has changed <strong>{getActionLabel(change?.fieldName)}</strong> to officer{' '}\n from <span className={classes.emphasis}>{change.oldValue.toString()}</span> to{' '}\n <span className={classes.emphasis}>{change.newValue.toString()}</span>{' '}\n </>\n )}\n </Box>\n ));\n }\n\n if (type === 'OFFICER_COMMENT_OR_ATTACHMENT' || type === 'OFFICER_ATTACHMENT') {\n const hasFiles = files.length > 0;\n const commentText = comment ? (\n <>\n {' made a '}\n <span className={classes.emphasis}>new comment</span>\n </>\n ) : null;\n const filesText = hasFiles ? (\n <>\n <span className={classes.emphasis}>\n {' Uploaded '} {files.length}\n </span>{' '}\n file(s)\n </>\n ) : null;\n const optionText = optionType ? (\n <>\n {' to '}\n {optionType === 'INTERVENE' ? 'Intervene' : 'Monitor'}{' '}\n <span className={classes.emphasis}>\n {optionType === 'INTERVENE' && !meeting ? intervene : meeting ? `${meeting} months meeting` : null}\n </span>\n </>\n ) : null;\n return (\n <>\n <strong>{user.email}</strong>\n {commentText}\n {comment && hasFiles ? ' and ' : null}\n {filesText}\n {optionText}\n {comment ? (\n <>\n <br />\n <HTMLContent content={comment} />\n </>\n ) : null}\n\n {hasFiles ? (\n <>\n <br />\n <Box display=\"flex\" flexDirection=\"column\">\n {files.map((file, index) => {\n const showPreview = !file?.archivedDate;\n return (\n <div>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-start\">\n <PreviewImg\n key={file._id}\n style={\n !file.name.includes('.pdf')\n ? { height: 100, margin: 6 }\n : { minHeight: 35, width: 'fit-content' }\n }\n >\n {showPreview ? (\n <LogIcon fl={file} handleClickEvents={handleClickEvents(file)} index={index} />\n ) : (\n <ArchivedImage />\n )}\n </PreviewImg>\n <Typography style={{ fontSize: 14 }}>{file.name}</Typography>\n </Box>\n <Tags\n autoUpdateTags={false}\n fileId={file?._id}\n defaultTags={file?.tags || []}\n allTags={[]}\n tagsRecently={[]}\n />\n </div>\n );\n })}\n </Box>\n </>\n ) : null}\n </>\n );\n }\n\n if (type === 'OFFICER_ATTACHMENT_ARCHIVED') {\n return (\n <>\n <strong>{user?.email}</strong> has archived the file{' '}\n <span className={classes.emphasis}>{stripHTML(data?.comment?.comment)}</span> on the officer with Badge\n Number: <span className={classes.emphasis}>{data?.officer?.badgeNumber}</span>.\n </>\n );\n }\n\n if (type === 'OFFICER_NOTE_UNARCHIVED') {\n return (\n <>\n <strong>{user?.email}</strong> has unarchived the note{' '}\n <span className={classes.emphasis}>{stripHTML(data?.comment?.comment)}</span> on the officer with Badge\n Number: <span className={classes.emphasis}>{data?.officer?.badgeNumber}</span>.\n </>\n );\n }\n\n if (type === 'OFFICER_NOTE_ARCHIVED') {\n return (\n <>\n <strong>{user?.email}</strong> has archived the note{' '}\n <span className={classes.emphasis}>{stripHTML(data?.file?.name)}</span> on the officer with Badge Number:{' '}\n <span className={classes.emphasis}>{data?.officer?.badgeNumber}</span>.\n </>\n );\n }\n\n if (type === 'OFFICER_ATTACHMENT_UNARCHIVED') {\n return (\n <>\n <strong>{user?.email}</strong> has unarchived the file{' '}\n <span className={classes.emphasis}>{data?.file?.name}</span> on the officer with Badge Number:{' '}\n <span className={classes.emphasis}>{data?.officer?.badgeNumber}</span>.\n </>\n );\n }\n\n if (type === 'OFFICER_MERGED') {\n const targetOfficer = data?.mergedOfficer;\n const mergedOfficers = data?.mergedOfficers || [];\n const mergedCount = mergedOfficers.length;\n\n return (\n <>\n <strong>{user?.email}</strong> has merged {mergedCount} officer{mergedCount > 1 ? 's' : ''} into officer{' '}\n <Link to={`/officer/${targetOfficer?._id}`}>\n <span className={classes.emphasis}>\n {targetOfficer?.firstName} {targetOfficer?.lastName}\n </span>\n </Link>\n {targetOfficer?.badgeNumber && (\n <>\n {' with Badge/Serial Number '}\n <span className={classes.emphasis}>{targetOfficer?.badgeNumber}</span>\n </>\n )}\n .\n </>\n );\n }\n };\n\n return (\n <>\n <TimeLineItem\n createdAt={createdAt}\n profileImg={user?.photo?.public_url}\n avatar={`${user?.email[0]?.toUpperCase() || 'US'} ${user?.email[1]?.toUpperCase() || ''} `}\n >\n {renderText()}\n </TimeLineItem>\n <CarouselModal\n open={open}\n setOpen={setOpen}\n filesSelected={filesSelected}\n setLoadingOpenFiles={setLoadingOpenFiles}\n loadingOpenFiles={loadingOpenFiles}\n />\n </>\n );\n};\n\nHistoryLog.propTypes = {\n data: PropTypes.shape({\n tags: PropTypes.array,\n file: PropTypes.object,\n officer: PropTypes.object,\n user: PropTypes.string.isRequired,\n changes: PropTypes.arrayOf(PropTypes.string.isRequired),\n type: PropTypes.string.isRequired,\n comment: PropTypes.string,\n intervene: PropTypes.bool,\n meeting: PropTypes.string,\n files: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n })\n ),\n }).isRequired,\n type: PropTypes.string.isRequired,\n createdAt: PropTypes.instanceOf(Date).isRequired,\n};\n\nexport const PreviewImg = styled.div`\n height: 100px;\n position: relative;\n\n overflow: hidden;\n margin-right: 10px;\n & div:hover {\n opacity: 1;\n }\n`;\n\nexport default HistoryLog;\n","import React, { useEffect, useState } from 'react';\nimport { Box } from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport { getOfficerActivity } from '../../services/unarmed';\nimport HistoryLog from './components/HistoryLog';\n\nexport default function HistoryTab({ id }) {\n const [logs, setLogs] = useState([]);\n useEffect(() => {\n const getHistory = async () => {\n try {\n const { data } = await getOfficerActivity(id);\n setLogs(data);\n } catch (error) {\n toast.error(error?.message);\n }\n };\n if (id) {\n getHistory();\n }\n }, [id]);\n\n return (\n <Box\n style={{ background: '#fff', borderRadius: 5 }}\n boxShadow=\"0 3px 6px #00000005\"\n marginTop={2}\n width=\"100%\"\n height=\"fit-content\"\n padding=\"10px\"\n >\n {logs.map((log, index) => (\n <HistoryLog key={index} data={log.data} type={log.type} createdAt={log.createdAt} />\n ))}\n </Box>\n );\n}\n\nHistoryTab.propTypes = {\n id: PropTypes.number.isRequired,\n};\n","import { Box, Typography, CircularProgress } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport FileDownload from 'js-file-download';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\nimport {\n archiveOfficerAttachment,\n getOfficerAttachments,\n getOfficerFileAttachments,\n saveOfficerAttachments,\n unarchiveOfficerAttachment,\n updateOfficersAttachmentTags,\n} from '../../services/unarmed';\nimport ImageDownload from '../../components/ImageDownload';\nimport { handleOpenPopupFiles } from '../../utils';\nimport CarouselModal from '../../components/CarouselModal';\nimport ModalUploadFile from '../../components/ModalUploadFile';\nimport Tags from '../../components/Tags';\nimport TagsFilters from '../../components/TagsFilters';\n\nexport default function AttachmentTab({ officerId, organizationId }) {\n const [attachments, setAttachments] = useState([]);\n const [attachmentsFiltered, setAttachmentsFiltered] = useState([]);\n const [showAttachmentsFiltered, setShowAttachmentsFiltered] = useState(false);\n const [archivedOnly, setArchivedOnly] = useState(false);\n const [tags, setTags] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const [loadingDownload, setLoadingDonwload] = useState('idle');\n const [open, setOpen] = React.useState(false);\n\n const [openPopupFiles, setOpenPopupFiles] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const onGetOfficerAttachments = async () => {\n const { data } = await getOfficerAttachments(officerId);\n const _attachments = data.sort((x, y) => new Date(y.createdAt).getTime() - new Date(x.createdAt).getTime());\n setAttachments(_attachments);\n filterAttachments(_attachments, tags, archivedOnly);\n };\n\n const filterAttachments = (attachments, tags, archivedOnly) => {\n setAttachmentsFiltered(\n attachments\n .filter((attachment) => {\n if (!tags?.length) {\n return true;\n }\n return attachment.tags.map((tag) => tag?._id || tag).find((tag) => tags.indexOf(tag) !== -1);\n })\n .filter((attachment) => (archivedOnly ? !!attachment.archivedDate : !attachment.archivedDate))\n );\n };\n\n useEffect(() => {\n onGetOfficerAttachments();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const onDownloadAll = async () => {\n setLoadingDonwload('pending');\n getOfficerFileAttachments(officerId)\n .then(({ data }) => {\n FileDownload(data, `${officerId}-attachments.zip`);\n setLoadingDonwload('resolved');\n })\n .catch((err) => {\n setLoadingDonwload('rejected');\n });\n };\n\n const onSubmit = async (e, files) => {\n e.preventDefault();\n\n try {\n setLoading(true);\n const filesData = files.map((file) => ({\n file: file.hashId,\n tags: file?.tags?.map((tag) => tag?._id) || [],\n }));\n\n await saveOfficerAttachments(officerId, { files: filesData });\n onGetOfficerAttachments();\n\n setOpen(false);\n } catch (error) {\n toast.error(error?.response?.data?.message);\n toast.error(error?.response?.data?.error?.details[0]?.message);\n } finally {\n setLoading(false);\n }\n };\n\n const attachmentsToShow = showAttachmentsFiltered ? attachmentsFiltered : attachments;\n\n return (\n <Box width=\"100%\" maxWidth={600}>\n <Box marginTop={2}>\n <TagsFilters\n onSubmitFilters={(tags, archivedOnly) => {\n setTags(tags);\n setShowAttachmentsFiltered(true);\n filterAttachments(attachments, tags, archivedOnly);\n }}\n archivedOnly={archivedOnly}\n setArchivedOnly={setArchivedOnly}\n />\n </Box>\n <Box\n style={{ background: '#fff', borderRadius: 5 }}\n boxShadow=\"0 3px 6px #00000005\"\n width=\"100%\"\n marginTop={2}\n maxWidth={600}\n padding=\"20px\"\n >\n <CarouselModal\n open={openPopupFiles}\n setOpen={setOpenPopupFiles}\n filesSelected={filesSelected}\n setLoadingOpenFiles={setLoadingOpenFiles}\n loadingOpenFiles={loadingOpenFiles}\n />\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" marginBottom=\"20px\">\n {!archivedOnly && (\n <Box display=\"flex\" onClick={handleOpen} style={{ cursor: 'pointer' }}>\n <AttachFileIcon fontSize=\"small\" htmlColor=\"#4b7bff\" />{' '}\n <Typography style={{ color: '#4b7bff', fontSize: 14, fontWeight: '500' }}>New attachments</Typography>\n </Box>\n )}\n {attachments?.length && !archivedOnly ? (\n <Box display=\"flex\" onClick={onDownloadAll}>\n {loadingDownload === 'pending' && (\n <CircularProgress size={20} style={{ marginRight: '10px', color: '#4b7bff' }} />\n )}\n\n <Typography\n style={{\n color: '#4b7bff',\n fontSize: 14,\n fontWeight: '500',\n cursor: 'pointer',\n }}\n >\n Download all\n </Typography>\n </Box>\n ) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n {loading && <CircularProgress style={{ color: '#4b7bff' }} />}\n\n {!attachmentsToShow.length && !loading && (\n <Typography style={{ fontWeight: 'bold' }}>No attachments added to this officer</Typography>\n )}\n </Box>\n\n {attachmentsToShow?.map((file, i) => (\n <ImageDownload\n index={i}\n key={file?._id}\n extension={file.name.match(/[^.]+$/)}\n name={file.name}\n size={file.size}\n urlImg={file.download_url}\n onPreviewImage={() => {\n if (file?.mimetype?.includes('pdf')) {\n const link = document.createElement('a');\n link.href = file.preview_url;\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n } else if (\n file?.mimetype?.includes('audio') ||\n file?.mimetype?.includes('video') ||\n file?.mimetype?.includes('image')\n ) {\n handleOpenPopupFiles(file.url, attachments, setOpenPopupFiles, setFilesSelected, setLoadingOpenFiles);\n }\n }}\n restorable={archivedOnly && (file?.archivableByUser ?? true)}\n deletable={!archivedOnly && (file?.archivableByUser ?? true)}\n downloadable={!archivedOnly}\n entityId={officerId}\n id={file._id}\n onDeleteFile={async (entityId, id) => {\n await archiveOfficerAttachment(entityId, id);\n onGetOfficerAttachments();\n //onEditAttachments && onEditAttachments();\n }}\n onRestoreFile={async (entityId, id) => {\n await unarchiveOfficerAttachment(entityId, id);\n onGetOfficerAttachments();\n //onEditAttachments && onEditAttachments();\n }}\n >\n <Tags\n fileId={file?._id}\n defaultTags={file?.tags || []}\n onClickAddTag={(tag) => {\n updateOfficersAttachmentTags(officerId, file._id, {\n tags: [...(file?.tags.map((_tag) => _tag?._id) || []), tag?._id],\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: [...(_attachment?.tags || []), tag],\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n withAddBtn={!archivedOnly}\n canRemove={!archivedOnly}\n onClickRemove={(tag) => {\n updateOfficersAttachmentTags(officerId, file._id, {\n tags: file?.tags?.filter((_tag) => _tag?._id !== tag?._id).map((_tag) => _tag?._id),\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: file?.tags?.filter((_tag) => _tag?._id !== tag?._id),\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n />\n </ImageDownload>\n ))}\n <ModalUploadFile\n open={open}\n onClose={() => setOpen(false)}\n organizationId={organizationId}\n onConfirm={(e, files) => onSubmit(e, files)}\n />\n </Box>\n </Box>\n );\n}\n\nAttachmentTab.propTypes = {\n officerId: PropTypes.number.isRequired,\n organizationId: PropTypes.string.isRequired,\n};\n","/* eslint-disable no-unused-vars */\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Box, makeStyles } from '@material-ui/core';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\n\nimport DashboardCard from '../../components/DashboardCard';\nimport OfficerInfo from './OfficerInfo';\nimport iconGreen from '../../assets/greencard.png';\nimport iconRed from '../../assets/redCard.png';\nimport blueIcon from '../../assets/record_voice_over.png';\nimport { getOfficer, getOfficerStatus } from '../../services/unarmed';\nimport { Context } from '../../Context';\nimport useInput from '../../hooks/useInput';\nimport HeaderTabs from '../Projects/components/HeaderTabs';\nimport TabPanel from '../../components/TabPanel';\nimport OfficerCases from './OfficerCases';\nimport InterveneTab from './InterveneTab';\nimport MonitorTab from './MonitorTab';\nimport useOrganization from '../../hooks/useOrganization';\nimport HistoryTab from './HistoryTab';\nimport AttachmentsTab from './AttachmentTab';\nimport { updateUrlWithParams } from '../../utils/libs';\n\nconst tabsArray = [\n { label: 'Cases', value: 0 },\n { label: 'Intervene', value: 1 },\n { label: 'Monitor', value: 2 },\n { label: 'Attachments', value: 3 },\n { label: 'History', value: 4 },\n];\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 16,\n },\n title: {\n marginTop: 50,\n },\n}));\nconst OfficerProfile = () => {\n const classes = useStyles();\n const { authUser, setActive } = useContext(Context);\n const [status, setStatus] = useState('idle');\n const [stats, setStats] = useState(null);\n const history = useHistory();\n const { id } = useParams();\n const [loading, setLoading] = useState(false);\n const { organization } = useOrganization();\n const email = useInput('');\n const firstName = useInput('');\n const lastName = useInput('');\n const badge = useInput('');\n const uniqueFieldId = useInput({});\n const [gender, setGender] = useState([]);\n const [race, setRace] = useState([]);\n const [officer, setOfficer] = useState({});\n const phone = useInput('');\n const [value, setValue] = useState(0);\n\n useEffect(() => {\n setActive('/officers');\n window.scrollTo(0, 0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const onGetStats = async () => {\n setStatus('pending');\n try {\n const { data } = await getOfficerStatus(id);\n setStats(data);\n setStatus('resolved');\n } catch (error) {\n toast.error(error?.message);\n setStatus('rejected');\n }\n };\n\n const onGetOfficerInfo = async () => {\n try {\n setLoading(true);\n const data = await getOfficer(id);\n setOfficer(data);\n firstName.setValue(data.firstName);\n lastName.setValue(data.lastName);\n badge.setValue(data.badgeNumber);\n uniqueFieldId.setValue(data.uniqueFieldId);\n phone.setValue(data.phoneNumber);\n email.setValue(data.email);\n setGender(data?.gender);\n setRace(data?.raceEthnicity);\n\n setLoading(false);\n } catch (error) {\n toast.error(error?.message);\n setLoading(false);\n }\n };\n\n if (authUser) {\n onGetStats();\n onGetOfficerInfo();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, authUser]);\n\n useEffect(() => {\n if (organization) {\n updateUrlWithParams(\n {\n organization_name: organization?.name,\n tab_name: 'cases',\n },\n {\n tab_name: 'cases',\n }\n );\n }\n }, [organization]);\n\n const handleChange = (event, newValue) => {\n setValue(newValue);\n\n const tabData = tabsArray[newValue];\n const tabLabel = tabData.label?.toLowerCase()?.replace(/ /g, '-');\n\n updateUrlWithParams(\n {\n organization_name: organization.name,\n tab_name: tabLabel,\n },\n {\n tab_name: tabLabel,\n }\n );\n };\n\n function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n }\n\n const renderCards = () => (\n <Box display=\"flex\" alignItems=\"center\">\n <DashboardCard\n dataTestId=\"officer-card-total-compliments\"\n styleContainer={{ marginTop: 20 }}\n cardText=\"Total Compliments\"\n color=\"#01BEA826\"\n icon={iconGreen}\n value={stats?.totalCompliments || 0}\n buttonText=\"View all compliments\"\n onClickButton={() => {\n history.push('/cases', {\n badgeNumber: badge.value,\n name: `${firstName.value} ${lastName.value}`,\n showAlert: true,\n isFiltering: true,\n formType: 'COMPLIMENT',\n });\n setActive('/cases');\n }}\n />\n <DashboardCard\n dataTestId=\"officer-card-total-complaints\"\n styleContainer={{ marginTop: 20 }}\n cardText=\"Total Complaints\"\n color=\"#CC2D4B26\"\n icon={iconRed}\n value={stats?.totalComplaints || 0}\n buttonText=\"View all complaints\"\n onClickButton={() => {\n history.push('/cases', {\n badgeNumber: badge.value,\n name: `${firstName.value} ${lastName.value}`,\n showAlert: true,\n isFiltering: true,\n formType: 'COMPLAINT',\n });\n setActive('/cases');\n }}\n />\n <DashboardCard\n dataTestId=\"officer-card-total-allegations\"\n styleContainer={{ marginTop: 20, marginRight: 0 }}\n cardText=\"Total Allegations\"\n color=\"#2E66FE26\"\n icon={blueIcon}\n value={stats?.totalAllegations || 0}\n buttonText=\"View all allegations\"\n onClickButton={() => {\n history.push('/allegations', {\n badge: badge.value,\n openFilter: true,\n });\n setActive('/allegations');\n }}\n />\n </Box>\n );\n\n return (\n <>\n <Box width=\"100%\" className={classes.container}>\n <Box width=\"100%\" style={{ background: '#fff', boxShadow: '0 4px 8px #eee' }}>\n <OfficerInfo\n officer={officer}\n loading={loading}\n firstName={firstName}\n lastName={lastName}\n badge={badge}\n phone={phone}\n id={id}\n gender={gender}\n setGender={setGender}\n race={race}\n setRace={setRace}\n setOfficer={setOfficer}\n renderCards={renderCards}\n email={email}\n organization={organization}\n />\n <Box style={{ padding: '0 20px' }}>\n <HeaderTabs tabs={tabsArray} handleChangeTab={handleChange} a11yProps={a11yProps} tabValue={value} />\n </Box>\n </Box>\n <TabPanel data-testid=\"officer-tab-cases\" value={value} padding={0} index={0}>\n <OfficerCases officerBadgeNumber={badge.value} uniqueFieldId={uniqueFieldId.value} />\n </TabPanel>\n <TabPanel data-testid=\"officer-tab-intervene\" value={value} padding={0} index={1}>\n <InterveneTab\n organizationId={organization?._id}\n interveneOptions={organization?.EIS?.interveneChecklist}\n officerId={id}\n />\n </TabPanel>\n <TabPanel data-testid=\"officer-tab-monitor\" value={value} padding={0} index={2}>\n <MonitorTab\n organizationId={organization?._id}\n monitorOptions={organization?.EIS?.monitorMeetingList}\n officerId={id}\n />\n </TabPanel>\n <TabPanel data-testid=\"officer-tab-attachments\" value={value} padding={0} index={3}>\n <AttachmentsTab officerId={id} organizationId={organization?._id} />\n </TabPanel>\n <TabPanel data-testid=\"officer-tab-history\" value={value} padding={0} index={4}>\n <HistoryTab id={id} />\n </TabPanel>\n </Box>\n </>\n );\n};\n\nexport default OfficerProfile;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { Box, Checkbox, Typography, makeStyles, Button, Divider, Popover } from '@material-ui/core';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport styled from 'styled-components';\nimport DashButton from '../../../components/DashButton';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { getOfficersByIds } from '../../../services/unarmed';\n\nconst useStyles = makeStyles(() => ({\n container: { padding: '0 20px' },\n title: { color: '#303030' },\n subtitle: { color: '#575A66', fontWeight: 400 },\n officerTitle: { fontSize: '15px', fontWeight: '500' },\n officerSelectAll: { fontWeight: '500', fontSize: '15px', color: '#3B70FE', cursor: 'pointer' },\n officerCheckboxText: {\n fontSize: '15px',\n fontWeight: '400',\n overflow: 'hidden',\n color: '#575A66',\n textOverflow: 'ellipsis',\n width: '100%',\n },\n uniqueFieldIdcheckBoxText: {\n fontSize: '15px',\n fontWeight: '400',\n overflow: 'hidden',\n color: '#575A66',\n textOverflow: 'ellipsis',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n },\n}));\n\nconst TableContainer = styled(Box)`\n display: flex;\n background-color: white;\n width: 100%;\n padding: 18px;\n`;\nconst TableContent = styled(Box)`\n display: flex;\n overflow-x: auto;\n`;\nconst TableColumn = styled(Box)`\n display: flex;\n flex-direction: column;\n min-width: 275px;\n flex: 1;\n`;\nconst TableColumnOfficer = styled(TableColumn)`\n max-width: 350px;\n`;\nconst TableRow = styled(Box)`\n border-bottom: 1px solid #e0e0e0;\n color: #303030;\n height: 90px;\n`;\nconst TableRowTitle = styled(TableRow)`\n font-weight: 500;\n font-size: 14px;\n`;\nconst TableRowOfficer = styled(TableRow)`\n font-weight: 500;\n font-size: 14px;\n display: flex;\n flex-direction: column;\n padding-left: 40px;\n gap: 4px;\n`;\nconst TableRowField = styled(TableRow)`\n font-weight: 500;\n font-size: 14px;\n text-transform: uppercase;\n display: flex;\n align-items: center;\n`;\nconst TableRowCheckbox = styled(TableRow)`\n display: flex;\n align-items: center;\n`;\n\nconst OfficersMerge = () => {\n const classes = useStyles();\n const history = useHistory();\n const location = useLocation();\n const [isOpenLinkCard, setIsOpenLinkCard] = useState(false);\n const [customFields, setCustomFields] = useState([]);\n const [officers, setOfficers] = useState([]);\n const [rowsNames, setRowsNames] = useState([]);\n const [officerColumns, setOfficerColumns] = useState([]);\n const [linkFields, setLinkFields] = useState([]);\n const [mergeOfficerData, setMergeOfficerData] = useState(\n location.state?.mergeOfficerData || {\n updateOfficerId: '',\n officerData: { customFields: {}, customFieldsColumns: {} },\n archiveOfficerIds: [],\n cases: 0,\n allegations: 0,\n intervene: [],\n monitor: [],\n attachments: [],\n linkFields: [],\n }\n );\n const [anchorEl, setAnchorEl] = useState(null);\n const [openLinkCardInfo, setOpenLinkCardInfo] = useState({\n indexColumn: null,\n indexRow: null,\n rowData: null,\n officerColumn: null,\n });\n\n useEffect(() => {\n if (Object.keys(location.state?.officerColumns || {}).length === 0) return;\n setOfficerColumns(location.state?.officerColumns);\n }, [location.state?.officerColumns]);\n\n useEffect(() => {\n setMergeOfficerData((prev) => ({ ...prev }));\n }, [location.search]);\n\n function generateCustomFieldsWithNulls(officers) {\n let allCustomFields = new Set();\n officers.forEach((officer) => {\n if (officer.customFields && officer.customFields.length > 0) {\n officer.customFields.forEach((field) => {\n if (field.sections && field.sections.length > 0) {\n field.sections[0].components.forEach((component) => {\n if (component.data && component.data.question) {\n allCustomFields.add(component.data.question);\n }\n });\n }\n });\n }\n });\n allCustomFields = Array.from(allCustomFields);\n officers.forEach((officer) => {\n let customFieldsObj = {};\n let customFieldsType = {};\n if (officer.customFields && officer.customFields.length > 0) {\n officer.customFields.forEach((field) => {\n if (field.sections && field.sections.length > 0) {\n field.sections[0].components.forEach((component) => {\n if (component.data && component.data.question) {\n customFieldsObj[component.data.question] = {\n value: component.value ?? null,\n special: component.data.special ?? false,\n };\n customFieldsType[component.data.question] = component.type || null;\n }\n });\n }\n });\n }\n allCustomFields.forEach((field) => {\n if (!customFieldsObj.hasOwnProperty(field)) {\n customFieldsObj[field] = { value: null, special: false };\n }\n });\n officer.customFields = customFieldsObj;\n officer.customFieldsType = customFieldsType;\n });\n return officers;\n }\n\n async function getOfficersById(ids) {\n const response = await getOfficersByIds({ ids });\n const officersSet = generateCustomFieldsWithNulls(response.data);\n return officersSet;\n }\n\n function getFieldRows(officers) {\n const rows = [];\n for (const officer of officers) {\n for (const key in officer) {\n if (['cases', 'allegations', 'intervene', 'monitor', 'attachments'].includes(key)) {\n continue;\n }\n if (key !== 'customFields' && rows.findIndex((row) => row.name === key) === -1) {\n let fieldName = key;\n if (key === 'uniqueFieldId') {\n fieldName = 'Unique Identifier';\n rows.push({ name: key, fieldName, isStandardField: true });\n }\n }\n if (key === 'customFields') {\n for (const [customFieldName] of Object.entries(officer.customFields)) {\n if (rows.findIndex((row) => row.name === customFieldName) === -1) {\n rows.push({\n name: customFieldName,\n fieldName: customFieldName.toString(),\n isStandardField: false,\n });\n }\n }\n }\n }\n }\n return rows;\n }\n\n function buildOfficerColumn(officer, _rowsNames) {\n const newOfficerColumn = [];\n for (const row of _rowsNames) {\n if (row.isStandardField) {\n let rowValue = officer[row.name] ?? '';\n let rowType = '';\n newOfficerColumn.push({\n name: row.name,\n isStandardField: true,\n value: rowValue,\n checked: false,\n type: rowType,\n });\n } else {\n const customFieldData = officer.customFields?.[row.name];\n const customFieldValue = customFieldData ? customFieldData.value : '';\n const customFieldSpecial = customFieldData ? customFieldData.special : false;\n let customFieldType = officer.customFieldsType?.[row.name] || '';\n if (row.name === 'Brady List') {\n customFieldType = 'yesNo';\n }\n newOfficerColumn.push({\n name: row.name,\n isStandardField: false,\n value: customFieldValue,\n checked: false,\n type: customFieldType,\n special: customFieldSpecial,\n });\n }\n }\n return newOfficerColumn;\n }\n\n function handleCheckboxChange(indexColumn, indexRow) {\n const clickedRow = officerColumns[indexColumn][indexRow];\n if (!clickedRow) return;\n\n const clickedRowName = clickedRow.name;\n const newChecked = !clickedRow.checked;\n\n const isClickingUniqueIdentifier = clickedRowName === 'uniqueFieldId';\n\n const uniqueCustomFieldName = officers[indexColumn]?.uniqueFieldId?.data?.question || '';\n const isClickingUniqueCustomField = !clickedRow.isStandardField && clickedRowName === uniqueCustomFieldName;\n\n if (isClickingUniqueIdentifier || isClickingUniqueCustomField) {\n const updatedOfficerColumns = officerColumns.map((column, colIndex) => {\n const thisColUniqueCustomFieldName = officers[colIndex]?.uniqueFieldId?.data?.question || '';\n\n return column.map((row, rowIndex) => {\n if (!row) return row;\n\n if (colIndex === indexColumn && rowIndex === indexRow) {\n return { ...row, checked: newChecked };\n }\n\n if (colIndex === indexColumn) {\n if (\n (isClickingUniqueIdentifier && row.name === uniqueCustomFieldName && !row.isStandardField) ||\n (isClickingUniqueCustomField && row.name === 'uniqueFieldId')\n ) {\n return { ...row, checked: newChecked };\n }\n }\n\n const isRowUniqueIdentifier = row.name === 'uniqueFieldId';\n const isRowUniqueCustomField = !row.isStandardField && row.name === thisColUniqueCustomFieldName;\n\n if (newChecked && (isRowUniqueIdentifier || isRowUniqueCustomField)) {\n return { ...row, checked: false };\n }\n\n return row;\n });\n });\n\n setOfficerColumns(updatedOfficerColumns);\n\n setMergeOfficerData((prev) => {\n const updatedData = { ...prev };\n\n if (newChecked) {\n if (isClickingUniqueIdentifier) {\n updatedData.officerData.uniqueFieldId = clickedRow.value;\n updatedData.officerData.customFieldsColumns = updatedData.officerData.customFieldsColumns || {};\n updatedData.officerData.customFieldsColumns.uniqueFieldId = indexColumn;\n\n updatedData.officerData.customFields = updatedData.officerData.customFields || {};\n const uniqueCustomFieldRow = officerColumns[indexColumn].find(\n (r) => !r.isStandardField && r.name === uniqueCustomFieldName\n );\n if (uniqueCustomFieldRow) {\n updatedData.officerData.customFields[uniqueCustomFieldName] = uniqueCustomFieldRow.value;\n updatedData.officerData.customFieldsColumns[uniqueCustomFieldName] = indexColumn;\n }\n } else if (isClickingUniqueCustomField) {\n updatedData.officerData.customFields = updatedData.officerData.customFields || {};\n updatedData.officerData.customFields[clickedRowName] = clickedRow.value;\n updatedData.officerData.customFieldsColumns = updatedData.officerData.customFieldsColumns || {};\n updatedData.officerData.customFieldsColumns[clickedRowName] = indexColumn;\n\n const uniqueIdRow = officerColumns[indexColumn].find((r) => r.name === 'uniqueFieldId');\n if (uniqueIdRow) {\n updatedData.officerData.uniqueFieldId = uniqueIdRow.value;\n updatedData.officerData.customFieldsColumns.uniqueFieldId = indexColumn;\n }\n }\n\n updatedData.updateOfficerId = officers[indexColumn]._id;\n updatedData.archiveOfficerIds = officers.filter((_, i) => i !== indexColumn).map((officer) => officer._id);\n } else {\n if (isClickingUniqueIdentifier) {\n updatedData.officerData.uniqueFieldId = null;\n } else if (isClickingUniqueCustomField) {\n updatedData.officerData.customFields[clickedRowName] = null;\n }\n }\n\n return updatedData;\n });\n\n return;\n }\n\n const updatedOfficerColumns = officerColumns.map((column, _indexColumn) => {\n if (_indexColumn === indexColumn) {\n return column.map((row, _indexRow) => {\n if (_indexRow === indexRow && row) {\n setMergeOfficerData((prev) => {\n const updatedData = { ...prev };\n if (newChecked) {\n if (row.isStandardField) {\n updatedData.officerData[row.name] = row.value;\n updatedData.officerData.customFieldsColumns = updatedData.officerData.customFieldsColumns || {};\n updatedData.officerData.customFieldsColumns[row.name] = indexColumn;\n } else {\n updatedData.officerData.customFields = updatedData.officerData.customFields || {};\n updatedData.officerData.customFields[row.name] = row.value;\n updatedData.officerData.customFieldsColumns = updatedData.officerData.customFieldsColumns || {};\n updatedData.officerData.customFieldsColumns[row.name] = indexColumn;\n }\n\n let uniqueIdentifierOfficerIdx = -1;\n\n for (let i = 0; i < officerColumns.length; i++) {\n const uniqueIdRow = officerColumns[i].find((r) => r && r.name === 'uniqueFieldId' && r.checked);\n if (uniqueIdRow) {\n uniqueIdentifierOfficerIdx = i;\n break;\n }\n\n const thisColUniqueCustomFieldName = officers[i]?.uniqueFieldId?.data?.question || '';\n const uniqueCustomRow = officerColumns[i].find(\n (r) => r && !r.isStandardField && r.name === thisColUniqueCustomFieldName && r.checked\n );\n if (uniqueCustomRow) {\n uniqueIdentifierOfficerIdx = i;\n break;\n }\n }\n\n if (uniqueIdentifierOfficerIdx !== -1) {\n updatedData.updateOfficerId = officers[uniqueIdentifierOfficerIdx]._id;\n updatedData.archiveOfficerIds = officers\n .filter((_, i) => i !== uniqueIdentifierOfficerIdx)\n .map((officer) => officer._id);\n } else {\n updatedData.updateOfficerId = officers[indexColumn]._id;\n updatedData.archiveOfficerIds = officers\n .filter((_, i) => i !== indexColumn)\n .map((officer) => officer._id);\n }\n } else {\n if (row.isStandardField) {\n updatedData.officerData[row.name] = null;\n updatedData.officerData.standardFieldsColumns = updatedData.officerData.standardFieldsColumns || {};\n updatedData.officerData.standardFieldsColumns[row.name] = indexColumn;\n } else {\n updatedData.officerData.customFields = updatedData.officerData.customFields || {};\n updatedData.officerData.customFields[row.name] = null;\n updatedData.officerData.customFieldsColumns = updatedData.officerData.customFieldsColumns || {};\n updatedData.officerData.customFieldsColumns[row.name] = indexColumn;\n }\n\n let uniqueIdentifierOfficerIdx = -1;\n\n for (let i = 0; i < officerColumns.length; i++) {\n const uniqueIdRow = officerColumns[i].find((r) => r && r.name === 'uniqueFieldId' && r.checked);\n if (uniqueIdRow) {\n uniqueIdentifierOfficerIdx = i;\n break;\n }\n\n const thisColUniqueCustomFieldName = officers[i]?.uniqueFieldId?.data?.question || '';\n const uniqueCustomRow = officerColumns[i].find(\n (r) => r && !r.isStandardField && r.name === thisColUniqueCustomFieldName && r.checked\n );\n if (uniqueCustomRow) {\n uniqueIdentifierOfficerIdx = i;\n break;\n }\n }\n\n if (uniqueIdentifierOfficerIdx !== -1) {\n updatedData.updateOfficerId = officers[uniqueIdentifierOfficerIdx]._id;\n updatedData.archiveOfficerIds = officers\n .filter((_, i) => i !== uniqueIdentifierOfficerIdx)\n .map((officer) => officer._id);\n } else {\n const hasRemainingFields = Object.values(updatedData.officerData).some(\n (value) =>\n value !== null && (typeof value !== 'object' || Object.values(value).some((v) => v !== null))\n );\n updatedData.updateOfficerId = hasRemainingFields ? officers[indexColumn]._id : '';\n updatedData.archiveOfficerIds = hasRemainingFields\n ? officers.filter((_, i) => i !== indexColumn).map((officer) => officer._id)\n : officers.map((officer) => officer._id);\n }\n }\n return updatedData;\n });\n return { ...row, checked: newChecked };\n }\n return row;\n });\n }\n if (_indexColumn !== indexColumn) {\n return column.map((row, _indexRow) => {\n if (_indexRow === indexRow && row) {\n return { ...row, checked: false };\n }\n return row;\n });\n }\n return column;\n });\n setOfficerColumns(updatedOfficerColumns);\n }\n\n function handleSelectAll(indexColumn) {\n const isAllSelected = officerColumns[indexColumn]?.every((row) => row.checked);\n const updatedOfficerColumns = officerColumns.map((column, _indexColumn) => {\n if (_indexColumn === indexColumn) {\n return column.map((row) => (row ? { ...row, checked: !isAllSelected } : row));\n }\n return column.map((row) => (row ? { ...row, checked: false } : row));\n });\n setOfficerColumns(updatedOfficerColumns);\n setMergeOfficerData((prev) => {\n const updatedData = { ...prev };\n if (!isAllSelected) {\n updatedData.updateOfficerId = officers[indexColumn]._id;\n updatedData.officerData = updatedOfficerColumns[indexColumn].reduce(\n (acc, row) => {\n if (row.isStandardField) {\n acc[row.name] = row.value;\n } else {\n acc.customFields = acc.customFields || {};\n acc.customFields[row.name] = row.value;\n }\n return acc;\n },\n { customFields: {} }\n );\n updatedData.archiveOfficerIds = officers.filter((_, i) => i !== indexColumn).map((officer) => officer._id);\n } else {\n updatedData.updateOfficerId = '';\n updatedData.officerData = Object.keys(updatedData.officerData).reduce(\n (acc, key) => {\n if (key === 'customFields') {\n acc[key] = Object.keys(updatedData.officerData[key]).reduce((nestedAcc, nestedKey) => {\n nestedAcc[nestedKey] = null;\n return nestedAcc;\n }, {});\n } else {\n acc[key] = null;\n }\n return acc;\n },\n { customFields: {} }\n );\n updatedData.archiveOfficerIds = officers.map((officer) => officer._id);\n }\n return updatedData;\n });\n }\n\n function handleOpenLinkCard(event, indexColumn, indexRow, row, officerColumn) {\n if (openLinkCardInfo.indexColumn === indexColumn && openLinkCardInfo.indexRow === indexRow) {\n setOpenLinkCardInfo({ indexColumn: null, indexRow: null, rowData: null, officerColumn: null });\n setAnchorEl(null);\n return;\n }\n setAnchorEl(event.currentTarget);\n setOpenLinkCardInfo({ indexColumn, indexRow, rowData: row, officerColumn });\n }\n\n function handleCloseLinkCard() {\n setOpenLinkCardInfo({ indexColumn: null, indexRow: null, rowData: null, officerColumn: null });\n setAnchorEl(null);\n }\n\n function handleLinkFields(row, nameCustom, indexColumn, indexRow) {\n setLinkFields((prev) => {\n const existingLinkIndex = prev.findIndex((item) => item.toDelete === row.name);\n if (existingLinkIndex >= 0) {\n const newLinks = [...prev];\n newLinks[existingLinkIndex] = { link: nameCustom, toDelete: row.name };\n return newLinks;\n }\n return [...prev, { link: nameCustom, toDelete: row.name }];\n });\n setOfficerColumns((prev) => {\n const newColumns = [...prev];\n newColumns[indexColumn][indexRow] = {\n ...newColumns[indexColumn][indexRow],\n linkTo: nameCustom,\n };\n return newColumns;\n });\n handleCloseLinkCard();\n }\n\n async function showOfficers(ids) {\n if (ids) {\n const _officers = await getOfficersById(ids);\n _officers.forEach((officer, index) => {\n let uniqueFieldId = officer.uniqueFieldId;\n delete officer.uniqueFieldId;\n _officers[index] = { uniqueFieldId, ...officer };\n });\n setOfficers(_officers);\n const _rowsNames = getFieldRows(_officers);\n setRowsNames(_rowsNames);\n const officersValue = _officers.map((officer) => buildOfficerColumn(officer, _rowsNames));\n const updatedOfficerColumns = officersValue.map((column, indexColumn) =>\n column.map((row, indexRow) => {\n if (row) {\n const isChecked = checkIfRowShouldBeChecked(\n row,\n _officers[indexColumn],\n location.state?.mergeOfficerData || mergeOfficerData\n );\n return { ...row, checked: isChecked };\n }\n return row;\n })\n );\n setOfficerColumns(updatedOfficerColumns);\n if (Object.keys(location.state?.officerColumns || {}).length > 0) {\n setOfficerColumns(location.state?.officerColumns);\n }\n if (!location.state?.mergeOfficerData) {\n initializeMergeOfficerData(_officers, _rowsNames);\n }\n }\n }\n\n useEffect(() => {\n const customFieldsArray = Object.keys(mergeOfficerData?.officerData?.customFields);\n setCustomFields(customFieldsArray);\n }, [mergeOfficerData]);\n\n useEffect(() => {\n async function fetchOfficers() {\n const params = new URLSearchParams(location.search);\n const ids = params.get('officers_id');\n await showOfficers(ids);\n }\n fetchOfficers();\n }, [location.search]);\n\n const checkIfRowShouldBeChecked = (row, officer, mergeOfficerData) => {\n if (!mergeOfficerData) return false;\n if (!row.isStandardField) {\n return (\n mergeOfficerData.officerData.customFields &&\n mergeOfficerData.officerData.customFields[row.name] === officer.customFields?.[row.name]\n );\n }\n return false;\n };\n\n function initializeMergeOfficerData(officers, rows) {\n const initialOfficerData = officers.reduce(\n (acc, officer) => {\n Object.entries(officer).forEach(([key]) => {\n if (\n key === '_id' ||\n key === 'EIS' ||\n key === 'archived' ||\n key === 'organizationId' ||\n key === 'checkedMeetings' ||\n key === 'createdAt' ||\n key === 'files' ||\n key === 'flagged' ||\n key === 'meetings' ||\n key === 'updatedAt'\n )\n return;\n if (key === 'customFields') {\n acc.customFields = acc.customFields || {};\n rows\n .filter((r) => !r.isStandardField)\n .forEach((r) => {\n acc.customFields[r.name] = null;\n });\n } else if (!['cases', 'allegations', 'intervene', 'monitor', 'attachments'].includes(key)) {\n acc[key] = null;\n }\n });\n return acc;\n },\n { customFields: {} }\n );\n const parseNumber = (value) => (typeof value === 'number' ? value : parseInt(value, 10) || 0);\n const totalCases = officers.reduce((sum, officer) => sum + parseNumber(officer.cases), 0);\n const totalAllegations = officers.reduce((sum, officer) => sum + parseNumber(officer.allegations), 0);\n const archiveOfficerIds = officers.map((officer) => officer._id);\n const intervene = officers\n .filter((officer) => officer.intervene && archiveOfficerIds.includes(officer._id))\n .map((officer) => officer._id);\n const monitor = officers\n .filter((officer) => officer.monitor && archiveOfficerIds.includes(officer._id))\n .map((officer) => officer._id);\n const attachments = officers\n .filter((officer) => officer.attachments && archiveOfficerIds.includes(officer._id))\n .map((officer) => officer._id);\n setMergeOfficerData({\n updateOfficerId: '',\n officerData: initialOfficerData,\n archiveOfficerIds: archiveOfficerIds,\n cases: totalCases,\n allegations: totalAllegations,\n intervene: intervene,\n monitor: monitor,\n attachments: attachments,\n });\n }\n\n const isNextButtonDisabled = useMemo(() => {\n if (Object.keys(mergeOfficerData?.officerData?.customFields || {}).length === 0) return true;\n\n return (\n !mergeOfficerData?.officerData?.uniqueFieldId ||\n Object.keys(mergeOfficerData?.officerData?.customFields || {}).some((field) => {\n const fieldValue = mergeOfficerData.officerData.customFields[field];\n const isYesNoField = officers.some((officer) => officer.customFieldsType?.[field] === 'yesNo');\n return (\n fieldValue === null &&\n !isYesNoField &&\n officers.some((officer) => {\n const value = officer?.customFields[field]?.value;\n return (\n value !== null &&\n ((typeof value === 'string' && value.trim().length > 0) ||\n (Array.isArray(value) && value.length > 0) ||\n (typeof value === 'object' && Object.keys(value).length > 0) ||\n typeof value === 'boolean')\n );\n })\n );\n })\n );\n }, [mergeOfficerData, officers]);\n\n return (\n <>\n <Box className={classes.container} display=\"flex\" flexDirection=\"column\" marginBottom={2} marginTop=\"35px\">\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\" marginBottom={2}>\n <Box>\n <DashButton onClick={() => history.push('/officers')}>CANCEL</DashButton>\n </Box>\n <Box display=\"flex\" flexDirection=\"column\" justifyContent=\"center\" alignItems=\"center\" gridGap={8}>\n <Typography className={classes.title} variant=\"h5\" id=\"tableTitle\" component=\"div\">\n Compare Officers\n </Typography>\n <Typography className={classes.subtitle} variant=\"subtitle2\" id=\"tableTitle\" component=\"div\">\n Choose the information you want to keep of each Officer\n </Typography>\n </Box>\n <Box>\n <DashButton\n onClick={() =>\n history.push('/officers/merge-confirmation', { mergeOfficerData, linkFields, officerColumns })\n }\n disabled={isNextButtonDisabled}\n >\n NEXT\n </DashButton>\n </Box>\n </Box>\n <Box marginTop=\"20px\">\n <TableContainer>\n <TableColumn>\n <TableRowTitle>INFORMATION</TableRowTitle>\n {rowsNames.map((row) => (\n <TableRowField key={row.name}>{row.fieldName}</TableRowField>\n ))}\n </TableColumn>\n <TableContent id=\"table-content\" style={{ width: '100%' }}>\n {officerColumns.map((officerColumn, indexColumn) => (\n <TableColumnOfficer key={indexColumn}>\n <TableRowOfficer>\n <Typography className={classes.officerTitle}>Officer {indexColumn + 1}</Typography>\n <Typography className={classes.officerSelectAll} onClick={() => handleSelectAll(indexColumn)}>\n {officerColumns[indexColumn]?.every((row) => row.checked) ? 'Deselect All' : 'Select All'}\n </Typography>\n </TableRowOfficer>\n {officerColumn.map((row, indexRow) => {\n const isYesNo = row.type === 'yesNo';\n let displayValue = row.value;\n if (isYesNo && typeof row.value === 'boolean') {\n displayValue = row.value ? 'Yes' : 'No';\n }\n if (row.name === 'uniqueFieldId') {\n if (!row.value) {\n return (\n <TableRowCheckbox key={indexRow}>\n <Box />\n </TableRowCheckbox>\n );\n }\n const currentHasEmptyValue = !row.value || !row.value.value;\n const otherOfficersHaveData = officers\n .filter((_, i) => i !== indexColumn)\n .some((o) => o.uniqueFieldId?.value && o.uniqueFieldId.value !== '');\n const shouldDisable = currentHasEmptyValue && otherOfficersHaveData;\n return (\n <TableRowCheckbox key={indexRow}>\n <Box>\n <Box display=\"flex\" alignItems=\"center\" flexDirection=\"row\">\n <Checkbox\n checked={row.checked}\n onChange={() => handleCheckboxChange(indexColumn, indexRow)}\n color=\"primary\"\n disabled={shouldDisable}\n icon={\n <span\n style={{\n width: 16,\n height: 16,\n border: shouldDisable ? '1px solid #bbb' : '1px solid #ccc',\n borderRadius: 2,\n display: 'inline-block',\n opacity: shouldDisable ? 0.5 : 1,\n backgroundColor: shouldDisable ? '#f1f1f1' : 'white',\n cursor: shouldDisable ? 'not-allowed' : 'pointer',\n }}\n />\n }\n checkedIcon={\n <span\n style={{\n width: 16,\n height: 16,\n backgroundColor: '#3B70FE',\n borderRadius: 2,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{ width: 12, height: 12 }}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </span>\n }\n />\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"start\">\n <Box display=\"flex\" alignItems=\"center\" style={{ position: 'relative', gap: '4px' }}>\n <Typography className={classes.uniqueFieldIdcheckBoxText}>\n <span style={{ color: '#3B70FE' }} title={row?.value?.data?.question || ''}>\n {row?.value?.data?.question}\n </span>\n <span title={row?.value?.value || ''}>{row?.value?.value || ''}</span>\n </Typography>\n </Box>\n </Box>\n </Box>\n </Box>\n </TableRowCheckbox>\n );\n } else {\n if (!row.value && !isYesNo) {\n return (\n <TableRowCheckbox key={indexRow}>\n <Box />\n </TableRowCheckbox>\n );\n }\n if (Array.isArray(row.value) && row.value.length === 0 && !isYesNo) {\n return (\n <TableRowCheckbox key={indexRow}>\n <Box />\n </TableRowCheckbox>\n );\n }\n const uniqueCustomFieldName = officers[indexColumn]?.uniqueFieldId?.data?.question || '';\n const isUniqueCustomField = !row.isStandardField && row.name === uniqueCustomFieldName;\n\n let shouldDisable = false;\n\n if (isUniqueCustomField) {\n const currentHasEmptyValue = !row.value || row.value === '';\n\n const otherOfficersHaveData = officers\n .filter((_, i) => i !== indexColumn)\n .some((o) => {\n const fieldValue =\n o.customFields && o.customFields[row.name] ? o.customFields[row.name].value : null;\n return fieldValue && fieldValue !== '';\n });\n\n shouldDisable = currentHasEmptyValue && otherOfficersHaveData;\n }\n\n return (\n <TableRowCheckbox key={indexRow}>\n <Box>\n <Box display=\"flex\" alignItems=\"center\" flexDirection=\"row\">\n <Checkbox\n checked={row.checked}\n onChange={() => handleCheckboxChange(indexColumn, indexRow)}\n color=\"primary\"\n disabled={shouldDisable}\n icon={\n <span\n style={{\n width: 16,\n height: 16,\n border: shouldDisable ? '1px solid #bbb' : '1px solid #ccc',\n borderRadius: 2,\n display: 'inline-block',\n opacity: shouldDisable ? 0.5 : 1,\n backgroundColor: shouldDisable ? '#f1f1f1' : 'white',\n cursor: shouldDisable ? 'not-allowed' : 'pointer',\n }}\n />\n }\n checkedIcon={\n <span\n style={{\n width: 16,\n height: 16,\n backgroundColor: '#3B70FE',\n borderRadius: 2,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{ width: 12, height: 12 }}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </span>\n }\n />\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"start\">\n <Box display=\"flex\" alignItems=\"center\" style={{ position: 'relative', gap: '4px' }}>\n <Typography className={classes.officerCheckboxText}>\n <span title={displayValue}>{displayValue}</span>\n </Typography>\n {!row.isStandardField && !row.special && (\n <Box style={{ position: 'relative' }}>\n <Button\n onClick={(e) =>\n handleOpenLinkCard(e, indexColumn, indexRow, row, officerColumn)\n }\n style={{ display: 'flex', alignItems: 'center', minWidth: 'unset' }}\n >\n <AddCircleOutlineIcon htmlColor=\"#2E66FE\" style={{ fontSize: '14px' }} />\n </Button>\n <Popover\n open={\n openLinkCardInfo.indexColumn === indexColumn &&\n openLinkCardInfo.indexRow === indexRow\n }\n anchorEl={anchorEl}\n onClose={handleCloseLinkCard}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n >\n <Box\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n alignItems: 'center',\n padding: '12px',\n width: 165,\n }}\n >\n <Typography style={{ color: '#575A66', fontWeight: '500' }}>\n Link to new field:\n </Typography>\n <Box\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n width: '100%',\n }}\n >\n {customFields?.map((name) => {\n const customFieldFind = officerColumn.find((item) => item.name === name);\n const exist = linkFields.some(\n (item) =>\n item?.link === name ||\n item?.toDelete === name ||\n item?.link === row?.name\n );\n if (!customFieldFind?.value && customFieldFind.type !== 'yesNo') {\n return null;\n }\n if (\n Array.isArray(customFieldFind.value) &&\n customFieldFind.value.length === 0 &&\n customFieldFind.type !== 'yesNo'\n ) {\n return null;\n }\n if (exist) return null;\n if (customFieldFind?.special) return null;\n if (customFieldFind.type !== row.type) return null;\n return (\n <React.Fragment key={name}>\n <Button\n onClick={() => handleLinkFields(row, name, indexColumn, indexRow)}\n style={{\n display: 'flex',\n alignItems: 'center',\n minWidth: 'unset',\n textTransform: 'none',\n width: '100%',\n justifyContent: 'unset',\n }}\n >\n <Typography>{name}</Typography>\n </Button>\n <Divider style={{ width: '100%' }} />\n </React.Fragment>\n );\n })}\n </Box>\n </Box>\n </Popover>\n </Box>\n )}\n </Box>\n {row?.linkTo && (\n <Typography style={{ color: '#2E66FE', fontSize: 12 }}>\n (link: {row.linkTo})\n </Typography>\n )}\n </Box>\n </Box>\n </Box>\n </TableRowCheckbox>\n );\n }\n })}\n </TableColumnOfficer>\n ))}\n <TableColumn id=\"table-column-extra\" style={{ width: '100%', minWidth: 'unset' }}>\n {['', ...rowsNames].map((_, idx) => (\n <TableRow key={idx} />\n ))}\n </TableColumn>\n </TableContent>\n </TableContainer>\n </Box>\n </Box>\n </>\n );\n};\n\nexport default OfficersMerge;\n","import React, { useEffect, useState } from 'react';\nimport { Box, Typography, makeStyles } from '@material-ui/core';\nimport DashButton from '../../../components/DashButton';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { useLocation } from 'react-router-dom';\nimport { toast } from '../../../components/Notification';\nimport { countItemsOfficers, mergeOfficer } from '../../../services/unarmed';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: '0 20px',\n },\n title: {\n color: '#303030',\n },\n subtitle: {\n color: '#575A66',\n fontWeight: 400,\n },\n table: {\n tableLayout: 'auto',\n width: '100%',\n },\n labelCell: {\n fontWeight: 500,\n paddingRight: '0',\n borderBottom: 'none',\n borderTop: 'none',\n whiteSpace: 'nowrap',\n flex: 1,\n width: '250px',\n },\n dataCell: {\n width: '50%',\n textAlign: 'left',\n verticalAlign: 'middle',\n color: '#757575',\n borderBottom: 'none',\n borderTop: 'none',\n flex: 1,\n width: '250px',\n },\n sectionHeader: {\n textAlign: 'center',\n fontWeight: 'bold',\n color: '#303030',\n margin: '0',\n },\n buttonContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n marginBottom: '20px',\n },\n errorBanner: {\n backgroundColor: '#ffe0e0',\n color: '#d32f2f',\n padding: '10px 20px',\n marginBottom: '20px',\n borderRadius: '4px',\n textAlign: 'center',\n fontWeight: 'bold',\n },\n}));\n\nconst TableContainer = styled(Box)`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: white;\n width: 100%;\n padding: 18px 0;\n min-height: 150px;\n`;\n\nconst OfficersMergeConfirmation = () => {\n const classes = useStyles();\n const history = useHistory();\n const location = useLocation();\n const [countItems, setCountItems] = useState({\n cases: 0,\n allegations: 0,\n intervene: 0,\n monitor: 0,\n attachments: 0,\n });\n const { mergeOfficerData, linkFields, officerColumns } = location.state || {};\n\n console.log(\"mergeOfficerData at initialization:\", mergeOfficerData);\n\n const officerId = mergeOfficerData.updateOfficerId;\n const officerData = {\n id: mergeOfficerData.updateOfficerId || 'N/A',\n ...mergeOfficerData.officerData,\n customFields: mergeOfficerData.officerData.customFields || {},\n };\n\n useEffect(() => {\n const fetchOfficerIds = async () => {\n const response = await countItemsOfficers({ officerIds: [officerId, ...mergeOfficerData.archiveOfficerIds] });\n if (response.status === 200) {\n setCountItems({\n cases: response?.data?.totalCases || 0,\n allegations: response?.data?.totalAllegations || 0,\n intervene: response?.data?.totalIntervines || 0,\n monitor: response?.data?.totalMonitors || 0,\n attachments: response?.data?.totalFiles || 0,\n });\n }\n };\n fetchOfficerIds();\n }, [mergeOfficerData]);\n\n const handleSubmitMerge = async () => {\n const data = {\n mergeOfficerId: mergeOfficerData.updateOfficerId,\n restOfficerIds: mergeOfficerData.archiveOfficerIds,\n linkfields: linkFields,\n uniqueFieldId: officerData.uniqueFieldId,\n customFields:\n Object.entries(mergeOfficerData.officerData.customFields).map(([key, value]) => ({\n name: key,\n value: value === '' ? null : value === 'true' ? true : value,\n })) || [],\n };\n const response = await mergeOfficer(data);\n if (response.status === 200) {\n toast.success('Officers merged successfully');\n history.push(`/officer/${mergeOfficerData.updateOfficerId}`);\n } else {\n toast.error('Failed to merge officers');\n }\n };\n\n if (!mergeOfficerData) {\n return (\n <Box className={classes.container} display=\"flex\" flexDirection=\"column\" alignItems=\"center\">\n <Typography variant=\"h5\" className={classes.title}>\n No Data Available\n </Typography>\n <DashButton onClick={() => history.push('/officers/merge')}>BACK</DashButton>\n </Box>\n );\n }\n\n return (\n <Box className={classes.container} display=\"flex\" flexDirection=\"column\" marginBottom={2} marginTop=\"35px\">\n <Box className={classes.container} display=\"flex\" flexDirection=\"column\" alignItems=\"center\">\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\" marginBottom={2}>\n <Box>\n <DashButton\n onClick={() => {\n const officerIds = [\n mergeOfficerData.updateOfficerId,\n ...(mergeOfficerData.archiveOfficerIds || []),\n ].join(',');\n\n history.push({\n pathname: '/officers/merge',\n search: `?officers_id=${officerIds}`,\n state: { mergeOfficerData, officerColumns },\n });\n }}\n >\n PREVIOUS\n </DashButton>\n </Box>\n\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"center\" flex=\"1\">\n <Typography className={classes.title} variant=\"h5\">\n Confirm Merge\n </Typography>\n <Typography className={classes.subtitle} variant=\"subtitle2\">\n Confirm merge officer details\n </Typography>\n </Box>\n\n <Box>\n <DashButton onClick={handleSubmitMerge} disabled={!officerId}>\n CONFIRM\n </DashButton>\n </Box>\n </Box>\n\n {!officerId && (\n <Box className={classes.errorBanner}>\n There's been an error. Hit 'Previously' to return to merge selection page. If issue persists, please return\n to the main Officers page.\n </Box>\n )}\n <Box width=\"100%\" marginTop={2}>\n <TableContainer>\n <div style={{ width: '100%', paddingBottom: '60px' }}>\n <p\n style={{\n textAlign: 'center',\n fontSize: '14px',\n fontWeight: 'bold',\n marginBottom: '18px',\n }}\n >\n New Officer Information\n </p>\n <div style={{ display: 'flex', flexDirection: 'column', width: '100%' }}>\n <div\n style={{\n borderBottom: '1px solid #d3d3d3',\n width: '100%',\n alignSelf: 'stretch',\n }}\n ></div>\n </div>\n </div>\n <div style={{ display: 'flex', justifyContent: 'center', marginLeft: '155px' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '15px', width: '100%' }}>\n <div key={officerData.uniqueFieldId.value} style={{ display: 'flex', flex: 1, gap: '15px' }}>\n <div className={classes.labelCell}>\n <p>UNIQUE IDENTIFIER</p>\n </div>\n <div className={classes.dataCell}>\n <p>{officerData.uniqueFieldId.value || 'N/A'}</p>\n </div>\n </div>\n {Object.entries(officerData.customFields).map(([key, value]) => (\n <div key={key} style={{ display: 'flex', flex: 1, gap: '15px' }}>\n <div className={classes.labelCell}>\n <p>{key.replace(/([A-Z])/g, ' $1').toUpperCase()}</p>\n </div>\n <div className={classes.dataCell}>\n <p>{value === true ? 'Yes' : value === false ? 'No' : value === null ? 'N/A' : value}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n <div style={{ width: '90%', paddingBottom: '30px', paddingTop: '30px' }}>\n <div style={{ display: 'flex', flexDirection: 'column', width: '100%' }}>\n <div\n style={{\n borderBottom: '1px solid #b0b0b0',\n width: '100%',\n alignSelf: 'stretch',\n }}\n ></div>\n </div>\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'flex-start', marginLeft: '155px' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '15px', width: '100%' }}>\n {Object.entries(countItems).map(([key, value]) => (\n <div key={key} style={{ display: 'flex', flex: 1, gap: '15px' }}>\n <div className={classes.labelCell}>\n <p>{key.replace(/([A-Z])/g, ' $1').toUpperCase()}</p>\n </div>\n <div className={classes.dataCell}>\n <p>\n {value} {key.charAt(0).toUpperCase() + key.slice(1)}\n </p>\n </div>\n </div>\n ))}\n </div>\n </div>\n </TableContainer>\n </Box>\n </Box>\n </Box>\n );\n};\n\nexport default OfficersMergeConfirmation;\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { OutLineInput } from '../CaseDetails/UpdateCase';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#fff',\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid #4b7bff ',\n color: '#4b7bff',\n '&:hover': {\n background: '#fff',\n border: '1px solid #4b7bff ',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\n/**\n * ProfileInformation component for displaying and editing user profile information.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {Object} props.me - The current user object.\n * @param {Object} props.firstName - First name object with value, onChange handler, and error.\n * @param {Object} props.lastName - Last name object with value, onChange handler, and error.\n * @param {Object} props.phoneNumber - Phone number object with value, onChange handler, and error.\n * @param {boolean} props.isEditing - Flag indicating if the profile is in edit mode.\n * @returns {React.ReactElement} The ProfileInformation component.\n */\nconst ProfileInformation = ({ me, firstName, lastName, phoneNumber, isEditing }) => {\n const classes = useStyles();\n\n return (\n <Box\n style={{ background: '#fff' }}\n boxShadow=\"0 4px 8px #eee\"\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n padding=\"15px 22px\"\n borderRadius={4}\n >\n <Box padding=\"10px 15px\" flexGrow={1}>\n <Box display=\"flex\" width=\"100%\" justifyContent=\"space-between\">\n <Box display=\"flex\" width=\"100%\" maxWidth=\"200px\" alignItems=\"center\" justifyContent=\"space-between\">\n <Box width=\"100%\" maxWidth=\"200px\">\n <Typography variant=\"body2\" className={classes.label}>\n Email Address\n </Typography>\n <Typography variant=\"subtitle\">{me?.email || 'N/A'}</Typography>\n </Box>\n </Box>\n <Box width=\"100%\" maxWidth=\"200px\">\n <Typography variant=\"body2\" className={classes.label}>\n First Name {isEditing && <strong style={{ color: 'red' }}>*</strong>}\n </Typography>\n {isEditing ? (\n <>\n <OutLineInput\n placeholder=\"First Name\"\n value={firstName.value}\n onChange={firstName.onChange}\n error={firstName.error}\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n 'data-testid': 'profile-edit-input-first-name',\n }}\n labelWidth={0}\n />\n <span className={classes.labelError}>{firstName.error}</span>\n </>\n ) : (\n <Typography variant=\"subtitle\">{me?.firstName || 'N/A'}</Typography>\n )}\n </Box>\n <Box width=\"100%\" maxWidth=\"200px\">\n <Typography variant=\"body2\" className={classes.label}>\n Last Name {isEditing && <strong style={{ color: 'red' }}>*</strong>}\n </Typography>\n {isEditing ? (\n <>\n <OutLineInput\n placeholder=\"Last Name\"\n value={lastName.value}\n onChange={lastName.onChange}\n error={lastName.error}\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n 'data-testid': 'profile-edit-input-last-name',\n }}\n labelWidth={0}\n />\n <span className={classes.labelError}>{lastName.error}</span>\n </>\n ) : (\n <Typography variant=\"subtitle\">{me?.lastName || 'N/A'}</Typography>\n )}\n </Box>\n <Box width=\"100%\" maxWidth=\"200px\">\n <Typography variant=\"body2\" className={classes.label}>\n Phone Number {isEditing && <strong style={{ color: 'red' }}>*</strong>}\n </Typography>\n {isEditing ? (\n <>\n <OutLineInput\n placeholder=\"Phone Number\"\n value={phoneNumber.value}\n onChange={phoneNumber.onChange}\n error={phoneNumber.error}\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n 'data-testid': 'profile-edit-input-phone-number',\n }}\n labelWidth={0}\n />\n <span className={classes.labelError}>{phoneNumber.error}</span>\n </>\n ) : (\n <Typography variant=\"subtitle\">\n {me?.phone?.replace(/(\\d{3})(\\d{3})(\\d{4})/g, '($1) $2-$3') ||\n me?.phoneNumber?.replace(/(\\d{3})(\\d{3})(\\d{4})/g, '($1) $2-$3') ||\n 'N/A'}\n </Typography>\n )}\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n\nProfileInformation.propTypes = {\n me: PropTypes.shape({\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n phone: PropTypes.string,\n phoneNumber: PropTypes.string,\n email: PropTypes.string,\n }),\n firstName: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n }).isRequired,\n lastName: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n }).isRequired,\n phoneNumber: PropTypes.shape({\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n }).isRequired,\n isEditing: PropTypes.bool.isRequired,\n};\n\nProfileInformation.defaultProps = {\n me: {\n firstName: 'N/A',\n lastName: 'N/A',\n phone: 'N/A',\n phoneNumber: 'N/A',\n email: 'N/A',\n },\n};\n\nexport default ProfileInformation;\n","import { makeStyles, TextField, Button, Box, CircularProgress, Typography, Grid } from '@material-ui/core';\n\nimport React, { useState } from 'react';\nimport { toast } from '../../components/Notification';\n// import { changeUserpasswordFromProfile } from '../../services/unarmed';\nimport Alert from '../../components/Alert';\nimport useInput from '../../hooks/useInput';\nimport { changeUserpasswordFromProfile } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: 0,\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: 0,\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n minWidth: 400,\n outline: 0,\n },\n}));\n\nexport default function ChangePassordProfile({ setOpen }) {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const currentPassword = useInput('');\n const newPassword = useInput('');\n const confirmNewPassword = useInput('');\n\n const onChangePassword = async () => {\n if (newPassword.value !== confirmNewPassword.value) {\n toast.error(\"New password and confirm new password don't match\");\n return;\n }\n if (!newPassword.value.match(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*/()-,=+{}[\\]<>?`~|;:'\".]).{12,}$/)) {\n toast.error(\n 'Password should be a minimum of 12 characters and include at least one uppercase letter, one lowercase letter, one number, and a special character.'\n );\n return;\n }\n\n setLoading(true);\n try {\n await changeUserpasswordFromProfile({\n currentPassword: currentPassword.value,\n newPassword: newPassword.value,\n });\n toast.success('The password was changed successfully');\n setOpen(false);\n } catch (error) {\n if (error.response.status === 422) {\n toast.error(\"Current password and new password can't be the same\");\n } else {\n toast.error(error.response?.data?.message);\n }\n }\n setLoading(false);\n };\n\n return (\n <>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Change Password</Typography>\n <Alert status=\"warning\">\n <Typography style={{ fontSize: 14, fontWeight: '500' }}>\n Your current password will expire in 20 Days.\n </Typography>\n </Alert>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <TextField\n id=\"standard-required1\"\n label={<Typography> Current Password</Typography>}\n type=\"password\"\n style={{ width: '100%' }}\n value={currentPassword.value}\n onChange={currentPassword.onChange}\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n id=\"standard-required1\"\n label={<Typography> New Password</Typography>}\n type=\"password\"\n style={{ width: '100%' }}\n value={newPassword.value}\n onChange={newPassword.onChange}\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n id=\"standard-required1\"\n type=\"password\"\n label={<Typography> Confirm New Password</Typography>}\n style={{ width: '100%' }}\n value={confirmNewPassword.value}\n onChange={confirmNewPassword.onChange}\n />\n </Grid>\n </Grid>\n\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n style={{ color: '#ccc' }}\n onClick={() => setOpen(false)}\n >\n CANCEL\n </Button>\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={onChangePassword}\n disabled={loading || !currentPassword.value || !newPassword.value || !confirmNewPassword.value}\n >\n {loading ? <CircularProgress color=\"#4b7bff\" size=\"25px\" /> : 'CHANGE'}\n </Button>\n </Box>\n </>\n );\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/destructuring-assignment */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable react/jsx-props-no-spreading */\nimport { Box, Button, FormControl, IconButton, makeStyles, Popper, TextField, Typography } from '@material-ui/core';\nimport { Avatar, Col, Row, Switch } from 'antd';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { Autocomplete } from '@material-ui/lab';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport profileImg from '../../assets/profile.png';\nimport Card, { useCardStyles } from '../../components/Card';\nimport AddMore from '../../components/AddMore';\nimport {\n fetchCubeBucketsDate,\n getFilterByCase,\n getUsers,\n getUsersSearch,\n userGetNotificationConfig,\n userSaveNotificationConfig,\n} from '../../services/unarmed';\nimport { EIS, NOTIFICATIONS } from '../../config/constants';\nimport { axiosCatchError } from '../../utils';\n\nlet isSafari = false;\n\nif (navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('Chrome') === -1) {\n isSafari = true;\n}\n\nconst useStyles = (_isSafari = false) =>\n makeStyles({\n customPopperWithLargePadding: {\n top: !_isSafari ? '-1% !important' : '-6% !important',\n left: !_isSafari ? '-0% !important' : '-9% !important',\n height: '150px !important',\n zIndex: 1000,\n padding: '0px 22px',\n\n '& .MuiPaper-root': {\n height: '150px !important',\n },\n\n '& .MuiAutocomplete-listbox': {\n height: '150px !important',\n },\n },\n customPopper: {\n top: !_isSafari ? '-1% !important' : '-6% !important',\n left: !_isSafari ? '-0% !important' : '-9% !important',\n height: '150px !important',\n zIndex: 1000,\n padding: '0px 11px',\n\n '& .MuiPaper-root': {\n height: '150px !important',\n },\n\n '& .MuiAutocomplete-listbox': {\n height: '150px !important',\n },\n },\n inputRoot: {\n flexWrap: 'nowrap',\n overflowY: 'hidden',\n overflowX: 'hidden',\n border: '1px solid rgba(0, 0, 0, 0.23)',\n scrollbarWidth: 'thin',\n\n '& .MuiOutlinedInput-notchedOutline': {\n border: '0 !important',\n },\n },\n inputRootClicked: {\n flexWrap: 'nowrap',\n overflowY: 'hidden',\n overflowX: 'scroll',\n border: '1px solid rgba(0, 0, 0, 0.23)',\n scrollbarWidth: 'thin',\n\n '& .MuiOutlinedInput-notchedOutline': {\n border: '0 !important',\n },\n },\n });\n\nfunction CustomPopper(props) {\n const classes = useStyles(isSafari)();\n return (\n <Popper\n {...props}\n className={props.withLargePadding ? classes.customPopperWithLargePadding : classes.customPopper}\n />\n );\n}\n\nfunction findItemsInArray(searchArray, targetArray) {\n return searchArray.filter((item) => targetArray.includes(item));\n}\n\n/**\n * Component to render different configurations based on the provided configType.\n *\n * @param {Object} props - Component properties.\n * @param {string} props.configType - Type of the configuration (e.g., 'configCreated', 'configAssigned').\n * @param {Object} props.fields - Field values for the configuration.\n * @param {Object} props.options - Options for the various fields.\n * @param {function} props.addNewConfig - Callback to add a new configuration.\n * @param {boolean} props.email - Whether email notifications are enabled.\n * @param {boolean} props.dashboard - Whether dashboard notifications are enabled.\n * @param {function} props.onChangeEmail - Callback when email switch is toggled.\n * @param {function} props.onChangeDashboard - Callback when dashboard switch is toggled.\n * @param {function} props.onChangeField - Callback when a field value changes.\n */\nconst ConfigRow = ({\n configType,\n fields,\n options,\n addNewConfig,\n email,\n dashboard,\n onChangeEmail,\n onChangeDashboard,\n onChangeField,\n onSearch,\n onClickDelete,\n configIndex,\n}) => {\n const [defaultCaseTypes, setDefaultCaseTypes] = useState([...(options?.caseTypes || [])]);\n const [autocompleteFocused, setAutocompleteFocused] = useState('');\n\n const classes = useStyles(isSafari)();\n\n useEffect(() => {\n if (options.caseTypes) {\n setDefaultCaseTypes(options.caseTypes);\n }\n }, [options]);\n\n useEffect(() => {\n if (fields.caseType && Array.isArray(fields.caseType) && defaultCaseTypes.length > 0) {\n const foundItems = findItemsInArray(fields.caseType, defaultCaseTypes);\n\n if (foundItems.length !== fields.caseType.length) {\n setDefaultCaseTypes([\n ...fields.caseType,\n ...defaultCaseTypes.filter((item) => fields.caseType.indexOf(item) === -1),\n ]);\n }\n }\n }, [fields.caseType, defaultCaseTypes]);\n\n const selectUser = (\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n multiple\n limitTags={2}\n renderOption={(user) => {\n if (typeof user === 'string') return user;\n\n return (\n <Box display=\"flex\" alignItems=\"center\" padding=\"8px 0px\">\n <Avatar src={user?.photo?.url || user?.profile_img || profileImg} style={{ marginRight: 10 }} />\n <Box>\n <Typography variant=\"body1\" style={{ fontSize: 13 }}>\n {user?.firstName ? `${user?.firstName} ${user?.lastName} ` : `${user?.username || ''}`}\n </Typography>\n <Typography variant=\"body1\" style={{ fontSize: 13 }}>\n {user.email}\n </Typography>\n </Box>\n </Box>\n );\n }}\n classes={{\n inputRoot:\n autocompleteFocused === 'selectUser' && fields?.assignedTo?.length > 2\n ? classes.inputRootClicked\n : classes.inputRoot,\n }}\n PopperComponent={CustomPopper}\n value={fields.assignedTo}\n options={['Select all', ...(options?.users || [])]}\n getOptionLabel={(option) => (typeof option === 'object' ? `${option.firstName} ${option.lastName}` : option)}\n onChange={(e, value) => {\n if (value.includes('Select all')) {\n onChangeField('assignedTo', options.users);\n } else {\n onChangeField(\n 'assignedTo',\n value.filter((user) => typeof user !== 'string')\n );\n\n if (value.map((item) => typeof item).indexOf('string') !== -1) {\n onSearch('assignedTo', '');\n }\n }\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n onChange={(e) => (onSearch ? onSearch('assignedTo', e.target.value) : undefined)}\n margin=\"normal\"\n placeholder={fields.assignedTo.length === 0 ? 'Search for an option' : undefined}\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n onFocus={() => {\n setAutocompleteFocused('selectUser');\n }}\n onBlur={() => {\n setAutocompleteFocused('');\n }}\n />\n )}\n />\n );\n\n const emailAndDashboard = (\n <>\n <Col xs={2}>\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Switch checked={!!email} onChange={(e) => onChangeEmail(e)} />\n </Box>\n </Col>\n <Col xs={2}>\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Switch checked={!!dashboard} onChange={(e) => onChangeDashboard(e)} />\n </Box>\n </Col>\n </>\n );\n const caseType = (\n <>\n <Col xs={3} xxl={2}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>Case type</NotificationTitle>\n </Box>\n </Col>\n <Col xs={6}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n multiple\n limitTags={2}\n PopperComponent={(props) => <CustomPopper withLargePadding {...props} />}\n value={fields.caseType}\n renderOption={(option) => (\n <Typography style={{ fontSize: 13 }}>{`${option[0]?.toUpperCase()}${option\n ?.substr(1)\n ?.toLowerCase()}`}</Typography>\n )}\n classes={{\n inputRoot:\n autocompleteFocused === 'caseType' && fields?.caseType?.length > 2\n ? classes.inputRootClicked\n : classes.inputRoot,\n }}\n getOptionLabel={(value) => `${value[0]?.toUpperCase()}${value?.substr(1)?.toLowerCase()}`}\n options={['Select all', ...defaultCaseTypes]}\n onChange={(e, value) => {\n if (value.includes('Select all')) {\n onChangeField('caseType', options.caseTypes);\n } else {\n onChangeField(\n 'caseType',\n value.map((_value) => _value?.toUpperCase())\n );\n }\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder={fields.caseType.length === 0 ? 'Search for an option' : undefined}\n margin=\"normal\"\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n onFocus={() => {\n setAutocompleteFocused('caseType');\n }}\n onBlur={() => {\n setAutocompleteFocused('');\n }}\n />\n )}\n />\n </FormControl>\n </Col>\n </>\n );\n const assignedTo = (\n <>\n <Col xs={4} xl={3} xxl={2}>\n <Box display=\"flex\" height=\"100%\" justifyContent=\"center\" alignItems=\"center\">\n <NotificationTitle>assigned to</NotificationTitle>\n </Box>\n </Col>\n <Col xs={6}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n {selectUser}\n </FormControl>\n </Col>\n </>\n );\n\n const rowContent = (\n <>\n {configType === 'configCreated' && (\n <>\n <Col xs={18}>\n <Row gutter={[16, 16]} display=\"flex\" alignItems=\"center\" height=\"100%\">\n {caseType}\n <Col xs={2}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>created</NotificationTitle>\n </Box>\n </Col>\n </Row>\n </Col>\n {emailAndDashboard}\n </>\n )}\n {configType === 'configAssigned' && (\n <>\n <Col xs={18}>\n <Row gutter={[16, 16]} display=\"flex\" alignItems=\"center\" height=\"100%\">\n {caseType}\n {assignedTo}\n </Row>\n </Col>\n {emailAndDashboard}\n </>\n )}\n {configType === 'configUpdated' && (\n <>\n <Col xs={18}>\n <Row gutter={[16, 16]} display=\"flex\" alignItems=\"center\" height=\"100%\">\n {caseType}\n {assignedTo}\n <Col xs={3} xxl={2}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>is updated</NotificationTitle>\n </Box>\n </Col>\n </Row>\n </Col>\n {emailAndDashboard}\n </>\n )}\n {configType === 'configStatus' && (\n <>\n <Col xs={18}>\n <Row gutter={[16, 16]} display=\"flex\" alignItems=\"center\" height=\"100%\">\n {caseType}\n <Col xs={3} xxl={2}>\n <Box display=\"flex\" height=\"100%\" justifyContent=\"center\" alignItems=\"center\">\n <NotificationTitle>is status</NotificationTitle>\n </Box>\n </Col>\n <Col md={6} lg={5} xl={5} xxl={4}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n PopperComponent={CustomPopper}\n value={fields.status}\n options={options.statuses}\n getOptionLabel={(value) => `${value[0].toUpperCase()}${value.substr(1).toLowerCase()}`}\n onChange={(e, value) => onChangeField('status', value.toUpperCase())}\n renderInput={(params) => (\n <TextField\n {...params}\n label=\"Search for an option\"\n margin=\"normal\"\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n />\n )}\n />\n </FormControl>\n </Col>\n <Col xs={1}>\n <Box display=\"flex\" height=\"100%\" justifyContent=\"center\" alignItems=\"center\">\n <NotificationTitle>for</NotificationTitle>\n </Box>\n </Col>\n <Col md={4} lg={4} xl={3} xxl={3}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n PopperComponent={CustomPopper}\n value={fields.time}\n options={options.days}\n onChange={(e, value) => onChangeField('time', value)}\n renderInput={(params) => (\n <TextField\n {...params}\n // label=\"Select an option\"\n margin=\"normal\"\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n />\n )}\n />\n </FormControl>\n </Col>\n <Col xs={2}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>days</NotificationTitle>\n </Box>\n </Col>\n </Row>\n </Col>\n {emailAndDashboard}\n </>\n )}\n {configType === 'configDueDate' && (\n <>\n <Col xs={18}>\n <Row gutter={[16, 16]} display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Col xs={10} md={9} lg={8} xl={6} xxl={5}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>Due date for task assigned to</NotificationTitle>\n </Box>\n </Col>\n <Col xs={5}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n {selectUser}\n </FormControl>\n </Col>\n <Col xs={1}>\n <Box display=\"flex\" height=\"100%\" justifyContent=\"center\" alignItems=\"center\">\n <NotificationTitle>is</NotificationTitle>\n </Box>\n </Col>\n <Col md={4} lg={4} xl={3} xxl={3}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n PopperComponent={CustomPopper}\n value={fields.time}\n options={options.days}\n onChange={(e, value) => onChangeField('time', value)}\n renderInput={(params) => (\n <TextField\n {...params}\n // label=\"Select an option\"\n margin=\"normal\"\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n />\n )}\n />\n </FormControl>\n </Col>\n <Col xs={4}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>days away </NotificationTitle>\n </Box>\n </Col>\n </Row>\n </Col>\n {emailAndDashboard}\n </>\n )}\n {configType === 'configDateAction' && (\n <>\n <Col xs={18}>\n <Row gutter={[16, 16]} display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Col xs={2} xxl={1}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>Date</NotificationTitle>\n </Box>\n </Col>\n <Col xs={12} sm={11} md={10} lg={9} xl={8} xxl={6}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n PopperComponent={CustomPopper}\n value={fields.action}\n getOptionLabel={(option) => option.description}\n options={options.actions}\n onChange={(e, value) => onChangeField('action', value)}\n renderInput={(params) => (\n <TextField\n {...params}\n label=\"Select an option\"\n margin=\"normal\"\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n />\n )}\n />\n </FormControl>\n </Col>\n <Col xs={1}>\n <Box display=\"flex\" height=\"100%\" justifyContent=\"center\" alignItems=\"center\">\n <NotificationTitle>is</NotificationTitle>\n </Box>\n </Col>\n <Col md={4} lg={4} xl={3} xxl={3}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n PopperComponent={CustomPopper}\n value={fields.time}\n options={options.days}\n onChange={(e, value) => onChangeField('time', value)}\n renderInput={(params) => (\n <TextField\n {...params}\n // label=\"Select an option\"\n margin=\"normal\"\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n />\n )}\n />\n </FormControl>\n </Col>\n <Col xs={4}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>days passed </NotificationTitle>\n </Box>\n </Col>\n </Row>\n </Col>\n {emailAndDashboard}\n </>\n )}\n {configType === 'configOfficerLevel' && (\n <>\n <Col xs={18}>\n <Row gutter={[16, 16]} display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Col xs={5} lg={4} xxl={3}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>Officer is at EIS</NotificationTitle>\n </Box>\n </Col>\n <Col md={6} lg={5} xl={4} xxl={3}>\n <FormControl variant=\"outlined\" style={{ width: '100%' }}>\n <Autocomplete\n size=\"small\"\n freeSolo\n id=\"free-solo-2-demo\"\n disableClearable\n PopperComponent={CustomPopper}\n value={fields.level}\n options={options.levels}\n getOptionLabel={(value) => `${value[0].toUpperCase()}${value.substr(1).toLowerCase()}`}\n onChange={(e, value) => onChangeField('level', value.toUpperCase())}\n renderInput={(params) => (\n <TextField\n {...params}\n label=\"Select an option\"\n margin=\"normal\"\n variant=\"outlined\"\n InputProps={{ ...params.InputProps, type: 'search' }}\n />\n )}\n />\n </FormControl>\n </Col>\n <Col xs={2}>\n <Box display=\"flex\" height=\"100%\" alignItems=\"center\">\n <NotificationTitle>level</NotificationTitle>\n </Box>\n </Col>\n </Row>\n </Col>\n {emailAndDashboard}\n </>\n )}\n </>\n );\n\n return (\n <NotificationItem>\n <Row alignItems=\"center\" gutter={[8, 8]}>\n {rowContent}\n {configIndex > 0 && (\n <Col xs={1}>\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" height=\"100%\">\n <IconButton onClick={onClickDelete}>\n <DeleteIcon />\n </IconButton>\n </Box>\n </Col>\n )}\n </Row>\n <AddMore text=\"new option\" marginLeft=\"0\" marginTop=\"0\" onClick={addNewConfig} />\n </NotificationItem>\n );\n};\n\nConfigRow.propTypes = {\n configType: PropTypes.string.isRequired,\n fields: PropTypes.shape({\n caseType: PropTypes.array,\n assignedTo: PropTypes.array,\n status: PropTypes.string,\n time: PropTypes.string,\n action: PropTypes.string,\n level: PropTypes.string,\n }).isRequired,\n options: PropTypes.shape({\n caseTypes: PropTypes.array.isRequired,\n users: PropTypes.array.isRequired,\n statuses: PropTypes.array,\n days: PropTypes.array,\n actions: PropTypes.array,\n levels: PropTypes.array,\n }).isRequired,\n addNewConfig: PropTypes.func.isRequired,\n email: PropTypes.bool.isRequired,\n dashboard: PropTypes.bool.isRequired,\n onChangeEmail: PropTypes.func.isRequired,\n onChangeDashboard: PropTypes.func.isRequired,\n onChangeField: PropTypes.func.isRequired,\n onSearch: PropTypes.func.isRequired,\n onClickDelete: PropTypes.func.isRequired,\n configIndex: PropTypes.number.isRequired,\n};\n\nconst ProfileConfigNotifications = () => {\n const [caseTypes, setCaseTypes] = useState([]);\n const [users, setUsers] = useState([]);\n const [defaultUsers, setDefaultUsers] = useState([]);\n const [statuses, setStatuses] = useState([]);\n const [dates, setDates] = useState([]);\n\n const [configCreated, setConfigCreated] = useState([\n {\n caseType: [],\n dashboard: false,\n email: false,\n },\n ]);\n const [configAssigned, setConfigAssigned] = useState([\n {\n caseType: [],\n assignedTo: [],\n dashboard: false,\n email: false,\n },\n ]);\n const [configUpdated, setConfigUpdated] = useState([\n {\n caseType: [],\n assignedTo: [],\n dashboard: false,\n email: false,\n },\n ]);\n const [configStatus, setConfigStatus] = useState([\n {\n caseType: [],\n status: 'RECEIVED',\n time: 30,\n dashboard: false,\n email: false,\n },\n ]);\n const [configDueDate, setConfigDueDate] = useState([\n {\n assignedTo: [],\n time: 30,\n dashboard: false,\n email: false,\n },\n ]);\n const [configDateAction, setConfigDateAction] = useState([\n {\n action: '',\n time: 30,\n dashboard: false,\n email: false,\n },\n ]);\n const [configOfficerLevel, setConfigOfficerLevel] = useState([\n {\n level: 'HIGH',\n dashboard: false,\n email: false,\n },\n ]);\n\n const classesCard = useCardStyles();\n\n const onGetUsers = async () => {\n try {\n const { data } = await getUsers({ page: null, limit: null });\n setDefaultUsers(data);\n setUsers(data);\n } catch (error) {\n axiosCatchError(error);\n }\n };\n\n const handleOnSaveNotificationsConfig = () => {\n userSaveNotificationConfig({\n configCreated: {\n data: configCreated,\n },\n configAssigned: {\n data: configAssigned\n .filter((config) => config?.assignedTo?.length > 0)\n .map((config) => ({\n ...config,\n assignedTo: config.assignedTo?.map((user) => (typeof user === 'object' ? user._id : user) || []),\n })),\n },\n configUpdated: {\n data: configUpdated\n .filter((config) => config?.assignedTo?.length > 0)\n .map((config) => ({\n ...config,\n assignedTo: config.assignedTo?.map((user) => (typeof user === 'object' ? user._id : user) || []),\n })),\n },\n configStatus: {\n data: configStatus.map((config) => ({ ...config, time: parseInt(config.time) })),\n },\n configDueDate: {\n data: configDueDate\n .filter((config) => config?.assignedTo?.length > 0)\n .map((config) => ({\n ...config,\n time: parseInt(config.time || 30),\n assignedTo: config.assignedTo?.map((user) => (typeof user === 'object' ? user._id : user) || []),\n })),\n },\n configDateAction: {\n data: configDateAction\n .filter((config) => config.action)\n .map((config) => {\n let action;\n\n if (config.action.key === 'task' || config.action.key === 'action') {\n action = config.action.key;\n } else if (\n config.action.key === 'projects-created-date' ||\n config.action.key === 'projects-actions-attachments-created-date' ||\n config.action.key === 'projects-attachments-created-date' ||\n config.action.key === 'projects-notes-attachments-created-date' ||\n config.action.key === 'cases-notes-created-date' ||\n config.action.key === 'cases-notes-updated-date' ||\n config.action.key === 'cases-task-created-date' ||\n config.action.key === 'cases-task-updated-date' ||\n config.action.key === 'users-created-date' ||\n config.action.key === 'users-updated-date' ||\n config.action.key === 'officers-created-date' ||\n config.action.key === 'officers-updated-date' ||\n config.action.key === 'cases-updated-date' ||\n config.action.key === 'cases-created-date' ||\n config.action.key === 'cases-incident-date' ||\n config.action.key === 'cases-last-status-date' ||\n config.action.key === 'cases-new-date-cube'\n ) {\n action = `fixed:${config.action.key}`;\n } else {\n action = `data:${config.action.key}`;\n }\n\n return {\n ...config,\n action,\n time: parseInt(config.time),\n };\n }),\n },\n configOfficerLevel: {\n data: configOfficerLevel,\n },\n })\n .then(() => {\n toast.success('Configuration saved successfully!');\n })\n .catch((error) => {\n axiosCatchError(error);\n });\n };\n\n const handleOnChangeConfig = (config, setConfig, configIndex, propName, value) => {\n const _config = [...config];\n\n _config[configIndex] = {\n ...config[configIndex],\n [propName]: value,\n };\n\n setConfig(_config);\n };\n\n const handleOnSearchUsers = (search) => {\n if (search?.length >= 3) {\n getUsersSearch(100, 'name', 'asc', search).then((res) => {\n const _users = res?.data || [];\n\n setUsers(_users);\n });\n } else {\n setUsers(defaultUsers);\n }\n };\n\n const handleOnDeleteRow = (config, setConfig, rowIndex) => {\n setConfig(config.filter((item, itemIndex) => itemIndex !== rowIndex));\n };\n\n useEffect(() => {\n getFilterByCase().then((data) => {\n setStatuses(data.availableStatuses);\n setCaseTypes(data.type.filter((item) => !!item));\n });\n onGetUsers();\n userGetNotificationConfig()\n .then((res) => {\n if (res.data) {\n if (res.data.configCreated && res.data.configCreated.data.length > 0) {\n setConfigCreated(res.data.configCreated.data);\n }\n\n if (res.data.configAssigned && res.data.configAssigned.data.length > 0) {\n setConfigAssigned(res.data.configAssigned.data);\n }\n\n if (res.data.configUpdated && res.data.configUpdated.data.length > 0) {\n setConfigUpdated(res.data.configUpdated.data);\n }\n\n if (res.data.configStatus && res.data.configStatus.data.length > 0) {\n setConfigStatus(res.data.configStatus.data);\n }\n\n if (res.data.configDueDate && res.data.configDueDate.data.length > 0) {\n setConfigDueDate(res.data.configDueDate.data);\n }\n\n fetchCubeBucketsDate().then((_res) => {\n setDates(_res.data);\n\n if (res.data.configDateAction && res.data.configDateAction.data.length > 0) {\n setConfigDateAction(\n res.data.configDateAction.data.map((config) => {\n if (config.action === 'action') {\n return { ...config, action: { description: 'Actions', key: 'action' } };\n }\n\n if (config.action === 'task') {\n return { ...config, action: { description: 'Tasks', key: 'task' } };\n }\n\n if (config.action === 'fixed:projects-created-date') {\n return {\n ...config,\n action: { description: 'Projects Created Date', key: 'projects-created-date' },\n };\n }\n\n if (config.action === 'fixed:projects-actions-attachments-created-date') {\n return {\n ...config,\n action: {\n description: 'Projects Actions Attachments Created Date',\n key: 'projects-actions-attachments-created-date',\n },\n };\n }\n\n if (config.action === 'fixed:projects-attachments-created-date') {\n return {\n ...config,\n action: {\n description: 'Projects Attachments Created Date',\n key: 'projects-attachments-created-date',\n },\n };\n }\n\n if (config.action === 'fixed:projects-notes-attachments-created-date') {\n return {\n ...config,\n action: {\n description: 'Projects Notes Attachments Created Date',\n key: 'projects-notes-attachments-created-date',\n },\n };\n }\n\n if (config.action === 'fixed:cases-notes-created-date') {\n return {\n ...config,\n action: { description: 'Cases Notes Created Date', key: 'cases-notes-created-date' },\n };\n }\n\n if (config.action === 'fixed:cases-notes-updated-date') {\n return {\n ...config,\n action: { description: 'Cases Notes Updated Date', key: 'cases-notes-updated-date' },\n };\n }\n\n if (config.action === 'fixed:cases-task-created-date') {\n return {\n ...config,\n action: { description: 'Cases Task Created Date', key: 'cases-task-created-date' },\n };\n }\n\n if (config.action === 'fixed:cases-task-updated-date') {\n return {\n ...config,\n action: { description: 'Cases Task Updated Date', key: 'cases-task-updated-date' },\n };\n }\n\n if (config.action === 'fixed:users-created-date') {\n return {\n ...config,\n action: { description: 'Users - Created Date', key: 'users-created-date' },\n };\n }\n\n if (config.action === 'fixed:users-updated-date') {\n return {\n ...config,\n action: { description: 'Users - Updated Date', key: 'users-updated-date' },\n };\n }\n\n if (config.action === 'fixed:officers-created-date') {\n return {\n ...config,\n action: { description: 'Officers - Created Date', key: 'officers-created-date' },\n };\n }\n\n if (config.action === 'fixed:officers-updated-date') {\n return {\n ...config,\n action: { description: 'Officers - Updated Date', key: 'officers-updated-date' },\n };\n }\n\n if (config.action === 'fixed:cases-updated-date') {\n return {\n ...config,\n action: { description: 'Cases - Updated Date', key: 'cases-updated-date' },\n };\n }\n\n if (config.action === 'fixed:cases-created-date') {\n return {\n ...config,\n action: { description: 'Cases - Created Date', key: 'cases-created-date' },\n };\n }\n\n if (config.action === 'fixed:cases-incident-date') {\n return {\n ...config,\n action: { description: 'Cases - Incident Date', key: 'cases-incident-date' },\n };\n }\n\n if (config.action === 'fixed:cases-last-status-date') {\n return {\n ...config,\n action: { description: 'Cases - Last Status Date', key: 'cases-last-status-date' },\n };\n }\n\n if (config.action === 'fixed:cases-new-date-cube') {\n return {\n ...config,\n action: { description: 'Cases - New date cube', key: 'cases-new-date-cube' },\n };\n }\n\n const dataKey = config?.action?.split('data:');\n const key = dataKey?.length > 0 ? dataKey[1] : undefined;\n const action = key ? _res.data.find((data) => data.key === key) : undefined;\n\n return {\n ...config,\n action,\n };\n })\n );\n }\n });\n\n if (res.data.configOfficerLevel && res.data.configOfficerLevel.data.length > 0) {\n setConfigOfficerLevel(res.data.configOfficerLevel.data);\n }\n }\n })\n .catch((error) => {\n axiosCatchError(error);\n });\n }, []);\n\n return (\n <Box width=\"100%\" style={{ background: '#fff' }} marginTop=\"40px\">\n <Card\n title={\n <Row style={{ width: '100%', height: 44 }} alignItems=\"center\">\n <Col xs={18}>\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Typography className={classesCard.title} variant=\"body2\">\n Notifications\n </Typography>\n </Box>\n </Col>\n <Col xs={2}>\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Typography className={classesCard.title} variant=\"body2\">\n Email\n </Typography>\n </Box>\n </Col>\n <Col xs={2}>\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Typography className={classesCard.title} variant=\"body2\">\n Dashboard\n </Typography>\n </Box>\n </Col>\n <Col xs={2}>\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\">\n <Button\n color=\"primary\"\n variant=\"contained\"\n type=\"submit\"\n style={{ height: 30 }}\n onClick={handleOnSaveNotificationsConfig}\n >\n Save\n </Button>\n </Box>\n </Col>\n </Row>\n }\n >\n {configCreated.map((config, configIndex) => (\n <ConfigRow\n configIndex={configIndex}\n onClickDelete={() => handleOnDeleteRow(configCreated, setConfigCreated, configIndex)}\n key={configIndex}\n configType=\"configCreated\"\n options={{ caseTypes }}\n fields={{ caseType: config.caseType }}\n email={config.email}\n dashboard={config.dashboard}\n onChangeEmail={(value) =>\n handleOnChangeConfig(configCreated, setConfigCreated, configIndex, 'email', value)\n }\n onChangeDashboard={(value) =>\n handleOnChangeConfig(configCreated, setConfigCreated, configIndex, 'dashboard', value)\n }\n onChangeField={(field, value) =>\n handleOnChangeConfig(configCreated, setConfigCreated, configIndex, field, value)\n }\n addNewConfig={() =>\n setConfigCreated([\n ...configCreated,\n {\n caseType: [],\n dashboard: false,\n email: false,\n },\n ])\n }\n />\n ))}\n {configAssigned.map((config, configIndex) => (\n <ConfigRow\n configIndex={configIndex}\n onClickDelete={() => handleOnDeleteRow(configAssigned, setConfigAssigned, configIndex)}\n key={configIndex}\n configType=\"configAssigned\"\n options={{ caseTypes, users }}\n fields={{ caseType: config.caseType, assignedTo: config.assignedTo }}\n email={config.email}\n dashboard={config.dashboard}\n onChangeEmail={(value) =>\n handleOnChangeConfig(configAssigned, setConfigAssigned, configIndex, 'email', value)\n }\n onChangeDashboard={(value) =>\n handleOnChangeConfig(configAssigned, setConfigAssigned, configIndex, 'dashboard', value)\n }\n onChangeField={(field, value) =>\n handleOnChangeConfig(configAssigned, setConfigAssigned, configIndex, field, value)\n }\n addNewConfig={() =>\n setConfigAssigned([\n ...configAssigned,\n {\n caseType: [],\n assignedTo: [],\n email: false,\n dashboard: false,\n },\n ])\n }\n onSearch={(field, value) => {\n if (field === 'assignedTo') {\n handleOnSearchUsers(value);\n }\n }}\n />\n ))}\n {configUpdated.map((config, configIndex) => (\n <ConfigRow\n configIndex={configIndex}\n onClickDelete={() => handleOnDeleteRow(configUpdated, setConfigUpdated, configIndex)}\n key={configIndex}\n configType=\"configUpdated\"\n options={{ caseTypes, users }}\n fields={{ caseType: config.caseType, assignedTo: config.assignedTo }}\n email={config.email}\n dashboard={config.dashboard}\n onChangeEmail={(value) =>\n handleOnChangeConfig(configUpdated, setConfigUpdated, configIndex, 'email', value)\n }\n onChangeDashboard={(value) =>\n handleOnChangeConfig(configUpdated, setConfigUpdated, configIndex, 'dashboard', value)\n }\n onChangeField={(field, value) =>\n handleOnChangeConfig(configUpdated, setConfigUpdated, configIndex, field, value)\n }\n addNewConfig={() =>\n setConfigUpdated([\n ...configUpdated,\n {\n caseType: [],\n assignedTo: [],\n email: false,\n dashboard: false,\n },\n ])\n }\n onSearch={(field, value) => {\n if (field === 'assignedTo') {\n handleOnSearchUsers(value);\n }\n }}\n />\n ))}\n {configStatus.map((config, configIndex) => (\n <ConfigRow\n configIndex={configIndex}\n onClickDelete={() => handleOnDeleteRow(configStatus, setConfigStatus, configIndex)}\n key={configIndex}\n configType=\"configStatus\"\n options={{ caseTypes, days: NOTIFICATIONS.DAYS, statuses }}\n fields={{ caseType: config.caseType, time: config.time.toString(), status: config.status }}\n email={config.email}\n dashboard={config.dashboard}\n onChangeEmail={(value) => handleOnChangeConfig(configStatus, setConfigStatus, configIndex, 'email', value)}\n onChangeDashboard={(value) =>\n handleOnChangeConfig(configStatus, setConfigStatus, configIndex, 'dashboard', value)\n }\n onChangeField={(field, value) =>\n handleOnChangeConfig(configStatus, setConfigStatus, configIndex, field, value)\n }\n addNewConfig={() =>\n setConfigStatus([\n ...configStatus,\n {\n caseType: [],\n status: 'RECEIVED',\n time: 30,\n email: false,\n dashboard: false,\n },\n ])\n }\n />\n ))}\n {configDueDate.map((config, configIndex) => (\n <ConfigRow\n configIndex={configIndex}\n onClickDelete={() => handleOnDeleteRow(configDueDate, setConfigDueDate, configIndex)}\n key={configIndex}\n configType=\"configDueDate\"\n options={{ days: NOTIFICATIONS.DAYS, users }}\n fields={{ time: config.time.toString(), assignedTo: config.assignedTo }}\n email={config.email}\n dashboard={config.dashboard}\n onChangeEmail={(value) =>\n handleOnChangeConfig(configDueDate, setConfigDueDate, configIndex, 'email', value)\n }\n onChangeDashboard={(value) =>\n handleOnChangeConfig(configDueDate, setConfigDueDate, configIndex, 'dashboard', value)\n }\n onChangeField={(field, value) =>\n handleOnChangeConfig(configDueDate, setConfigDueDate, configIndex, field, value)\n }\n addNewConfig={() =>\n setConfigDueDate([\n ...configDueDate,\n {\n assignedTo: [],\n time: 30,\n email: false,\n dashboard: false,\n },\n ])\n }\n onSearch={(field, value) => {\n if (field === 'assignedTo') {\n handleOnSearchUsers(value);\n }\n }}\n />\n ))}\n {configDateAction.map((config, configIndex) => (\n <ConfigRow\n configIndex={configIndex}\n onClickDelete={() => handleOnDeleteRow(configDateAction, setConfigDateAction, configIndex)}\n key={configIndex}\n configType=\"configDateAction\"\n options={{\n actions: [\n { description: 'Actions', key: 'action' },\n { description: 'Tasks', key: 'task' },\n { description: 'Projects Created Date', key: 'projects-created-date' },\n {\n description: 'Projects Actions Attachments Created Date',\n key: 'projects-actions-attachments-created-date',\n },\n { description: 'Projects Attachments Created Date', key: 'projects-attachments-created-date' },\n {\n description: 'Projects Notes Attachments Created Date',\n key: 'projects-notes-attachments-created-date',\n },\n { description: 'Cases Notes Created Date', key: 'cases-notes-created-date' },\n { description: 'Cases Notes Updated Date', key: 'cases-notes-updated-date' },\n { description: 'Cases Task Created Date', key: 'cases-task-created-date' },\n { description: 'Cases Task Updated Date', key: 'cases-task-updated-date' },\n { description: 'Users - Created Date', key: 'users-created-date' },\n { description: 'Users - Updated Date', key: 'users-updated-date' },\n { description: 'Officers - Created Date', key: 'officers-created-date' },\n { description: 'Officers - Updated Date', key: 'officers-updated-date' },\n { description: 'Cases - Updated Date', key: 'cases-updated-date' },\n { description: 'Cases - Created Date', key: 'cases-created-date' },\n { description: 'Cases - Incident Date', key: 'cases-incident-date' },\n { description: 'Cases - Last Status Date', key: 'cases-last-status-date' },\n { description: 'Cases - New date cube', key: 'cases-new-date-cube' },\n ...dates,\n ],\n days: NOTIFICATIONS.DAYS,\n }}\n fields={{ action: config.action, time: config.time.toString() }}\n email={config.email}\n dashboard={config.dashboard}\n onChangeEmail={(value) =>\n handleOnChangeConfig(configDateAction, setConfigDateAction, configIndex, 'email', value)\n }\n onChangeDashboard={(value) =>\n handleOnChangeConfig(configDateAction, setConfigDateAction, configIndex, 'dashboard', value)\n }\n onChangeField={(field, value) =>\n handleOnChangeConfig(configDateAction, setConfigDateAction, configIndex, field, value)\n }\n addNewConfig={() =>\n setConfigDateAction([\n ...configDateAction,\n {\n action: '',\n time: 30,\n email: false,\n dashboard: false,\n },\n ])\n }\n />\n ))}\n {configOfficerLevel.map((config, configIndex) => (\n <ConfigRow\n configIndex={configIndex}\n onClickDelete={() => handleOnDeleteRow(configOfficerLevel, setConfigOfficerLevel, configIndex)}\n key={configIndex}\n configType=\"configOfficerLevel\"\n options={{ levels: Object.keys(EIS.RISK_LEVEL) }}\n fields={{ level: config.level }}\n email={config.email}\n dashboard={config.dashboard}\n onChangeEmail={(value) =>\n handleOnChangeConfig(configOfficerLevel, setConfigOfficerLevel, configIndex, 'email', value)\n }\n onChangeDashboard={(value) =>\n handleOnChangeConfig(configOfficerLevel, setConfigOfficerLevel, configIndex, 'dashboard', value)\n }\n onChangeField={(field, value) =>\n handleOnChangeConfig(configOfficerLevel, setConfigOfficerLevel, configIndex, field, value)\n }\n addNewConfig={() =>\n setConfigOfficerLevel([\n ...configOfficerLevel,\n {\n level: 'HIGH',\n email: false,\n dashboard: false,\n },\n ])\n }\n />\n ))}\n </Card>\n </Box>\n );\n};\n\nconst NotificationTitle = styled.span`\n font-size: 16px;\n overflow: hidden;\n white-space: nowrap;\n`;\n\nconst NotificationItem = styled.div`\n padding-bottom: 8px;\n border-bottom: 1px solid #e2e2e2;\n`;\n\nexport default ProfileConfigNotifications;\n","import { Box, Backdrop, Fade, makeStyles, Modal, Typography, CircularProgress, Button } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { DropzoneArea } from 'material-ui-dropzone';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport BackupIcon from '@material-ui/icons/Backup';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { toast } from '../../components/Notification';\n\nimport { Context } from '../../Context';\nimport { updateProfile, uploadFormImg } from '../../services/unarmed';\nimport profileImg from '../../assets/profile.png';\nimport ProfileInformation from './ProfileInformation';\nimport useInput from '../../hooks/useInput';\nimport useOrganization from '../../hooks/useOrganization';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport ChangePassordProfile from './ChangePasswordProfile';\nimport { linkInWithMicrosoft } from '../../services/firebase';\nimport microsoftLogo from '../../assets/Microsoft_logo.svg.png';\n\nimport ProfileConfigNotifications from './ProfileConfigNotifications';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n textTransform: 'capitalize',\n },\n\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#fff',\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid #4b7bff ',\n color: '#4b7bff',\n '&:hover': {\n background: '#fff',\n border: '1px solid #4b7bff ',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#F9FAFF',\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: 20,\n },\n googleButton: {\n width: '100%',\n margin: '20px 0',\n border: '1px solid #0000001F',\n textTransform: 'none',\n color: '#5E5E5E',\n },\n googleIcon: {\n width: 20,\n height: 20,\n objectFit: 'cover',\n marginRight: 10,\n },\n}));\n\nconst Profile = () => {\n const [loading, setLoading] = useState(false);\n // const [me, setMe] = useState(null);\n const { authUser, setMyuser, myUser, onGetMe } = useContext(Context);\n const classes = useStyles();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const firstName = useInput('', isSubmitting);\n const lastName = useInput('', isSubmitting);\n const phoneNumber = useInput('', isSubmitting);\n const [open, setOpen] = React.useState(false);\n const [openModal, setOpenModal] = React.useState(false);\n const [image, setImage] = useState('');\n const [hashFile, setHashFile] = useState('');\n const [isEditing, setIsEditing] = useState(false);\n const [loadingImg, setLoadingImg] = useState(false);\n const [loadingUpdateProfile, setLoadingUpdateProfile] = useState(false);\n const { organization } = useOrganization();\n const [loadingPecetage, setLoadingPercentage] = useState(0);\n const [disableNotification, setDisableNotification] = useState(false);\n\n useEffect(() => {\n if (authUser && myUser) {\n firstName.setValue(myUser?.firstName);\n lastName.setValue(myUser?.lastName);\n phoneNumber.setValue(myUser?.phoneNumber);\n setDisableNotification(myUser?.settings?.disableAllNotifications);\n setImage(myUser?.photo?.public_url);\n }\n }, [authUser, myUser]);\n\n useEffect(() => {\n onGetMe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onUpdateProfile = async () => {\n if (!firstName.value || !lastName.value || !phoneNumber.value) {\n setIsSubmitting(true);\n return;\n }\n try {\n setLoadingUpdateProfile(true);\n const data = {\n firstName: firstName.value,\n lastName: lastName.value,\n phoneNumber: phoneNumber.value,\n };\n\n if (hashFile) {\n data.photo = hashFile;\n }\n\n const { data: updatedProfile } = await updateProfile(data);\n // setMe(updatedProfile);\n setMyuser(updatedProfile);\n setLoadingUpdateProfile(false);\n setIsEditing(false);\n } catch (error) {\n setLoadingUpdateProfile(false);\n\n console.log(error);\n }\n };\n\n const disableEmailNotification = async () => {\n try {\n setDisableNotification(!disableNotification);\n const { data } = await updateProfile({\n settings: {\n disableAllNotifications: !disableNotification,\n },\n });\n setMyuser(data);\n } catch (error) {\n console.log(error);\n }\n };\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const uploadOnLoad = async (fl) => {\n const imgData = new FormData();\n imgData.append('file', fl);\n imgData.append('organizationId', organization?._id);\n setOpen(false);\n setLoadingImg(true);\n try {\n const img = await uploadFormImg(imgData, setLoadingPercentage);\n setImage(img.publicUrl);\n setHashFile(img.hashId);\n toast.success('Profile image uploaded successfully');\n setTimeout(() => {\n setLoadingImg(false);\n }, 500);\n } catch (error) {\n console.log(error);\n toast.error(error.response.data.error.details[0].message);\n setLoadingImg(false);\n }\n };\n\n const onCancel = () => {\n setIsEditing(false);\n setImage(myUser?.photo?.url);\n setHashFile('');\n firstName.setValue(myUser?.firstName);\n lastName.setValue(myUser?.lastName);\n phoneNumber.setValue(myUser?.phoneNumber);\n };\n\n const hasMicrosoft = function () {\n return authUser?.providerData.find((provider) => provider.providerId === 'microsoft.com');\n };\n\n return (\n <PageWrapper className={classes.container}>\n <ModalPopUp open={openModal} setOpen={setOpenModal}>\n <ChangePassordProfile setOpen={setOpenModal} />\n </ModalPopUp>\n <Typography variant=\"h5\">Profile</Typography>\n <Box width=\"100%\" style={{ background: '#fff' }} marginTop=\"20px\">\n <Box\n width=\"100%\"\n display=\"flex\"\n padding=\"10px 20px\"\n alignItems=\"center\"\n borderBottom=\"1px solid #0000001F\"\n justifyContent=\"space-between\"\n >\n <Typography variant=\"subtile1\" style={{ fontWeight: '500' }} />\n\n <Box display=\"flex\" alignContent=\"center\" justifyContent=\"flex-end\">\n {isEditing ? (\n <Box>\n <Button\n data-testid=\"profile-button-cancel\"\n onClick={onCancel}\n className={classes.buttonOutlined}\n variant=\"outlined\"\n >\n Cancel\n </Button>\n <Button data-testid=\"profile-button-save\" onClick={onUpdateProfile} className={classes.button}>\n {loadingUpdateProfile ? <CircularProgress color=\"#fff\" size=\"25px\" /> : 'Save'}\n </Button>\n </Box>\n ) : (\n <>\n {!hasMicrosoft() && organization?.features?.dashboard?.dashboard?.microsoft_sso && (\n <Button onClick={linkInWithMicrosoft} className={classes.button} style={{ marginRight: 10 }}>\n <img src={microsoftLogo} alt=\"404\" className={classes.googleIcon} /> Link Microsoft SSO\n </Button>\n )}\n <Button\n data-testid=\"profile-button-change-password\"\n onClick={() => setOpenModal(true)}\n className={classes.button}\n style={{ marginRight: 10 }}\n >\n Change Password\n </Button>\n <Button\n data-testid=\"profile-button-edit-profile\"\n onClick={() => setIsEditing(true)}\n className={classes.button}\n >\n edit profile\n </Button>\n </>\n )}\n </Box>\n </Box>\n {loading ? (\n <Box width=\"100%\" height=\"300px\" display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n <CircularProgress color=\"#000\" size=\"40px\" />\n </Box>\n ) : (\n <>\n <Box\n width=\"400px\"\n minWidth=\"400px\"\n position=\"relative\"\n borderRadius={4}\n padding=\"20px\"\n alignItems=\"center\"\n display=\"flex\"\n justifyContent=\"flex-start\"\n style={{ background: '#fff' }}\n >\n <img\n src={image || profileImg}\n alt=\"profileImg\"\n className={classes.img}\n style={{ cursor: isEditing ? 'pointer' : 'default' }}\n />\n {loadingImg && (\n <Box\n style={{\n width: 120,\n height: 120,\n borderRadius: '50%',\n position: 'absolute',\n zIndex: 1,\n background: 'rgba(255, 255, 255, .6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <CircularProgress color=\"#000\" size=\"20px\" />\n </Box>\n )}\n <Box display=\"flex\" justifyContent=\"flex-start\" flexDirection=\"column\" marginLeft=\"20px\">\n <Typography\n style={{\n textAlign: 'center',\n fontSize: 20,\n fontWeight: '500',\n }}\n >\n {`${myUser?.firstName} ${myUser?.lastName}`}\n </Typography>\n <Typography\n style={{\n fontSize: 14,\n textTransform: 'capitalize',\n color: '#333',\n marginBottom: 4,\n }}\n >\n {`${myUser?.role}`}\n </Typography>\n {isEditing && (\n <Typography\n style={{\n color: '#2E66FE',\n cursor: 'pointer',\n fontSize: 12,\n display: 'flex',\n alignItems: 'center',\n }}\n onClick={() => isEditing && handleOpen()}\n >\n <EditIcon htmlColor=\"#2E66FE\" fontSize=\"small\" /> Edit Photo\n </Typography>\n )}\n </Box>\n </Box>\n <ProfileInformation\n me={myUser}\n onCancel={onCancel}\n setIsEditing={setIsEditing}\n isEditing={isEditing}\n firstName={firstName}\n lastName={lastName}\n phoneNumber={phoneNumber}\n onUpdateProfile={onUpdateProfile}\n />\n </>\n )}\n </Box>\n <ProfileConfigNotifications />\n {isEditing && (\n <Modal\n aria-labelledby=\"transition-modal-title\"\n aria-describedby=\"transition-modal-description\"\n className={classes.modal}\n open={open}\n onClose={handleClose}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={open}>\n <div className={classes.paper}>\n <Box display=\"flex\" justifyContent=\"flex-end\">\n <CancelIcon style={{ cursor: 'pointer' }} onClick={() => setOpen(false)} />\n </Box>\n <DropzoneArea\n // acceptedFiles={[\"image/jpeg\", \"image/png\", \"image/jpg\"]}\n dropzoneClass=\"default-dropzone-class\"\n maxFileSize={5000000}\n onChange={(fl) => {\n if (fl.length > 0) {\n uploadOnLoad(fl[fl.length - 1]);\n }\n }}\n filesLimit={3}\n dropzoneText=\"Click or drag and drop an image here\"\n showPreviewsInDropzone={false}\n Icon={() => <BackupIcon fontSize=\"large\" htmlColor=\"#A2BAFF\" />}\n />\n </div>\n </Fade>\n </Modal>\n )}\n </PageWrapper>\n );\n};\n\nconst PageWrapper = styled.div`\n width: 100%;\n`;\n\nexport default Profile;\n","import React, { useEffect, useState } from 'react';\nimport CreateIcon from '@material-ui/icons/Create';\nimport PublicIcon from '@material-ui/icons/Public';\nimport {\n Box,\n Button,\n CircularProgress,\n makeStyles,\n MenuItem,\n Typography,\n} from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport DashButton from '../../components/DashButton';\nimport formatTxt from '../../utils/formatText';\nimport { saveCube } from '../../services/cube';\nimport useInput from '../../hooks/useInput';\nimport { OutLineInput } from '../CaseDetails/UpdateCase';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport PopperPortal from '../../components/PopperPortal';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n width: '100%',\n height: '116.1vh',\n overflowY: 'auto',\n\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n}));\n\nconst downloadOptions = [\n { title: 'PNG', value: 'png' },\n { title: 'CSV', value: 'csv' },\n];\n\nexport default function ContentHeader({\n cubeQuery,\n report,\n onClearReport,\n onSelectOption,\n reportId,\n prepareReport,\n handleRefetch,\n}) {\n const [loading, setLoading] = useState(false);\n const reportName = useInput();\n const reportDescription = useInput();\n const [isEdit, setIsEdit] = useState(false);\n const [openDelete, setOpenDelete] = useState(false);\n const [open, setOpen] = useState(false);\n const classes = useStyles();\n\n useEffect(() => {\n if (report) {\n reportName.setValue(report.name);\n reportDescription.setValue(report.description);\n }\n }, [report]);\n\n const handleSave = async () => {\n try {\n setLoading(true);\n await saveCube(report?._id || reportId, {\n query: { ...cubeQuery, ...prepareReport(), total: true },\n ...(reportName.value ? { name: reportName.value } : {}),\n ...(reportDescription.value\n ? { description: reportDescription.value }\n : {}),\n });\n toast.success('Report Updated Successfully');\n setIsEdit(false);\n handleRefetch();\n } catch (error) {\n console.log(error);\n toast.error(error.response?.error);\n } finally {\n setLoading(false);\n }\n };\n\n const handleClearReport = () => {\n onClearReport();\n setOpenDelete(false);\n };\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n marginBottom=\"24px\"\n justifyContent=\"space-between\"\n >\n <Box>\n <Box display=\"flex\" alignItems=\"center\">\n {isEdit ? (\n <Box width={250}>\n <OutLineInput\n bordered\n placeholder=\"Ex. Report Name\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n value={reportName.value || ''}\n onChange={reportName.onChange}\n labelWidth={0}\n />\n </Box>\n ) : (\n <Typography style={{ fontSize: 24, fontWeight: '500' }}>\n {formatTxt(reportName.value || report?.name, 25)}\n </Typography>\n )}\n\n <CreateIcon\n style={{ marginLeft: 12, cursor: 'pointer' }}\n htmlColor=\"#6D7385\"\n onClick={() => setIsEdit(!isEdit)}\n />\n </Box>\n {isEdit ? (\n <Box width={250}>\n <OutLineInput\n bordered\n placeholder=\"Ex. Report Name\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n value={reportDescription.value || ''}\n onChange={reportDescription.onChange}\n labelWidth={0}\n />\n </Box>\n ) : (\n <Typography style={{ fontSize: 14 }}>\n {formatTxt(reportDescription.value || report?.description, 100)}\n </Typography>\n )}\n\n <Box display=\"flex\" alignItems=\"center\">\n <PublicIcon\n htmlColor=\"#6D7385\"\n style={{ marginRight: 6, fontSize: 10 }}\n />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n {report?.type?.toLowerCase()}\n </Typography>\n </Box>\n </Box>\n <Box width={300} display=\"flex\">\n <Box position=\"relative\">\n <DashButton marginRight={10} onClick={() => setOpen(true)}>\n Download\n </DashButton>\n <PopperPortal open={open} setOpen={setOpen} left={0} top={43}>\n {downloadOptions.map((option, index) => (\n <MenuItem\n key={index}\n style={{ fontSize: 14 }}\n onClick={() => {\n onSelectOption(option.value, report?.name);\n setOpen(false);\n }}\n >\n {option.title}\n </MenuItem>\n ))}\n </PopperPortal>\n </Box>\n <DashButton\n marginRight={10}\n outline\n onClick={() => setOpenDelete(true)}\n >\n Clear Report\n </DashButton>\n <DashButton onClick={handleSave}>\n {loading ? (\n <CircularProgress size={20} style={{ color: '#fff' }} />\n ) : (\n 'Save'\n )}\n </DashButton>\n </Box>\n\n <ModalPopUp open={openDelete} setOpen={setOpenDelete}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>\n Are you sure you want to clear this report?\n </Typography>\n <Typography style={{ fontSize: 14 }}>\n This process cannot be undone.\n </Typography>\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n marginTop=\"20px\"\n >\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => setOpenDelete(false)}\n >\n CANCEL\n </Button>\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={handleClearReport}\n >\n CONFIRM\n </Button>\n </Box>\n </ModalPopUp>\n </Box>\n );\n}\n","// import { isEqual, uniq } from 'lodash';\nimport isEqual from 'lodash.isequal';\nimport uniq from 'lodash.uniq';\n\nexport const getChangesDiff = (oldData, newData) => {\n const data = uniq([...Object.keys(oldData), ...Object.keys(newData)]);\n\n for (const key of data) {\n if (!isEqual(oldData[key], newData[key])) {\n return key;\n }\n }\n\n return null;\n};\n\nconst getProjectSubTypes = (types, currentType) => {\n const subTypes = types.find((type) => type.type === currentType);\n return subTypes?.subTypes;\n};\n\nexport function convertHMS(value) {\n if (!value) {\n return '00:00:00';\n }\n const sec = parseInt(value, 10);\n let hours = Math.floor(sec / 3600);\n let minutes = Math.floor((sec - hours * 3600) / 60);\n let seconds = sec - hours * 3600 - minutes * 60;\n\n if (hours < 10) {\n hours = `0${hours}`;\n }\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n return `${hours}:${minutes}:${seconds}`;\n}\n\nexport const formatOverviewFeatureItemToSave = (items) =>\n items.map((item) => {\n const features = {};\n item.overviewFeatures.forEach((feature) => {\n features[feature.key] = {\n visible: feature.visible,\n requiredValue: feature.required,\n };\n });\n features.name = item.actionName;\n return features;\n });\n\nexport const formatOverviewFeatureItemToRender = (projectFeatures) =>\n projectFeatures?.map((ft) => {\n const feature = {};\n feature._id = ft?._id;\n feature.actionName = ft.name;\n feature.overviewFeatures = [\n {\n label: 'Times:',\n visible: ft?.times?.visible,\n required: ft?.times?.requiredValue,\n key: 'times',\n },\n {\n label: 'Notes:',\n visible: ft?.notes?.visible,\n required: ft?.notes?.requiredValue,\n key: 'notes',\n },\n {\n label: 'Assigned To:',\n visible: ft?.assignedTo?.visible,\n required: ft?.assignedTo?.requiredValue,\n key: 'assignedTo',\n },\n {\n label: 'Attachments:',\n visible: ft?.attachments?.visible,\n required: ft?.attachments?.requiredValue,\n key: 'attachments',\n },\n ];\n return feature;\n });\nexport default getProjectSubTypes;\n","import { Box, Button, ListItemIcon, MenuItem, Typography, SvgIcon } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ShowChartIcon from '@material-ui/icons/ShowChart';\nimport PieChartIcon from '@material-ui/icons/PieChart';\nimport BarChartIcon from '@material-ui/icons/BarChart';\nimport GridOnIcon from '@material-ui/icons/GridOn';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\n\nimport PropTypes from 'prop-types';\n\nimport PopperPortal from '../../components/PopperPortal';\n\nconst AreaIcon = () => (\n <SvgIcon htmlColor=\"#6D7385\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n enable-background=\"new 0 0 24 24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n >\n <rect fill=\"none\" height=\"24\" width=\"24\" />\n <path d=\"M3,13v7h18v-1.5l-9-7L8,17L3,13z M3,7l4,3l5-7l5,4h4v8.97l-9.4-7.31l-3.98,5.48L3,10.44V7z\" />\n </svg>\n </SvgIcon>\n);\n\nexport const chartsItems = [\n {\n text: 'Line',\n Icon: ShowChartIcon,\n },\n {\n text: 'Area',\n Icon: AreaIcon,\n },\n {\n text: 'Pie',\n Icon: PieChartIcon,\n },\n {\n text: 'Bar',\n Icon: BarChartIcon,\n },\n {\n text: 'Table',\n Icon: GridOnIcon,\n },\n {\n text: 'Number',\n Icon: InfoOutlinedIcon,\n },\n];\n\nexport default function ContentCharts({ children, selectedChart, setSelected }) {\n const [open, setOpen] = useState(false);\n\n return (\n <Box\n width=\"100%\"\n height=\"100%\"\n maxHeight={selectedChart.text === 'Table' ? 700 : 500}\n borderRadius=\"4px\"\n style={{ background: '#fff' }}\n border=\"1px solid #7070701F\"\n padding=\"24px\"\n >\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\">\n <Typography style={{ fontWeight: '500', color: '#000000AD' }}>\n {' '}\n {selectedChart.text === 'Table' ? 'Table View' : 'Chart View'}\n </Typography>\n <Box position=\"relative\">\n <Button\n variant=\"contained\"\n style={{\n background: '#6D73850D',\n padding: 13,\n height: 40,\n cursor: 'pointer',\n boxShadow: 'none',\n color: '#6D7385',\n textTransform: 'capitalize',\n fontSize: 13,\n }}\n onClick={() => setOpen(true)}\n >\n <selectedChart.Icon fontSize=\"small\" style={{ minWidth: 35 }} />\n\n {selectedChart.text}\n <ArrowDropDownIcon htmlColor=\"#6D7385\" />\n </Button>\n <PopperPortal open={open} setOpen={setOpen} left={0} top={43}>\n {chartsItems.map((chart, index) => (\n <MenuItem\n key={index}\n style={{ fontSize: 14 }}\n onClick={() => {\n setSelected(chart);\n setOpen(false);\n }}\n >\n <ListItemIcon style={{ minWidth: 30 }}>\n <chart.Icon fontSize=\"small\" />\n </ListItemIcon>\n {chart.text}\n </MenuItem>\n ))}\n </PopperPortal>\n </Box>\n </Box>\n {children}\n </Box>\n );\n}\n\nContentCharts.propTypes = {\n children: PropTypes.node.isRequired,\n selectedChart: PropTypes.string.isRequired,\n setSelected: PropTypes.func.isRequired,\n};","import { useState, useEffect } from 'react';\n\n/**\n * Custom hook to manage the status of building schema for an organization.\n *\n * @param {Object} organization - The organization object containing schema details.\n * @param {string} organization.buildingSchemaEndDate - The end date of the building schema process as a string.\n *\n * @returns {Array} - An array with a single boolean value indicating if cubes have been built.\n */\nconst useBuildingSchemaStatus = (organization) => {\n const [cubesBuilded, setCubesBuilded] = useState(false);\n const [buildingSchemaEndDate, setBuildingSchemaEndDate] = useState(null);\n\n useEffect(() => {\n if (organization && organization.buildingSchemaEndDate) {\n setBuildingSchemaEndDate(new Date(organization.buildingSchemaEndDate));\n } else {\n setCubesBuilded(true);\n }\n }, [organization]);\n\n useEffect(() => {\n let timeoutId;\n\n if (buildingSchemaEndDate) {\n const timeUntilBuildingSchemaEnds = buildingSchemaEndDate.getTime() - Date.now();\n\n console.log(timeUntilBuildingSchemaEnds);\n\n if (timeUntilBuildingSchemaEnds > 0) {\n timeoutId = setTimeout(() => {\n setCubesBuilded(true);\n }, timeUntilBuildingSchemaEnds);\n } else {\n setCubesBuilded(true);\n }\n }\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [buildingSchemaEndDate]);\n\n return [cubesBuilded];\n};\n\nexport default useBuildingSchemaStatus;\n","import React from 'react';\nimport {\n Box,\n makeStyles,\n TablePagination\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n backgroundColor: 'white',\n paddingRight: \"10px\",\n border: \"1px solid rgba(112, 112, 112, 0.12)\",\n borderTop: \"none\"\n },\n}));\n\nexport default function ContentFooter({\n page,\n handleChangePage,\n rowsPerPage,\n handleChangeRowsPerPage,\n totalCount = 100\n}) {\n const classes = useStyles();\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n marginBottom=\"24px\"\n justifyContent=\"flex-end\"\n className={classes.container}\n >\n <TablePagination\n component=\"div\"\n count={totalCount}\n page={page}\n onPageChange={handleChangePage}\n rowsPerPage={rowsPerPage}\n rowsPerPageOptions={[2500]}\n onRowsPerPageChange={handleChangeRowsPerPage}\n />\n </Box>\n );\n}\n","/* eslint-disable no-nested-ternary */\nimport { Box, CircularProgress, Typography, makeStyles } from '@material-ui/core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Bar, Line, Pie } from 'react-chartjs-2';\nimport { useDeepCompareMemo } from 'use-deep-compare';\nimport { Table } from 'antd';\nimport Papa from 'papaparse';\nimport { exportComponentAsPNG } from 'react-component-export-image';\nimport moment from 'moment';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\n\nimport 'antd/dist/antd.css';\n\nimport ContentHeader from './ContentHeader';\nimport { exportCSVFile } from '../../utils/convertJsonCsv';\nimport { convertHMS } from '../Projects/utils';\nimport ContentCharts, { chartsItems } from './ContentCharts';\nimport HTMLContent from '../../components/HTMLContent';\nimport { containsHTML } from '../../utils';\nimport UpgradeTabPopup from '../../components/UpgradeTabPopup';\nimport useOrganization from '../../hooks/useOrganization';\nimport useBuildingSchemaStatus from '../../hooks/useBuildingSchemaStatus';\nimport ContentFooter from './ContentFooter';\n\nconst useStyles = makeStyles(() => ({\n container: {\n // '&::-webkit-scrollbar': {\n // display: 'none',\n // },\n },\n}));\n\nconst COLORS_SERIES = [\n '#5b8ff9',\n '#5ad8a6',\n '#5e7092',\n '#f6bd18',\n '#6f5efa',\n '#6ec8ec',\n '#945fb9',\n '#ff9845',\n '#299796',\n '#fe99c3',\n];\n\nconst COLORS_BG_SERIES = [\n 'rgba(91, 143, 249, 0.5)',\n 'rgba(90, 216, 166, 0.5)',\n 'rgba(94, 112, 146, 0.5)',\n 'rgba(246, 189, 24, 0.5)',\n 'rgba(111, 94, 250, 0.5)',\n 'rgba(110, 200, 236, 0.5)',\n 'rgba(148, 95, 185, 0.5)',\n 'rgba(255, 152, 69, 0.5)',\n 'rgba(41, 151, 150, 0.5)',\n 'rgba(254, 153, 195, 0.5)',\n];\n\nconst commonOptions = {\n responsive: true,\n maintainAspectRatio: false,\n interaction: {\n intersect: false,\n },\n plugins: {\n legend: {\n position: 'bottom',\n },\n },\n scales: {\n x: {\n ticks: {\n // autoSkip: true,\n padding: 12,\n },\n },\n y: {\n ticks: {\n precision: 0,\n },\n },\n },\n};\n\nconst AreaChartRenderer = ({ resultSet }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n borderColor: COLORS_SERIES[index],\n backgroundColor: COLORS_BG_SERIES[index],\n pointRadius: 1,\n tension: 0.1,\n pointHoverRadius: 1,\n borderWidth: 2,\n tickWidth: 1,\n fill: true,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n return <Line data={data} options={commonOptions} />;\n};\n\nconst LineChartRenderer = ({ resultSet }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n borderColor: COLORS_SERIES[index],\n pointRadius: 1,\n tension: 0.1,\n pointHoverRadius: 1,\n borderWidth: 2,\n tickWidth: 1,\n fill: false,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n return <Line type=\"line\" data={data} options={commonOptions} />;\n};\n\nconst BarChartRenderer = ({ resultSet, pivotConfig }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n backgroundColor: COLORS_SERIES[index],\n fill: false,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n const options = {\n ...commonOptions,\n scales: {\n x: {\n ...commonOptions.scales.x,\n stacked: !(pivotConfig.x || []).includes('measures'),\n },\n },\n };\n return <Bar type=\"bar\" data={data} options={options} />;\n};\n\nconst renderChart = ({ reports, resultSet, error, pivotConfig, chartType }) => {\n if (error) {\n return <div>{error.toString()}</div>;\n }\n\n if (!resultSet) {\n return <div />;\n }\n\n if (chartType === 'Number') {\n return (\n <Box>\n {resultSet.seriesNames().map((s) => (\n <Typography variant=\"h4\">{resultSet.totalRow()[s.key]}</Typography>\n ))}\n </Box>\n );\n }\n\n if (chartType === 'Area') {\n return <AreaChartRenderer resultSet={resultSet} />;\n }\n\n if (chartType === 'Table') {\n return (\n <Table\n style={{ minWidth: chartType === 'Table' ? '100%' : undefined }}\n pagination={false}\n columns={\n reports?.columns.map((column) => ({\n ...column,\n render: (text) => {\n if (containsHTML(text)) {\n return <HTMLContent content={text} />;\n }\n\n if (column.type === 'boolean') {\n if (text === 1) return 'Yes';\n if (text === 0) return 'No';\n }\n\n return text;\n },\n })) || []\n }\n dataSource={formatDateOnTable(reports?.data) || []}\n />\n );\n }\n\n if (chartType === 'Pie') {\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets: resultSet.series().map((s) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n backgroundColor: COLORS_SERIES,\n hoverBackgroundColor: COLORS_SERIES,\n })),\n };\n\n const pieOptions = {\n maintainAspectRatio: false,\n // interaction: {\n // intersect: false,\n // },\n plugins: {\n legend: {\n position: 'bottom',\n },\n },\n // scales: {\n // x: {\n // ticks: {\n // autoSkip: true,\n // maxRotation: 0,\n // padding: 12,\n // minRotation: 0,\n // },\n // },\n // },\n };\n\n return <Pie type=\"pie\" data={data} options={pieOptions} />;\n }\n\n if (chartType === 'Bar') {\n return <BarChartRenderer resultSet={resultSet} pivotConfig={pivotConfig} />;\n }\n\n if (chartType === 'Line') {\n return <LineChartRenderer resultSet={resultSet} />;\n }\n};\n\nconst ChartRenderer = ({ reports, dimensions, chartType, resultSet, timeDimensions }) =>\n renderChart({\n reports,\n chartType,\n resultSet,\n pivotConfig: {\n x: [\n ...(dimensions || []),\n ...(timeDimensions?.[0] ? [`${timeDimensions?.[0]?.dimension}.${timeDimensions?.[0]?.granularity}`] : []),\n ],\n y: ['measures'],\n fillMissingDates: true,\n joinDateRange: false,\n },\n });\n\nconst formatDateValue = (date, format = 'MMMM DD, YYYY') => moment(date).format(format);\n\nconst formatUtcDateValue = (date, format = 'MMMM DD, YYYY') =>\n moment(date?.endsWith('Z') ? date : `${date}Z`).format(format);\n\nconst formatDateOnTable = (array) => {\n if (!Array.isArray(array)) {\n return;\n }\n const data = array.map((item) => {\n const objKeys = Object.keys(item);\n\n const itemCopy = { ...item };\n\n objKeys.forEach((objectKeyMapped) => {\n const currentKey = objectKeyMapped.split('.');\n const byKey = currentKey[currentKey.length - 1];\n\n if (byKey === 'day' || objectKeyMapped.includes('demographicBirthdate')) {\n itemCopy[objectKeyMapped] =\n itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'MM/DD/YYYY');\n } else if (byKey === 'totalTime' || byKey === 'actionsTimespent') {\n itemCopy[objectKeyMapped] = convertHMS(itemCopy[objectKeyMapped]) || '00:00:00';\n } else if (byKey === 'year') {\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'YYYY');\n } else if (byKey === 'month') {\n console.log('itemCopy[objectKeyMapped]', itemCopy[objectKeyMapped]);\n\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'YYYY-MM');\n } else if (byKey === 'week') {\n itemCopy[objectKeyMapped] =\n itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'YYYY-MM [W]w');\n } else if (\n objectKeyMapped.includes('createdat') ||\n objectKeyMapped.includes('closedAt') ||\n objectKeyMapped.includes('lastStatusDate') ||\n objectKeyMapped.includes('updatedat') ||\n objectKeyMapped.includes('demographicBirthdate') ||\n objectKeyMapped.includes('locationDatetime') ||\n objectKeyMapped.includes('recommendationsSubmitteddate') ||\n objectKeyMapped.includes('ProjectsRecommendations.recommendationsResponsedate') ||\n objectKeyMapped.includes('taskDueDateTime')\n ) {\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped] && formatUtcDateValue(itemCopy[objectKeyMapped]);\n } else if (byKey === 'bradyList' || byKey === 'civilianFileAnonymously' || byKey === 'transferred') {\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped]\n ? 'Yes'\n : itemCopy[objectKeyMapped] === null || itemCopy[objectKeyMapped] === undefined\n ? 'Not specified'\n : 'No';\n } else if (objectKeyMapped && objectKeyMapped.includes('date')) {\n const date = formatUtcDateValue(itemCopy[objectKeyMapped], 'MM/DD/YYYY');\n\n if (date !== 'Invalid date') {\n itemCopy[objectKeyMapped] = date;\n }\n }\n });\n\n return itemCopy;\n });\n\n return data;\n};\n\n// const _buildingSchemaEndDate = '2024-04-08T18:08:00.000Z';\n\nexport default function ReportContent({\n reports,\n resultSet,\n report,\n cubeQuery,\n timeDimensions,\n onClearReport,\n loading,\n reportId,\n prepareReport,\n handleRefetch,\n page,\n rowsPerPage,\n handleChangePage,\n handleChangeRowsPerPage,\n totalCount,\n onDownloadSelect,\n refChart,\n}) {\n const [selectedChart, setSelected] = useState(chartsItems[4]);\n const [showPopUp, setShowPopUp] = useState(false);\n\n const classes = useStyles();\n const { organization } = useOrganization();\n const [cubesBuilded] = useBuildingSchemaStatus(organization);\n\n useEffect(() => {\n if (organization && organization.buildingSchemaEndDate) {\n setShowPopUp(true);\n }\n }, [organization]);\n\n if (!organization) return null;\n\n return (\n <Box padding=\"23px\" width=\"100%\" height=\"calc(116.1vh - 64px)\" style={{ overflowY: 'auto', position: 'relative' }}>\n {showPopUp && (\n <UpgradeTabPopup\n title={\n cubesBuilded\n ? 'The new fields has being added, click on reload'\n : 'Please wait while the new fields are being added'\n }\n buttonText=\"RELOAD\"\n withText={false}\n icon={cubesBuilded ? <CheckCircleIcon htmlColor=\"green\" fontSize=\"large\" /> : <CircularProgress />}\n useAnchor={false}\n disabledButtton={!cubesBuilded}\n onClickButton={() => {\n handleRefetch();\n setShowPopUp(false);\n }}\n />\n )}\n <ContentHeader\n report={report}\n handleRefetch={handleRefetch}\n cubeQuery={cubeQuery}\n reportId={reportId}\n onClearReport={onClearReport}\n onSelectOption={(type, name) => onDownloadSelect(type, name, selectedChart.text !== \"Table\")}\n prepareReport={prepareReport}\n />\n {loading && <h1>Loading</h1>}\n <a id=\"downloadLink\" />\n <ContentCharts selectedChart={selectedChart} setSelected={setSelected}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent={selectedChart.text === 'Table' ? 'flex-start' : 'center'}\n position=\"relative\"\n width=\"100%\"\n maxHeight={selectedChart.text === 'Table' ? 600 : 400}\n height={selectedChart.text === 'Table' ? 600 : 400}\n marginBottom=\"20px\"\n marginTop=\"20px\"\n margin=\"auto\"\n ref={refChart}\n style={{\n overflow: selectedChart.text === 'Table' ? 'scroll' : 'hidden',\n }}\n className={classes.container}\n >\n {loading && (\n <Box\n position=\"absolute\"\n width=\"100%\"\n height=\"100%\"\n style={{ background: '#ffffffa9' }}\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <CircularProgress size={30} />\n </Box>\n )}\n {resultSet && (\n <ChartRenderer\n reports={reports}\n chartType={selectedChart.text}\n resultSet={resultSet}\n dimensions={cubeQuery?.dimensions}\n timeDimensions={timeDimensions}\n loading={loading}\n />\n )}\n </Box>\n </ContentCharts>\n <ContentFooter\n page={page}\n handleChangePage={handleChangePage}\n rowsPerPage={rowsPerPage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n totalCount={totalCount}\n />\n\n <Box marginBottom=\"70px\" />\n </Box>\n );\n}\n","import React, { useCallback } from 'react';\nimport update from 'immutability-helper';\nimport { Box } from '@material-ui/core';\n\nconst DragArea = ({\n selectedItems = [],\n setSelectedItems,\n ComponentToRender,\n componentProps,\n}) => {\n const moveItem = useCallback(\n (dragIndex, hoverIndex) => {\n const dragItem = selectedItems[dragIndex];\n setSelectedItems(\n update(selectedItems, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, dragItem],\n ],\n })\n );\n },\n [selectedItems, setSelectedItems]\n );\n\n return (\n <Box width=\"100%\" marginTop=\"12px\" minHeight={175}>\n {selectedItems.map((selected, index) => (\n <ComponentToRender\n key={selected?.id}\n moveItem={moveItem}\n index={index}\n id={selected?.id}\n {...selected}\n style={{\n transform: 'translate3d(0, ' + 10 + 'px, 0)',\n }}\n {...componentProps}\n />\n ))}\n </Box>\n );\n};\n\nexport default DragArea;\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React, { useRef, useState } from 'react';\nimport PopperPortal from './PopperPortal';\n\nconst useStyles = makeStyles({\n item: {\n height: 45,\n background: '#fff',\n borderRadius: 4,\n border: '1px solid #7070701F',\n padding: '15px 16px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n textTransform: 'capitalize',\n },\n label: {\n fontSize: 14,\n color: '#00000061',\n },\n\n seletedItem: {\n color: '#000000DE',\n fontSize: 14,\n fontWeight: '400',\n },\n img: {\n width: 16,\n height: 16,\n marginRight: 5,\n },\n hoverItem: {\n cursor: 'pointer',\n borderRadius: 4,\n '& :hover': {\n transition: 'ease .3s all',\n background: '#f2f2f2',\n },\n },\n});\n\nexport default function DropdownSelectableItem({\n options,\n value,\n setItems,\n widthItem,\n}) {\n const [open, setOpen] = useState(false);\n\n const classes = useStyles();\n\n const ref = useRef(null);\n\n const handleClick = (item) => {\n setItems(item);\n setOpen(false);\n };\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n marginBottom: '10px',\n position: 'relative',\n width: widthItem,\n }}\n ref={ref}\n >\n <Box className={classes.item} onClick={() => setOpen(true)}>\n {value}\n </Box>\n <PopperPortal open={open} setOpen={setOpen} left={0}>\n <Box\n width={ref.current?.offsetWidth}\n height={200}\n style={{ background: '#fff', zIndex: 99, overflowY: 'auto' }}\n >\n <Box padding=\"7px 12px\">\n {options.map((item, index) => (\n <Box\n className={classes.hoverItem}\n key={index}\n onClick={() => handleClick(item)}\n >\n <Box display=\"flex\" alignItems=\"center\" padding=\"10px\">\n <Typography\n style={{ fontSize: 14, textTransform: 'capitalize' }}\n >\n {item}\n </Typography>\n </Box>\n </Box>\n ))}\n </Box>\n </Box>\n </PopperPortal>\n </div>\n );\n}\n","const ITEM_TYPE = 'ITEM';\n\nexport default ITEM_TYPE;\n","/* eslint-disable jsx-a11y/no-autofocus */\nimport React, { useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst applyFilters = (search, cubes) =>\n cubes.filter((cube) => {\n const titleName = cube?.title?.toLowerCase() || cube?.shortTitle?.toLowerCase() || '';\n const searchText = search.toLowerCase().replace(/ /g, '');\n const match = titleName.replace(/ /g, '').includes(searchText);\n\n return match;\n });\n\n/**\n * Filter an array of cubes based on a search string.\n * @param {string} search - The search string.\n * @param {Object[]} _cubes - Array of cube objects to filter.\n * @returns {Object[]} - Filtered array of cube objects.\n */\nexport const onFilterCubes = (search, _cubes = []) => {\n if (search.length >= 3 && search !== '') {\n return [..._cubes].map((cube) => {\n const mappedCube = { ...cube };\n\n if (cube.measures?.length > 0) {\n mappedCube.measures = applyFilters(search, cube.measures);\n }\n\n if (cube.dimensions?.length > 0) {\n mappedCube.dimensions = applyFilters(search, cube.dimensions);\n }\n\n if (cube.filterOptions?.length > 0) {\n mappedCube.filterOptions = applyFilters(search, cube.filterOptions);\n }\n\n return mappedCube;\n });\n }\n\n return _cubes;\n};\n\nconst useStyles = makeStyles({\n input: {\n width: '100%',\n height: '40px',\n border: 0,\n },\n});\n\n/**\n * A component for searching reports.\n * @param {Object} props - Component props.\n * @param {string} props.search - Current search string.\n * @param {Function} props.setSearch - Function to set the search string.\n */\nconst ReportSearchInput = ({ search, setSearch }) => {\n const classes = useStyles();\n\n useEffect(() => {\n setSearch('');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <input\n autoFocus\n value={search}\n className={classes.input}\n onChange={(e) => setSearch(e.target.value.replace(/^ +/, ''))}\n placeholder=\"Type to search...\"\n />\n );\n};\n\nReportSearchInput.propTypes = {\n search: PropTypes.string,\n setSearch: PropTypes.func,\n};\n\nexport default ReportSearchInput;\n","import React, { useRef, useState } from 'react';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport { useDrag, useDrop } from 'react-dnd';\nimport TextFormatIcon from '@material-ui/icons/TextFormat';\nimport TodayIcon from '@material-ui/icons/Today';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport ITEM_TYPE from '../DnD/types';\nimport PopperPortal from './PopperPortal';\nimport schemaIcon from '../assets/schema.png';\nimport useOrganization from '../hooks/useOrganization';\nimport ReportSearchInput, { onFilterCubes } from './ReportSearchInput';\n\nconst useStyles = makeStyles({\n item: {\n height: 45,\n background: '#fff',\n borderRadius: 4,\n border: '1px solid #7070701F',\n padding: '15px 16px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n },\n label: {\n fontSize: 14,\n color: '#00000061',\n },\n\n seletedItem: {\n color: '#000000DE',\n fontSize: 14,\n fontWeight: '400',\n },\n img: {\n width: 16,\n height: 16,\n marginRight: 5,\n },\n hoverItem: {\n cursor: 'pointer',\n borderRadius: 4,\n '& :hover': {\n transition: 'ease .3s all',\n background: '#f2f2f2',\n },\n },\n});\n\nexport default function ReportDnDItem({ index, id, moveItem, label, order, cubes, type, setItems, value }) {\n const classes = useStyles();\n const ref = useRef(null);\n const [open, setOpen] = useState(false);\n const { organization } = useOrganization();\n const [search, setSearch] = useState('');\n\n const [, drop] = useDrop({\n accept: ITEM_TYPE,\n hover(item, monitor) {\n if (!ref.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n\n if (dragIndex === hoverIndex) {\n return;\n }\n\n const hoverBoundingRect = ref.current?.getBoundingClientRect();\n\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n\n const clientOffset = monitor.getClientOffset();\n\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n moveItem(dragIndex, hoverIndex);\n\n item.index = hoverIndex;\n },\n });\n const [{ isDragging }, drag] = useDrag({\n type: ITEM_TYPE,\n item: { type: ITEM_TYPE, id, index },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n drag(drop(ref));\n\n const opacity = isDragging ? 0 : 1;\n\n const handleClick = (item) => {\n setItems((prevState) => {\n const stateCopy = [...prevState];\n stateCopy[index].value = item;\n return stateCopy;\n });\n\n setOpen(false);\n };\n\n const handleRemove = () => {\n setItems((prevState) => {\n const stateCopy = [...prevState];\n stateCopy[index].value = null;\n return stateCopy;\n });\n };\n\n const cubesFiltered = onFilterCubes(search, cubes);\n const checkedEmptyCubes = cubesFiltered.filter((cube) => {\n if (type === 'dimensions') return cube.dimensions.length > 0;\n\n if (type === 'measures') return cube.measures.length > 0;\n });\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n ref={ref}\n isDraggin={isDragging}\n style={{ opacity }}\n marginBottom=\"10px\"\n position=\"relative\"\n >\n <DragIndicatorIcon htmlColor=\"#6D7385\" style={{ marginRight: 7, cursor: isDragging ? 'grabbing' : 'grab' }} />\n <Box className={classes.item} onClick={() => setOpen(true)}>\n <Box display=\"flex\" alignItems=\"center\" width=\"90%\">\n {open ? (\n <ReportSearchInput search={search} setSearch={setSearch} />\n ) : (\n <>\n {value ? (\n <>\n <Typography className={classes.seletedItem}>{`${order}. ${value?.shortTitle}`}</Typography>\n </>\n ) : (\n <Typography className={classes.label}>{`${order}. ${label}`}</Typography>\n )}\n </>\n )}\n </Box>\n </Box>\n {value && (\n <CancelIcon\n fontSize=\"small\"\n htmlColor=\"#6D7385\"\n style={{\n position: 'absolute',\n right: 15,\n zIndex: 8,\n cursor: 'pointer',\n }}\n onClick={handleRemove}\n />\n )}\n <PopperPortal open={open} setOpen={setOpen}>\n <Box\n width={300}\n height={checkedEmptyCubes.length > 0 ? 400 : 200}\n style={{ background: '#fff', zIndex: 99, overflowY: 'auto' }}\n >\n {checkedEmptyCubes.length > 0 ? (\n <>\n {type === 'dimensions' &&\n cubesFiltered.map((cube, idx) => (\n <Dimensions\n dimension={cube}\n key={`dimmension#${idx}`}\n onClick={handleClick}\n organizationId={organization?._id}\n />\n ))}\n {type === 'measures' &&\n cubesFiltered.map((cube, idx) => (\n <Measures\n measures={cube}\n key={`measures#${idx}`}\n onClick={handleClick}\n organizationId={organization?._id}\n />\n ))}\n </>\n ) : (\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" marginTop={1} width=\"100%\" height=\"90%\">\n <Typography>No results</Typography>\n </Box>\n )}\n </Box>\n </PopperPortal>\n </Box>\n );\n}\n\nfunction Dimensions({ dimension, onClick, organizationId }) {\n const classes = useStyles();\n return dimension.dimensions.length && dimension.dimensions.filter((dim) => dim.isVisible).length ? (\n <Box padding=\"7px 12px\">\n <Box display=\"flex\" alignItems=\"center\">\n <img className={classes.img} src={schemaIcon} />\n <Typography style={{ fontSize: 14 }}>{dimension?.title?.replace('-', '')}</Typography>\n </Box>\n {dimension.dimensions\n .filter((dim) => dim.isVisible)\n .map((dim) => {\n if (dim?.meta?.allowedOrganizations) {\n if (dim?.meta?.allowedOrganizations?.includes(organizationId)) {\n return dim;\n }\n return null;\n }\n\n return dim;\n })\n .filter((dim) => dim)\n .map((dimm, index) => (\n <Box className={classes.hoverItem} onClick={() => onClick(dimm)} key={`${dimm.name}+${index}`}>\n <Box display=\"flex\" alignItems=\"center\" padding=\"19px 20px\">\n {dimm.type === 'string' && <TextFormatIcon fontSize=\"small\" style={{ marginRight: 5 }} />}\n {dimm.type === 'time' && <TodayIcon fontSize=\"small\" style={{ marginRight: 5 }} />}\n <Typography style={{ fontSize: 14 }}>{dimm?.title || dimm?.shortTitle}</Typography>\n </Box>\n </Box>\n ))}\n </Box>\n ) : (\n <div />\n );\n}\n\nfunction Measures({ measures, onClick, organizationId }) {\n const classes = useStyles();\n\n return measures.measures.length && measures.measures.filter((dim) => dim.isVisible).length ? (\n <Box padding=\"7px 12px\">\n <Box display=\"flex\" alignItems=\"center\">\n <img className={classes.img} src={schemaIcon} />\n <Typography style={{ fontSize: 14 }}>{measures?.title?.replace('-', '')}</Typography>\n </Box>\n\n {measures.measures\n .filter((measure) => measure.isVisible)\n .map((measure) => {\n if (measure?.meta?.allowedOrganizations) {\n if (measure?.meta?.allowedOrganizations?.includes(organizationId)) {\n return measure;\n }\n return null;\n }\n\n return measure;\n })\n .filter((measure) => measure)\n .map((meas, index) => (\n <Box className={classes.hoverItem} onClick={() => onClick(meas)} key={index}>\n <Box display=\"flex\" alignItems=\"center\" padding=\"19px 20px\">\n {meas.type === 'string' && <TextFormatIcon fontSize=\"small\" />}\n {meas.type === 'time' && <TodayIcon fontSize=\"small\" style={{ marginRight: 10 }} />}\n <Typography style={{ fontSize: 14 }}>{meas?.title || meas?.shortTitle}</Typography>\n </Box>\n </Box>\n ))}\n </Box>\n ) : (\n <div />\n );\n}\n","import React, { useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport TodayIcon from '@material-ui/icons/Today';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nimport PopperPortal from './PopperPortal';\nimport schemaIcon from '../assets/schema.png';\nimport ReportSearchInput, { onFilterCubes } from './ReportSearchInput';\n\nconst useStyles = makeStyles({\n item: {\n height: 45,\n background: '#fff',\n borderRadius: 4,\n border: '1px solid #7070701F',\n padding: '15px 16px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n },\n label: {\n fontSize: 14,\n color: '#00000061',\n },\n\n seletedItem: {\n color: '#000000DE',\n fontSize: 14,\n fontWeight: '400',\n },\n img: {\n width: 16,\n height: 16,\n marginRight: 5,\n },\n hoverItem: {\n cursor: 'pointer',\n borderRadius: 4,\n '& :hover': {\n transition: 'ease .3s all',\n background: '#f2f2f2',\n },\n },\n});\n\nexport default function ReportItem({ label, cubes = [], setItems, value, showTodayIcon }) {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n\n const handleClick = (item) => {\n setItems((prevState) => {\n const stateCopy = { ...prevState };\n stateCopy.value = item;\n return stateCopy;\n });\n\n setOpen(false);\n };\n\n const handleRemove = () => {\n setItems((prevState) => {\n const stateCopy = { ...prevState };\n stateCopy.value = null;\n return stateCopy;\n });\n };\n\n const cubesFiltered = onFilterCubes(search, cubes);\n const checkedEmptyCubes = cubesFiltered.filter((cube) => cube.dimensions.length > 0);\n\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n marginBottom=\"10px\"\n position=\"relative\"\n >\n <Box className={classes.item} onClick={() => setOpen(true)}>\n <Box display=\"flex\" alignItems=\"center\" width=\"90%\">\n {open ? (\n <ReportSearchInput search={search} setSearch={setSearch} />\n ) : (\n <>\n {value ? (\n <>\n <Typography className={classes.seletedItem}>{`${value?.shortTitle}`}</Typography>\n </>\n ) : (\n <Typography className={classes.label}>{`${label}`}</Typography>\n )}\n </>\n )}\n </Box>\n </Box>\n {value && (\n <CancelIcon\n fontSize=\"small\"\n htmlColor=\"#6D7385\"\n style={{\n position: 'absolute',\n right: 15,\n zIndex: 8,\n cursor: 'pointer',\n }}\n onClick={handleRemove}\n />\n )}\n <PopperPortal open={open} setOpen={setOpen} left={0}>\n <Box\n width={333}\n height={checkedEmptyCubes.length > 0 ? 300 : 200}\n style={{ background: '#fff', zIndex: 99, overflowY: 'auto' }}\n >\n {checkedEmptyCubes.length > 0 ? (\n <>\n {cubesFiltered.map((dimension, index) => {\n const finalDimensions = dimension.dimensions\n .filter((dim) => dim.type === 'time')\n .map((dimm, idx) => (\n <Box className={classes.hoverItem} key={idx} onClick={() => handleClick(dimm)}>\n <Box display=\"flex\" alignItems=\"center\" padding=\"19px 20px\">\n {dimm.type === 'time' && showTodayIcon && <TodayIcon fontSize=\"small\" style={{ marginRight: 10 }} />}\n <Typography style={{ fontSize: 14 }}>{dimm?.title}</Typography>\n </Box>\n </Box>\n ));\n return finalDimensions.length ? (\n <Box padding=\"7px 12px\" key={index}>\n <Box display=\"flex\" alignItems=\"center\">\n <img className={classes.img} src={schemaIcon} />\n <Typography style={{ fontSize: 14 }}>{dimension?.title.replace('-', '')}</Typography>\n </Box>\n {finalDimensions}\n </Box>\n ) : null;\n })}\n </>\n ) : (\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" marginTop={1} width=\"100%\" height=\"90%\">\n <Typography>No results</Typography>\n </Box>\n )}\n </Box>\n </PopperPortal>\n </Box>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport PropTypes from 'prop-types';\n\nimport PopperPortal from './PopperPortal';\nimport schemaIcon from '../assets/schema.png';\nimport ReportSearchInput, { onFilterCubes } from './ReportSearchInput';\n\n/**\n * Styles for the ReportFilterItem component.\n */\nconst useStyles = makeStyles({\n item: {\n height: 45,\n background: '#fff',\n borderRadius: 4,\n border: '1px solid #7070701F',\n padding: '15px 16px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n },\n label: {\n fontSize: 14,\n color: '#00000061',\n },\n\n seletedItem: {\n color: '#000000DE',\n fontSize: 14,\n fontWeight: '400',\n },\n img: {\n width: 16,\n height: 16,\n marginRight: 5,\n },\n hoverItem: {\n cursor: 'pointer',\n borderRadius: 4,\n '& :hover': {\n transition: 'ease .3s all',\n background: '#f2f2f2',\n },\n },\n});\n\nconst getFilterItems = (items) => {\n const filterItems = items.map(({ dimensions, measures, title }) => ({\n filterOptions: [dimensions, measures].flat(),\n title,\n }));\n return filterItems;\n};\n\nexport const searchFilterItem = (filterItem, items) => {\n if (!filterItem) return null;\n\n const allItems = getFilterItems(items).map((item) => item.filterOptions.map((currentItem) => currentItem));\n\n const findedItem = allItems.flat().find((item) => item.name === filterItem);\n return findedItem;\n};\n\n/**\n * Component representing a filter item for a report.\n * @param {object} props - Component props.\n * @param {string} props.label - Label for the filter item.\n * @param {array} props.cubes - Array of cube objects.\n * @param {function} props.setItems - Function to set items.\n * @param {object} props.value - Currently selected value.\n * @param {array} props.operators - Array of operators.\n * @param {function} props.onResetFilter - Function to reset filter.\n * @param {boolean} props.showRemove - Flag to show remove icon.\n * @param {boolean} props.withSearchInput - Flag to enable search input.\n * @returns {JSX.Element} React component.\n */\nexport default function ReportFilterItem({\n label,\n cubes = [],\n setItems,\n value,\n operators = [],\n onResetFilter = () => {},\n showRemove = true,\n withSearchInput = true,\n}) {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n\n const handleClick = (item) => {\n setItems(item);\n setOpen(false);\n };\n\n const handleRemove = () => {\n onResetFilter();\n };\n\n const cubesFiltered = getFilterItems(onFilterCubes(search, cubes));\n const checkedEmptyCubes = cubesFiltered.filter((cube) => cube.filterOptions.length > 0);\n\n return (\n <Box display=\"flex\" alignItems=\"center\" marginBottom=\"10px\" position=\"relative\">\n <Box className={classes.item} onClick={() => setOpen(true)}>\n <Box display=\"flex\" alignItems=\"center\" width=\"90%\">\n {open && withSearchInput ? (\n <ReportSearchInput search={search} setSearch={setSearch} />\n ) : (\n <>\n {value ? (\n <>\n <Typography className={classes.seletedItem}>{value.title || value.label}</Typography>\n </>\n ) : (\n <Typography className={classes.label}>{`${label}`}</Typography>\n )}\n </>\n )}\n </Box>\n </Box>\n {value && showRemove && (\n <CancelIcon\n fontSize=\"small\"\n htmlColor=\"#6D7385\"\n style={{\n position: 'absolute',\n right: 15,\n zIndex: 8,\n cursor: 'pointer',\n }}\n onClick={handleRemove}\n />\n )}\n <PopperPortal open={open} setOpen={setOpen} left={0}>\n <Box\n width={333}\n height={checkedEmptyCubes.length > 0 ? 300 : 200}\n style={{ background: '#fff', zIndex: 99, overflowY: 'auto' }}\n >\n {withSearchInput ? (\n <>\n {checkedEmptyCubes.length > 0 ? (\n <>\n {cubesFiltered.map((filters, index) =>\n filters?.filterOptions?.length > 0 ? (\n <Box padding=\"7px 12px\" key={index}>\n <Box display=\"flex\" alignItems=\"center\">\n <img className={classes.img} src={schemaIcon} alt=\"filter icon\" />\n <Typography style={{ fontSize: 14 }}>{filters?.title}</Typography>\n </Box>\n\n {filters.filterOptions?.map((item, idx) => (\n <Box className={classes.hoverItem} key={idx} onClick={() => handleClick(item)}>\n <Box display=\"flex\" alignItems=\"center\" padding=\"19px 20px\">\n <Typography style={{ fontSize: 14 }}>{item?.title || item?.shortTitle}</Typography>\n </Box>\n </Box>\n ))}\n </Box>\n ) : null\n )}\n </>\n ) : (\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" marginTop={1} width=\"100%\" height=\"90%\">\n <Typography>No results</Typography>\n </Box>\n )}\n </>\n ) : (\n <>\n {operators?.map((operator, index) => (\n <Box padding=\"7px 12px\" key={index}>\n <Box className={classes.hoverItem} onClick={() => handleClick(operator)}>\n <Box display=\"flex\" alignItems=\"center\" padding=\"19px 20px\">\n <Typography style={{ fontSize: 14 }}>{operator.label}</Typography>\n </Box>\n </Box>\n </Box>\n ))}\n </>\n )}\n </Box>\n </PopperPortal>\n </Box>\n );\n}\n\n// PropTypes for type checking\nReportFilterItem.propTypes = {\n label: PropTypes.string.isRequired,\n cubes: PropTypes.array.isRequired,\n setItems: PropTypes.func.isRequired,\n value: PropTypes.object,\n operators: PropTypes.array,\n onResetFilter: PropTypes.func,\n showRemove: PropTypes.bool,\n withSearchInput: PropTypes.bool,\n};\n","import { Box, CircularProgress, Divider, makeStyles, Typography } from '@material-ui/core';\nimport HelpIcon from '@material-ui/icons/Help';\nimport React from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport DatePickerMUI from '../../components/DatePickerMUi';\nimport DragArea from '../../components/DragArea';\nimport DropdownSelectableItem from '../../components/DropdownItem';\nimport ReportDnDItem from '../../components/ReportDnDItem';\nimport { onAddDnDItem } from '../../formEngine/utils/utls';\nimport ReportItem from '../../components/ReportItem';\nimport SelectBox from '../../components/SelectBox';\nimport ReportFilterItem from '../../components/ReportFilterItem';\nimport DashButton from '../../components/DashButton';\n\nexport const dataRangeOptions = [\n 'Custom',\n 'All time',\n 'Today',\n 'Yesterday',\n 'This week',\n 'This month',\n 'This quarter',\n 'This year',\n 'Last 7 days',\n 'Last 30 days',\n 'Last week',\n 'Last month',\n 'Last quarter',\n 'Last year',\n];\n\nexport const dayOption = ['w/o grouping', 'hour', 'day', 'week', 'month', 'year'];\n\nconst generalOperators = [\n { label: 'equals', value: 'equals' },\n { label: 'is not set', value: 'notSet' },\n { label: 'is set', value: 'set' },\n { label: 'does not equal', value: 'notEquals' },\n];\nexport const operators = {\n number: [\n ...generalOperators,\n { label: '<', value: 'lt' },\n { label: '<=', value: 'lte' },\n { label: '>=', value: 'gte' },\n { label: '>', value: 'gt' },\n ],\n string: [\n { label: 'does not contain', value: 'notContains' },\n { label: 'contains', value: 'contains' },\n ...generalOperators,\n ],\n boolean: [...generalOperators],\n time: [\n { label: 'does not contain', value: 'notContains' },\n { label: 'contains', value: 'contains' },\n { label: 'In date range', value: 'inDateRange' },\n { label: 'Not in date range', value: 'notInDateRange' },\n { label: 'Before date', value: 'beforeDate' },\n { label: 'After date', value: 'afterDate' },\n ...generalOperators,\n ],\n};\n\nexport const OutLineInput = styled('input')`\n background-color: #f8f8f9;\n height: 35px;\n font-size: 14px !important;\n width: 100%;\n padding: 10px;\n border-radius: 5px;\n border: 0;\n font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;\n outline: 0;\n &::placeholder {\n color: #00000061;\n }\n ${(props) =>\n props.bordered &&\n `\n border: 1px solid rgba(0, 0, 0, 0.23);\n background: transparent;\n `}\n`;\n\nexport const searchFilterOperator = (operator, type) => {\n if (!type || !operator) return null;\n const operatorsByType = operators[type];\n const finedOperator = operatorsByType.find((opt) => opt.value === operator);\n return finedOperator;\n};\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n maxWidth: 370,\n borderRight: '1px solid #6D738526',\n height: 'calc(116.1vh - 64px)',\n overflowY: 'scroll',\n },\n sectionTitle: {\n padding: '16px 18px',\n fontSize: 16,\n fontWeight: '500',\n },\n contentContainer: {\n padding: '16px 18px',\n },\n descriptionText: {\n fontSize: 12,\n color: '#000000AD',\n },\n addMore: {\n color: '#2E66FE',\n fontSize: 14,\n fontWeight: '500',\n marginTop: 24,\n cursor: 'pointer',\n marginLeft: 10,\n },\n\n documentationLink: {\n color: '#000000AD',\n fontWeight: '500',\n textDecoration: 'underline',\n cursor: 'pointer',\n },\n\n hoverItem: {\n cursor: 'pointer',\n borderRadius: 4,\n '& :hover': {\n transition: 'ease .3s all',\n background: '#f2f2f2',\n },\n },\n}));\n\nexport default function ReportPanel({\n dimensions,\n setDimensions,\n measures,\n setMeasures,\n dimensionsTime,\n setDimensionsTime,\n daterange,\n setDaterange,\n granularity,\n setGranularity,\n from,\n setFrom,\n to,\n setTo,\n cubes,\n filters,\n setFilters,\n addFilter,\n onResetFilter,\n buildQuery,\n loading,\n}) {\n const classes = useStyles();\n\n return (\n <Box className={classes.container}>\n <Typography className={classes.sectionTitle}>Dimensions</Typography>\n <Divider />\n <Box className={classes.contentContainer}>\n <Typography className={classes.descriptionText}>\n Dimensions is used to provide discrete categorical information. These values can be of any type - string, date\n time or numeric.\n </Typography>\n <DndProvider backend={HTML5Backend}>\n <DragArea\n selectedItems={dimensions}\n setSelectedItems={setDimensions}\n ComponentToRender={ReportDnDItem}\n componentProps={{\n cubes,\n type: 'dimensions',\n setItems: setDimensions,\n }}\n />\n </DndProvider>\n\n <Typography\n data-testid=\"report-details-button-add-new-dimension\"\n className={classes.addMore}\n onClick={() => onAddDnDItem(dimensions, setDimensions, 'dimension')}\n >\n + Add new dimension\n </Typography>\n </Box>\n <Typography className={classes.sectionTitle}>Measures</Typography>\n <Divider />\n <Box className={classes.contentContainer}>\n <Typography className={classes.descriptionText}>\n Measure is used to identify the measure using the specified data member and summary type.\n </Typography>\n <DndProvider backend={HTML5Backend}>\n <DragArea\n selectedItems={measures}\n setSelectedItems={setMeasures}\n ComponentToRender={ReportDnDItem}\n componentProps={{\n cubes,\n type: 'measures',\n setItems: setMeasures,\n }}\n />\n </DndProvider>\n\n <Typography\n data-testid=\"report-details-button-add-new-measure\"\n className={classes.addMore}\n onClick={() => onAddDnDItem(measures, setMeasures, 'measure')}\n >\n + Add new measure\n </Typography>\n </Box>\n <Typography className={classes.sectionTitle}>Times</Typography>\n <Divider />\n <Box className={classes.contentContainer} display=\"flex\" flexDirection=\"column\">\n <Box>\n <ReportItem\n label={dimensionsTime.label}\n cubes={cubes}\n value={dimensionsTime.value}\n setItems={setDimensionsTime}\n />\n\n {dimensionsTime.value && (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography style={{ fontSize: 12, color: '#000000AD', marginRight: 12 }}>For</Typography>\n <DropdownSelectableItem\n value={daterange}\n options={dataRangeOptions}\n setItems={setDaterange}\n widthItem=\"100%\"\n />\n </Box>\n )}\n\n {dimensionsTime.value && daterange === 'Custom' && (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" marginBottom=\"10px\">\n <DatePickerMUI\n label=\"From\"\n date={from}\n propWidth={100}\n type=\"start\"\n setdate={setFrom}\n compareDate={to}\n setCompareDate={setTo}\n allowEndBeforeStart\n />\n <span style={{ width: 15 }} />\n <DatePickerMUI\n label=\"To\"\n date={to}\n propWidth={100}\n type=\"end\"\n setdate={setTo}\n compareDate={from}\n setCompareDate={setFrom}\n allowEndBeforeStart\n />\n </Box>\n )}\n\n {dimensionsTime.value && (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography style={{ fontSize: 12, color: '#000000AD', marginRight: 12 }}>By</Typography>\n\n <DropdownSelectableItem\n value={granularity}\n options={dayOption}\n setItems={setGranularity}\n widthItem=\"100%\"\n />\n </Box>\n )}\n </Box>\n </Box>\n <Typography className={classes.sectionTitle}>Filters</Typography>\n <Divider />\n <Box className={classes.contentContainer} display=\"flex\" flexDirection=\"column\">\n <Box paddingBottom=\"150px\">\n {filters.map((filter, index) => (\n <Box key={index} marginBottom=\"10px\">\n <ReportFilterItem\n label=\"Filter by\"\n cubes={cubes}\n value={filter.member}\n setItems={(value) => {\n setFilters(index, 'member', value);\n }}\n onResetFilter={() => {\n onResetFilter(index);\n }}\n />\n {filter?.member && (\n <Box paddingLeft=\"20px\">\n <ReportFilterItem\n label=\"Operator\"\n value={filter.operator}\n operators={operators[filter?.member?.type]}\n setItems={(value) => {\n setFilters(index, 'operator', value);\n setFilters(index, 'values', null);\n }}\n showRemove={false}\n withSearchInput={false}\n />\n\n {filter?.operator?.label?.includes('date') && (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" marginBottom=\"10px\">\n {filter?.operator?.value === 'afterDate' && (\n <DatePickerMUI\n disableFuture\n label=\"Date\"\n date={filter.values || null}\n propWidth=\"100%\"\n setdate={(date) => setFilters(index, 'values', date)}\n propPadding={5}\n />\n )}\n\n {filter?.operator?.value === 'beforeDate' && (\n <DatePickerMUI\n disableFuture\n label=\"Date\"\n date={filter.values || null}\n propWidth=\"100%\"\n setdate={(date) => setFilters(index, 'values', date)}\n propPadding={5}\n />\n )}\n {filter?.operator?.value === 'inDateRange' && (\n <>\n <DatePickerMUI\n label=\"From\"\n date={Array.isArray(filter.values) ? filter.values?.[0] : filter.values || null}\n propWidth={100}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[0] = date;\n setFilters(index, 'values', arrayValues);\n }}\n compareDate={to}\n setCompareDate={setTo}\n allowEndBeforeStart\n />\n <span style={{ width: 15 }} />\n <DatePickerMUI\n label=\"To\"\n date={Array.isArray(filter.values) ? filter.values?.[1] : null}\n propWidth={100}\n type=\"end\"\n compareDate={from}\n setCompareDate={setFrom}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[1] = date;\n setFilters(index, 'values', arrayValues);\n }}\n allowEndBeforeStart\n />\n </>\n )}\n\n {filter?.operator?.value === 'notInDateRange' && (\n <>\n <DatePickerMUI\n label=\"From\"\n date={filter.values?.[0]}\n propWidth={100}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[0] = date;\n setFilters(index, 'values', arrayValues);\n }}\n compareDate={to}\n setCompareDate={setTo}\n allowEndBeforeStart\n />\n <span style={{ width: 15 }} />\n <DatePickerMUI\n label=\"To\"\n date={filter.values?.[1]}\n propWidth={100}\n type=\"end\"\n compareDate={from}\n setCompareDate={setFrom}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[1] = date;\n setFilters(index, 'values', arrayValues);\n }}\n allowEndBeforeStart\n />\n </>\n )}\n </Box>\n )}\n\n {filter?.operator &&\n !filter?.operator?.label?.includes('date') &&\n filter?.member?.type !== 'boolean' && (\n <OutLineInput\n // bordered\n placeholder=\"Value\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n style={{\n height: 45,\n background: '#fff',\n padding: '15px 16px',\n border: '1px solid #7070701F',\n fontSize: 16,\n }}\n value={filter.values || ''}\n onChange={(e) => setFilters(index, 'values', e.target.value)}\n labelWidth={0}\n />\n )}\n {filter?.operator && filter?.member?.type === 'boolean' && (\n <Box bgcolor=\"#fff\" border=\"1px solid #7070701F\" borderRadius=\"5px\">\n <SelectBox\n options={{\n obj: [\n { text: 'Select an Option', value: '' },\n { text: 'Yes', value: 1 },\n { text: 'No', value: 0 },\n ],\n }}\n outlined=\"string\"\n value={filter.values || ''}\n onChange={(e) => setFilters(index, 'values', e.target.value)}\n allowPlaceHolder={false}\n />\n </Box>\n )}\n </Box>\n )}\n </Box>\n ))}\n <Typography\n data-testid=\"report-details-button-add-new-filter\"\n className={classes.addMore}\n onClick={addFilter}\n >\n + Add new filter\n </Typography>\n\n <DashButton\n dataTestId=\"report-details-button-run-report\"\n marginTop={20}\n onClick={buildQuery}\n disabled={loading}\n >\n {loading ? <CircularProgress size={20} style={{ color: '#fff' }} /> : 'Run Report'}\n </DashButton>\n </Box>\n <Box display=\"flex\" paddingBottom=\"70px\">\n <HelpIcon htmlColor=\"#2E66FE\" fontSize=\"large\" style={{ marginRight: 8 }} />\n <Typography className={classes.descriptionText}>\n Need help? See our{' '}\n <Link to=\"/data-docs\">\n <span className={classes.documentationLink}>Documentation</span>\n </Link>{' '}\n for more information.\n </Typography>\n </Box>\n </Box>\n </Box>\n );\n}\n\nReportPanel.propTypes = {\n dimensions: PropTypes.array.isRequired,\n setDimensions: PropTypes.func.isRequired,\n measures: PropTypes.array.isRequired,\n setMeasures: PropTypes.func.isRequired,\n dimensionsTime: PropTypes.array.isRequired,\n setDimensionsTime: PropTypes.func.isRequired,\n daterange: PropTypes.object.isRequired,\n setDaterange: PropTypes.func.isRequired,\n granularity: PropTypes.string.isRequired,\n setGranularity: PropTypes.func.isRequired,\n from: PropTypes.string.isRequired,\n setFrom: PropTypes.func.isRequired,\n to: PropTypes.string.isRequired,\n setTo: PropTypes.func.isRequired,\n cubes: PropTypes.array.isRequired,\n filters: PropTypes.array.isRequired,\n setFilters: PropTypes.func.isRequired,\n addFilter: PropTypes.func.isRequired,\n onResetFilter: PropTypes.func.isRequired,\n buildQuery: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n};\n","/* eslint-disable no-nested-ternary */\nimport { Box } from '@material-ui/core';\nimport { ResultSet } from '@cubejs-client/core';\nimport React, { useRef, useCallback, useEffect, useState } from 'react';\nimport moment from 'moment';\nimport { useParams } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\nimport { fetchCube, getCubes, saveCube } from '../../services/cube';\nimport ReportContent from './ReportContent';\nimport ReportPanel, { searchFilterOperator } from './ReportPanel';\nimport { formatCubeJsTableColumns } from '../../utils';\nimport { searchFilterItem } from '../../components/ReportFilterItem';\nimport useOrganization from '../../hooks/useOrganization';\nimport { exportComponentAsPNG } from 'react-component-export-image';\nimport { exportCSVFile } from '../../utils/convertJsonCsv';\nimport { containsHTML } from '../../utils';\nimport Papa from 'papaparse';\nimport { convertHMS } from '../Projects/utils';\n\nexport const dataRangeOptions = [\n 'Custom',\n 'All time',\n 'Today',\n 'Yesterday',\n 'This week',\n 'This month',\n 'This quarter',\n 'This year',\n 'Last 7 days',\n 'Last 30 days',\n 'Last 60 days',\n 'Last week',\n 'Last month',\n 'Last quarter',\n 'Last year',\n];\nconst formatDateValue = (date, format = 'MMMM DD, YYYY') => moment(date).format(format);\n\nconst formatUtcDateValue = (date, format = 'MMMM DD, YYYY') =>\n moment(date?.endsWith('Z') ? date : `${date}Z`).format(format);\n\nexport const dayOption = ['w/o grouping', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nconst formatDateOnTable = (array) => {\n if (!Array.isArray(array)) {\n return;\n }\n const data = array.map((item) => {\n const objKeys = Object.keys(item);\n\n const itemCopy = { ...item };\n\n objKeys.forEach((objectKeyMapped) => {\n const currentKey = objectKeyMapped.split('.');\n const byKey = currentKey[currentKey.length - 1];\n\n if (byKey === 'day' || objectKeyMapped.includes('demographicBirthdate')) {\n itemCopy[objectKeyMapped] =\n itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'MM/DD/YYYY');\n } else if (byKey === 'totalTime' || byKey === 'actionsTimespent') {\n itemCopy[objectKeyMapped] = convertHMS(itemCopy[objectKeyMapped]) || '00:00:00';\n } else if (byKey === 'year') {\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'YYYY');\n } else if (byKey === 'month') {\n console.log('itemCopy[objectKeyMapped]', itemCopy[objectKeyMapped]);\n\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'YYYY-MM');\n } else if (byKey === 'week') {\n itemCopy[objectKeyMapped] =\n itemCopy[objectKeyMapped] && formatDateValue(itemCopy[objectKeyMapped], 'YYYY-MM [W]w');\n } else if (\n objectKeyMapped.includes('createdat') ||\n objectKeyMapped.includes('closedAt') ||\n objectKeyMapped.includes('lastStatusDate') ||\n objectKeyMapped.includes('updatedat') ||\n objectKeyMapped.includes('demographicBirthdate') ||\n objectKeyMapped.includes('locationDatetime') ||\n objectKeyMapped.includes('recommendationsSubmitteddate') ||\n objectKeyMapped.includes('ProjectsRecommendations.recommendationsResponsedate') ||\n objectKeyMapped.includes('taskDueDateTime')\n ) {\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped] && formatUtcDateValue(itemCopy[objectKeyMapped]);\n } else if (byKey === 'bradyList' || byKey === 'civilianFileAnonymously' || byKey === 'transferred') {\n itemCopy[objectKeyMapped] = itemCopy[objectKeyMapped]\n ? 'Yes'\n : itemCopy[objectKeyMapped] === null || itemCopy[objectKeyMapped] === undefined\n ? 'Not specified'\n : 'No';\n } else if (objectKeyMapped && objectKeyMapped.includes('date')) {\n const date = formatUtcDateValue(itemCopy[objectKeyMapped], 'MM/DD/YYYY');\n\n if (date !== 'Invalid date') {\n itemCopy[objectKeyMapped] = date;\n }\n }\n });\n\n return itemCopy;\n });\n\n return data;\n};\nconst getFilters = (filters) => {\n const fitersMapped = filters.map((filter) => ({\n ...(filter.member ? { member: filter?.member?.name } : {}),\n ...(filter?.operator ? { operator: filter?.operator?.value } : {}),\n ...(filter.values\n ? {\n values: Array.isArray(filter?.values) ? filter?.values : [filter?.values],\n }\n : {}),\n }));\n return fitersMapped.filter((filter) => Object.keys(filter).length > 0);\n};\n\nexport default function ReportProfile() {\n const [dimensions, setDimensions] = useState([\n { label: 'Add dimension', value: null, id: 'dimension1', order: 1 },\n { label: 'Add dimension', value: null, id: 'dimension2', order: 2 },\n { label: 'Add dimension', value: null, id: 'dimension3', order: 3 },\n ]);\n\n const [measures, setMeasures] = useState([\n { label: 'Add measure', value: null, id: 'measure1', order: 1 },\n { label: 'Add measure', value: null, id: 'measure2', order: 2 },\n { label: 'Add measure', value: null, id: 'measure3', order: 3 },\n ]);\n\n const [filters, setFilters] = useState([{ member: null, operator: null, values: null }]);\n\n const [dimensionsTime, setDimensionsTime] = useState({\n label: 'Add time dimension',\n value: null,\n });\n const { id } = useParams();\n const { organization } = useOrganization();\n const refChart = useRef();\n\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(2500);\n\n const [daterange, setDaterange] = useState(dataRangeOptions[0]);\n const [granularity, setGranularity] = useState(dayOption[4]);\n\n const [loading, setLoading] = useState(false);\n\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n\n const [reports, setReports] = useState(null);\n const [totalCount, setTotalCount] = useState(0);\n\n const [cubeQuery, setCubeQuery] = useState({\n measures: [],\n timeDimensions: [],\n order: [],\n dimensions: [],\n filters: [],\n limit: 2500,\n offset: 0,\n });\n\n const [report, setReport] = useState(null);\n const [cubes, setCubes] = useState([]);\n\n const onGetCubes = () => {\n getCubes()\n .then(({ data }) => {\n setCubes(data?.cubes);\n })\n .catch((err) => console.log(err));\n };\n\n const onGetCube = useCallback(() => {\n if (id) {\n setLoading(true);\n fetchCube(id)\n .then(({ data }) => {\n setReport(data);\n })\n .catch((err) => console.log(err))\n .finally(() => setLoading(false));\n }\n }, [id]);\n\n useEffect(() => {\n if (organization && !organization?.buildingSchemaEndDate) {\n onGetCubes();\n }\n }, [organization]);\n\n useEffect(() => {\n if (organization && !organization?.buildingSchemaEndDate) {\n onGetCube();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, organization]);\n\n useEffect(() => {\n if (cubes.length && report) {\n const query = report?.query;\n\n if (!query) {\n return;\n }\n\n const QueryDimensions = query?.dimensions;\n const Querymeasures = query?.measures;\n const QueryTimeDimensions = query?.timeDimensions?.[0];\n\n const getFetchQuery = (arrQuery, key) => {\n const dd = arrQuery?.map((qd) => {\n const splited = qd.split('.')[0];\n\n const colected = [];\n cubes.forEach((cb) => {\n if (cb.name === splited) {\n cb[key].forEach((itemSh) => {\n if (itemSh.name === qd) {\n colected.push(itemSh);\n }\n });\n }\n });\n\n return colected[0];\n });\n\n return dd;\n };\n const getFetchTimeQuery = () => {\n const splited = QueryTimeDimensions?.dimension?.split('.')[0];\n\n const colected = [];\n cubes.forEach((cb) => {\n if (cb.name === splited) {\n cb.dimensions.forEach((itemSh) => {\n if (itemSh.name === QueryTimeDimensions?.dimension) {\n colected.push(itemSh);\n }\n });\n }\n });\n\n return colected[0];\n };\n const dimensionsFetched = getFetchQuery(QueryDimensions, 'dimensions');\n const measuresFetched = getFetchQuery(Querymeasures, 'measures');\n const timeDimensionFetched = getFetchTimeQuery();\n\n const filtersFetched = query?.filters?.map((filter) => {\n const member = searchFilterItem(filter?.member, cubes);\n const operator = searchFilterOperator(filter?.operator, member?.type);\n\n return {\n member,\n operator,\n values: filter?.values?.length > 1 ? filter?.values : filter?.values?.[0] || null,\n };\n });\n\n let dimensionsItems = [];\n let measuresItems = [];\n let timeDimensionsItems = null;\n\n if (dimensionsFetched?.length) {\n const dimensionsFetchedMapped = dimensionsFetched.map((dimension, index) => ({\n label: 'Add dimension',\n id: `dimension${index + 1}`,\n order: index + 1,\n value: dimension,\n }));\n dimensionsItems = dimensionsFetchedMapped.filter((dimension) => dimension.value);\n setDimensions(dimensionsFetchedMapped);\n }\n\n if (filtersFetched?.length) {\n setFilters(filtersFetched);\n }\n if (measuresFetched?.length) {\n const measuresFetchedMapped = measuresFetched.map((measure, index) => ({\n label: 'Add measure',\n value: measure,\n id: `measure${index + 1}`,\n order: index + 1,\n }));\n measuresItems = measuresFetchedMapped.filter((measure) => measure.value);\n setMeasures(measuresFetchedMapped);\n }\n\n if (timeDimensionFetched) {\n const dimensionTimeObj = {\n ...dimensionsTime,\n value: timeDimensionFetched,\n };\n\n setDimensionsTime(dimensionTimeObj);\n timeDimensionsItems = dimensionTimeObj.value;\n setGranularity(QueryTimeDimensions?.granularity);\n if (typeof QueryTimeDimensions?.dateRange === 'string') {\n setDaterange(QueryTimeDimensions?.dateRange);\n } else {\n setFrom(QueryTimeDimensions?.dateRange?.[0]);\n setTo(QueryTimeDimensions?.dateRange?.[1]);\n }\n }\n\n setReports({\n data: report?.resultSet ? ResultSet.deserialize(report?.resultSet)?.tablePivot() : null,\n columns: report?.resultSet\n ? ResultSet.deserialize(report?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n }))\n : null,\n\n resultSet: report?.resultSet ? ResultSet.deserialize(report?.resultSet) : null,\n });\n\n if (report?.resultSet) {\n const deserializedResultSet = ResultSet.deserialize(report?.resultSet);\n if (deserializedResultSet?.loadResponse?.results?.[0]?.total) {\n setTotalCount(deserializedResultSet.loadResponse.results[0].total);\n }\n }\n\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(QueryTimeDimensions?.granularity === 'w/o grouping'\n ? {}\n : { granularity: QueryTimeDimensions?.granularity?.toLowerCase() }),\n ...(QueryTimeDimensions?.dateRange === 'All time'\n ? {}\n : QueryTimeDimensions?.dateRange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: QueryTimeDimensions?.dateRange,\n }),\n });\n }\n\n if (currentDimensions.length > 0 || currentMeasures.length > 0 || timeDimensionsItems) {\n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filtersFetched),\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cubes, report]);\n\n const onResetFilter = (index) => {\n setFilters((prevState) => {\n const newFilters = [...prevState];\n newFilters[index] = {\n member: null,\n operator: null,\n values: null,\n };\n return newFilters;\n });\n };\n\n const onSetFilter = (index, prop, value) => {\n const newFilters = [...filters];\n newFilters[index][prop] = value;\n setFilters(newFilters);\n };\n\n const addFilter = () => {\n setFilters([\n ...filters,\n {\n member: null,\n operator: null,\n values: null,\n },\n ]);\n };\n\n const onClearReport = () => {\n setCubeQuery({\n measures: [],\n timeDimensions: [],\n order: [],\n dimensions: [],\n filters: [],\n limit: 2500,\n });\n setReports(null);\n setDimensions([\n { label: 'Add dimension', value: null, id: 'dimension1', order: 1 },\n { label: 'Add dimension', value: null, id: 'dimension2', order: 2 },\n { label: 'Add dimension', value: null, id: 'dimension3', order: 3 },\n ]);\n setMeasures([\n { label: 'Add measure', value: null, id: 'measure1', order: 1 },\n { label: 'Add measure', value: null, id: 'measure2', order: 2 },\n { label: 'Add measure', value: null, id: 'measure3', order: 3 },\n ]);\n\n setDimensionsTime({\n label: 'Add time dimension',\n value: null,\n });\n setFilters([{ member: null, operator: null, values: null }]);\n setTotalCount(0);\n setPage(0);\n setRowsPerPage(2500);\n };\n\n const buildQuery = () => {\n const dimensionsItems = dimensions.filter((dimension) => dimension.value);\n const measuresItems = measures.filter((measure) => measure.value);\n const timeDimensionsItems = dimensionsTime.value;\n\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(granularity === 'w/o grouping' ? {} : { granularity: granularity?.toLowerCase() }),\n ...(daterange === 'All time'\n ? {}\n : daterange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: daterange,\n }),\n });\n }\n\n if (currentDimensions.length > 0 || currentMeasures.length > 0 || timeDimensionsItems) {\n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n limit: rowsPerPage,\n offset: page * rowsPerPage,\n });\n setLoading(true);\n\n saveCube(id, {\n query: {\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n limit: rowsPerPage,\n offset: page * rowsPerPage,\n total: true,\n },\n preview: true,\n })\n .then(({ data }) => {\n setReports({\n data: ResultSet.deserialize(data?.resultSet)?.tablePivot(),\n columns: ResultSet.deserialize(data?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n })),\n\n resultSet: ResultSet.deserialize(data?.resultSet),\n });\n if (data?.resultSet) {\n const deserializedResultSet = ResultSet.deserialize(data?.resultSet);\n if (deserializedResultSet?.loadResponse?.results?.[0]?.total) {\n setTotalCount(deserializedResultSet.loadResponse.results[0].total);\n }\n }\n })\n .catch((err) => {\n if (err === 'Network Error') {\n toast.error('Something went wrong with the Report, please try again later');\n }\n })\n .finally(() => setLoading(false));\n }\n };\n\n const prepareReport = () => {\n const dimensionsItems = dimensions.filter((dimension) => dimension.value);\n const measuresItems = measures.filter((measure) => measure.value);\n const timeDimensionsItems = dimensionsTime.value;\n\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(granularity === 'w/o grouping' ? {} : { granularity: granularity?.toLowerCase() }),\n ...(daterange === 'All time'\n ? {}\n : daterange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: daterange,\n }),\n });\n }\n return {\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n limit: rowsPerPage,\n offset: page * rowsPerPage,\n };\n };\n\n const handleChangePage = (event, newPage, downloadAll = false, type = \"\", name = \"\") => {\n const dimensionsItems = dimensions.filter((dimension) => dimension.value);\n const measuresItems = measures.filter((measure) => measure.value);\n const timeDimensionsItems = dimensionsTime.value;\n\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(granularity === 'w/o grouping' ? {} : { granularity: granularity?.toLowerCase() }),\n ...(daterange === 'All time'\n ? {}\n : daterange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: daterange,\n }),\n });\n }\n\n setPage(newPage);\n setLoading(true);\n\n const newOffset = newPage * rowsPerPage;\n \n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n limit: rowsPerPage,\n offset: newOffset,\n });\n\n saveCube(id, {\n query: {\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n limit: downloadAll ? totalCount : rowsPerPage,\n offset: downloadAll ? 0 : newOffset,\n },\n preview: true,\n })\n .then(({ data }) => {\n const newReport = {\n data: ResultSet.deserialize(data?.resultSet)?.tablePivot(),\n columns: ResultSet.deserialize(data?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n })),\n\n resultSet: ResultSet.deserialize(data?.resultSet),\n };\n\n if (!downloadAll) {\n setReports(newReport);\n }\n\n if (data?.resultSet) {\n const deserializedResultSet = ResultSet.deserialize(data?.resultSet);\n if (deserializedResultSet?.loadResponse?.results?.[0]?.total) {\n setTotalCount(deserializedResultSet.loadResponse.results[0].total);\n }\n\n onDownloadSelect(type, name, true, newReport);\n }\n })\n .catch((err) => {\n if (err === 'Network Error') {\n toast.error('Something went wrong with the Report, please try again later');\n }\n })\n .finally(() => setLoading(false));\n };\n\n const handleChangeRowsPerPage = (event) => {\n const newRowsPerPage = parseInt(event.target.value, 10);\n \n const dimensionsItems = dimensions.filter((dimension) => dimension.value);\n const measuresItems = measures.filter((measure) => measure.value);\n const timeDimensionsItems = dimensionsTime.value;\n\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(granularity === 'w/o grouping' ? {} : { granularity: granularity?.toLowerCase() }),\n ...(daterange === 'All time'\n ? {}\n : daterange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: daterange,\n }),\n });\n }\n\n setRowsPerPage(newRowsPerPage);\n setPage(0);\n setLoading(true);\n\n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n limit: newRowsPerPage,\n offset: 0, // Reset to first page\n });\n\n saveCube(id, {\n query: {\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n limit: newRowsPerPage,\n offset: 0, // Reset to first page\n },\n preview: true,\n })\n .then(({ data }) => {\n setReports({\n data: ResultSet.deserialize(data?.resultSet)?.tablePivot(),\n columns: ResultSet.deserialize(data?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n })),\n\n resultSet: ResultSet.deserialize(data?.resultSet),\n });\n\n if (data?.resultSet) {\n const deserializedResultSet = ResultSet.deserialize(data?.resultSet);\n if (deserializedResultSet?.loadResponse?.results?.[0]?.total) {\n setTotalCount(deserializedResultSet.loadResponse.results[0].total);\n }\n }\n })\n .catch((err) => {\n if (err === 'Network Error') {\n toast.error('Something went wrong with the Report, please try again later');\n }\n })\n .finally(() => setLoading(false));\n };\n\n const onDownloadSelect = (type, name, before = false, _reports = null) => {\n if (!before) {\n handleChangePage(null, 0, true, type, name);\n return;\n }\n\n if (!_reports) {\n _reports = reports;\n }\n\n if (type === 'png') {\n exportComponentAsPNG(refChart, { fileName: `${name}-${moment().format()}.png` });\n } else if (type === 'csv') {\n const dataWithCorrectDate = formatDateOnTable(_reports?.data);\n const exportData = dataWithCorrectDate.map((data) => {\n const body = {};\n _reports.columns.forEach((c) => {\n const title = c.title?.trim();\n\n if (containsHTML(data[c.key])) {\n const tempElement = document.createElement('div');\n tempElement.innerHTML = data[c.key];\n body[title] =\n tempElement.textContent.replace(/[\\n]+/g, ' ')?.trim() ||\n tempElement.innerText.replace(/[\\n]+/g, ' ')?.trim();\n } else {\n body[title] = data[c.key];\n }\n });\n return body;\n });\n const csv = Papa.unparse(exportData);\n exportCSVFile(null, null, name, csv);\n }\n }\n\n return (\n <Box display=\"flex\">\n <>\n <ReportPanel\n dimensions={dimensions}\n setDimensions={setDimensions}\n measures={measures}\n setMeasures={setMeasures}\n setDimensionsTime={setDimensionsTime}\n dimensionsTime={dimensionsTime}\n daterange={daterange}\n setDaterange={setDaterange}\n granularity={granularity}\n setGranularity={setGranularity}\n from={from}\n setFrom={setFrom}\n setTo={setTo}\n to={to}\n cubes={cubes}\n filters={filters}\n setFilters={onSetFilter}\n addFilter={addFilter}\n onResetFilter={onResetFilter}\n buildQuery={buildQuery}\n loading={loading}\n />\n\n <ReportContent\n resultSet={reports?.resultSet ? reports?.resultSet : null}\n reports={reports}\n report={report}\n handleRefetch={() => {\n onGetCube();\n onGetCubes();\n }}\n reportId={id}\n cubeQuery={cubeQuery}\n prepareReport={prepareReport}\n onClearReport={onClearReport}\n loading={loading}\n page={page}\n rowsPerPage={rowsPerPage}\n handleChangePage={handleChangePage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n totalCount={totalCount}\n onDownloadSelect={onDownloadSelect}\n refChart={refChart}\n />\n </>\n </Box>\n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { Box, Popper, Typography, makeStyles } from '@material-ui/core';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport schemaIcon from '../assets/schema.png';\nimport TextFormatIcon from '@material-ui/icons/TextFormat';\nimport TodayIcon from '@material-ui/icons/Today';\n\nconst useStyles = makeStyles({\n item: {\n height: 45,\n background: '#fff',\n borderRadius: 4,\n border: '1px solid #7070701F',\n padding: '15px 16px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n },\n label: {\n fontSize: 14,\n color: '#00000061',\n },\n selectedItem: {\n color: '#000000DE',\n fontSize: 14,\n fontWeight: '400',\n },\n img: {\n width: 16,\n height: 16,\n marginRight: 5,\n },\n hoverItem: {\n cursor: 'pointer',\n borderRadius: 4,\n '&:hover': {\n transition: 'ease .3s all',\n background: '#f2f2f2',\n },\n },\n inputRoot: {\n flexWrap: 'nowrap',\n overflowY: 'hidden',\n overflowX: 'hidden',\n border: '1px solid rgba(0, 0, 0, 0.23)',\n maxHeight: '60px',\n scrollbarWidth: 'thin',\n '& .MuiOutlinedInput-notchedOutline': {\n border: '0 !important',\n },\n },\n inputRootClicked: {\n flexWrap: 'nowrap',\n overflowY: 'hidden',\n overflowX: 'auto',\n border: '1px solid rgba(0, 0, 0, 0.23)',\n scrollbarWidth: 'thin',\n maxHeight: '60px',\n '&:hover': {\n overflowX: 'unset',\n maxHeight: '60px',\n },\n '& .MuiOutlinedInput-notchedOutline': {\n border: '0 !important',\n },\n '&::-webkit-scrollbar': {\n height: '6px',\n },\n '&::-webkit-scrollbar-thumb': {\n background: '#b0b0b0',\n borderRadius: '4px',\n },\n },\n});\n\nexport default function FixedTags({ defaultTags = [], options = [], showAll, onChange, toggleShowAll, type }) {\n const classes = useStyles();\n const extraTagsCount = defaultTags.length - (showAll ? defaultTags.length : 2);\n const [showAlltag, setShowAlltag] = useState(false);\n const containerRef = useRef(null);\n\n const handleMouseEnter = () => {};\n\n const handleMouseLeave = () => {};\n\n const handleClick = () => {\n setShowAlltag(true);\n toggleShowAll();\n };\n\n const filteredOptions = options.filter(\n (option) =>\n !option.category.includes('FormsDynamicCube') &&\n !option.field.includes('FormsDynamicCube') &&\n !option.category.includes('OfficersDynamicCube') &&\n !option.field.includes('OfficersDynamicCube') &&\n !option.category.includes('FormsOfficersAllegationsDynamicCube') &&\n !option.field.includes('FormsOfficersAllegationsDynamicCube')\n );\n\n function camelToSpaced(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/^./, (str) => str.toUpperCase());\n }\n\n function formatChildrenString(option) {\n if (option && option.title) {\n return option.title;\n }\n\n const input = `${option.category}.${option.field}`;\n const parts = input.split('.');\n\n if (parts.length < 2 || !parts[1] || !parts[0]) {\n return null;\n }\n\n if (\n parts[1].includes('FormsDynamicCube') ||\n parts[0].includes('FormsDynamicCube') ||\n parts[1].includes('OfficersDynamicCube') ||\n parts[0].includes('OfficersDynamicCube') ||\n parts[1].includes('FormsOfficersAllegationsDynamicCube') ||\n parts[0].includes('FormsOfficersAllegationsDynamicCube')\n ) {\n return null;\n }\n\n let prefix = parts[0];\n let field = parts[1];\n if (parts.length === 3) {\n prefix = parts[0];\n field = parts[2];\n }\n\n if (type === 'Measure') {\n prefix = parts[1];\n }\n\n if (!prefix || !field || prefix === 'undefined' || field === 'undefined') {\n return null;\n }\n\n let formattedField = camelToSpaced(field);\n\n if (formattedField.toLowerCase().includes(prefix.toLowerCase())) {\n formattedField = formattedField.replace(new RegExp(prefix, 'i'), '').trim();\n }\n\n return `${prefix} - ${formattedField}`;\n }\n\n return (\n <Box sx={{ width: '100%' }} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} onClick={handleClick}>\n <Autocomplete\n multiple\n id=\"fixed-tags-demo\"\n value={defaultTags}\n size=\"small\"\n ref={containerRef}\n disableClearable={true}\n popupIcon={null}\n limitTags={showAll || showAlltag ? undefined : 1}\n onChange={(event, newValue) => {\n const validTags = newValue.filter((option) => option.category && option.field);\n const updatedTags = validTags.map((tag) => ({ ...tag, selected: true }));\n\n if (onChange) {\n onChange(updatedTags);\n }\n }}\n options={filteredOptions}\n getOptionLabel={(option) => option.title || option.label || option.value || option.toString() || option.name}\n groupBy={(option) => option.category}\n classes={{\n inputRoot: showAlltag ? classes.inputRootClicked : classes.inputRoot,\n }}\n renderOption={(option, { selected }) => {\n const formattedString = formatChildrenString(option);\n if (!formattedString) {\n return null;\n }\n\n return (\n <Box\n key={option.field}\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n sx={{\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n paddingBottom: 12,\n fontSize: 12,\n '&:hover': {\n backgroundColor: '#f2f2f2',\n },\n }}\n >\n {option.type === 'string' && <TextFormatIcon fontSize=\"small\" style={{ marginRight: 5 }} />}\n {option.type === 'time' && <TodayIcon fontSize=\"small\" style={{ marginRight: 5 }} />}\n <Typography\n style={{\n fontSize: 12,\n wordWrap: 'break-word',\n whiteSpace: 'normal',\n overflow: 'visible',\n }}\n >\n {formattedString}\n </Typography>\n </Box>\n );\n }}\n PopperComponent={(props) => (\n <Popper {...props} style={{ maxHeight: 'none', maxWidth: '300px' }} placement=\"bottom-start\" />\n )}\n renderGroup={(params) => (\n <div key={params.key}>\n <Box display=\"flex\" alignItems=\"center\" paddingBottom=\"10px\" paddingTop=\"10px\" paddingLeft=\"10px\">\n <img className={classes.img} src={schemaIcon} alt=\"Schema Icon\" />\n <Typography style={{ fontSize: 12 }}>{params.group.replace('-', '')}</Typography>\n </Box>\n <Box style={{ paddingLeft: '17px', paddingRight: '10px', paddingBottom: '10px' }}>{params.children}</Box>\n </div>\n )}\n renderTags={(tagValue, getTagProps) => {\n const validTags = tagValue.filter((option) => formatChildrenString(option) !== null);\n const visibleTags = showAll || showAlltag ? validTags : validTags.slice(0, 2);\n\n return (\n <>\n {visibleTags.map((option, index) => (\n <Chip label={formatChildrenString(option)} {...getTagProps({ index })} />\n ))}\n {extraTagsCount > 0 && !showAlltag && validTags.length > 0 && (\n <span\n style={{\n whiteSpace: 'nowrap',\n fontSize: '16px',\n marginRight: '4px',\n color: '#000',\n }}\n >\n {`+${extraTagsCount}`}\n </span>\n )}\n </>\n );\n }}\n renderInput={(params) => {\n const customizedInputProps = {\n ...params.InputProps,\n style: {\n ...params.InputProps.style,\n paddingRight: '0px',\n },\n };\n return <TextField {...params} variant=\"outlined\" fullWidth InputProps={customizedInputProps} />;\n }}\n />\n </Box>\n );\n}\n","import { Box, Button, ListItemIcon, MenuItem, Typography, SvgIcon } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ShowChartIcon from '@material-ui/icons/ShowChart';\nimport PieChartIcon from '@material-ui/icons/PieChart';\nimport BarChartIcon from '@material-ui/icons/BarChart';\nimport GridOnIcon from '@material-ui/icons/GridOn';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\n\nimport PropTypes from 'prop-types';\n\nimport PopperPortal from '../../../components/PopperPortal';\n\nconst AreaIcon = () => (\n <SvgIcon htmlColor=\"#fff\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" enableBackground=\"new 0 0 24 24\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\n <rect fill=\"none\" height=\"24\" width=\"24\" />\n <path d=\"M3,13v7h18v-1.5l-9-7L8,17L3,13z M3,7l4,3l5-7l5,4h4v8.97l-9.4-7.31l-3.98,5.48L3,10.44V7z\" fill=\"#fff\" />\n </svg>\n </SvgIcon>\n);\n\nexport const chartsItems = [\n {\n text: 'Line',\n Icon: ShowChartIcon,\n },\n {\n text: 'Area',\n Icon: AreaIcon,\n },\n {\n text: 'Pie',\n Icon: PieChartIcon,\n },\n {\n text: 'Bar',\n Icon: BarChartIcon,\n },\n {\n text: 'Table',\n Icon: GridOnIcon,\n },\n {\n text: 'Number',\n Icon: InfoOutlinedIcon,\n },\n];\n\nexport default function ContentCharts({ children, selectedChart, setSelected }) {\n const [open, setOpen] = useState(false);\n\n return (\n <Box\n width=\"100%\"\n height=\"100%\"\n maxHeight={700}\n borderRadius=\"4px\"\n style={{ background: '#fff' }}\n border=\"1px solid #7070701F\"\n padding=\"24px\"\n >\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\">\n <Typography style={{ fontWeight: '500', color: '#fff', background: '#fff' }}>\n {' '}\n {selectedChart.text === 'Table' ? 'Table View' : 'Chart View'}\n </Typography>\n <Box position=\"relative\">\n <Button\n variant=\"contained\"\n style={{\n background: '#fff',\n padding: 13,\n height: 40,\n display: 'none',\n cursor: 'pointer',\n boxShadow: 'none',\n color: '#fff',\n textTransform: 'capitalize',\n fontSize: 13,\n }}\n onClick={() => setOpen(true)}\n >\n <selectedChart.Icon fontSize=\"small\" style={{ minWidth: 35, color: '#fff' }} />\n\n {selectedChart.text}\n <ArrowDropDownIcon htmlColor=\"#fff\" />\n </Button>\n <PopperPortal open={open} setOpen={setOpen} left={0} top={43}>\n {chartsItems.map((chart, index) => (\n <MenuItem\n key={index}\n style={{ fontSize: 14 }}\n onClick={() => {\n setSelected(chart);\n setOpen(false);\n }}\n >\n <ListItemIcon style={{ minWidth: 30 }}>\n <chart.Icon fontSize=\"small\" style={{ color: '#fff' }} />\n </ListItemIcon>\n {chart.text}\n </MenuItem>\n ))}\n </PopperPortal>\n </Box>\n </Box>\n {children}\n </Box>\n );\n}\n\nContentCharts.propTypes = {\n children: PropTypes.node.isRequired,\n selectedChart: PropTypes.string.isRequired,\n setSelected: PropTypes.func.isRequired,\n};\n","import { Box, Button, ListItemIcon, MenuItem, SvgIcon } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ShowChartIcon from '@material-ui/icons/ShowChart';\nimport PieChartIcon from '@material-ui/icons/PieChart';\nimport BarChartIcon from '@material-ui/icons/BarChart';\nimport GridOnIcon from '@material-ui/icons/GridOn';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\n\nimport PropTypes from 'prop-types';\n\nimport PopperPortal from '../../../components/PopperPortal';\n\nconst AreaIcon = () => (\n <SvgIcon htmlColor=\"#6D7385\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" enableBackground=\"new 0 0 24 24\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\n <rect fill=\"none\" height=\"24\" width=\"24\" />\n <path d=\"M3,13v7h18v-1.5l-9-7L8,17L3,13z M3,7l4,3l5-7l5,4h4v8.97l-9.4-7.31l-3.98,5.48L3,10.44V7z\" />\n </svg>\n </SvgIcon>\n);\n\nexport const chartsItems = [\n {\n text: 'Line',\n Icon: ShowChartIcon,\n },\n {\n text: 'Area',\n Icon: AreaIcon,\n },\n {\n text: 'Pie',\n Icon: PieChartIcon,\n },\n {\n text: 'Bar',\n Icon: BarChartIcon,\n },\n {\n text: 'Table',\n Icon: GridOnIcon,\n },\n {\n text: 'Number',\n Icon: InfoOutlinedIcon,\n },\n];\n\nexport default function ContentChartsButton({ selectedChart, setSelected }) {\n const [open, setOpen] = useState(false);\n\n return (\n <Box position=\"relative\">\n <Button\n variant=\"contained\"\n style={{\n background: '#f9fafb',\n padding: '6px 12px',\n height: '100%',\n cursor: 'pointer',\n boxShadow: 'none',\n color: '#6D7385',\n textTransform: 'capitalize',\n marginRight: 15,\n fontSize: 13,\n borderColor: '#d1d5db',\n borderRadius: '0px',\n border: '1px solid #d1d5db',\n }}\n onClick={() => setOpen(!open)} // Toggle open state\n >\n <selectedChart.Icon fontSize=\"small\" style={{ minWidth: 35 }} />\n {selectedChart.text}\n <ArrowDropDownIcon htmlColor=\"#6D7385\" />\n </Button>\n\n <PopperPortal open={open} setOpen={setOpen} left={0} top={43} >\n {chartsItems.map((chart, index) => (\n <MenuItem\n key={index}\n style={{ fontSize: 14 }}\n onClick={() => {\n setSelected(chart);\n setOpen(false); // Close the dropdown after selection\n }}\n >\n <ListItemIcon style={{ minWidth: 30 }}>\n <chart.Icon fontSize=\"small\" />\n </ListItemIcon>\n {chart.text}\n </MenuItem>\n ))}\n </PopperPortal>\n\n </Box>\n );\n}\n\nContentChartsButton.propTypes = {\n selectedChart: PropTypes.object.isRequired, // Make sure it is an object\n setSelected: PropTypes.func.isRequired,\n};\n","import {\n Box,\n Button,\n CircularProgress,\n FormControlLabel,\n Grid,\n makeStyles,\n Radio,\n RadioGroup,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React from 'react';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport useInput from '../../hooks/useInput';\nimport { createDashboard } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n width: '100%',\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: 0,\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: 0,\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n alignSelf: 'center',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n}));\n\nexport default function CreateDashboard({ setOpen, setDashboards }) {\n const classes = useStyles();\n const [loading, setLoading] = React.useState(false);\n const type = useInput();\n const name = useInput();\n const description = useInput();\n\n const onCreateDashboard = async () => {\n if (!type.value || !name.value || !description.value) {\n toast.error('Please fill in all inputs');\n return;\n }\n\n try {\n setLoading(true);\n const response = await createDashboard({\n name: name.value,\n type: type.value,\n description: description.value,\n });\n\n if (response.status === 200) {\n setLoading(false);\n setDashboards((prevState) => {\n const stateCopy = { ...prevState };\n stateCopy.data.dashboards = [response.data.dashboard, ...stateCopy.data.dashboards];\n return stateCopy;\n });\n setOpen(false);\n toast.success('New Dashboard was successfully created!');\n }\n } catch (error) {\n console.log(error)\n toast.error(error.response.data.error.details[0].message);\n setLoading(false);\n }\n };\n\n return (\n <>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Create Dashboard</Typography>\n <Typography variant=\"body2\">Widgets can be added via reports or via the dashboard.</Typography>\n <Grid container spacing={2} style={{ marginTop: 10 }}>\n <Grid item xs={12}>\n <TextField\n id=\"standard-required1\"\n label={<Typography> Dashboard Name</Typography>}\n style={{ width: '100%' }}\n value={name.value}\n onChange={name.onChange}\n inputProps={{\n 'data-testid': 'create-dashboard-input-name',\n }}\n />\n </Grid>\n <Grid item xs={12} style={{ position: 'relative' }}>\n <TextField\n id=\"standard-required1\"\n label={<Typography>Description</Typography>}\n style={{ width: '100%' }}\n value={description.value}\n onChange={description.onChange}\n inputProps={{\n 'data-testid': 'create-dashboard-input-description',\n }}\n />\n </Grid>\n </Grid>\n <Box marginTop=\"30px\">\n <Typography style={{ fontSize: 14, fontWeight: '500' }}>Type</Typography>\n <RadioGroup\n row\n aria-label=\"position\"\n name=\"position\"\n defaultValue=\"top\"\n value={type.value}\n onChange={type.onChange}\n data-testid=\"create-dashboard-radio-type\"\n >\n <FormControlLabel value=\"GLOBAL\" control={<Radio color=\"primary\" />} label=\"Global\" />\n <FormControlLabel value=\"PRIVATE\" control={<Radio color=\"primary\" />} label=\"Private\" />\n </RadioGroup>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button\n data-testid=\"create-dashboard-button-cancel\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => setOpen(false)}\n >\n CANCEL\n </Button>\n <Button\n data-testid=\"create-dashboard-button-create\"\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={onCreateDashboard}\n disabled={!type.value || loading}\n >\n {loading ? <CircularProgress color=\"#fff\" size=\"25px\" /> : 'CREATE'}\n </Button>\n </Box>\n </>\n );\n}\n\nCreateDashboard.propTypes = {\n setOpen: PropTypes.func.isRequired,\n setDashboards: PropTypes.func.isRequired,\n};\n","/* eslint-disable jsx-a11y/anchor-has-content */\n/* eslint-disable no-nested-ternary */\nimport {\n Box,\n Typography,\n makeStyles,\n Button,\n MenuItem,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n IconButton,\n Menu,\n ListItemIcon,\n Divider,\n ClickAwayListener,\n Snackbar,\n} from '@material-ui/core';\nimport React, { useEffect, useRef, useState, forwardRef, useImperativeHandle } from 'react';\nimport html2canvas from 'html2canvas';\nimport { Bar, Line, Pie } from 'react-chartjs-2';\nimport { useDeepCompareMemo } from 'use-deep-compare';\nimport { Table } from 'antd';\nimport Papa from 'papaparse';\nimport { exportComponentAsPNG } from 'react-component-export-image';\nimport moment from 'moment';\nimport 'antd/dist/antd.css';\nimport GetApp from '@material-ui/icons/GetApp';\nimport { exportCSVFile } from '../../../utils/convertJsonCsv';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport { id } from 'date-fns/locale';\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport ContentCharts, { chartsItems } from './ContentCharts';\nimport ContentChartsButton from './ContentChartsButton';\nimport HTMLContent from '../../../components/HTMLContent';\nimport { containsHTML } from '../../../utils';\nimport useOrganization from '../../../hooks/useOrganization';\nimport useBuildingSchemaStatus from '../../../hooks/useBuildingSchemaStatus';\nimport {\n getDashboardsExplore,\n addDashboardReport,\n addReportInToDashboard,\n uploadReportImage,\n} from '../../../services/unarmed';\nimport CreateDashboard from '../CreateDashboard';\nimport ModalPopUp from '../../../components/ModaPopupl';\nimport SelectBox from '../../../components/SelectBox';\nimport Popper from '@material-ui/core/Popper';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n },\n buttonContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n padding: '10px 0',\n width: '100%',\n backgroundColor: '#fff',\n },\n tableContainer: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n backgroundColor: '#fff',\n },\n buttons: {\n marginRight: 20,\n },\n customButton: {\n borderColor: '#d1d5db',\n color: '#6b7280',\n backgroundColor: '#f9fafb',\n textTransform: 'none',\n fontWeight: 400,\n fontSize: '14px',\n padding: '6px 12px',\n borderRadius: '0px',\n marginRight: '15px',\n '&:hover': {\n borderColor: '#9ca3af',\n backgroundColor: '#f3f4f6',\n },\n },\n iconLeft: {\n marginRight: '8px',\n },\n\n smallText: {\n fontSize: '12px',\n color: 'gray',\n },\n\n smallTextDashboard: {\n fontSize: '12px',\n color: 'blue',\n },\n\n TextSearchMenu: {\n height: '40px',\n '& .MuiInputBase-root': {\n fontSize: '10px',\n },\n },\n customSelectWrapper: {\n marginRight: '15px',\n '& .MuiSelect-root': {\n minHeight: '40px',\n padding: '6px 12px',\n },\n },\n}));\n\nconst COLORS_SERIES = [\n '#5b8ff9',\n '#5ad8a6',\n '#5e7092',\n '#f6bd18',\n '#6f5efa',\n '#6ec8ec',\n '#945fb9',\n '#ff9845',\n '#299796',\n '#fe99c3',\n];\n\nconst COLORS_BG_SERIES = [\n 'rgba(91, 143, 249, 0.5)',\n 'rgba(90, 216, 166, 0.5)',\n 'rgba(94, 112, 146, 0.5)',\n 'rgba(246, 189, 24, 0.5)',\n 'rgba(111, 94, 250, 0.5)',\n 'rgba(110, 200, 236, 0.5)',\n 'rgba(148, 95, 185, 0.5)',\n 'rgba(255, 152, 69, 0.5)',\n 'rgba(41, 151, 150, 0.5)',\n 'rgba(254, 153, 195, 0.5)',\n];\n\nconst commonOptions = {\n responsive: true,\n maintainAspectRatio: false,\n interaction: {\n intersect: false,\n },\n plugins: {\n legend: {\n position: 'bottom',\n },\n datalabels: {\n display: false,\n color: '#000000',\n font: {\n weight: 600,\n size: 12,\n },\n formatter: (value) => value,\n },\n },\n scales: {\n x: {\n ticks: {\n padding: 12,\n },\n },\n y: {\n ticks: {\n precision: 0,\n },\n suggestedMax: (context) => {\n if (!context.chart.data.datasets || !context.chart.data.datasets[0]?.data) return null;\n const maxValue = Math.max(\n ...context.chart.data.datasets.map((dataset) => (dataset.data ? Math.max(...dataset.data) : 0))\n );\n return maxValue * 1.15;\n },\n },\n },\n layout: {\n padding: {\n top: 20,\n },\n },\n};\n\nconst AreaChartRenderer = ({ resultSet, chartLabelNumber }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n borderColor: COLORS_SERIES[index],\n backgroundColor: COLORS_BG_SERIES[index],\n pointRadius: 1,\n tension: 0.1,\n pointHoverRadius: 1,\n borderWidth: 2,\n fill: true,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n\n const areaOptions = {\n ...commonOptions,\n plugins: {\n ...commonOptions.plugins,\n datalabels: {\n ...commonOptions.plugins.datalabels,\n align: 'top',\n offset: -2,\n display: chartLabelNumber,\n },\n },\n };\n\n return (\n <div style={{ height: '400px', width: '100%' }}>\n <Line data={data} options={areaOptions} plugins={[ChartDataLabels]} />\n </div>\n );\n};\n\nconst LineChartRenderer = ({ resultSet, chartLabelNumber }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n borderColor: COLORS_SERIES[index],\n pointRadius: 1,\n tension: 0.1,\n pointHoverRadius: 1,\n borderWidth: 2,\n fill: false,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n\n const lineOptions = {\n ...commonOptions,\n plugins: {\n ...commonOptions.plugins,\n datalabels: {\n ...commonOptions.plugins.datalabels,\n align: 'top',\n offset: 0,\n display: chartLabelNumber,\n },\n },\n };\n\n return (\n <div style={{ height: '400px', width: '100%' }}>\n <Line data={data} options={lineOptions} plugins={[ChartDataLabels]} />\n </div>\n );\n};\n\nconst BarChartRenderer = ({ resultSet, pivotConfig, chartLabelNumber }) => {\n const datasets = useDeepCompareMemo(\n () =>\n resultSet.series().map((s, index) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n backgroundColor: COLORS_SERIES[index],\n fill: false,\n })),\n [resultSet]\n );\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets,\n };\n const options = {\n ...commonOptions,\n scales: {\n x: {\n ...commonOptions.scales.x,\n stacked: !(pivotConfig.x || []).includes('measures'),\n },\n },\n plugins: {\n ...commonOptions.plugins,\n datalabels: {\n ...commonOptions.plugins.datalabels,\n anchor: 'end',\n align: 'top',\n display: chartLabelNumber,\n },\n },\n };\n return <Bar type=\"bar\" data={data} options={options} plugins={[ChartDataLabels]} style={{ height: 'auto' }} />;\n};\n\nconst renderChart = ({ reports, resultSet, error, pivotConfig, chartType, chartLabelNumber }) => {\n if (error) {\n return <div>{error.toString()}</div>;\n }\n\n if (!resultSet) {\n return <div />;\n }\n\n if (chartType === 'Number') {\n return (\n <Box>\n {resultSet.seriesNames().map((s) => (\n <Typography variant=\"h4\">{resultSet.totalRow()[s.key]}</Typography>\n ))}\n </Box>\n );\n }\n\n if (chartType === 'Area') {\n return (\n <div style={{ height: '450px', width: '100%' }}>\n <AreaChartRenderer resultSet={resultSet} chartLabelNumber={chartLabelNumber} />\n </div>\n );\n }\n\n if (chartType === 'Table') {\n return (\n <Table\n style={{ minWidth: '100%' }}\n pagination={false}\n columns={\n reports?.columns.map((column) => ({\n ...column,\n render: (text) => (containsHTML(text) ? <HTMLContent content={text} /> : text),\n })) || []\n }\n dataSource={reports?.data || []}\n />\n );\n }\n\n if (chartType === 'Pie') {\n const data = {\n labels: resultSet.categories().map((c) => c.x),\n datasets: resultSet.series().map((s) => ({\n label: s.title,\n data: s.series.map((r) => r.value),\n backgroundColor: COLORS_SERIES,\n })),\n };\n\n const pieOptions = {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: 'bottom',\n align: 'center',\n labels: {\n padding: 40,\n usePointStyle: true,\n pointStyle: 'circle',\n boxWidth: 10,\n boxHeight: 10,\n font: {\n size: 12,\n },\n },\n },\n datalabels: {\n anchor: 'end',\n align: 'end',\n offset: 5,\n clip: false,\n display: function (context) {\n const sum = context.dataset.data.reduce((a, b) => a + b, 0);\n const percentage = (context.dataset.data[context.dataIndex] * 100) / sum;\n const totalDataPoints = context.dataset.data.length;\n return chartLabelNumber && (totalDataPoints >= 15 ? percentage > 2 : true);\n },\n color: '#000000',\n font: {\n weight: 600,\n size: 12,\n },\n formatter: (value) => value,\n },\n },\n layout: {\n padding: 40,\n },\n };\n\n return (\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n height: '500px',\n margin: '0 auto',\n overflow: 'hidden',\n marginTop: '10px',\n }}\n >\n <div\n style={{\n width: '100%',\n maxWidth: '600px',\n height: '100%',\n position: 'relative',\n }}\n >\n <Pie data={data} options={pieOptions} plugins={[ChartDataLabels]} />\n </div>\n </div>\n );\n }\n\n if (chartType === 'Bar') {\n return (\n <BarChartRenderer\n resultSet={resultSet}\n pivotConfig={pivotConfig}\n chartLabelNumber={chartLabelNumber}\n style={{ height: '80%' }}\n />\n );\n }\n\n if (chartType === 'Line') {\n return <LineChartRenderer resultSet={resultSet} chartLabelNumber={chartLabelNumber} />;\n }\n};\n\nconst ChartRenderer = ({ reports, dimensions, chartType, resultSet, timeDimensions, chartLabelNumber }) =>\n renderChart({\n reports,\n chartType,\n resultSet,\n pivotConfig: {\n x: [\n ...(dimensions || []),\n ...(timeDimensions?.[0] ? [`${timeDimensions?.[0]?.dimension}.${timeDimensions?.[0]?.granularity}`] : []),\n ],\n y: ['measures'],\n fillMissingDates: true,\n joinDateRange: false,\n },\n chartLabelNumber,\n });\n\nconst ExploreContent = forwardRef(function ExploreContent(\n { reports, resultSet, report, cubeQuery, timeDimensions, reportId, reportName, reportImageUrl, chartLabelNumber },\n ref\n) {\n const [snackbarMessage, setSnackbarMessage] = useState('');\n const [snackbarOpen, setSnackbarOpen] = useState(false);\n const [selectedChart, setSelected] = useState(chartsItems[4]);\n const [showPopUp, setShowPopUp] = useState(false);\n const [openDashboardModal, setOpenDashboardModal] = useState(false);\n const [openDownloadMenu, setOpenDownloadMenu] = useState(false);\n const refChart = useRef(null);\n const { organization } = useOrganization();\n const [cubesBuilded] = useBuildingSchemaStatus(organization);\n const [anchorEl, setAnchorEl] = useState(null);\n const [loading, setLoading] = useState(true);\n\n const chartOptions = ['Line', 'Area', 'Bar', 'Pie', 'Table'];\n const [embedCode, setEmbedCode] = useState('');\n const [openEmbed, setOpenEmbed] = useState(false);\n const classes = useStyles();\n const anchorRef = useRef(null);\n const [anchorPosition, setAnchorPosition] = useState({ top: 0, left: 0 });\n const [reportImageUrlC, setReportImageUrlC] = useState(reportImageUrl || '');\n\n const [dashboardsMenu, setDashboardsMenu] = useState([]);\n const [searchTerm, setSearchTerm] = useState('');\n const [filteredDashboards, setFilteredDashboards] = useState([]);\n const downloadOptions = [\n { title: 'PNG', value: 'png' },\n { title: 'CSV', value: 'csv' },\n ];\n\n useEffect(() => {\n if (reportImageUrl) {\n setReportImageUrlC(reportImageUrl);\n }\n }, [reportImageUrl]);\n\n useEffect(() => {\n if (report && report.chartType) {\n const foundChart = chartsItems.find((item) => item.text === report.chartType);\n if (foundChart && (!selectedChart || selectedChart.text !== foundChart.text)) {\n setSelected(foundChart);\n }\n }\n }, [report]);\n\n const handleClickDashboard = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleSnackbarClose = () => {\n setSnackbarOpen(false);\n };\n\n const handleDashboardMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleToggle = () => {\n setOpenDownloadMenu((prev) => !prev);\n };\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return;\n }\n setOpenDownloadMenu(false);\n };\n\n useEffect(() => {\n const fetchDashboards = async () => {\n setLoading(true);\n try {\n const response = await getDashboardsExplore();\n const { data } = response;\n setDashboardsMenu(Array.isArray(data.dashboards) ? data.dashboards : []);\n } catch (error) {\n console.error('Error fetching dashboards:', error);\n } finally {\n setLoading(false);\n }\n };\n fetchDashboards();\n }, []);\n\n useEffect(() => {\n if (Array.isArray(dashboardsMenu)) {\n setFilteredDashboards(\n dashboardsMenu.filter((dashboard) => dashboard.name.toLowerCase().includes(searchTerm.toLowerCase()))\n );\n } else {\n setFilteredDashboards([]);\n }\n }, [searchTerm, dashboardsMenu]);\n\n const handleChartSelection = () => {\n setSelected(selectedChart === 'Table' ? 'Chart' : 'Table');\n };\n\n const handleMenuOpen = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n useImperativeHandle(ref, () => ({\n async handleImageUpload(name) {\n let file = null;\n try {\n const canvas = await html2canvas(refChart.current);\n if (!canvas) {\n console.error('Error: canvas is undefined');\n return;\n }\n\n file = await new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n const fileName = `${name}-${moment().format()}.png`;\n const file = new File([blob], fileName, { type: 'image/png' });\n resolve(file);\n } else {\n reject(new Error('Canvas to Blob conversion failed.'));\n }\n });\n });\n } catch (err) {\n console.error('Error exporting component as PNG:', err);\n return;\n }\n\n if (!file) {\n console.error('No file was generated');\n return;\n }\n\n const formData = new FormData();\n formData.append('file', file);\n\n try {\n const uploadedImageUrl = await uploadReportImage(formData, report.id);\n console.log('Uploaded image URL:', uploadedImageUrl);\n setReportImageUrlC(uploadedImageUrl);\n return uploadedImageUrl;\n } catch (error) {\n console.error('Error uploading image:', error);\n }\n },\n getChartType: () => selectedChart.text,\n }));\n\n const handleDashboardCreate = async (newDashboard) => {\n try {\n const dashboardId = newDashboard._id;\n const response = await addDashboardReport({\n dashboardId,\n report,\n });\n\n if (response.status === 200) {\n setSnackbarMessage('Dashboard and report created successfully!');\n\n await ref.current.handleImageUpload(reportName);\n } else {\n setSnackbarMessage('Failed to add report to the dashboard');\n }\n\n setSnackbarOpen(true);\n setOpenDashboardModal(false);\n } catch (error) {\n console.error('Error creating dashboard report:', error);\n setSnackbarMessage('Error creating dashboard report.');\n setSnackbarOpen(true);\n }\n };\n\n const handleDasboardReportCreate = (dashboard, report) => {\n console.log('need to create dashboard report here');\n };\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleEmbedOpen = () => {\n const generatedEmbedCode = `\n <img src=${reportImageUrlC}\n style=\"max-width: 40%; height: auto;\"\n alt=\"${reportName}\"/>\n `;\n setEmbedCode(generatedEmbedCode);\n setOpenEmbed(true);\n };\n\n const handleEmbedClose = () => {\n setOpenEmbed(false);\n };\n\n const handleCopy = () => {\n navigator.clipboard.writeText(embedCode);\n };\n\n const onSelectOption = (type, name) => {\n if (type === 'png') {\n exportComponentAsPNG(refChart, { fileName: `${name}-${moment().format()}.png` });\n } else if (type === 'csv') {\n const exportData = reports?.data.map((data) => {\n const body = {};\n reports.columns.forEach((c) => {\n const title = c.title?.trim();\n body[title] = data[c.key];\n });\n return body;\n });\n const csv = Papa.unparse(exportData);\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n link.href = URL.createObjectURL(blob);\n link.download = `${name || 'report'}.csv`;\n link.click();\n }\n };\n\n useEffect(() => {\n if (organization && organization.buildingSchemaEndDate) {\n setShowPopUp(true);\n }\n }, [organization]);\n\n const handleAddReportToDashboard = async (dashboard) => {\n try {\n if (!reportId) {\n setSnackbarMessage('Select the report that you want to add please.');\n setSnackbarOpen(true);\n handleDashboardMenuClose();\n return;\n }\n const response = await addReportInToDashboard({\n dashboardId: dashboard._id,\n reportId,\n });\n if (response.status === 200) {\n setSnackbarMessage('Tab saved successfully.');\n await ref.current.handleImageUpload(reportName);\n setSnackbarOpen(true);\n handleDashboardMenuClose();\n }\n } catch (error) {\n setSnackbarMessage(\n error?.request?.response?.message || 'We got a problem adding a report into the dashboard selected'\n );\n setSnackbarOpen(true);\n handleDashboardMenuClose();\n }\n };\n\n if (!organization) return null;\n\n return (\n <Box\n marginTop=\"10px\"\n width=\"100%\"\n height=\"calc(80vh - 64px)\"\n style={{ overflowY: 'auto', overflowX: 'auto', position: 'relative' }}\n >\n <ModalPopUp open={openDashboardModal} setOpen={setOpenDashboardModal} disableBackdropClick disableEscapeKeyDown>\n <CreateDashboard setDashboards={handleDashboardCreate} setOpen={setOpenDashboardModal} />\n </ModalPopUp>\n <Dialog open={openEmbed} onClose={handleEmbedClose} fullWidth maxWidth=\"sm\">\n <DialogTitle>Embed Report</DialogTitle>\n <DialogContent>\n <p>Copy the code below to embed this report on your website:</p>\n <TextField\n multiline\n fullWidth\n rows={6}\n value={embedCode}\n variant=\"outlined\"\n InputProps={{\n endAdornment: (\n <IconButton onClick={handleCopy}>\n <FileCopyIcon />\n </IconButton>\n ),\n }}\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={handleEmbedClose} color=\"primary\">\n Done\n </Button>\n </DialogActions>\n </Dialog>\n\n <ContentCharts selectedChart={selectedChart} setSelected={setSelected}>\n <Box className={classes.tableContainer}>\n <Box className={classes.buttonContainer}>\n <Box>\n {/* Botón del selector de gráficos */}\n <ContentChartsButton selectedChart={selectedChart} setSelected={setSelected} />\n </Box>\n\n <>\n <Menu\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleDashboardMenuClose}\n disableAutoFocus\n disableEnforceFocus\n sx={{\n width: 150,\n '& .MuiPaper-root': {\n backgroundColor: '#f4f4f4',\n },\n }}\n >\n <MenuItem disableRipple sx={{ padding: 0 }}>\n <TextField\n variant=\"outlined\"\n placeholder=\"Search Dashboards\"\n fullWidth\n size=\"small\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className={classes.TextSearchMenu}\n />\n </MenuItem>\n\n <Divider />\n\n <div style={{ maxHeight: '150px', overflowY: 'auto' }}>\n {loading ? (\n <MenuItem disabled>Loading dashboards...</MenuItem>\n ) : filteredDashboards.length > 0 ? (\n filteredDashboards.map((dashboard) => (\n <MenuItem onClick={async () => handleAddReportToDashboard(dashboard)} key={dashboard._id}>\n <ListItemIcon sx={{ minWidth: '30px' }}>\n <DashboardIcon fontSize=\"small\" />\n </ListItemIcon>\n <Typography variant=\"inherit\" className={classes.smallText}>\n {dashboard.name}\n </Typography>\n </MenuItem>\n ))\n ) : (\n <MenuItem disabled>No dashboards available</MenuItem>\n )}\n </div>\n\n <Divider />\n\n <MenuItem\n onClick={() => {\n setOpenDashboardModal(true);\n }}\n sx={{ fontSize: '10px', padding: '6px 8px' }}\n >\n <ListItemIcon sx={{ minWidth: '30px', color: 'blue' }}>\n <AddCircleOutlineIcon fontSize=\"small\" />\n </ListItemIcon>\n <Typography variant=\"inherit\" className={classes.smallTextDashboard}>\n Add to New Dashboard\n </Typography>\n </MenuItem>\n </Menu>\n\n <Button\n className={classes.customButton}\n variant=\"outlined\"\n endIcon={<AddCircleOutlineIcon className={classes.iconLeft} />}\n onClick={handleMenuOpen}\n sx={{ marginTop: 2 }}\n >\n Add to Dashboard\n </Button>\n </>\n\n {reportImageUrlC && (\n <Button className={classes.customButton} variant=\"outlined\" onClick={handleEmbedOpen}>\n {'Embed < >'}\n </Button>\n )}\n\n <Button\n ref={anchorRef}\n className={classes.customButton}\n variant=\"outlined\"\n endIcon={<GetApp />}\n onClick={handleToggle}\n >\n Download\n </Button>\n\n <ClickAwayListener onClickAway={handleClose}>\n <Popper open={openDownloadMenu} anchorEl={anchorRef.current} placement=\"bottom-start\" transition>\n {({ TransitionProps }) => (\n <Box\n {...TransitionProps}\n style={{\n zIndex: 1000,\n backgroundColor: 'white',\n border: '1px solid #ccc',\n padding: '8px',\n }}\n >\n {downloadOptions.map((option, index) => (\n <MenuItem\n key={index}\n onClick={() => {\n onSelectOption(option.value, report?.name);\n setOpenDownloadMenu(false);\n }}\n >\n {option.title}\n </MenuItem>\n ))}\n </Box>\n )}\n </Popper>\n </ClickAwayListener>\n </Box>\n </Box>\n\n <div ref={refChart} style={{ height: '80%' }}>\n {resultSet && (\n <ChartRenderer\n reports={reports}\n chartType={selectedChart.text}\n resultSet={resultSet}\n dimensions={cubeQuery?.dimensions}\n timeDimensions={timeDimensions}\n chartLabelNumber={chartLabelNumber}\n />\n )}\n </div>\n </ContentCharts>\n\n <Snackbar open={snackbarOpen} autoHideDuration={3000} onClose={handleSnackbarClose} message={snackbarMessage} />\n </Box>\n );\n});\n\nexport default ExploreContent;\n","/* eslint-disable no-shadow */\n/* eslint-disable no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable no-use-before-define */\n/* eslint-disable no-nested-ternary */\nimport {\n Box,\n Typography,\n Button,\n Divider,\n Switch,\n RadioGroup,\n FormControlLabel,\n Radio,\n Popover,\n TextField,\n Select,\n MenuItem,\n IconButton,\n Checkbox,\n ListItemText,\n CircularProgress,\n} from '@material-ui/core';\nimport React, { useState, useEffect, useRef, useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport { ResultSet } from '@cubejs-client/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\nimport { toast } from '../../../components/Notification';\nimport moment from 'moment';\nimport PublicIcon from '@material-ui/icons/Public';\nimport CreateIcon from '@material-ui/icons/Create';\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport { Cancel, ClearAll } from '@material-ui/icons';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport InfoIcon from '@material-ui/icons/Info';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport FixedTags from '../../../components/FixedTags';\nimport ReportItem from '../../../components/ReportItem';\nimport DropdownSelectableItem from '../../../components/DropdownItem';\nimport ReportFilterItem, { searchFilterItem } from '../../../components/ReportFilterItem';\nimport DashButton from '../../../components/DashButton';\nimport ExploreContent from './ExploreContent';\nimport { formatCubeJsTableColumns } from '../../../utils';\nimport { saveCube } from '../../../services/cube';\nimport { OutLineInput } from '../../CaseDetails/UpdateCase';\nimport { createReport, deleteReportbyId, scheduleAdHocReports } from '../../../services/unarmed';\nimport DatePickerMUI from '../../../components/DatePickerMUi';\nimport SelectBox from '../../../components/SelectBox';\nimport { Context } from '../../../Context';\n\nexport const dataRangeOptions = [\n 'Custom',\n 'All time',\n 'Today',\n 'Yesterday',\n 'This week',\n 'This month',\n 'This quarter',\n 'This year',\n 'Last 7 days',\n 'Last 30 days',\n 'Last week',\n 'Last month',\n 'Last quarter',\n 'Last year',\n];\n\nexport const dayOption = ['w/o grouping', 'hour', 'day', 'week', 'month', 'year'];\n\nconst generalOperators = [\n { label: 'equals', value: 'equals' },\n { label: 'is not set', value: 'notSet' },\n { label: 'is set', value: 'set' },\n { label: 'does not equal', value: 'notEquals' },\n];\n\nexport const operators = {\n number: [\n ...generalOperators,\n { label: '<', value: 'lt' },\n { label: '<=', value: 'lte' },\n { label: '>=', value: 'gte' },\n { label: '>', value: 'gt' },\n ],\n string: [\n { label: 'does not contain', value: 'notContains' },\n { label: 'contains', value: 'contains' },\n ...generalOperators,\n ],\n boolean: [...generalOperators],\n time: [\n { label: 'does not contain', value: 'notContains' },\n { label: 'contains', value: 'contains' },\n { label: 'In date range', value: 'inDateRange' },\n { label: 'Not in date range', value: 'notInDateRange' },\n { label: 'Before date', value: 'beforeDate' },\n { label: 'After date', value: 'afterDate' },\n ...generalOperators,\n ],\n};\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n maxWidth: '100%',\n },\n sectionTitle: {\n fontSize: 16,\n fontWeight: '500',\n },\n selectLabel: {\n fontSize: '12px',\n fontWeight: '500',\n color: '#5f6368',\n },\n buttonContainer: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: theme.spacing(2),\n },\n selectStyle: {\n width: '100%',\n fontSize: '14px',\n fontWeight: '500',\n color: '#3c4043',\n },\n labelText: {\n fontSize: '12px',\n color: '#5A5A5A',\n },\n timePicker: {\n fontSize: '12px',\n fontWeight: '500',\n color: '#3c4043',\n marginTop: theme.spacing(2),\n },\n cancelButton: {\n color: '#000000',\n fontSize: '12px',\n cursor: 'pointer',\n textTransform: 'none',\n },\n saveButton: {\n color: '#007bff',\n fontSize: '12px',\n cursor: 'pointer',\n textTransform: 'none',\n },\n popoverContent: {\n padding: theme.spacing(2),\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n fontSize: '14px',\n },\n radioButton: {\n color: '#2A55FF',\n '&.Mui-checked': {\n color: '#2A55FF',\n },\n },\n buttonText: {\n fontSize: '14px',\n fontWeight: '500',\n color: '#1a73e8',\n },\n customRoot: {\n width: '250px',\n backgroundColor: '#f0f0f0',\n padding: '15px 16px',\n },\n prueba: {\n height: '250px',\n },\n}));\n\nconst getFilters = (filters) =>\n filters\n .filter((filter) => filter.member && filter.operator && filter.values && filter.values.length > 0)\n .map((filter) => ({\n member: filter.member?.name || filter.member,\n operator: filter.operator?.value || filter.operator,\n values: Array.isArray(filter.values) ? filter.values : [filter.values],\n }));\n\nexport const searchFilterOperator = (operator, type) => {\n if (!type || !operator) return null;\n const operatorsByType = operators[type];\n const finedOperator = operatorsByType.find((opt) => opt.value === operator);\n return finedOperator;\n};\n\nexport default function ExplorePanel({\n setDimensions,\n report,\n reportId,\n measures,\n dimensions,\n setMeasures,\n dimensionsTime,\n setDimensionsTime,\n daterange,\n setDaterange,\n granularity,\n setGranularity,\n from,\n setFrom,\n to,\n setTo,\n cubes,\n filters,\n setFilters,\n onResetFilter,\n onGetCube,\n onGetCubes,\n id,\n orgSubdomainDashboard,\n onClearReport,\n handleRefetch,\n addFilter,\n}) {\n const { authUser } = useContext(Context);\n const classes = useStyles();\n const [isExpandedAll, setIsExpandedAll] = useState(false);\n const [isExpandedAdvancedFeatures, setIsExpandedAdvancedFeatures] = useState(false);\n const [isExpandedDropdown, setIsExpandedDropdown] = useState(false);\n const [cubeQuery, setCubeQuery] = useState({\n measures: [],\n timeDimensions: [],\n order: [],\n dimensions: [],\n filters: [],\n limit: 2500,\n });\n const [chartLabelNumber, setChartLabelNumber] = useState(report?.chartLabelNumber ?? false);\n const [optionsmeausures, setOptionsmeausures] = useState([]);\n const [optionsDimension, setOptionsDimension] = useState([]);\n const [reportName, setReportName] = useState({ value: 'Unnamed Report' });\n const [reportDescription, setReportDescription] = useState({ value: 'No description provided' });\n const [isEdit, setIsEdit] = useState(false);\n const [isEditName, setIsEditName] = useState(false);\n const [isEditDescription, setIsEditDescription] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n const [loading, setLoading] = useState(false);\n const [publishLoading, setPublishLoading] = useState(false);\n const [runReportLoading, setRunReportLoading] = useState(false);\n const [saveLoading, setSaveLoading] = useState(false);\n const [reports, setReports] = useState({\n data: [],\n columns: [],\n resultSet: null,\n });\n const [anchorEl, setAnchorEl] = useState(null);\n const open = Boolean(anchorEl);\n const id1 = open ? 'simple-popover' : undefined;\n const userEmailConfig = report?.emailConfiguration?.find((config) => config.email === authUser?.email);\n const [enableNotifications, setEnableNotifications] = useState(false);\n const [time, setTime] = useState('00:00');\n const [frequency, setFrequency] = useState('daily');\n const [selectedDay, setSelectedDay] = useState([]);\n const [selectedDate, setSelectedDate] = useState([]);\n const [showTable, setShowTable] = useState(false);\n\n const [dimensionsv2, setDimensionsv2] = useState([]);\n const [Measurev2, setMeasurev2] = useState([]);\n const [checked, setChecked] = useState(true);\n\n const [currentReportId, setCurrentReportId] = useState(id || '');\n const [isSaveClicked, setIsSaveClicked] = useState(false);\n const timeoutDuration = 50000;\n const editBoxRef = useRef(null);\n const [showFilterBox, setShowFilterBox] = useState(false);\n const [showAll, setShowAll] = useState(false);\n\n useEffect(() => {\n if (userEmailConfig?.sendEmail !== undefined) {\n setEnableNotifications(userEmailConfig.sendEmail);\n }\n }, [userEmailConfig]);\n\n const cancelFilter = () => {\n setShowFilterBox(false);\n };\n\n useEffect(() => {\n if (report && report.chartLabelNumber !== undefined) {\n setChartLabelNumber(report.chartLabelNumber);\n }\n }, [report]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (editBoxRef.current && !editBoxRef.current.contains(event.target)) {\n setIsEdit(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [editBoxRef]);\n\n const exploreContentRef = useRef();\n\n const handleImageUpload = async () => {\n if (exploreContentRef.current) {\n try {\n const imageUrl = await exploreContentRef.current.handleImageUpload(reportName);\n } catch (error) {\n console.error('Error while uploading image:', error);\n }\n } else {\n console.error('ExploreContent ref is not available');\n }\n };\n\n const EditableReport = () => {\n const handleKeyDown = (event, setEditingState) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n setEditingState(false);\n }\n };\n\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <Box display=\"flex\" alignItems=\"center\">\n {isEditName ? (\n <Box width={250}>\n <TextField\n autoFocus\n placeholder=\"Report Name\"\n value={reportName.value || ''}\n onChange={(e) => setReportName({ value: e.target.value })}\n onBlur={() => setIsEditName(false)}\n onKeyDown={(e) => handleKeyDown(e, setIsEditName)}\n fullWidth\n variant=\"outlined\"\n />\n </Box>\n ) : (\n <Typography\n style={{ fontSize: 15, fontWeight: '500', cursor: 'pointer' }}\n onClick={() => setIsEditName(true)}\n >\n {reportName.value || 'Unnamed Report'}\n </Typography>\n )}\n </Box>\n\n <Box display=\"flex\" alignItems=\"center\" width=\"100%\">\n {isEditDescription ? (\n <Box width={500}>\n <TextField\n autoFocus\n placeholder=\"Report Description\"\n value={reportDescription.value || ''}\n onChange={(e) => setReportDescription({ value: e.target.value })}\n onBlur={() => setIsEditDescription(false)}\n onKeyDown={(e) => handleKeyDown(e, setIsEditDescription)}\n fullWidth\n variant=\"outlined\"\n />\n </Box>\n ) : (\n <Box display=\"flex\" alignItems=\"center\" width=\"100%\">\n <Typography\n style={{\n fontSize: 13,\n maxWidth: '50ch',\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n }}\n >\n {reportDescription.value || 'No description provided'}\n </Typography>\n\n <CreateIcon\n style={{ marginLeft: 8, cursor: 'pointer', fontSize: 13 }}\n htmlColor=\"#6D7385\"\n onClick={() => setIsEditDescription(true)}\n />\n </Box>\n )}\n </Box>\n </Box>\n );\n };\n\n useEffect(() => {\n if (Array.isArray(cubes) && cubes.length > 0) {\n setDimensionsv2([]);\n const loadedDimensions = cubes.flatMap((cubo) =>\n cubo.dimensions.map((dimension) => {\n const [category, field] = dimension.name.split('.');\n const [realCategory, _] = dimension.title.split(' - ');\n const concatenatedField = `${category || ''}.${field}`;\n\n const isSelected =\n report?.query?.dimensions?.some((savedDimension) => {\n const [savedCategory, savedField] = savedDimension.split('.');\n if (!savedCategory) {\n return savedField === field;\n }\n return savedDimension === dimension.name;\n }) || false;\n\n return {\n category,\n field,\n label: `${category}.${field}`,\n name: dimension.name,\n title: dimension.title || `${realCategory} - ${field}`,\n type: dimension.type,\n shortTitle: dimension.shortTitle,\n selected: isSelected,\n };\n })\n );\n\n setDimensionsv2((prevDimensions) => {\n const newDimensions = JSON.stringify(loadedDimensions);\n const prevDimensionsString = JSON.stringify(prevDimensions);\n\n if (prevDimensionsString !== newDimensions) {\n return loadedDimensions;\n }\n return prevDimensions;\n });\n\n setDimensionsv2((prevDimensions) => {\n const newDimensions = JSON.stringify(loadedDimensions);\n const prevDimensionsString = JSON.stringify(prevDimensions);\n\n if (prevDimensionsString !== newDimensions) {\n return loadedDimensions;\n }\n return prevDimensions;\n });\n\n const loadedMeasures = cubes.flatMap((cubo) =>\n cubo.measures.map((measure) => {\n const [category] = measure.title.split(' - ');\n const field = measure.name;\n const isSelected = report?.query?.measures?.includes(measure.name) || false;\n return { category, field, selected: isSelected, label: `${field}`, title: measure.title };\n })\n );\n\n setMeasurev2((prevMeasures) => {\n const newMeasures = JSON.stringify(loadedMeasures);\n const prevMeasuresString = JSON.stringify(prevMeasures);\n\n if (prevMeasuresString !== newMeasures) {\n return loadedMeasures;\n }\n return prevMeasures;\n });\n\n setShowTable(false);\n }\n }, [cubes, report, refreshKey]);\n\n useEffect(() => {\n if (report) {\n const userEmailConfig = report?.emailConfiguration?.find((config) => config?.email === authUser?.email);\n\n setReportName({ value: report?.name });\n setReportDescription({ value: report?.description });\n setTime(userEmailConfig?.specificTime || '00:00');\n setFrequency(userEmailConfig?.frequency ? userEmailConfig.frequency.toLowerCase() : 'daily');\n setSelectedDate(userEmailConfig?.daysOfMonth);\n setSelectedDay(userEmailConfig?.daysOfWeek);\n }\n if (cubes.length && report) {\n const query = report?.query;\n\n if (!query) {\n return;\n }\n\n const QueryDimensions = query?.dimensions;\n const Querymeasures = query?.measures;\n const QueryTimeDimensions = query?.timeDimensions?.[0];\n\n const getFetchQuery = (arrQuery, key) => {\n const dd = arrQuery?.map((qd) => {\n const splited = qd.split('.')[0];\n\n const colected = [];\n cubes.forEach((cb) => {\n if (cb.name === splited) {\n cb[key].forEach((itemSh) => {\n if (itemSh.name === qd) {\n colected.push(itemSh);\n }\n });\n }\n });\n\n return colected.length > 0 ? colected[0] : null;\n });\n\n return dd;\n };\n\n const getFetchTimeQuery = () => {\n const splited = QueryTimeDimensions?.dimension?.split('.')[0];\n\n const colected = [];\n cubes.forEach((cb) => {\n if (cb.name === splited) {\n cb.dimensions.forEach((itemSh) => {\n if (itemSh.name === QueryTimeDimensions?.dimension) {\n colected.push(itemSh);\n }\n });\n }\n });\n\n return colected.length > 0 ? colected[0] : null;\n };\n\n const dimensionsFetched = getFetchQuery(QueryDimensions, 'dimensions');\n const measuresFetched = getFetchQuery(Querymeasures, 'measures');\n const timeDimensionFetched = getFetchTimeQuery();\n\n const filtersFetched = query?.filters?.map((filter) => {\n const member = searchFilterItem(filter?.member, cubes);\n const operator = searchFilterOperator(filter?.operator, member?.type);\n\n return {\n member,\n operator,\n values: filter?.values?.length > 1 ? filter?.values : filter?.values?.[0] || null,\n };\n });\n\n let dimensionsItems = [];\n let measuresItems = [];\n let timeDimensionsItems = null;\n\n if (dimensionsFetched?.length) {\n const dimensionsFetchedMapped = dimensionsFetched.map((dimension, index) => ({\n label: 'Add dimension',\n id: `dimension${index + 1}`,\n order: index + 1,\n value: dimension,\n }));\n dimensionsItems = dimensionsFetchedMapped.filter((dimension) => dimension.value);\n setDimensions(dimensionsFetchedMapped);\n }\n\n if (filtersFetched?.length) {\n setFilters(filtersFetched);\n }\n if (measuresFetched?.length) {\n const measuresFetchedMapped = measuresFetched.map((measure, index) => ({\n label: 'Add measure',\n value: measure,\n id: `measure${index + 1}`,\n order: index + 1,\n }));\n measuresItems = measuresFetchedMapped.filter((measure) => measure.value);\n setMeasures(measuresFetchedMapped);\n }\n\n if (timeDimensionFetched) {\n const dimensionTimeObj = {\n ...dimensionsTime,\n value: timeDimensionFetched,\n };\n\n setDimensionsTime(dimensionTimeObj);\n timeDimensionsItems = dimensionTimeObj.value;\n setGranularity(QueryTimeDimensions?.granularity);\n if (typeof QueryTimeDimensions?.dateRange === 'string') {\n setDaterange(QueryTimeDimensions?.dateRange);\n } else {\n setFrom(QueryTimeDimensions?.dateRange?.[0]);\n setTo(QueryTimeDimensions?.dateRange?.[1]);\n }\n }\n\n setReports({\n data: report?.resultSet ? ResultSet.deserialize(report?.resultSet)?.tablePivot() : null,\n columns: report?.resultSet\n ? ResultSet.deserialize(report?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n }))\n : null,\n\n resultSet: report?.resultSet ? ResultSet.deserialize(report?.resultSet) : null,\n });\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(QueryTimeDimensions?.granularity === 'w/o grouping'\n ? {}\n : { granularity: QueryTimeDimensions?.granularity?.toLowerCase() }),\n ...(QueryTimeDimensions?.dateRange === 'All time'\n ? {}\n : QueryTimeDimensions?.dateRange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: QueryTimeDimensions?.dateRange,\n }),\n });\n }\n\n if (currentDimensions.length > 0 || currentMeasures.length > 0 || timeDimensionsItems) {\n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filtersFetched),\n });\n }\n }\n }, [cubes, report]);\n\n const deleteReportIfNotSaved = async (reportId) => {\n if (!isSaveClicked && reportId) {\n try {\n await deleteReportbyId(reportId);\n toast.error('The report was deleted because it was not saved.');\n } catch (error) {\n console.error('Error deleting the report:', error);\n }\n }\n };\n\n useEffect(() => {\n let deleteTimeout;\n if (!isSaveClicked && currentReportId) {\n deleteTimeout = setTimeout(() => {\n deleteReportIfNotSaved(currentReportId);\n }, timeoutDuration);\n }\n\n return () => {\n if (deleteTimeout) {\n clearTimeout(deleteTimeout);\n }\n };\n }, [isSaveClicked, currentReportId]);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleFrequencyChange = (event) => {\n setFrequency(event.target.value);\n };\n\n const handleChange = (event) => {\n setChecked(event.target.checked);\n };\n\n const handlePublish = async () => {\n try {\n setPublishLoading(true);\n const currentReportIdSave = reportId || currentReportId;\n if (!currentReportIdSave) {\n toast.error('Report ID not found');\n return;\n }\n const newPublishedStatus = !report.published;\n const payload = {\n query: { ...cubeQuery, ...prepareReport() },\n published: newPublishedStatus,\n chartLabelNumber,\n chartType,\n ...(reportName?.value ? { name: reportName.value } : {}),\n ...(reportDescription?.value ? { description: reportDescription.value } : {}),\n };\n await saveCube(currentReportIdSave, payload);\n if (report) {\n report.published = newPublishedStatus;\n }\n toast.success(newPublishedStatus ? 'Report successfully published' : 'Report successfully unpublished');\n if (typeof handleRefetch === 'function') {\n handleRefetch();\n }\n } catch (error) {\n toast.error('Error updating the publication status');\n console.error(error);\n } finally {\n setPublishLoading(false);\n }\n };\n\n const currentReportIdsave = id || '';\n\n const handleEmailScheduleSave = async () => {\n if (frequency == 'daily') {\n setSelectedDate([]);\n setSelectedDay([]);\n } else if (frequency == 'weekly') {\n setSelectedDate([]);\n } else if (frequency == 'monthly') {\n setSelectedDay([]);\n }\n\n const emailConfiguration = {\n email: authUser?.email,\n sendEmail: enableNotifications,\n frequency: frequency.toUpperCase() || '',\n specificTime: time || '',\n daysOfWeek: selectedDay || [],\n daysOfMonth: selectedDate || [],\n };\n\n try {\n const response = await scheduleAdHocReports(reportId, emailConfiguration);\n\n if (response.status === 200) {\n toast.success('Schedule set!');\n handleClose();\n }\n } catch (error) {\n toast.error('Failed to set email schedule.');\n handleClose();\n console.error('Failed to save settings:', error);\n }\n };\n\n const handleEmailScheduleOnOffToggle = async (isEnabled) => {\n if (frequency == 'daily') {\n setSelectedDate([]);\n setSelectedDay([]);\n } else if (frequency == 'weekly') {\n setSelectedDate([]);\n } else if (frequency == 'monthly') {\n setSelectedDay([]);\n }\n\n const emailConfiguration = {\n email: authUser?.email,\n sendEmail: isEnabled,\n frequency: frequency.toUpperCase() || '',\n specificTime: time || '',\n daysOfWeek: selectedDay || [],\n daysOfMonth: selectedDate || [],\n };\n\n try {\n const response = await scheduleAdHocReports(reportId, emailConfiguration);\n } catch (error) {\n toast.error('Failed to set email schedule.');\n handleClose();\n console.error('Failed to save settings:', error);\n }\n };\n\n const chartType = exploreContentRef.current?.getChartType();\n\n const handleSave = async () => {\n try {\n setIsSaveClicked(true);\n setSaveLoading(true);\n\n const currentChartType = exploreContentRef.current?.getChartType();\n\n let currentReportIdsave = id || '';\n\n if (reportId && reportId.trim() !== '') {\n currentReportIdsave = reportId;\n } else {\n currentReportIdsave = currentReportId;\n }\n\n if (!currentReportIdsave) {\n const newReportData = {\n name: reportName?.value || 'Unnamed report',\n description: reportDescription?.value || 'No description provided',\n type: 'GLOBAL',\n };\n\n const { data } = await createReport(newReportData);\n currentReportIdsave = data.id;\n\n await saveCube(currentReportIdsave, {\n query: { ...cubeQuery, ...prepareReport() },\n chartLabelNumber,\n chartType: currentChartType,\n ...(reportName?.value ? { name: reportName.value } : {}),\n ...(reportDescription?.value ? { description: reportDescription.value } : {}),\n });\n\n handleImageUpload();\n\n toast.success('Report Created Successfully');\n } else {\n if (!currentReportIdsave) {\n throw new Error('Report ID is undefined or null.');\n }\n\n await saveCube(currentReportIdsave, {\n query: { ...cubeQuery, ...prepareReport() },\n chartLabelNumber,\n chartType: currentChartType,\n ...(reportName?.value ? { name: reportName.value } : {}),\n ...(reportDescription?.value ? { description: reportDescription.value } : {}),\n });\n\n handleImageUpload();\n toast.success('Report Updated Successfully');\n setIsEdit(false);\n\n if (typeof handleRefetch === 'function') {\n handleRefetch();\n } else {\n console.warn('handleRefetch is not defined or not a function');\n }\n }\n } catch (error) {\n console.error('Detailed error:', error);\n console.error('Error response data:', error.response?.data);\n\n const errorMessage = error.response?.data?.message || error.message || 'An unknown error occurred';\n toast.error(errorMessage);\n } finally {\n setSaveLoading(false);\n }\n };\n\n const toggleShowAll = () => {\n setIsExpandedAll(!isExpandedAll);\n setShowAll((prevShowAll) => !prevShowAll);\n };\n\n const toggleDropDown = () => {\n setIsExpandedDropdown(!isExpandedDropdown);\n };\n\n const toggleAdvancedFilters = () => {\n setIsExpandedAdvancedFeatures(!isExpandedAdvancedFeatures);\n };\n\n const handleDayChange = (event) => {\n const { value } = event.target;\n setSelectedDay(typeof value === 'string' ? value.split(',') : value);\n };\n\n const handleDateChange = (event) => {\n const { value } = event.target;\n setSelectedDate(typeof value === 'number' ? value.split(',') : value);\n };\n\n const handleTimeChange = (event) => {\n setTime(event.target.value);\n };\n\n const handleMeasureSelection = (selectedMeasures) => {\n const selectedFields = selectedMeasures.map((measure) => measure.field);\n setMeasurev2((prevMeasures) =>\n prevMeasures.map((measure) => ({\n ...measure,\n selected: selectedFields.includes(measure.field),\n }))\n );\n };\n\n useEffect(() => {\n const values = measures.map((option) => ({\n category: option?.value?.title,\n field: option?.value?.name,\n label: option?.value?.name,\n selected: true,\n }));\n setOptionsmeausures(values);\n }, [measures]);\n\n useEffect(() => {\n const values = dimensions.map((option) => {\n const name = option?.value?.name || '';\n const [category, field] = name.split('.');\n return {\n category: category || '',\n field: field || '',\n label: `${category}.${field}`,\n selected: true,\n };\n });\n setOptionsDimension(values);\n }, [dimensions]);\n\n const capitalizeFirstLetter = (string) => string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\n const handleDimensionSelection = (selectedDimensions) => {\n const selectedFields = selectedDimensions\n .filter((dimension) => dimension.field && dimension.category)\n .map((dimension) => {\n const capitalizedCategory = capitalizeFirstLetter(dimension.category);\n const fullField = dimension.field.includes(`${capitalizedCategory}.`)\n ? dimension.field\n : `${capitalizedCategory}.${dimension.field}`;\n return {\n category: capitalizedCategory,\n field: fullField,\n };\n });\n\n const updatedDimensions = dimensionsv2.map((dimension) => {\n const capitalizedCategory = capitalizeFirstLetter(dimension.category);\n const formattedField = dimension.field.includes(`${capitalizedCategory}.`)\n ? dimension.field\n : `${capitalizedCategory}.${dimension.field}`;\n\n const isSelected = selectedFields.some((selected) => selected.field === formattedField);\n\n return {\n ...dimension,\n field: formattedField,\n selected: isSelected,\n };\n });\n\n setDimensionsv2(updatedDimensions);\n };\n\n const buildQuery = async () => {\n try {\n setRunReportLoading(true);\n let currentReportId = id || '';\n\n if (reportId && reportId.trim() !== '') {\n currentReportId = reportId;\n }\n\n if (!currentReportId) {\n const newReportData = {\n name: reportName?.value || 'Unnamed report',\n description: reportDescription?.value || 'No description provided',\n type: 'GLOBAL',\n };\n const { data } = await createReport(newReportData);\n currentReportId = data.id;\n handleImageUpload();\n\n setCurrentReportId(currentReportId);\n\n await saveCube(currentReportId, {\n query: { ...cubeQuery, ...prepareReport() },\n ...(reportName?.value ? { name: reportName.value } : {}),\n ...(reportDescription?.value ? { description: reportDescription.value } : {}),\n });\n }\n\n const selectedDimensions = optionsDimension.filter(\n (dimension) => dimension.selected && dimension.label !== undefined\n );\n const dimensionItems = selectedDimensions.map((dim) => dim.label);\n const dimensionItemsnue = selectedDimensions.map((dim) => dim.label);\n\n const selectedMeasures = optionsmeausures.filter((measure) => measure.selected && measure.label !== undefined);\n const measureItems = selectedMeasures.map((mea) => mea.label);\n const measureItemsnue = selectedMeasures.map((mea) => mea.label);\n\n const dimensionsItems = dimensionsv2.filter((dim) => dim.selected);\n const dimensionit = dimensionsItems.map((dim) => dim.label);\n const filteredDimensions = dimensionsItems\n .filter((dim) => dimensionItems.includes(dim.label))\n .map((dim) => dim.label);\n\n const measuresItems = Measurev2.filter((measure) => measure.selected);\n const measuresinit = measuresItems.map((measure) => measure.label);\n\n const filteredMeausures = measuresItems.filter((mea) => measureItems.includes(mea.label)).map((mea) => mea.label);\n\n const timeDimensionsItems = dimensionsTime?.value;\n const currentDimensions = [...new Set([...filteredDimensions, ...dimensionItemsnue])].filter(\n (item) => !item.includes('undefined')\n );\n\n const currentMeasures = [...new Set([...filteredMeausures, ...measureItemsnue])];\n\n const currentTimeDimensions = [];\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(granularity === 'w/o grouping' ? {} : { granularity: granularity?.toLowerCase() }),\n ...(daterange === 'All time'\n ? {}\n : daterange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: daterange,\n }),\n });\n }\n\n if (currentDimensions.length > 0 || currentMeasures.length > 0 || timeDimensionsItems) {\n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n });\n\n setLoading(true);\n\n const queryData = {\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n };\n\n await saveCube(currentReportId, {\n query: {\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n },\n preview: true,\n })\n .then(({ data }) => {\n setReports({\n data: ResultSet.deserialize(data?.resultSet)?.tablePivot(),\n columns: ResultSet.deserialize(data?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n })),\n resultSet: ResultSet.deserialize(data?.resultSet),\n });\n\n setIsSaveClicked(false);\n toast.success('Preview report');\n })\n .catch((err) => {\n console.error('Error saving cube query:', err);\n\n if (err.message === 'Network Error') {\n toast.error('Something went wrong with the Report, please try again later');\n } else if (err.response && err.response.data && err.response.data.message) {\n toast.error(`API Error: ${err.response.data.message}`);\n console.error('API Error Details:', err.response.data);\n } else {\n toast.error('An unexpected error occurred. Please try again.');\n }\n })\n .finally(() => {\n setLoading(false);\n });\n\n setIsSaveClicked(false);\n }\n } catch (error) {\n console.error('Error building query:', error);\n toast.error('Error running report');\n } finally {\n setRunReportLoading(false);\n }\n };\n\n const prepareReport = () => {\n const selectedDimensions = optionsDimension.filter(\n (dimension) => dimension.selected && dimension.label !== undefined\n );\n const dimensionItems = selectedDimensions.map((dim) => dim.label);\n const dimensionItemsnue = selectedDimensions.map((dim) => dim.label);\n\n const selectedMeasures = optionsmeausures.filter((measure) => measure.selected && measure.label !== undefined);\n const measureItems = selectedMeasures.map((mea) => mea.label);\n\n const measureItemsnue = selectedMeasures.map((mea) => mea.label);\n\n const dimensionsItems = dimensionsv2.filter((dim) => dim.selected);\n const dimensionit = dimensionsItems.map((dim) => dim.label);\n\n const filteredDimensions = dimensionsItems\n .filter((dim) => dimensionItems.includes(dim.label))\n .map((dim) => dim.label);\n\n const measuresItems = Measurev2.filter((measure) => measure.selected);\n const measuresinit = measuresItems.map((measure) => measure.label);\n\n const filteredMeausures = measuresItems.filter((mea) => measureItems.includes(mea.label)).map((mea) => mea.label);\n\n const timeDimensionsItems = dimensionsTime?.value;\n\n const currentDimensions = [...new Set([...filteredDimensions, ...dimensionItemsnue])];\n\n const currentMeasures = [...new Set([...filteredMeausures, ...measureItemsnue])];\n\n const currentTimeDimensions = [];\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(granularity === 'w/o grouping' ? {} : { granularity: granularity?.toLowerCase() }),\n ...(daterange === 'All time'\n ? {}\n : daterange === 'Custom'\n ? from && to\n ? {\n dateRange: [from, to],\n }\n : {}\n : {\n dateRange: daterange,\n }),\n });\n }\n\n return {\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n };\n };\n\n return (\n <Box className={classes.container}>\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" marginBottom=\"20px\" width=\"100%\">\n <Box display=\"flex\" alignItems=\"flex-start\" flexGrow={1}>\n <Box display=\"flex\" flexDirection=\"column\">\n <EditableReport />\n {!report && (\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"10px\">\n <RadioGroup\n value={checked ? 'global' : 'private'}\n onChange={(event) => {\n const { value } = event.target;\n setChecked(value === 'global');\n }}\n row\n >\n <FormControlLabel\n value=\"global\"\n control={<Radio color=\"primary\" />}\n label={\n <Box display=\"flex\" alignItems=\"center\">\n <PublicIcon htmlColor=\"#6D7385\" style={{ marginRight: 6, fontSize: 18 }} />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n Global\n </Typography>\n </Box>\n }\n />\n <FormControlLabel\n value=\"private\"\n control={<Radio color=\"primary\" />}\n label={\n <Box display=\"flex\" alignItems=\"center\">\n <LockOutlinedIcon htmlColor=\"#6D7385\" style={{ marginRight: 6, fontSize: 18 }} />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n Private\n </Typography>\n </Box>\n }\n />\n </RadioGroup>\n </Box>\n )}\n {report?.type === 'GLOBAL' && (\n <Box display=\"flex\" alignItems=\"center\" style={{ marginTop: 6 }}>\n <PublicIcon htmlColor=\"#6D7385\" style={{ marginRight: 6, fontSize: 18 }} />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n Global\n </Typography>\n </Box>\n )}\n {report?.type === 'PRIVATE' && (\n <Box display=\"flex\" alignItems=\"center\" style={{ marginTop: 6 }}>\n <LockOutlinedIcon htmlColor=\"#6D7385\" style={{ marginRight: 6, fontSize: 18 }} />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n Private\n </Typography>\n </Box>\n )}\n </Box>\n\n <Box display=\"flex\" alignItems=\"flex-start\" style={{ marginLeft: 'auto' }}>\n {reportId && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n style={{\n marginRight: '10px',\n fontSize: '25px',\n textTransform: 'none',\n color: '#ffffff',\n backgroundColor: '#1f63ff',\n padding: '6px 16px',\n borderRadius: '6px',\n boxShadow: 'none',\n minWidth: '120px',\n }}\n endIcon={<ArrowDropDownIcon />}\n onClick={handleClick}\n >\n Schedule\n </Button>\n )}\n\n <DashButton\n dataTestId=\"report-details-button-run-report\"\n onClick={buildQuery}\n disabled={runReportLoading}\n variant=\"outlined\"\n style={{\n marginRight: '10px',\n fontSize: '25px',\n borderColor: '#007bff',\n color: '#007bff',\n backgroundColor: '#ffffff',\n minWidth: '120px',\n padding: '6px 16px',\n }}\n >\n {runReportLoading ? <CircularProgress size={20} style={{ color: '#007bff' }} /> : 'Run Report'}\n </DashButton>\n <DashButton\n variant=\"outlined\"\n style={{\n marginRight: '10px',\n fontSize: '25px',\n borderColor: '#007bff',\n color: '#007bff',\n backgroundColor: '#ffffff',\n minWidth: '120px',\n padding: '6px 16px',\n }}\n onClick={onClearReport}\n >\n {'Clear Report'}\n </DashButton>\n <DashButton\n variant={report?.published ? 'outlined' : 'contained'}\n style={{\n marginRight: '10px',\n fontSize: '25px',\n ...(report?.published\n ? { borderColor: '#007bff', color: '#007bff', backgroundColor: '#ffffff' }\n : { color: '#ffffff', backgroundColor: '#1f63ff' }),\n minWidth: '120px',\n boxShadow: 'none',\n padding: '6px 16px',\n }}\n onClick={handlePublish}\n disabled={publishLoading}\n >\n {publishLoading ? (\n <CircularProgress size={20} style={{ color: report?.published ? '#007bff' : '#ffffff' }} />\n ) : report?.published ? (\n 'Unpublish'\n ) : (\n 'Publish'\n )}\n </DashButton>\n <DashButton\n variant=\"contained\"\n color=\"primary\"\n style={{\n marginRight: '10px',\n fontSize: '25px',\n color: '#ffffff',\n backgroundColor: '#1f63ff',\n minWidth: '80px',\n padding: '6px 16px',\n }}\n onClick={handleSave}\n disabled={saveLoading}\n >\n {saveLoading ? <CircularProgress size={20} style={{ color: '#ffffff' }} /> : 'Save'}\n </DashButton>\n </Box>\n </Box>\n\n <Popover\n id={id1}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n >\n <Box\n padding=\"16px\"\n className={classes.popoverContent}\n style={{ border: '1px solid #ccc', borderRadius: '8px' }}\n >\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" marginBottom=\"12px\">\n <Typography className={classes.labelText} style={{ fontSize: '14px' }}>\n Enable email notifications\n </Typography>\n <Switch\n checked={enableNotifications}\n onChange={(e) => {\n const isEnabled = e.target.checked;\n setEnableNotifications(isEnabled);\n handleEmailScheduleOnOffToggle(isEnabled);\n }}\n name=\"enableNotifications\"\n color=\"primary\"\n />\n </Box>\n\n <RadioGroup aria-label=\"frequency\" name=\"frequency\" value={frequency} onChange={handleFrequencyChange}>\n <FormControlLabel\n value=\"daily\"\n control={<Radio className={classes.radioButton} />}\n label={<Typography className={classes.labelText}>Every day</Typography>}\n disabled={!enableNotifications}\n />\n {frequency === 'daily' && (\n <>\n <Typography className={classes.selectLabel}>Select time</Typography>\n <TextField\n type=\"time\"\n value={time}\n onChange={(e) => setTime(e.target.value)}\n InputLabelProps={{\n shrink: true,\n }}\n inputProps={{\n step: 300,\n style: { fontSize: '14px' },\n maxLength: 5,\n }}\n disabled={!enableNotifications}\n style={{ marginBottom: '12px' }}\n fullWidth\n />\n <Box className={classes.buttonContainer}>\n <Button onClick={handleClose} className={classes.cancelButton}>\n cancel\n </Button>\n <Button onClick={handleEmailScheduleSave} className={classes.saveButton}>\n save\n </Button>\n </Box>\n </>\n )}\n\n {/* Every week option */}\n <FormControlLabel\n value=\"weekly\"\n control={<Radio className={classes.radioButton} />}\n label={<Typography className={classes.labelText}>Every Week</Typography>}\n disabled={!enableNotifications}\n />\n {frequency === 'weekly' && (\n <Box marginLeft=\"24px\">\n <Typography className={classes.selectLabel}>Select day(s)</Typography>\n <Select\n multiple\n value={selectedDay}\n onChange={handleDayChange}\n fullWidth={false}\n renderValue={(selected) => {\n if (selected.length > 2) {\n return `${selected.slice(0, 2).join(', ')}...`;\n }\n return selected.join(', ');\n }}\n style={{ width: '150px' }}\n MenuProps={{\n PaperProps: {\n style: {\n maxHeight: 300,\n width: '150px',\n },\n },\n }}\n >\n {['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'].map((day) => (\n <MenuItem key={day} value={day} style={{ padding: '2px 8px' }}>\n <Checkbox\n checked={selectedDay?.indexOf(day) > -1}\n onChange={handleDayChange}\n style={{ padding: '2px', transform: 'scale(0.5)' }}\n color=\"primary\"\n />\n <ListItemText primary={day} style={{ margin: '0', padding: '0', fontSize: '14px' }} />\n </MenuItem>\n ))}\n </Select>\n <Box marginTop=\"12px\">\n <Typography className={classes.selectLabel}>Select time</Typography>\n <TextField\n type=\"time\"\n value={time}\n onChange={(e) => setTime(e.target.value)}\n InputLabelProps={{\n shrink: true,\n }}\n inputProps={{\n step: 300,\n style: { fontSize: '14px' },\n maxLength: 5,\n }}\n disabled={!enableNotifications}\n fullWidth\n />\n </Box>\n <Box className={classes.buttonContainer}>\n <Button onClick={handleClose} className={classes.cancelButton}>\n cancel\n </Button>\n <Button onClick={handleEmailScheduleSave} className={classes.saveButton}>\n save\n </Button>\n </Box>\n </Box>\n )}\n\n {/* Every Month option */}\n <FormControlLabel\n value=\"monthly\"\n control={<Radio className={classes.radioButton} />}\n label={<Typography className={classes.labelText}>Every Month</Typography>}\n disabled={!enableNotifications}\n />\n {frequency === 'monthly' && (\n <Box marginLeft=\"24px\">\n <Typography className={classes.selectLabel}>Select day of the month</Typography>\n <Select\n value={selectedDate}\n onChange={handleDateChange}\n fullWidth={false}\n multiple\n renderValue={(selected) => selected.join(', ')}\n style={{ width: '150px' }}\n MenuProps={{\n PaperProps: {\n style: {\n maxHeight: 300,\n width: '150px',\n },\n },\n }}\n >\n {Array.from({ length: 31 }, (_, i) => (\n <MenuItem key={i + 1} value={i + 1} style={{ padding: '2px 8px' }}>\n <Checkbox\n checked={selectedDate?.indexOf(i + 1) > -1}\n style={{ padding: '2px', transform: 'scale(0.5)' }}\n color=\"primary\"\n />\n <ListItemText primary={i + 1} style={{ margin: '0', padding: '0', fontSize: '14px' }} />\n </MenuItem>\n ))}\n </Select>\n\n <Box marginTop=\"12px\">\n <Typography className={classes.selectLabel}>Select time</Typography>\n <TextField\n type=\"time\"\n value={time}\n onChange={(e) => setTime(e.target.value)}\n InputLabelProps={{\n shrink: true,\n }}\n inputProps={{\n step: 300,\n style: { fontSize: '14px' },\n maxLength: 5,\n }}\n disabled={!enableNotifications}\n fullWidth\n />\n </Box>\n <Box className={classes.buttonContainer}>\n <Button onClick={handleClose} className={classes.cancelButton}>\n cancel\n </Button>\n <Button onClick={handleEmailScheduleSave} className={classes.saveButton}>\n save\n </Button>\n </Box>\n </Box>\n )}\n </RadioGroup>\n </Box>\n </Popover>\n </Box>\n\n <Divider />\n\n {!isExpandedAll ? (\n <Box display=\"flex\" flexDirection=\"row\" alignItems=\"center\" padding=\"10px 0\" overflow=\"visible\">\n {/* Dimensions Box */}\n <Box display=\"flex\" flexDirection=\"column\" width=\"30%\" paddingRight=\"20px\" marginTop=\"5px\">\n <Typography className={classes.sectionTitle} style={{ marginBottom: '4px', fontSize: '0.875rem' }}>\n Dimensions\n <Tooltip\n title=\"Dimensions is used to provide discrete categorical information. These values can be of any type - string, date time, or numeric.\"\n placement=\"top\"\n arrow\n >\n <InfoIcon style={{ fontSize: '12px', color: 'blue', marginLeft: '8px', cursor: 'pointer' }} />\n </Tooltip>\n </Typography>\n <FixedTags\n type=\"Dimension\"\n defaultTags={optionsDimension}\n options={dimensionsv2}\n limitTags\n withAddBtn\n onChange={(newValue) => setOptionsDimension(newValue)}\n getOptionLabel={(option) => option.field}\n isOptionSelected={(newValue) => setOptionsDimension(newValue)}\n style={{ height: '20px', width: '100%' }}\n toggleShowAll={toggleDropDown}\n />\n </Box>\n\n {/* Measures Box */}\n <Box display=\"flex\" flexDirection=\"column\" width=\"30%\" paddingRight=\"20px\" marginTop=\"5px\">\n <Typography className={classes.sectionTitle} style={{ marginBottom: '4px', fontSize: '0.875rem' }}>\n Measures\n <Tooltip\n title=\"Measure is used to identify the measure using the specified data member and summary type.\"\n placement=\"top\"\n arrow\n >\n <InfoIcon style={{ fontSize: '12px', color: 'blue', marginLeft: '8px', cursor: 'pointer' }} />\n </Tooltip>\n </Typography>\n <FixedTags\n type=\"Measure\"\n toggleShowAll={toggleDropDown}\n defaultTags={optionsmeausures}\n options={Measurev2}\n getOptionLabel={(option) => option.field}\n isOptionSelected={(newValue) => setOptionsmeausures(newValue)}\n withAddBtn\n onChange={(newValue) => setOptionsmeausures(newValue)}\n style={{ height: '20px', width: '100%' }}\n />\n </Box>\n\n {/* Show More Button */}\n <Box flex=\"1\" display=\"flex\" justifyContent=\"flex-end\">\n <Button\n variant=\"outlined\"\n style={{\n fontSize: '25px',\n textTransform: 'none',\n color: '#ffffff',\n backgroundColor: '#1f63ff',\n padding: '6px 16px',\n borderRadius: '6px',\n boxShadow: 'none',\n minWidth: '140px',\n }}\n endIcon={<ArrowDropDownIcon />}\n onClick={toggleShowAll}\n >\n Show More\n </Button>\n </Box>\n </Box>\n ) : (\n <>\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n paddingRight=\"20px\"\n marginTop=\"10px\"\n position=\"relative\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n width=\"71%\"\n paddingRight=\"20px\"\n marginTop=\"9px\"\n style={{ overflowX: 'auto', overflowY: 'hidden' }}\n >\n <Typography className={classes.sectionTitle} style={{ fontSize: '0.875rem', marginBottom: '4px' }}>\n Dimensions\n </Typography>\n <FixedTags\n type=\"Dimension\"\n showAll={showAll}\n defaultTags={optionsDimension}\n options={dimensionsv2}\n limitTags\n withAddBtn\n onChange={(newValue) => setOptionsDimension(newValue)}\n getOptionLabel={(option) => option.field}\n isOptionSelected={(newValue) => setOptionsDimension(newValue)}\n style={{ height: '20px', width: '100%' }}\n toggleShowAll={toggleDropDown}\n />\n </Box>\n\n <Box position=\"absolute\" right=\"0\" top=\"15\">\n <Button\n variant=\"outlined\"\n style={{\n fontSize: '25px',\n textTransform: 'none',\n color: '#ffffff',\n backgroundColor: '#1f63ff',\n padding: '6px 16px',\n borderRadius: '6px',\n boxShadow: 'none',\n minWidth: '140px',\n }}\n endIcon={<ArrowDropUpIcon />}\n onClick={toggleShowAll}\n >\n Show Less\n </Button>\n </Box>\n </Box>\n\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n width=\"70%\"\n paddingRight=\"20px\"\n marginTop=\"10px\"\n style={{ overflowX: 'auto', overflowY: 'hidden' }}\n >\n <Typography className={classes.sectionTitle} style={{ fontSize: '0.875rem', marginBottom: '4px' }}>\n Measures\n </Typography>\n <FixedTags\n type=\"Measure\"\n defaultTags={optionsmeausures}\n showAll={toggleDropDown}\n options={Measurev2}\n getOptionLabel={(option) => option.field}\n isOptionSelected={handleMeasureSelection}\n withAddBtn\n onChange={(newValue) => setOptionsmeausures(newValue)}\n style={{ height: '20px', width: '100%' }}\n toggleShowAll={toggleDropDown}\n />\n </Box>\n <Box>\n <Box>\n <Box display=\"flex\" flexDirection=\"column\" justifyContent=\"space-between\" margin=\"0\" gap=\"10px\">\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"flex-start\" width=\"100%\">\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'end',\n }}\n >\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"flex-start\" width=\"100%\">\n <Typography\n className={classes.sectionTitle}\n style={{ fontSize: '0.875rem', marginBottom: '4px', marginTop: '10px' }}\n >\n Time\n </Typography>\n <Box\n sx={{\n width: '250px',\n minWidth: '250px',\n }}\n >\n <ReportItem\n label={dimensionsTime.label}\n cubes={cubes}\n value={dimensionsTime.value}\n setItems={setDimensionsTime}\n showTodayIcon={false}\n />\n </Box>\n </Box>\n\n {dimensionsTime.value && (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Box\n sx={{\n p: 1,\n }}\n >\n <Typography\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{\n fontSize: 16,\n fontWeight: 600,\n }}\n >\n For\n </Typography>\n </Box>\n <Box sx={{ minWidth: '200px', width: '200px' }}>\n <DropdownSelectableItem\n value={daterange}\n options={dataRangeOptions}\n setItems={setDaterange}\n />\n </Box>\n </Box>\n )}\n\n {dimensionsTime.value && daterange === 'Custom' && (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Box\n sx={{\n m: 1,\n }}\n >\n <DatePickerMUI\n label=\"From\"\n date={from}\n propWidth={120}\n type=\"start\"\n setdate={setFrom}\n compareDate={to}\n setCompareDate={setTo}\n allowEndBeforeStart\n propHeight={45}\n />\n </Box>\n <Box\n sx={{\n m: 1,\n }}\n >\n <DatePickerMUI\n label=\"To\"\n date={to}\n propWidth={120}\n type=\"end\"\n setdate={setTo}\n compareDate={from}\n setCompareDate={setFrom}\n allowEndBeforeStart\n propHeight={45}\n TextFieldComponent={(props) => (\n <TextField\n {...props}\n InputProps={{\n style: {\n height: '100px',\n },\n }}\n />\n )}\n />\n </Box>\n </Box>\n )}\n\n {dimensionsTime.value && (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Box\n sx={{\n p: 1,\n }}\n >\n <Typography\n style={{\n fontSize: 16,\n fontWeight: 600,\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n By\n </Typography>\n </Box>\n <Box>\n <DropdownSelectableItem\n value={granularity}\n options={dayOption}\n setItems={setGranularity}\n widthItem=\"150%\"\n />\n </Box>\n </Box>\n )}\n </Box>\n\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"flex-start\" width=\"100%\">\n <Typography className={classes.sectionTitle} style={{ fontSize: '0.875rem', marginBottom: '4px' }}>\n Filters\n </Typography>\n {filters.map((filter, index) => (\n <Box key={index}>\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"flex-start\" width=\"100%\">\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'end',\n }}\n >\n <Box\n sx={{\n marginLeft: 1,\n width: '250px',\n minWidth: '250px',\n }}\n >\n <ReportFilterItem\n label=\"Filter by\"\n cubes={cubes}\n value={filter.member}\n setItems={(value) => {\n setFilters(index, 'member', value);\n }}\n onResetFilter={() => {\n onResetFilter(index);\n }}\n />\n </Box>\n\n {filter?.member && (\n <Box style={{ display: 'flex', flexDirection: 'row' }}>\n <Box\n sx={{\n marginLeft: '10px',\n width: '250px',\n minWidth: '250px',\n }}\n >\n <ReportFilterItem\n label=\"Operator\"\n value={filter.operator}\n operators={operators[filter?.member?.type]}\n setItems={(value) => {\n setFilters(index, 'operator', value);\n setFilters(index, 'values', null);\n }}\n showRemove={false}\n withSearchInput={false}\n />\n </Box>\n {filter?.operator &&\n !filter?.operator?.label?.includes('date') &&\n filter?.member?.type !== 'boolean' && (\n <Box\n sx={{\n marginLeft: '10px',\n width: '250px',\n minWidth: '250px',\n }}\n >\n <OutLineInput\n placeholder=\"Value\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n style={{\n height: 45,\n background: '#fff',\n padding: '15px 16px',\n border: '1px solid #7070701F',\n fontSize: 16,\n }}\n value={filter.values || ''}\n onChange={(e) => setFilters(index, 'values', e.target.value)}\n labelWidth={0}\n />\n </Box>\n )}\n </Box>\n )}\n </Box>\n </Box>\n\n {filter?.operator?.label?.includes('date') && (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"15px\">\n {filter?.operator?.value === 'afterDate' && (\n <DatePickerMUI\n disableFuture\n label=\"Date\"\n date={filter.values || null}\n propWidth=\"100%\"\n setdate={(date) => setFilters(index, 'values', date)}\n propPadding={5}\n sx={{\n height: '45px',\n }}\n />\n )}\n\n {filter?.operator?.value === 'beforeDate' && (\n <DatePickerMUI\n disableFuture\n label=\"Date\"\n date={filter.values || null}\n propWidth=\"100%\"\n setdate={(date) => setFilters(index, 'values', date)}\n propPadding={5}\n sx={{\n height: '45px',\n }}\n />\n )}\n\n {filter?.operator?.value === 'inDateRange' && (\n <>\n <DatePickerMUI\n label=\"From\"\n date={Array.isArray(filter.values) ? filter.values?.[0] : filter.values || null}\n propWidth={100}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[0] = date;\n setFilters(index, 'values', arrayValues);\n }}\n sx={{\n width: '100%',\n height: '50px',\n '& .MuiInputBase-root': {\n height: 'inherit',\n },\n }}\n compareDate={to}\n setCompareDate={setTo}\n allowEndBeforeStart\n />\n <span style={{ width: 15 }} />\n <DatePickerMUI\n label=\"To\"\n date={Array.isArray(filter.values) ? filter.values?.[1] : null}\n propWidth={100}\n type=\"end\"\n compareDate={from}\n setCompareDate={setFrom}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[1] = date;\n setFilters(index, 'values', arrayValues);\n }}\n allowEndBeforeStart\n />\n </>\n )}\n\n {filter?.operator?.value === 'notInDateRange' && (\n <>\n <DatePickerMUI\n label=\"From\"\n date={filter.values?.[0]}\n propWidth={100}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[0] = date;\n setFilters(index, 'values', arrayValues);\n }}\n compareDate={to}\n setCompareDate={setTo}\n allowEndBeforeStart\n />\n <span style={{ width: 15 }} />\n <DatePickerMUI\n label=\"To\"\n date={filter.values?.[1]}\n propWidth={100}\n type=\"end\"\n compareDate={from}\n setCompareDate={setFrom}\n setdate={(date) => {\n const arrayValues = [...(filter.values || [])];\n arrayValues[1] = date;\n setFilters(index, 'values', arrayValues);\n }}\n allowEndBeforeStart\n />\n </>\n )}\n </Box>\n )}\n\n {filter?.operator && filter?.member?.type === 'boolean' && (\n <Box bgcolor=\"#fff\" border=\"1px solid #7070701F\" borderRadius=\"5px\">\n <SelectBox\n options={{\n obj: [\n { text: 'Select an Option', value: '' },\n { text: 'Yes', value: 1 },\n { text: 'No', value: 0 },\n ],\n }}\n outlined=\"string\"\n value={filter.values || ''}\n onChange={(e) => setFilters(index, 'values', e.target.value)}\n allowPlaceHolder={false}\n />\n </Box>\n )}\n </Box>\n ))}\n </Box>\n\n <Box display=\"flex\" alignItems=\"center\" style={{ marginTop: '10px' }}>\n <FormControlLabel\n control={\n <Switch\n checked={chartLabelNumber}\n onChange={(e) => setChartLabelNumber(e.target.checked)}\n color=\"primary\"\n />\n }\n label=\"Show number labels\"\n labelPlacement=\"start\"\n />\n </Box>\n\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Box display=\"flex\" alignItems=\"center\" color=\"#1F63FF\" sx={{ m: 1 }}>\n <Typography\n data-testid=\"report-details-button-add-new-filter\"\n style={{ fontSize: 13, fontWeight: '500', cursor: 'pointer' }}\n onClick={addFilter}\n >\n + Add new filter\n </Typography>\n </Box>\n {showFilterBox && (\n <Box display=\"flex\" alignItems=\"center\" sx={{ m: 1 }}>\n <Typography style={{ fontSize: 13 }}>New Filter Content</Typography>\n <IconButton size=\"small\" onClick={cancelFilter} sx={{ marginLeft: 1 }}>\n <CancelIcon />\n </IconButton>\n </Box>\n )}\n </Box>\n </Box>\n <Divider />\n </Box>\n </Box>\n </Box>\n </>\n )}\n {report ? (\n <ExploreContent\n ref={exploreContentRef}\n resultSet={reports?.resultSet ? reports?.resultSet : null}\n reports={reports}\n report={report}\n reportName={report?.name}\n reportImageUrl={report?.reportImage}\n handleRefetch={() => {\n onGetCube();\n onGetCubes();\n }}\n reportId={reportId}\n orgSubdomainDashboard={orgSubdomainDashboard}\n cubeQuery={cubeQuery}\n prepareReport={prepareReport}\n onClearReport={onClearReport}\n loading={loading}\n chartLabelNumber={chartLabelNumber}\n style={{\n fontSize: '0.75rem',\n width: '100%',\n height: '500px',\n maxHeight: '500px',\n overflow: 'hidden',\n }}\n />\n ) : (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection=\"column\"\n width=\"100%\"\n height=\"500px\"\n >\n <CircularProgress size={40} />\n <Typography style={{ marginTop: 16 }}>Loading report...</Typography>\n </Box>\n )}\n </Box>\n );\n}\n\nExplorePanel.propTypes = {\n setDimensions: PropTypes.func.isRequired,\n setMeasures: PropTypes.func.isRequired,\n dimensionsTime: PropTypes.array.isRequired,\n setDimensionsTime: PropTypes.func.isRequired,\n daterange: PropTypes.object.isRequired,\n setDaterange: PropTypes.func.isRequired,\n granularity: PropTypes.string.isRequired,\n setGranularity: PropTypes.func.isRequired,\n from: PropTypes.string.isRequired,\n setFrom: PropTypes.func.isRequired,\n to: PropTypes.string.isRequired,\n setTo: PropTypes.func.isRequired,\n cubes: PropTypes.array.isRequired,\n filters: PropTypes.array.isRequired,\n setFilters: PropTypes.func.isRequired,\n onResetFilter: PropTypes.func.isRequired,\n optionsmeausures: PropTypes.bool.isRequired,\n optionsDimension: PropTypes.bool.isRequired,\n onGetCube: PropTypes.func.isRequired,\n onGetCubes: PropTypes.func.isRequired,\n id: PropTypes.string.isRequired,\n onClearReport: PropTypes.func.isRequired,\n report: PropTypes.object.isRequired,\n};\n","/* eslint-disable no-nested-ternary */\nimport { Box } from '@material-ui/core';\nimport { ResultSet } from '@cubejs-client/core';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport moment from 'moment';\nimport { useParams } from 'react-router-dom';\nimport { toast } from '../../../components/Notification';\nimport { fetchCube, getCubes, saveCube } from '../../../services/cube';\nimport ExplorePanel, { searchFilterOperator } from './ExplorePanel';\nimport { formatCubeJsTableColumns } from '../../../utils';\nimport { searchFilterItem } from '../../../components/ReportFilterItem';\nimport useOrganization from '../../../hooks/useOrganization';\n\nexport const dataRangeOptions = [\n 'Custom',\n 'All time',\n 'Today',\n 'Yesterday',\n 'This week',\n 'This month',\n 'This quarter',\n 'This year',\n 'Last 7 days',\n 'Last 30 days',\n 'Last 60 days',\n 'Last week',\n 'Last month',\n 'Last quarter',\n 'Last year',\n];\n\nexport const dayOption = ['w/o grouping', 'minute', 'hour', 'day', 'week', 'month', 'year'];\n\nconst getFilters = (filters) => {\n const fitersMapped = filters.map((filter) => ({\n ...(filter.member ? { member: filter?.member?.name } : {}),\n ...(filter?.operator ? { operator: filter?.operator?.value } : {}),\n ...(filter.values\n ? {\n values: Array.isArray(filter?.values) ? filter?.values : [filter?.values],\n }\n : {}),\n }));\n return fitersMapped.filter((filter) => Object.keys(filter).length > 0);\n};\n\nexport default function ExportProfile({ reportId }) {\n const [dimensions, setDimensions] = useState([\n { label: 'Add dimension', value: null, id: 'dimension1', order: 1 },\n { label: 'Add dimension', value: null, id: 'dimension2', order: 2 },\n { label: 'Add dimension', value: null, id: 'dimension3', order: 3 },\n ]);\n\n const [measures, setMeasures] = useState([\n { label: 'Add measure', value: null, id: 'measure1', order: 1 },\n { label: 'Add measure', value: null, id: 'measure2', order: 2 },\n { label: 'Add measure', value: null, id: 'measure3', order: 3 },\n ]);\n\n const [filters, setFilters] = useState([{ member: null, operator: null, values: null }]);\n\n const [dimensionsTime, setDimensionsTime] = useState({\n label: 'Add time dimension',\n value: null,\n });\n\n const { organization } = useOrganization();\n\n const [daterange, setDaterange] = useState(dataRangeOptions[0]);\n const [granularity, setGranularity] = useState(dayOption[4]);\n\n const [loading, setLoading] = useState(false);\n\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n\n const [reports, setReports] = useState(null);\n\n const [cubeQuery, setCubeQuery] = useState({\n measures: [],\n timeDimensions: [],\n order: [],\n dimensions: [],\n filters: [],\n limit: 2500,\n });\n\n const [report, setReport] = useState(null);\n const [cubes, setCubes] = useState([]);\n\n const onGetCubes = () => {\n getCubes()\n .then(({ data }) => {\n setCubes(data?.cubes);\n })\n .catch((err) => console.log('Error fetching cubes:', err));\n };\n\n const onGetCube = useCallback(() => {\n console.log('Received id:', reportId ); // Verificar si el id se pasa correctamente\n\n if (reportId ) {\n setLoading(true);\n fetchCube(reportId )\n .then(({ data }) => {\n setReport(data);\n })\n .catch((err) => console.log('Error fetching cube:', err))\n .finally(() => setLoading(false));\n } else {\n console.log('No id provided');\n }\n }, [reportId ]);\n\n useEffect(() => {\n if (organization && !organization?.buildingSchemaEndDate) {\n onGetCubes();\n }\n }, [organization]);\n\n useEffect(() => {\n if (organization && !organization?.buildingSchemaEndDate) {\n onGetCube();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reportId , organization]);\n\n useEffect(() => {\n if (cubes.length && report) {\n const query = report?.query;\n\n if (!query) {\n return;\n }\n\n const QueryDimensions = query?.dimensions;\n const Querymeasures = query?.measures;\n const QueryTimeDimensions = query?.timeDimensions?.[0];\n\n const getFetchQuery = (arrQuery, key) => {\n const dd = arrQuery?.map((qd) => {\n const splited = qd.split('.')[0];\n\n const colected = [];\n cubes.forEach((cb) => {\n if (cb.name === splited) {\n cb[key].forEach((itemSh) => {\n if (itemSh.name === qd) {\n colected.push(itemSh);\n }\n });\n }\n });\n\n return colected[0];\n });\n\n return dd;\n };\n const getFetchTimeQuery = () => {\n const splited = QueryTimeDimensions?.dimension?.split('.')[0];\n\n const colected = [];\n cubes.forEach((cb) => {\n if (cb.name === splited) {\n cb.dimensions.forEach((itemSh) => {\n if (itemSh.name === QueryTimeDimensions?.dimension) {\n colected.push(itemSh);\n }\n });\n }\n });\n\n return colected[0];\n };\n const dimensionsFetched = getFetchQuery(QueryDimensions, 'dimensions');\n const measuresFetched = getFetchQuery(Querymeasures, 'measures');\n const timeDimensionFetched = getFetchTimeQuery();\n\n const filtersFetched = query?.filters?.map((filter) => {\n const member = searchFilterItem(filter?.member, cubes);\n const operator = searchFilterOperator(filter?.operator, member?.type);\n\n return {\n member,\n operator,\n values: filter?.values?.length > 1 ? filter?.values : filter?.values?.[0] || null,\n };\n });\n\n let dimensionsItems = [];\n let measuresItems = [];\n let timeDimensionsItems = null;\n\n if (dimensionsFetched?.length) {\n const dimensionsFetchedMapped = dimensionsFetched.map((dimension, index) => ({\n label: 'Add dimension',\n id: `dimension${index + 1}`,\n order: index + 1,\n value: dimension,\n }));\n dimensionsItems = dimensionsFetchedMapped.filter((dimension) => dimension.value);\n setDimensions(dimensionsFetchedMapped);\n }\n\n if (filtersFetched?.length) {\n setFilters(filtersFetched);\n }\n if (measuresFetched?.length) {\n const measuresFetchedMapped = measuresFetched.map((measure, index) => ({\n label: 'Add measure',\n value: measure,\n id: `measure${index + 1}`,\n order: index + 1,\n }));\n measuresItems = measuresFetchedMapped.filter((measure) => measure.value);\n setMeasures(measuresFetchedMapped);\n }\n\n if (timeDimensionFetched) {\n const dimensionTimeObj = {\n ...dimensionsTime,\n value: timeDimensionFetched,\n };\n\n setDimensionsTime(dimensionTimeObj);\n timeDimensionsItems = dimensionTimeObj.value;\n setGranularity(QueryTimeDimensions?.granularity);\n if (typeof QueryTimeDimensions?.dateRange === 'string') {\n setDaterange(QueryTimeDimensions?.dateRange);\n } else {\n setFrom(QueryTimeDimensions?.dateRange?.[0]);\n setTo(QueryTimeDimensions?.dateRange?.[1]);\n }\n }\n\n setReports({\n data: report?.resultSet ? ResultSet.deserialize(report?.resultSet)?.tablePivot() : null,\n columns: report?.resultSet\n ? ResultSet.deserialize(report?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n }))\n : null,\n\n resultSet: report?.resultSet ? ResultSet.deserialize(report?.resultSet) : null,\n });\n\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(QueryTimeDimensions?.granularity === 'w/o grouping'\n ? {}\n : { granularity: QueryTimeDimensions?.granularity?.toLowerCase() }),\n ...(QueryTimeDimensions?.dateRange === 'All time'\n ? {}\n : QueryTimeDimensions?.dateRange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: QueryTimeDimensions?.dateRange,\n }),\n });\n }\n\n if (currentDimensions.length > 0 || currentMeasures.length > 0 || timeDimensionsItems) {\n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filtersFetched),\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cubes, report]);\n\n const onResetFilter = (index) => {\n setFilters((prevState) => {\n const newFilters = [...prevState];\n newFilters[index] = {\n member: null,\n operator: null,\n values: null,\n };\n return newFilters;\n });\n };\n\n const onSetFilter = (index, prop, value) => {\n const newFilters = [...filters]; \n \n if (!newFilters[index]) {\n console.error(`Filter at index ${index} does not exist.`);\n return;\n }\n \n newFilters[index][prop] = value;\n setFilters(newFilters);\n };\n \n\n const addFilter = () => {\n setFilters([\n ...filters,\n {\n member: null,\n operator: null,\n values: null,\n },\n ]);\n };\n\n const onClearReport = () => {\n setCubeQuery({\n measuresv2: [],\n timeDimensions: [],\n order: [],\n dimensionsv2: [],\n filters: [],\n limit: 2500,\n });\n setReports(null);\n setDimensions([\n { label: 'Add dimension', value: null, id: 'dimension1', order: 1 },\n { label: 'Add dimension', value: null, id: 'dimension2', order: 2 },\n { label: 'Add dimension', value: null, id: 'dimension3', order: 3 },\n ]);\n setMeasures([\n { label: 'Add measure', value: null, id: 'measure1', order: 1 },\n { label: 'Add measure', value: null, id: 'measure2', order: 2 },\n { label: 'Add measure', value: null, id: 'measure3', order: 3 },\n ]);\n\n setDimensionsTime({\n label: 'Add time dimension',\n value: null,\n });\n setFilters([{ member: null, operator: null, values: null }]);\n };\n\n const buildQuery = () => {\n const dimensionsItems = dimensions.filter((dimension) => dimension.value);\n const measuresItems = measures.filter((measure) => measure.value);\n const timeDimensionsItems = dimensionsTime.value;\n\n const currentDimensions = dimensionsItems.map((dimItem) => dimItem.value.name);\n\n const currentMeasures = measuresItems.map((meaItem) => meaItem.value.name);\n\n const currentTimeDimensions = [];\n\n if (timeDimensionsItems) {\n currentTimeDimensions.push({\n ...(timeDimensionsItems && { dimension: timeDimensionsItems?.name }),\n ...(granularity === 'w/o grouping' ? {} : { granularity: granularity?.toLowerCase() }),\n ...(daterange === 'All time'\n ? {}\n : daterange === 'Custom'\n ? from && to\n ? {\n dateRange: [moment(from).format('YYYY-MM-DD'), moment(to).format('YYYY-MM-DD')],\n }\n : {}\n : {\n dateRange: daterange,\n }),\n });\n }\n\n if (currentDimensions.length > 0 || currentMeasures.length > 0 || timeDimensionsItems) {\n setCubeQuery({\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n });\n setLoading(true);\n\n saveCube(reportId , {\n query: {\n ...cubeQuery,\n dimensions: currentDimensions,\n measures: currentMeasures,\n timeDimensions: currentTimeDimensions,\n filters: getFilters(filters),\n },\n preview: true,\n })\n .then(({ data }) => {\n setReports({\n data: ResultSet.deserialize(data?.resultSet)?.tablePivot(),\n columns: ResultSet.deserialize(data?.resultSet)\n ?.tableColumns()\n ?.map((column) => ({\n ...column,\n title: formatCubeJsTableColumns(column.title, column.key),\n })),\n\n resultSet: ResultSet.deserialize(data?.resultSet),\n });\n })\n .catch((err) => {\n if (err === 'Network Error') {\n toast.error('Something went wrong with the Report, please try again later');\n }\n })\n .finally(() => setLoading(false));\n }\n };\n\n return (\n <Box display=\"flex\">\n <>\n <ExplorePanel\n measures={measures}\n report={report}\n reports={reports}\n reportId={reportId }\n dimensions={dimensions}\n setDimensions={setDimensions}\n setMeasures={setMeasures}\n setDimensionsTime={setDimensionsTime}\n dimensionsTime={dimensionsTime}\n daterange={daterange}\n setDaterange={setDaterange}\n granularity={granularity}\n setGranularity={setGranularity}\n from={from}\n setFrom={setFrom}\n setTo={setTo}\n to={to}\n cubes={cubes}\n filters={filters}\n setFilters={onSetFilter}\n addFilter={addFilter}\n onClearReport={onClearReport}\n onResetFilter={onResetFilter}\n buildQuery={buildQuery}\n loading={loading}\n orgSubdomainDashboard={organization?.subdomainDashboard}\n />\n </>\n </Box>\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDrag, useDrop, DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { Box, IconButton } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport InfoIcon from '@material-ui/icons/Info';\nimport ModularComponents from '../../components/ModularComponents';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport { getDashboardReports, deleteDashboardReport, updateDashboardReportSize } from '../../services/unarmed';\n\nexport default function DashboardReports({ dashboardId, refreshTrigger }) {\n const [dashboardReports, setDashboardReports] = useState([]);\n const [actionRefresh, setActionrefresh] = useState(false);\n const componentRef = useRef(null);\n\n useEffect(() => {\n const fetchDashboardReports = async () => {\n try {\n const dashboardReportsR = await getDashboardReports(dashboardId);\n const transformedReports = dashboardReportsR.data.reports.map((report, index) => ({\n position: report?.position || index,\n i: report.dashboardReportId,\n key: report.dashboardReportId,\n content: (\n <div\n style={{\n position: 'relative',\n height: '500px',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n resize: 'vertical',\n }}\n className=\"report-container\"\n >\n <div\n style={{\n position: 'absolute',\n bottom: 0,\n width: '100%',\n height: '10px',\n cursor: 'ns-resize',\n backgroundColor: 'rgba(255,255,255,0.7)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n onMouseDown={(e) => {\n const startY = e.clientY;\n const startHeight = e.currentTarget.parentElement.offsetHeight;\n\n const onMouseMove = (moveEvent) => {\n const deltaY = moveEvent.clientY - startY;\n e.currentTarget.parentElement.style.height = `${startHeight + deltaY}px`;\n };\n\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }}\n >\n <DragIndicatorIcon\n fontSize=\"small\"\n style={{\n transform: 'rotate(90deg)',\n color: '#666',\n }}\n />\n </div>\n\n <IconButton\n style={{\n backgroundColor: 'rgba(255,255,255,0.7)',\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n left: '4px',\n zIndex: 2,\n }}\n size=\"small\"\n >\n <DragIndicatorIcon fontSize=\"small\" />\n </IconButton>\n <div\n style={{\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n backgroundColor: 'rgba(255,255,255,0.7)',\n padding: '4px 8px',\n zIndex: 1,\n }}\n >\n <div\n style={{\n fontSize: '14px',\n fontWeight: 'bold',\n }}\n >\n {report.name}\n </div>\n\n <IconButton\n className=\"no-drag close-button\"\n style={{\n backgroundColor: 'rgba(255,255,255,0.7)',\n position: 'absolute',\n top: '4px',\n right: '4px',\n zIndex: 2,\n }}\n onClick={() => handleDeleteReport(report.dashboardReportId)}\n size=\"small\"\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </div>\n\n <div\n style={{\n marginTop: '10px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n flex: 1,\n width: '100%',\n overflowY: 'auto',\n position: 'relative',\n }}\n >\n {report?.reportImage ? (\n <img\n src={report?.reportImage}\n style={{\n width: '95%',\n height: 'auto',\n maxWidth: '100%',\n }}\n />\n ) : (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n backgroundColor: '#f0f4ff',\n padding: '10px 15px',\n borderLeft: '4px solid #3b82f6',\n borderRadius: '4px',\n boxShadow: '0 1px 3px rgba(0,0,0,0.1)',\n width: '100%',\n }}\n >\n <InfoIcon style={{ color: '#3b82f6', marginRight: '10px' }} />\n <span\n style={{\n fontSize: '14px',\n color: '#333',\n }}\n >\n Please save the report first to view it in the dashboard.\n </span>\n </div>\n )}\n </div>\n </div>\n ),\n }));\n setDashboardReports(transformedReports);\n } catch (error) {\n console.error('Error fetching dashboard reports:', error);\n }\n };\n\n fetchDashboardReports();\n }, [dashboardId, actionRefresh, refreshTrigger]);\n\n const handleDeleteReport = async (dashboardReportId) => {\n try {\n await deleteDashboardReport({ ids: [dashboardReportId] });\n\n dashboardReports.filter((report) => report.i !== dashboardReportId);\n setActionrefresh(!actionRefresh);\n } catch (error) {\n console.error('Error deleting the report:', error);\n }\n };\n\n const componentWidth = componentRef.current ? componentRef.current.offsetWidth : 0;\n\n return (\n <Box>\n <div ref={componentRef}>\n {dashboardReports.length > 0 ? (\n <DndProvider backend={HTML5Backend}>\n {/* <ModularComponents layout={dashboardReports} width={componentWidth} /> */}\n <Box sx={{ width: '100%' }}>\n {dashboardReports.map((report, index) => {\n return (\n <Box\n key={report.i}\n sx={{\n width: '100%',\n padding: '16px',\n marginBottom: '16px',\n backgroundColor: '#fff',\n borderRadius: '8px',\n boxShadow: '0 2px 4px rgba(0,0,0,0.1)',\n cursor: 'move',\n }}\n draggable\n onDragStart={(e) => {\n e.dataTransfer.setData('text/plain', index);\n }}\n onDragOver={(e) => {\n e.preventDefault();\n }}\n onDrop={async (e) => {\n e.preventDefault();\n const draggedIndex = parseInt(e.dataTransfer.getData('text/plain'));\n const newReports = [...dashboardReports];\n const temp = newReports[draggedIndex];\n newReports[draggedIndex] = newReports[index];\n newReports[index] = temp;\n const reportsWithPosition = newReports.map((report, idx) => ({\n ...report,\n position: idx,\n }));\n\n reportsWithPosition.forEach(async (dashboardR) => {\n await updateDashboardReportSize(dashboardR.i, {\n position: dashboardR.position,\n });\n });\n\n setDashboardReports(reportsWithPosition);\n }}\n >\n {report.content}\n </Box>\n );\n })}\n </Box>\n </DndProvider>\n ) : (\n <p>No reports available</p>\n )}\n </div>\n </Box>\n );\n}\n","import { Box, Typography, Button, MenuItem, TextField, Menu, ListItemIcon, Divider, Snackbar } from '@material-ui/core';\nimport React, { useEffect, useState, useRef } from 'react';\nimport PublicIcon from '@material-ui/icons/Public';\nimport CreateIcon from '@material-ui/icons/Create';\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport { OutLineInput } from '../CaseDetails/UpdateCase';\nimport {\n addReportInToDashboard,\n getReportsExplore,\n getDashboardReports,\n updateDashboard,\n} from '../../services/unarmed';\nimport DashboardReports from './DashboardReports';\n\nexport default function DashboardProfile({ dashboard, dashboardId }) {\n const [snackbarMessage, setSnackbarMessage] = useState('');\n const [snackbarOpen, setSnackbarOpen] = useState(false);\n const [anchorEl, setAnchorEl] = useState(null);\n const [loading, setLoading] = useState(true);\n const [searchTerm, setSearchTerm] = useState('');\n const [filteredReports, setFilteredReports] = useState([]);\n const [dashboardReports, setDashboardReports] = useState({ data: [], headers: {} });\n const [reportsMenu, setReportsMenu] = useState([]);\n const [isEdit, setIsEdit] = useState(false);\n const [isEditingName, setIsEditingName] = useState(false);\n const [isEditingDescription, setIsEditingDescription] = useState(false);\n const [dashboardName, setDashboardName] = useState('');\n const [dashboardDescription, setDashboardDescription] = useState('');\n const [dashboardLoading, setDashboardLoading] = useState(true);\n const [dashboardIdModular, setDashboardIdModular] = useState(dashboardId);\n const [refreshTrigger, setRefreshTrigger] = useState(false);\n const editBoxRef = useRef(null);\n const [key, setKey] = useState(0);\n\n useEffect(() => {\n if (dashboard) {\n setDashboardLoading(true);\n setDashboardName(dashboard?.dashboard?.name || '');\n setDashboardDescription(dashboard?.dashboard?.description || '');\n setDashboardLoading(false);\n }\n }, [dashboard, dashboardId]);\n\n useEffect(() => {\n let isMounted = true;\n\n const fetchDashboardReports = async () => {\n if (!dashboardId) return;\n\n try {\n setLoading(true);\n const response = await getDashboardReports(dashboardId);\n\n if (isMounted) {\n const { data } = response;\n setDashboardReports(Array.isArray(data) ? data : []);\n }\n } catch (error) {\n console.error('Error fetching dashboard reports:', error);\n } finally {\n if (isMounted) {\n setLoading(false);\n }\n }\n };\n\n setDashboardReports({ data: [], headers: {} });\n\n if (dashboardId) {\n fetchDashboardReports();\n }\n\n return () => {\n isMounted = false;\n };\n }, [dashboardId]);\n\n useEffect(() => {\n const fetchAllReports = async () => {\n setLoading(true);\n let allReports = [];\n let page = 1;\n let hasMorePages = true;\n\n try {\n while (hasMorePages) {\n const response = await getReportsExplore(page);\n const { data } = response;\n\n allReports = [...allReports, ...data];\n\n if (data.length < 20) {\n hasMorePages = false;\n } else {\n page += 1;\n }\n }\n } catch (error) {\n console.error('Error fetching reports:', error);\n } finally {\n setReportsMenu(allReports);\n setLoading(false);\n }\n };\n\n fetchAllReports();\n }, []);\n\n // Filter reports based on search term\n useEffect(() => {\n if (Array.isArray(reportsMenu)) {\n setFilteredReports(\n reportsMenu.filter((report) =>\n report.name.toLowerCase().includes(searchTerm.toLowerCase())\n )\n );\n }\n }, [searchTerm, reportsMenu]);\n\n useEffect(() => {\n if (Array.isArray(reportsMenu)) {\n setFilteredReports(reportsMenu.filter((report) => report.name.toLowerCase().includes(searchTerm.toLowerCase())));\n } else {\n setFilteredReports([]);\n }\n }, [searchTerm, reportsMenu]);\n\n const handleAddReportToDashboard = async (report) => {\n try {\n if (!report._id) {\n setSnackbarMessage('Select the report that you want to add, please.');\n setSnackbarOpen(true);\n handleReportsMenuClose();\n return;\n }\n\n const response = await addReportInToDashboard({\n dashboardId,\n reportId: report._id,\n });\n\n if (response.status === 200) {\n setRefreshTrigger(prev => !prev);\n setSnackbarMessage('Report added successfully.');\n setSnackbarOpen(true);\n handleReportsMenuClose();\n }\n } catch (error) {\n setSnackbarMessage(error?.request?.response?.message || 'Error adding report to dashboard');\n setSnackbarOpen(true);\n handleReportsMenuClose();\n }\n };\n\n const handleDashboardUpdate = async () => {\n try {\n const data = {\n name: dashboardName,\n description: dashboardDescription,\n };\n const response = await updateDashboard(dashboardId, data);\n\n if (response.status === 200) {\n setSnackbarMessage('Dashboard updated successfully.');\n } else {\n setSnackbarMessage('Failed to update dashboard.');\n }\n setSnackbarOpen(true);\n setIsEdit(false);\n } catch (error) {\n setSnackbarMessage('Error updating dashboard.');\n setSnackbarOpen(true);\n }\n };\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (editBoxRef.current && !editBoxRef.current.contains(event.target)) {\n if (isEdit) {\n handleDashboardUpdate();\n }\n setIsEdit(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isEdit, dashboardName, dashboardDescription]);\n\n const handleKeyDown = (event, setEditingState) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n setEditingState(false);\n }\n };\n\n const EditableDashboard = () => (\n <Box display=\"flex\" flexDirection=\"column\" ref={editBoxRef}>\n <Box display=\"flex\" alignItems=\"center\" marginBottom=\"8px\">\n {isEditingName ? (\n <Box width={250}>\n <OutLineInput\n autoFocus\n placeholder=\"Dashboard Name\"\n value={dashboardName}\n onChange={(e) => setDashboardName(e.target.value)}\n onBlur={() => setIsEditingName(false)}\n onKeyDown={(e) => handleKeyDown(e, setIsEditingName)}\n />\n </Box>\n ) : (\n <Typography\n style={{ fontSize: 25, fontWeight: '600', cursor: 'pointer' }}\n onClick={() => {\n setIsEdit(true);\n setIsEditingName(true);\n }}\n >\n {dashboardName || 'Unnamed Dashboard'}\n </Typography>\n )}\n </Box>\n\n <Box display=\"flex\" alignItems=\"center\" width=\"100%\">\n {isEditingDescription ? (\n <Box width={400}>\n <OutLineInput\n autoFocus\n placeholder=\"Dashboard Description\"\n value={dashboardDescription}\n onChange={(e) => setDashboardDescription(e.target.value)}\n onBlur={() => setIsEditingDescription(false)}\n onKeyDown={(e) => handleKeyDown(e, setIsEditingDescription)}\n />\n </Box>\n ) : (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n width=\"100%\"\n onClick={() => {\n setIsEdit(true);\n setIsEditingDescription(true);\n }}\n >\n <Typography style={{ fontSize: 15 }}>{dashboardDescription || 'No description provided'}</Typography>\n <CreateIcon style={{ marginLeft: 8, cursor: 'pointer', fontSize: 13 }} />\n </Box>\n )}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" width=\"100%\" marginTop=\"8px\">\n {dashboard?.dashboard?.type === 'PRIVATE' ? (\n <>\n <LockOutlinedIcon htmlColor=\"#6D7385\" style={{ marginRight: 6, fontSize: 18 }} />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n Private\n </Typography>\n </>\n ) : (\n <>\n <PublicIcon htmlColor=\"#6D7385\" style={{ marginRight: 6, fontSize: 18 }} />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n Global\n </Typography>\n </>\n )}\n </Box>\n </Box>\n );\n\n const handleReportsMenuClose = () => setAnchorEl(null);\n const handleMenuOpen = (event) => setAnchorEl(event.currentTarget);\n const handleSnackbarClose = () => setSnackbarOpen(false);\n\n return (\n <Box display=\"flex\" flexDirection=\"column\" width=\"100%\">\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" mb={2} paddingTop=\"20px\">\n <Box display=\"flex\" flexDirection=\"column\">\n {dashboard ? <EditableDashboard /> : <Typography>Loading...</Typography>}\n </Box>\n <Button\n variant=\"outlined\"\n style={{\n backgroundColor: '#007bff',\n color: '#fff',\n borderColor: '#007bff',\n textTransform: 'capitalize'\n }}\n endIcon={<AddCircleOutlineIcon />}\n onClick={handleMenuOpen}\n >\n Add Report\n </Button>\n <Menu\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleReportsMenuClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n sx={{\n width: '180px',\n '& .MuiPaper-root': {\n maxHeight: '300px',\n width: '180px',\n padding: '8px',\n },\n }}\n >\n <MenuItem disableRipple sx={{ padding: 0 }}>\n <TextField\n variant=\"outlined\"\n placeholder=\"Search Reports\"\n fullWidth\n size=\"small\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n sx={{\n width: '180px',\n maxHeight: '30px',\n '& .MuiInputBase-root': {\n fontSize: '12px',\n padding: '4px',\n },\n '& .MuiOutlinedInput-root': {\n borderRadius: '4px',\n },\n }}\n />\n </MenuItem>\n <Divider />\n <div style={{\n maxHeight: '300px',\n maxWidth: '350px',\n overflowY: 'auto',\n overflowX: 'hidden',\n scrollbarWidth: 'thin',\n scrollbarColor: '#888 #f1f1f1'\n }}>\n {loading ? (\n <MenuItem disabled>Loading reports...</MenuItem>\n ) : filteredReports.length > 0 ? (\n filteredReports.map((report) => (\n <MenuItem onClick={() => handleAddReportToDashboard(report)} key={report._id}>\n <ListItemIcon>\n <DashboardIcon fontSize=\"small\" />\n </ListItemIcon>\n <Typography variant=\"inherit\" style={{ fontSize: '12px' }}>\n {report.name}\n </Typography>\n </MenuItem>\n ))\n ) : (\n <MenuItem disabled>No reports available</MenuItem>\n )}\n </div>\n </Menu>\n </Box>\n\n <Divider />\n\n <Box>\n <DashboardReports\n dashboardId={dashboardId}\n refreshTrigger={refreshTrigger}\n />\n </Box>\n\n <Snackbar open={snackbarOpen} autoHideDuration={6000} onClose={handleSnackbarClose} message={snackbarMessage} />\n </Box>\n );\n}\n","export default function formatBytes(bytes, decimals = 2) {\n if (bytes === 0) return '0';\n\n // const k = 1024;\n\n // const dm = decimals < 0 ? 0 : decimals;\n // const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n // const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n // return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n\n return (bytes / 1073741824).toFixed(decimals);\n}\n","import { Box, makeStyles, Switch, Typography } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\nimport DashboardCard from '../../components/DashboardCard';\nimport storageImg from '../../assets/storage.png';\nimport usersImg from '../../assets/users.png';\nimport usersCheckImg from '../../assets/userCheck.png';\nimport listImg from '../../assets/list.png';\nimport userProgress from '../../assets/usersProgress.png';\nimport { Context } from '../../Context';\nimport formatBytes from '../../utils/formatBytes';\nimport useOrganization from '../../hooks/useOrganization';\nimport { getUsage, onChangeAttachments } from '../../services/unarmed';\nimport UpgradeModal from '../../components/UpgradeModal';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n}));\nconst Usage = () => {\n const classes = useStyles();\n const { setActive, authUser } = useContext(Context);\n const { organization } = useOrganization();\n const [usage, setUsage] = useState(null);\n const [hasAttachments, setHasAttachments] = useState(null);\n const history = useHistory();\n\n useEffect(() => {\n setActive('/usage');\n }, []);\n useEffect(() => {\n const onGetData = async () => {\n const data = await getUsage(organization?._id);\n setUsage(data);\n };\n\n if (authUser && organization?._id) {\n onGetData();\n setHasAttachments(organization?.features?.general?.attachments);\n }\n }, [authUser, organization]);\n\n const handleChange = () => [\n onChangeAttachments(organization?._id, !hasAttachments)\n .then((res) => {\n toast.success('Attachments Updated!');\n setHasAttachments(!hasAttachments);\n })\n .catch((err) => toast.error(`Something went wrong ${err}`)),\n ];\n\n return (\n <>\n {organization && (\n <UpgradeModal\n open={!organization?.features?.dashboard?.usage?.enabled || false}\n />\n )}\n <Box\n className={classes.container}\n style={\n !organization?.features?.dashboard?.usage?.enabled\n ? {\n filter: 'blur(6px)',\n height: '70vh',\n overflow: 'hidden',\n }\n : {}\n }\n >\n <Box display=\"flex\" justifyContent=\"space-between\">\n {/* <Typography variant=\"h5\">Usage </Typography> */}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" mt=\"30px\">\n {/* <DashboardCard\n cardText=\"Users\"\n color=\"#01BEA826\"\n icon={userProgress}\n showProgressBar\n barColor=\"secondary\"\n progressBarValue={(\n (usage?.activeUsers * 100) /\n usage?.usersLimit\n ).toFixed(0)}\n value={`${usage?.activeUsers ? usage?.activeUsers : 0}/${\n usage?.usersLimit ? usage?.usersLimit : 0\n }`}\n /> */}\n <DashboardCard\n cardText=\"Storage\"\n color=\"#2E66FE26\"\n icon={storageImg}\n showProgressBar\n showChildren\n progressBarValue={(\n (formatBytes(usage?.spaceUsed, 0) * 100) /\n formatBytes(usage?.spaceAvailable, 0)\n ).toFixed(0)}\n value={`${\n usage?.spaceUsed ? formatBytes(usage?.spaceUsed, 2) : 0\n }/${\n usage?.spaceAvailable ? formatBytes(usage?.spaceAvailable, 0) : 0\n } GB`}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <Typography\n style={{ fontSize: 14, color: '#000000DE', marginRight: 5 }}\n >\n Attachments\n </Typography>\n <Switch\n checked={hasAttachments}\n onChange={handleChange}\n size=\"small\"\n color=\"primary\"\n name=\"checkedB\"\n inputProps={{ 'aria-label': 'primary checkbox' }}\n />\n </Box>\n </DashboardCard>\n {/* <DashboardCard\n cardText=\"Total Users\"\n color=\"#AE5DFF26\"\n icon={usersImg}\n value={usage?.activeUsers + usage?.pendingUsers || 0}\n buttonText=\"View all users\"\n onClickButton={() => {\n history.push('/users');\n setActive('/users');\n }}\n />\n <DashboardCard\n cardText=\"Active Users\"\n color=\"#009A6D26\"\n icon={usersCheckImg}\n value={usage?.activeUsers || 0}\n buttonText=\"View all active users\"\n onClickButton={() => {\n history.push('/users');\n setActive('/users');\n }}\n />\n <DashboardCard\n cardText=\"Pending Users\"\n color=\"#FF826A26\"\n icon={listImg}\n value={usage?.pendingUsers || 0}\n buttonText=\"View all pending users\"\n onClickButton={() => {\n history.push('/users', {\n value: 1,\n });\n setActive('/users');\n }}\n /> */}\n </Box>\n </Box>\n </>\n );\n};\n\nexport default Usage;\n","import React, { useEffect, useState } from 'react';\nimport {\n Modal,\n Paper,\n Fade,\n Typography,\n makeStyles,\n Box,\n Button,\n Select,\n MenuItem,\n FormControl,\n InputLabel,\n} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { toast } from './Notification';\nimport { changeUserRole, getRoles } from '../services/unarmed';\nimport { axiosCatchError } from '../utils';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n boxShadow: theme.shadows[5],\n padding: 30,\n width: 600,\n alignSelf: 'center',\n borderRadius: 4,\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n formControl: {\n minWidth: 300,\n },\n}));\n\nconst ModalUserRole = ({ userId, open, onClose, onRoleChanged }) => {\n const [roles, setRoles] = useState([]);\n const [role, setRole] = useState();\n const [loading, setLoading] = useState(false);\n const [showConfirmation, setShowConfirmation] = useState(false);\n\n const classes = useStyles();\n\n const onGetRoles = async () => {\n try {\n const { data } = await getRoles();\n setRoles(data);\n } catch (error) {\n axiosCatchError(error);\n }\n };\n\n const handleOnChangeRole = () => {\n if (role === 'admin' && !showConfirmation) {\n setShowConfirmation(true);\n } else {\n setLoading(true);\n changeUserRole(userId, role)\n .then(() => {\n toast.success('User role changed successfully!');\n onClose();\n onRoleChanged();\n setLoading(false);\n setShowConfirmation(false);\n })\n .catch((error) => {\n setLoading(false);\n axiosCatchError(error);\n });\n }\n };\n\n function toTitleCase(str) {\n return str.replace(\n /\\w\\S*/g,\n text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase()\n );\n }\n\n useEffect(() => {\n onGetRoles();\n }, []);\n\n return (\n <Modal open={open} onClose={onClose} className={classes.modal}>\n <Fade in={open}>\n <Paper className={classes.paper} style={{ backgroundColor: '#fff' }}>\n {showConfirmation ? (\n <>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>Change role to Admin</Typography>\n <Typography variant=\"body2\" style={{ marginTop: 16 }}>\n If you switch to the role Admin, you will not be able to change this user's role to Investigator or\n Guest. Are you sure you want to proceed?\n </Typography>\n </>\n ) : (\n <>\n <Typography variant=\"h4\">Roles</Typography>\n <Typography>Assign Roles</Typography>\n <Box marginTop=\"16px\" marginBottom=\"32px\">\n <FormControl className={classes.formControl}>\n <InputLabel id=\"demo-simple-select-label\">Role</InputLabel>\n <Select\n labelId=\"demo-simple-select-label\"\n id=\"demo-simple-select\"\n value={role}\n onChange={(e) => setRole(e.target.value)}\n >\n {roles.map((_role) => (\n <MenuItem value={_role}>{toTitleCase(_role)}</MenuItem>\n ))}\n </Select>\n </FormControl>\n </Box>\n </>\n )}\n <Box display=\"flex\" justifyContent=\"flex-end\">\n <Button\n variant=\"text\"\n color=\"primary\"\n style={{ marginRight: 16 }}\n onClick={() => {\n if (showConfirmation) {\n setShowConfirmation(false);\n } else {\n onClose();\n }\n }}\n >\n CANCEL\n </Button>\n <Button disabled={loading} variant=\"text\" color=\"primary\" onClick={handleOnChangeRole}>\n {showConfirmation ? 'Accept' : 'Save'}\n </Button>\n </Box>\n </Paper>\n </Fade>\n </Modal>\n );\n};\n\nModalUserRole.propTypes = {\n open: PropTypes.bool.isRequired,\n userId: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onRoleChanged: PropTypes.func.isRequired,\n};\n\nexport default ModalUserRole;\n","import { Box, Button, CircularProgress, Grid, makeStyles, Typography } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { Context } from '../../Context';\nimport { getSingleUser, getInvitationUser } from '../../services/unarmed';\nimport ProfileInformation from '../Profile/ProfileInformation';\nimport profileImg from '../../assets/profile.png';\nimport { unarmedWithToken } from '../../services/axios';\nimport ModalUserRole from '../../components/ModalUserRole';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#fff',\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid #4b7bff ',\n color: '#4b7bff',\n '&:hover': {\n background: '#fff',\n border: '1px solid #4b7bff ',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#F9FAFF',\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: 20,\n },\n}));\nconst User = () => {\n const classes = useStyles();\n const [me, setMe] = useState({});\n const { authUser, setActive, myUser } = useContext(Context);\n const [loading, setLoading] = useState(false);\n const [openModal, setOpenModal] = useState(false);\n\n const location = useLocation();\n const { id } = useParams();\n\n const onGetSingleUser = async () => {\n try {\n setLoading(true);\n let res = null;\n\n if (location?.href?.includes('invitation')) {\n res = await getInvitationUser(id);\n } else {\n res = await getSingleUser(id);\n await unarmedWithToken().post('/activity/user-view', { userId: id });\n }\n\n setMe(res.data);\n setLoading(false);\n } catch (error) {\n console.log(error);\n setLoading(false);\n }\n };\n\n useEffect(() => {\n setActive('/users');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (authUser) {\n onGetSingleUser();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [authUser]);\n\n return (\n <Box width=\"100%\" className={classes.container}>\n <Typography variant=\"h5\">Users </Typography>\n <Box width=\"100%\" style={{ background: '#fff' }} marginTop=\"20px\">\n <Box\n width=\"100%\"\n display=\"flex\"\n padding=\"10px 20px\"\n alignItems=\"center\"\n borderBottom=\"1px solid #0000001F\"\n justifyContent=\"space-between\"\n >\n <Typography variant=\"subtile1\" style={{ fontWeight: '500' }}>\n User Profile\n </Typography>\n </Box>\n {loading ? (\n <Box width=\"100%\" height=\"300px\" display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n <CircularProgress color=\"#000\" size=\"40px\" />\n </Box>\n ) : (\n <>\n <Box borderRadius={4} padding=\"20px\" style={{ background: '#fff' }}>\n <Grid container justifyContent=\"space-between\" alignItems=\"start\">\n <Grid item xs={10}>\n <Box display=\"flex\" alignItems=\"center\">\n <img\n src={me?.photo?.url || me?.profile_img || profileImg}\n alt=\"profileImg\"\n className={classes.img}\n />\n <Box display=\"flex\" justifyContent=\"flex-start\" flexDirection=\"column\" marginLeft=\"20px\">\n <Typography\n style={{\n textAlign: 'center',\n fontSize: 20,\n fontWeight: '500',\n }}\n >\n {`${me?.firstName} ${me?.lastName}`}\n </Typography>\n <Typography\n style={{\n fontSize: 14,\n textTransform: 'capitalize',\n color: '#333',\n marginBottom: 4,\n }}\n >\n {`${me?.role || me?.type || ''}`}\n </Typography>\n </Box>\n </Box>\n </Grid>\n {myUser?.role === 'admin' && (\n <Grid item xs={2}>\n <Button\n disabled={me?.role === 'admin'}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setOpenModal(true)}\n style={{ marginTop: 10 }}\n >\n EDIT ROLE\n </Button>\n </Grid>\n )}\n </Grid>\n </Box>\n <ProfileInformation me={me} />\n </>\n )}\n </Box>\n <ModalUserRole userId={id} open={openModal} onClose={() => setOpenModal(false)} onRoleChanged={onGetSingleUser} />\n </Box>\n );\n};\n\nexport default User;\n","import { Box, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport LogoHome from '../components/LogoHome';\n\nconst NotFound = () => {\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n const time = setTimeout(() => {\n setLoading(false);\n }, 3000);\n\n return () => clearTimeout(time);\n }, []);\n\n return (\n <Box width=\"100%\" height=\"116.1vh\" display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n {loading ? <LogoHome width={300} /> : <Typography variant=\"h6\">Page Not Found</Typography>}\n </Box>\n );\n};\n\nexport default NotFound;\n","import React from 'react';\nimport { TableRow, TableCell, Checkbox, Box, Tooltip } from '@material-ui/core';\nimport InfoIcon from '@material-ui/icons/Info';\nimport moment from 'moment';\n\nconst EnhancedTableRow = ({\n row,\n index,\n goToIntendedLocation,\n typeClickPath,\n isSelected,\n myUser,\n classes,\n handleSelectRow,\n}) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n\n return (\n <TableRow\n hover\n aria-checked={isItemSelected}\n selected={isItemSelected}\n role=\"checkbox\"\n tabIndex={-1}\n key={index}\n className={classes.row}\n style={{ cursor: 'pointer', height: 50 }}\n >\n <TableCell padding=\"checkbox\" onClick={(e) => handleSelectRow(row._id)}>\n {myUser?.role !== 'admin' && myUser?._id !== row?.owner?._id ? (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n <Tooltip title=\"You cannot delete this report because you are not the owner.\">\n <InfoIcon htmlColor=\"#4B7BFF\" />\n </Tooltip>\n </Box>\n ) : (\n <Checkbox checked={isItemSelected} inputProps={{ 'aria-labelledby': labelId }} color=\"primary\" />\n )}\n </TableCell>\n\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={() => goToIntendedLocation(row)}>\n {row?.name}\n </TableCell>\n\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={() => goToIntendedLocation(row)}>\n {row?.description}\n </TableCell>\n\n <TableCell component=\"th\" scope=\"row\" align=\"left\" onClick={() => goToIntendedLocation(row)}>\n {moment(row.createdAt).format('MMMM DD, YYYY')}\n </TableCell>\n\n <TableCell align=\"left\" onClick={() => typeClickPath(row)}>\n {`${row?.owner?.firstName || 'System'} ${row?.owner?.lastName || ''}`}\n </TableCell>\n\n <TableCell align=\"left\" onClick={() => goToIntendedLocation(row)} style={{ textTransform: 'capitalize' }}>\n {row?.type?.toLowerCase()}\n </TableCell>\n </TableRow>\n );\n};\n\nexport default EnhancedTableRow;\n","import React, { useEffect, useState } from 'react';\nimport { Box, Typography, Button, CircularProgress } from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport { useHistory } from 'react-router-dom';\nimport DashButton from '../../components/DashButton';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport EnhancedTable from '../../components/Table';\nimport { Context } from '../../Context';\nimport { deleteReport, duplicateReport, getReports, createUserTabs } from '../../services/unarmed';\nimport CreateReport from '../Data/CreateReport';\nimport EnhancedTableRow from '../../components/EnhancedTableRow';\nimport './styles.css';\nimport { TYPE_USER_TABS, DISPLAY_OBJECT_TYPES } from '../../utils/constants';\nimport ExploreProfile from './ExploreProfile/ExploreProfile';\n\nconst reportColumns = ['Report Name', 'Description', 'Created Date', 'Owner Name', 'Type'];\n\nexport default function ReportsTableTab({\n setTabSelected,\n tabSelected,\n setActiveTab,\n setActiveTabName,\n userTabs,\n setUserTabs,\n selectedReportId,\n setSelectedReportId,\n}) {\n const [loading, setLoading] = useState(false);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [selected, setSelected] = useState([]);\n const [checkedReports, setCheckedReports] = useState(false);\n const [open, setOpen] = useState(false);\n const [openDelete, setOpenDelete] = useState(false);\n const { myUser } = React.useContext(Context);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const [reports, setReports] = useState({ data: [], headers: {} });\n const [loadingDeleteReport, setLoadingDeleteReport] = useState(false);\n const history = useHistory();\n const isSelected = (name) => selected.indexOf(name) !== -1;\n\n // Fetch reports\n const onGetReports = async () => {\n try {\n setLoading(true);\n const { data, headers } = await getReports(page, rowsPerPage, sort, sortBy);\n setReports({ data, headers });\n } catch (error) {\n console.error('Error fetching reports:', error);\n toast.error('Failed to fetch reports');\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n onGetReports();\n }, [page, rowsPerPage, sort, sortBy]);\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const handleCreateUserReportTab = async (report) => {\n const index = userTabs.findIndex((tab) => report.name.includes(tab.name));\n if (index !== -1) {\n setTabSelected({\n ...userTabs[index],\n displayObjectId: report._id,\n });\n setActiveTabName(userTabs[index].name);\n setActiveTab(TYPE_USER_TABS.REPORT);\n } else {\n const lengthTabs = userTabs.length + 1;\n const userTabsPayload = {\n userTabs: [\n {\n name: report.name,\n type: TYPE_USER_TABS.REPORT,\n position: String(lengthTabs),\n displayObjectType: DISPLAY_OBJECT_TYPES.REPORT,\n displayObjectId: report._id,\n moduleName: 'INSIGHT',\n },\n ],\n };\n\n try {\n const response = await createUserTabs(userTabsPayload);\n if (response.status === 200) {\n const newTab = {\n ...response?.data?.userTabs[0],\n displayObjectId: report._id,\n };\n setUserTabs((itemsPrev) => [...itemsPrev, newTab]);\n setActiveTabName(newTab.name);\n setActiveTab(TYPE_USER_TABS.REPORT);\n setTabSelected(newTab);\n }\n } catch (error) {\n console.error('API error while creating tab:', error);\n }\n }\n };\n\n const handleSelectRow = (id) => {\n const selectedIndex = selected.indexOf(id);\n let newSelected = [];\n\n if (selectedIndex === -1) {\n newSelected = newSelected.concat(selected, id);\n } else if (selectedIndex === 0) {\n newSelected = newSelected.concat(selected.slice(1));\n } else if (selectedIndex === selected.length - 1) {\n newSelected = newSelected.concat(selected.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelected = newSelected.concat(selected.slice(0, selectedIndex), selected.slice(selectedIndex + 1));\n }\n\n setSelected(newSelected);\n };\n\n const renderRow = (row, index) => (\n <EnhancedTableRow\n key={row._id}\n row={row}\n index={index}\n goToIntendedLocation={() => handleCreateUserReportTab(row)}\n typeClickPath={() => {}}\n isSelected={isSelected}\n myUser={myUser}\n classes={{ row: 'row' }}\n handleSelectRow={handleSelectRow}\n />\n );\n\n const onDeleteReport = async () => {\n let ids = '';\n for (const id of selected) {\n ids += `ids[]=${id}&`;\n }\n\n try {\n setLoadingDeleteReport(true);\n await deleteReport(ids.slice(0, -1)); // Remove the trailing \"&\"\n await onGetReports();\n setLoadingDeleteReport(false);\n setSelected([]);\n setOpenDelete(false);\n toast.success('Report(s) deleted successfully');\n } catch (error) {\n toast.error(error?.response?.data?.message || 'Failed to delete reports');\n setLoadingDeleteReport(false);\n }\n };\n\n const handleReportCreate = (newReport) => {\n setReports((prevReports) => ({\n data: [newReport, ...(prevReports?.data || [])],\n headers: prevReports?.headers || {},\n }));\n };\n\n const handleClickDuplicate = async () => {\n try {\n setLoading(true);\n const { data } = await duplicateReport({ reportIds: selected });\n await onGetReports();\n toast.success(data.message);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n console.log(error);\n }\n };\n\n const handlePageChange = (event, newPage) => {\n setPage(newPage);\n };\n\n return (\n <>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" marginTop=\"30px\">\n <Typography style={{ fontWeight: '500', fontSize: 14 }}>\n All Data ({reports.headers['x-pagination-totalitems'] || 0})\n </Typography>\n <Box display=\"flex\" alignItems=\"center\">\n <DashButton\n data-testid=\"data-button-delete\"\n onClick={() => setOpenDelete(true)}\n disabled={selected.length === 0}\n marginRight=\"10px\"\n >\n Delete\n </DashButton>\n <DashButton\n data-testid=\"data-button-duplicate\"\n onClick={() => handleClickDuplicate()}\n disabled={selected.length === 0}\n marginRight=\"10px\"\n >\n Duplicate\n </DashButton>\n <DashButton\n data-testid=\"data-button-create-report\"\n onClick={() => setOpen(true)}\n marginRight=\"10px\"\n >\n Create Report\n </DashButton>\n </Box>\n </Box>\n\n <Box display=\"flex\" justifyContent=\"space-between\" marginBottom=\"0\">\n <EnhancedTable\n sort={sort}\n setSort={setSort}\n columns={reportColumns}\n rows={reports.data}\n showCheckBox\n setSortBy={setSortBy}\n rowRender={renderRow}\n setChecked={setCheckedReports}\n checked={checkedReports}\n loading={loading}\n page={page}\n tab=\"reports\"\n setPage={setPage}\n onPageChange={handlePageChange}\n selected={selected}\n setSelected={setSelected}\n count={Number(reports.headers['x-pagination-totalitems']) || 0}\n rowsPerPage={rowsPerPage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n />\n </Box>\n\n {loading && (\n <Box display=\"flex\" justifyContent=\"center\" marginTop={2}>\n <CircularProgress />\n </Box>\n )}\n\n <ModalPopUp open={open} setOpen={setOpen}>\n <CreateReport setReports={setReports} setOpen={setOpen} />\n </ModalPopUp>\n\n <ModalPopUp open={openDelete} setOpen={setOpenDelete}>\n <Typography style={{ fontSize: 20, fontWeight: 600, textAlign: 'center' }}>\n Are you sure you want to delete?\n </Typography>\n <Typography style={{ fontSize: 14, textAlign: 'center', marginBottom: '20px' }} variant=\"body2\">\n This action can't be undone!\n </Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\" marginTop=\"20px\">\n <Button style={{ color: '#4b7bff' }} onClick={() => setOpenDelete(false)}>\n CANCEL\n </Button>\n <Button style={{ color: '#4b7bff' }} onClick={onDeleteReport}>\n {loadingDeleteReport ? <CircularProgress color=\"#fff\" size=\"25px\" /> : 'DELETE'}\n </Button>\n </Box>\n </ModalPopUp>\n </>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, Typography, Button, CircularProgress } from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport { useHistory } from 'react-router-dom';\nimport DashButton from '../../components/DashButton';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport EnhancedTable from '../../components/Table';\nimport { Context } from '../../Context';\nimport { createUserTabs, deleteDashboard, getDashboards } from '../../services/unarmed';\nimport CreateDashboard from './CreateDashboard';\nimport EnhancedTableRow from '../../components/EnhancedTableRow';\nimport './styles.css';\nimport { TYPE_USER_TABS, DISPLAY_OBJECT_TYPES } from '../../utils/constants';\n\nconst dashboardColumns = ['Dashboard Name', 'Description', 'Created Date', 'Owner Name', 'Type'];\n\nexport default function DashboardsTableTab({ setUserTabs, userTabs, setActiveTab, setActiveTabName, setTabSelected }) {\n const [loading, setLoading] = useState(false);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [selected, setSelected] = useState([]);\n const [checkedDashboards, setCheckedDashboards] = React.useState(false);\n const [open, setOpen] = useState(false);\n const [openDelete, setOpenDelete] = useState(false);\n const { myUser } = React.useContext(Context);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const [dashboards, setDashboards] = useState([]);\n const [loadingDeleteDashboard, setLoadingDeleteDashboard] = useState(false);\n const history = useHistory();\n const isSelected = (name) => selected.indexOf(name) !== -1;\n\n const onGetDashboards = async () => {\n try {\n setLoading(true);\n const { data, headers } = await getDashboards(page, rowsPerPage, sort, sortBy);\n setDashboards({ data, headers });\n } catch (error) {\n toast.error('Failed to fetch dashboards');\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n onGetDashboards();\n }, [page, rowsPerPage, sort, sortBy]);\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(1);\n };\n\n const handleSelectRow = (id) => {\n const selectedIndex = selected.indexOf(id);\n let newSelected = [];\n\n if (selectedIndex === -1) {\n newSelected = newSelected.concat(selected, id);\n } else if (selectedIndex === 0) {\n newSelected = newSelected.concat(selected.slice(1));\n } else if (selectedIndex === selected.length - 1) {\n newSelected = newSelected.concat(selected.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelected = newSelected.concat(selected.slice(0, selectedIndex), selected.slice(selectedIndex + 1));\n }\n\n setSelected(newSelected);\n };\n\n const handleCreateUserDashboardTab = async (dashboard) => {\n const index = userTabs.findIndex((tab) => dashboard.name.includes(tab.name));\n if (index !== -1) {\n setTabSelected({\n ...userTabs[index],\n displayObjectId: dashboard._id,\n });\n setActiveTabName(userTabs[index].name);\n setActiveTab(TYPE_USER_TABS.DASHBOARD);\n } else {\n const lengthTabs = userTabs.length + 1;\n const userTabsPayload = {\n userTabs: [\n {\n name: dashboard.name,\n type: TYPE_USER_TABS.DASHBOARD,\n position: String(lengthTabs),\n displayObjectType: DISPLAY_OBJECT_TYPES.DASHBOARD,\n displayObjectId: dashboard._id,\n moduleName: 'INSIGHT',\n },\n ],\n };\n\n try {\n const response = await createUserTabs(userTabsPayload);\n if (response.status === 200) {\n const newTab = {\n ...response?.data?.userTabs[0],\n displayObjectId: dashboard._id,\n };\n setUserTabs((itemsPrev) => [...itemsPrev, newTab]);\n setActiveTabName(newTab.name);\n setActiveTab(TYPE_USER_TABS.DASHBOARD);\n setTabSelected(newTab);\n }\n } catch (error) {\n console.error('API error while creating tab:', error);\n }\n }\n };\n\n const renderRow = (row, index) => (\n <EnhancedTableRow\n row={row}\n index={index}\n goToIntendedLocation={handleCreateUserDashboardTab}\n typeClickPath={() => {}}\n isSelected={isSelected}\n myUser={myUser}\n classes={{ row: 'row' }}\n handleSelectRow={handleSelectRow}\n />\n );\n\n const onDeleteDashboard = async () => {\n if (selected.length === 0) {\n toast.error('No dashboards selected');\n return;\n }\n\n try {\n setLoadingDeleteDashboard(true);\n\n const ids = selected.map((id) => id);\n const response = await deleteDashboard({ ids });\n\n if (response.status === 200 || response.status === 207) {\n setLoadingDeleteDashboard(false);\n await onGetDashboards();\n setSelected([]);\n setOpenDelete(false);\n toast.success('Dashboard(s) deleted Successfully');\n }\n } catch (error) {\n toast.error(error?.response?.data?.message || 'An error occurred while deleting dashboards');\n setLoadingDeleteDashboard(false);\n }\n };\n\n return (\n <>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" marginTop=\"30px\">\n <Typography style={{ fontWeight: '500', fontSize: 14 }}>\n All Data ({dashboards?.headers?.['x-pagination-totalitems'] || 0})\n </Typography>\n <Box display=\"flex\" alignItems=\"center\">\n <DashButton\n data-testid=\"data-button-delete\"\n onClick={() => setOpenDelete(true)}\n disabled={selected.length === 0}\n marginRight=\"10px\"\n >\n Delete\n </DashButton>\n <DashButton data-testid=\"data-button-create-report\" onClick={() => setOpen(true)} marginRight=\"10px\">\n Create Dashboard\n </DashButton>\n </Box>\n </Box>\n\n <Box display=\"flex\" justifyContent=\"space-between\" marginBottom=\"0\">\n <EnhancedTable\n sort={sort}\n setSort={setSort}\n columns={dashboardColumns}\n rows={dashboards?.data?.dashboards}\n showCheckBox\n setSortBy={setSortBy}\n rowRender={renderRow}\n setChecked={setCheckedDashboards}\n checked={checkedDashboards}\n loading={loading}\n page={page}\n tab=\"dashboards\"\n setPage={setPage}\n selected={selected}\n setSelected={setSelected}\n count={dashboards?.headers?.['x-pagination-totalitems']}\n rowsPerPage={rowsPerPage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n />\n </Box>\n\n {loading && (\n <Box display=\"flex\" justifyContent=\"center\" marginTop={2}>\n <CircularProgress />\n </Box>\n )}\n\n <ModalPopUp open={open} setOpen={setOpen}>\n <CreateDashboard setDashboards={setDashboards} setOpen={setOpen} />\n </ModalPopUp>\n\n <ModalPopUp open={openDelete} setOpen={setOpenDelete}>\n <Typography style={{ fontSize: 20, fontWeight: 600, textAlign: 'center' }}>\n Are you sure you want to delete?\n </Typography>\n <Typography style={{ fontSize: 14, textAlign: 'center', marginBottom: '20px' }} variant=\"body2\">\n This action can't be undone!\n </Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\" marginTop=\"20px\">\n <Button\n style={{ color: '#4b7bff' }}\n onClick={() => setOpenDelete(false)}\n >\n CANCEL\n </Button>\n <Button\n style={{ color: '#4b7bff' }}\n onClick={onDeleteDashboard}\n >\n {loadingDeleteDashboard ? <CircularProgress color=\"#fff\" size=\"25px\" /> : 'DELETE'}\n </Button>\n </Box>\n </ModalPopUp>\n </>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, Typography, CircularProgress } from '@material-ui/core';\nimport HelpIcon from '@material-ui/icons/Help';\nimport { Link } from 'react-router-dom';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport { Context } from '../../Context';\nimport useOrganization from '../../hooks/useOrganization';\nimport TabsModules from '../../components/TabsModules';\nimport ReportsTableTab from './ReportsTableTab';\nimport DashboardsTableTab from './DashboardsTableTab';\nimport ExploreProfile from './ExploreProfile/ExploreProfile';\nimport DashboardProfile from './DashboardProfile';\nimport { useTabsUtil } from '../../hooks/useTabs';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport { getDashboardbyId } from '../../services/unarmed';\n\nexport default function Insights() {\n const [loading, setLoading] = useState(false);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const { authUser, setActive, myUser } = React.useContext(Context);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const { organization } = useOrganization();\n const [selectedReportId, setSelectedReportId] = useState(null);\n const [dashboard, setDashboard] = useState(null);\n\n useEffect(() => {\n setActive('/insights');\n }, []);\n\n const {\n activeTab,\n setActiveTab,\n tabSelected,\n setTabSelected,\n onGetUserTabs,\n userTabs,\n updateNameTab,\n setUserTabs,\n handleSaveTab,\n handleTabSelection,\n nextPosition,\n setShowReportTable,\n handleTabsReorder,\n handleTabSelectionAction,\n deleteSelectedTab,\n activeTabName,\n setActiveTabName,\n } = useTabsUtil({ moduleName: 'INSIGHT' });\n\n useEffect(() => {\n const fetchDashboardDetails = async (dashboardId) => {\n if (!dashboardId) return;\n try {\n setLoading(true);\n const dashboardData = await getDashboardbyId(dashboardId);\n setDashboard(dashboardData.data);\n } catch (error) {\n console.error('Error fetching dashboard details:', error);\n } finally {\n setLoading(false);\n }\n };\n\n if (activeTab !== TYPE_USER_TABS.DASHBOARD) {\n setDashboard(null);\n return;\n }\n\n if (activeTab === TYPE_USER_TABS.DASHBOARD && tabSelected?.displayObjectId) {\n fetchDashboardDetails(tabSelected.displayObjectId);\n }\n }, [activeTab, tabSelected]);\n\n return (\n <>\n {organization && <UpgradeModal open={!organization?.features?.dashboard?.insights?.enabled} />}\n <Box className={`container ${!organization?.features?.dashboard?.insights?.enabled ? 'blur' : ''}`}>\n <Box>\n <Typography variant=\"h5\">Insights</Typography>\n </Box>\n <div className=\"right-aligned-row\">\n <HelpIcon htmlColor=\"#2E66FE\" fontSize=\"inherit\" style={{ marginRight: 8 }} />\n <Typography className=\"description-text\" style={{ fontSize: '12px' }}>\n Help? See our{' '}\n <Link to=\"/insights-docs\">\n <span className=\"documentation-link\">Documentation</span>\n </Link>\n </Typography>\n </div>\n\n <TabsModules\n setTabs={setUserTabs}\n updateNameTab={updateNameTab}\n tabSelected={tabSelected}\n activeTabName={activeTabName}\n activeTab={activeTab}\n setTabSelected={setTabSelected}\n setActiveTab={setActiveTab}\n setActiveTabName={setActiveTabName}\n tabs={userTabs}\n navigateToDataPage={() => {}}\n saveTab={handleSaveTab}\n onTabSelect={handleTabSelection}\n nextPosition={nextPosition}\n saveTabPositions={handleTabsReorder}\n onTabAction={handleTabSelectionAction}\n deleteTab={deleteSelectedTab}\n moduleName={'INSIGHT'}\n />\n\n {activeTab === TYPE_USER_TABS.REPORTS && (\n <ReportsTableTab\n selectedReportId={selectedReportId}\n setSelectedReportId={setSelectedReportId}\n ReportId={tabSelected?.displayObjectId}\n setTabSelected={setTabSelected}\n tabSelected={tabSelected}\n setActiveTab={setActiveTab}\n setActiveTabName={setActiveTabName}\n userTabs={userTabs}\n setUserTabs={setUserTabs}\n />\n )}\n\n {activeTab === TYPE_USER_TABS.REPORT && (\n <Box marginTop=\"30px\">\n <Box className=\"content-container\">\n <ExploreProfile reportId={tabSelected?.displayObjectId} />\n </Box>\n </Box>\n )}\n\n {activeTab === TYPE_USER_TABS.DASHBOARD && dashboard && (\n <DashboardProfile dashboardId={tabSelected?.displayObjectId} dashboard={dashboard} />\n )}\n\n {activeTab === TYPE_USER_TABS.DASHBOARDS_LIST && (\n <DashboardsTableTab\n handleSaveTab={handleSaveTab}\n setActiveTab={setActiveTab}\n setUserTabs={setUserTabs}\n userTabs={userTabs}\n setActiveTabName={setActiveTabName}\n setTabSelected={setTabSelected}\n />\n )}\n\n {loading && (\n <Box display=\"flex\" justifyContent=\"center\" marginTop={2}>\n <CircularProgress />\n </Box>\n )}\n </Box>\n </>\n );\n}\n","import { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\nexport default history;\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport styled from 'styled-components';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\nimport { useDrag } from 'react-dnd';\nimport { QUESTION_BANK } from '../../formEngine/utils/constants';\n\nconst CntQuestion = styled.div`\n display: flex;\n width: 100%;\n border-radius: 4px;\n background-color: white;\n height: auto;\n min-height: 50px;\n max-height: auto;\n cursor: pointer;\n margin-bottom: 10px;\n`;\n\nconst CntCard = styled.div`\n display: flex;\n width: 95%;\n padding-right: 10px;\n align-items: center;\n`;\n\nconst CntDrag = styled.div`\n width: 5%;\n min-height: 50px;\n max-height: auto;\n background-color: #6d738526;\n opacity: 1;\n border-start-start-radius: 4px;\n border-end-start-radius: 4px;\n margin-right: 5px;\n`;\n\nconst CntOne = styled.div`\n width: 95%;\n`;\n\nconst CntRequired = styled.div`\n display: flex;\n background-color: ${(props) => (props.isActive ? '#fc0000' : 'transparent')};\n border-radius: 200px;\n border: ${(props) => (props.isActive ? 0 : 1)}px solid black;\n width: 18px;\n height: 18px;\n justify-content: center;\n align-items: center;\n`;\n\nconst CntContent = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n // border: 1px solid red;\n`;\n\nconst PointCnt = styled.div`\n background-image: radial-gradient(\n circle,\n currentcolor 1.2px,\n transparent 1.2px\n );\n background-position-y: bottom;\n color: #d6d6d3;\n background-size: 1ex 6px;\n background-repeat: repeat-x repeat-y;\n height: 100%;\n`;\n\nconst TextShow = styled.p`\n color: #2e66fe;\n font-size: 12px;\n`;\n\nconst TextTitle = styled.p`\n margin: 0px;\n padding: 0px;\n font-size: 14px;\n`;\n\nconst TextOptions = styled.p`\n margin: 0px;\n padding: 0px;\n padding-left: 10px;\n font-size: 11px;\n color: #2e66fe;\n`;\n\nconst TextRequired = styled.p`\n color: ${(props) => (props.isActive ? 'white' : 'black')};\n font-weight: 700;\n font-size: 12px;\n margin: 0px;\n padding: 0px;\n`;\n\nexport default function QuestionBankComponent({\n data,\n handleToggleOptions,\n questionRequiredActive,\n isDefaultForm,\n}) {\n const [{ opacity }, drag] = useDrag({\n item: {\n type: QUESTION_BANK,\n components: data.components,\n id: data._id,\n componentType: data.type,\n },\n type: QUESTION_BANK,\n collect: (monitor) => ({\n opacity: monitor.isDragging() ? 0.4 : 1,\n }),\n });\n\n const renderQuestionBankContent = () => (\n <CntQuestion>\n <CntDrag>\n <PointCnt />\n </CntDrag>\n <CntCard>\n <CntContent>\n <CntOne>\n <TextTitle>{data.label}</TextTitle>\n {data.components[0]?.data?.options?.length > 0 ? (\n <>\n <Box\n onClick={handleToggleOptions}\n display=\"flex\"\n alignItems=\"center\"\n >\n {data.toggleOptions ? (\n <ArrowDropDownIcon htmlColor=\"#2E66FE\" />\n ) : (\n <ArrowRightIcon htmlColor=\"#2E66FE\" />\n )}\n <TextShow>Show fields</TextShow>\n </Box>\n {data.toggleOptions\n ? data.components[0]?.data?.options.map((item) => (\n <TextOptions>\n - {typeof item === 'string' ? item : item.label}\n </TextOptions>\n ))\n : null}\n </>\n ) : null}\n {data.showAnswers ? (\n <Box display=\"flex\" alignItems=\"center\">\n <ArrowRightIcon htmlColor=\"#2E66FE\" />\n <TextShow>Show answers</TextShow>\n </Box>\n ) : null}\n </CntOne>\n {data.required ? (\n <CntRequired title=\"Is required\" isActive={questionRequiredActive}>\n <TextRequired isActive={questionRequiredActive}>¡</TextRequired>\n </CntRequired>\n ) : null}\n </CntContent>\n </CntCard>\n </CntQuestion>\n );\n\n return isDefaultForm ? (\n <div className=\"sideBarItem\">{renderQuestionBankContent()}</div>\n ) : (\n <div className=\"sideBarItem\" ref={drag} style={{ opacity }}>\n {renderQuestionBankContent()}\n </div>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Box, Divider, makeStyles, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport QuestionBankComponent from './QuestionBankComponent';\nimport { getQuestionBank } from '../../services/unarmed';\n\nconst CntRequired = styled.div`\n display: flex;\n width: 100%;\n border-radius: 4px;\n background-color: #fdefef;\n height: auto;\n min-height: 50px;\n max-height: auto;\n cursor: pointer;\n margin-bottom: 10px;\n`;\n\nconst CntText = styled.div`\n display: flex;\n width: 98%;\n padding-right: 10px;\n align-items: center;\n`;\n\nconst TextRequired = styled.p`\n margin: 0px;\n padding: 0px;\n font-size: 14px;\n`;\n\nconst LineBorder = styled.div`\n width: 2%;\n min-height: 50px;\n max-height: auto;\n background-color: #fc0000;\n opacity: 1;\n border-start-start-radius: 4px;\n border-end-start-radius: 4px;\n margin-right: 5px;\n`;\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n maxWidth: 340,\n minWidth: 340,\n borderLeft: '1px solid #6D738526',\n height: 'calc(116.1vh - 64px)',\n overflowY: 'auto',\n scrollbarWidth: 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n}));\n\nexport default function QuestionBank({\n questionRequiredActive,\n questionsBank,\n handleToggleOptions,\n isDefaultForm,\n}) {\n const classes = useStyles();\n const questionsVisible = questionsBank.filter((res) => res.isVisible);\n return (\n <Box className={classes.container}>\n <Box padding=\"12px 24px\">\n <Typography\n style={{\n fontSize: 16,\n fontWeight: '600',\n }}\n >\n Question Bank\n </Typography>\n </Box>\n <Divider />\n <Box padding=\"12px 24px\" className={classes.body}>\n <Typography\n style={{\n fontSize: 14,\n fontWeight: '400',\n color: '#000000AD',\n }}\n >\n Drag a question to form to add\n </Typography>\n <Box marginTop={1}>\n {questionRequiredActive ? (\n <CntRequired>\n <LineBorder />\n <CntText>\n <TextRequired>\n You haven’t added the required questions yet.\n </TextRequired>\n </CntText>\n </CntRequired>\n ) : null}\n {questionsVisible.map((res) => (\n <QuestionBankComponent\n questionRequiredActive={questionRequiredActive}\n data={res}\n key={res._id}\n isDefaultForm={isDefaultForm}\n handleToggleOptions={() => handleToggleOptions(res._id)}\n />\n ))}\n </Box>\n </Box>\n </Box>\n );\n}\n","import { Box, Switch, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport DnDItem from '../../components/DnDItem';\nimport Input from '../../components/Input';\nimport { onChangeDnDValue } from '../../formEngine/utils/utls';\n\nexport default function Page({\n index,\n dragType,\n onMoveComponent,\n moveItem,\n setPages,\n onChangePages,\n page,\n handleDeletePage,\n selected,\n onSelectPage,\n disablePageOptions,\n isDefaultForm,\n lockIconOnDefaultForm = false,\n withToggle = false,\n}) {\n const [edit, setEdit] = useState(false);\n\n const renderPageContent = () =>\n edit ? (\n <Box\n width=\"100%\"\n maxWidth={434}\n display=\"flex\"\n alignItems=\"center\"\n marginBotom=\"10px\"\n onKeyPress={(e) => {\n const keycode = e.keyCode ? e.keyCode : e.which;\n if (keycode === 13) {\n setEdit(false);\n }\n }}\n >\n <Input\n placeholder={`${page.label} ${index + 1}`}\n value={page?.name}\n onChange={(e) => onChangeDnDValue(e, setPages, index, 'name', false, onChangePages)}\n />\n </Box>\n ) : (\n <PageTransition\n width=\"100%\"\n maxWidth={434}\n display=\"flex\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n justifyContent=\"space-between\"\n marginBotom=\"10px\"\n selected={selected}\n style={{ background: '#fff' }}\n >\n <Typography\n style={{\n fontSize: 14,\n color: 'rgba(0, 0, 0, 0.87',\n fontFamily: 'Roboto',\n padding: '10px 16px',\n width: '100%',\n }}\n onClick={onSelectPage}\n >\n {page?.name || `${page.label} ${index + 1}`}\n </Typography>\n {!isDefaultForm && (\n <>\n <Box display=\"flex\" alignItems=\"center\" className=\"actions\" style={{ padding: '10px 16px' }}>\n <EditIcon style={{ fontSize: 14 }} htmlColor=\"#6D7385\" onClick={() => setEdit(true)} />\n <DeleteIcon\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 10, fontSize: 14 }}\n onClick={!disablePageOptions && handleDeletePage}\n />\n </Box>\n {withToggle && (\n <Switch\n color=\"primary\"\n checked={page?.active}\n onChange={(e) => {\n setPages((_pages) => {\n const newPages = _pages.map((_page, _pageIndex) => {\n if (index === _pageIndex) {\n return { ...page, active: e.target.checked };\n }\n return {\n ..._page,\n };\n });\n\n onChangePages(newPages);\n\n return newPages;\n });\n }}\n />\n )}\n </>\n )}\n </PageTransition>\n );\n\n return (\n <Box onBlur={() => setEdit(false)}>\n {isDefaultForm ? (\n <div key={index} style={{ display: 'flex', alignItems: 'center', justifyContent: 'between', marginBottom: 10 }}>\n {lockIconOnDefaultForm && <LockOutlinedIcon style={{ marginRight: 7 }} />}\n {renderPageContent()}\n </div>\n ) : (\n <DnDItem onMoveComponent={onMoveComponent} dragType={dragType} key={index} moveItem={moveItem} index={index}>\n {renderPageContent()}\n </DnDItem>\n )}\n </Box>\n );\n}\n\nPage.propTypes = {\n index: PropTypes.number.isRequired,\n onMoveComponent: PropTypes.func,\n dragType: PropTypes.string.isRequired,\n moveItem: PropTypes.func.isRequired,\n setPages: PropTypes.func.isRequired,\n onChangePages: PropTypes.func.isRequired,\n page: PropTypes.object.isRequired,\n handleDeletePage: PropTypes.func.isRequired,\n selected: PropTypes.bool.isRequired,\n onSelectPage: PropTypes.func.isRequired,\n disablePageOptions: PropTypes.bool.isRequired,\n isDefaultForm: PropTypes.bool.isRequired,\n lockIconOnDefaultForm: PropTypes.bool,\n withToggle: PropTypes.bool,\n};\n\nexport const PageTransition = styled(Box)`\n cursor: pointer;\n ${(props) => props.selected && `border: 1px solid #2E66FECC`};\n .actions {\n transition: opacity 0.3s 0s ease-in-out;\n\n opacity: 0;\n }\n :hover .actions {\n transition: opacity 0.3s 0s ease-in-out;\n opacity: 1;\n }\n`;\n","import { Box, Divider, makeStyles, MenuItem, Typography } from '@material-ui/core';\nimport React, { Fragment } from 'react';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport shortid from 'shortid';\nimport PopperPortal from './PopperPortal';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n padding: 28,\n minHeight: 195,\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n },\n ButtonText: {\n background: '#2E66FE 0% 0% no-repeat padding-box',\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n padding: '10px 20px',\n color: '#fff',\n fontSize: 14,\n fontWeight: '500',\n width: 152,\n borderRight: '1px solid #fff',\n textAlign: 'center',\n cursor: 'pointer',\n },\n dropdownButton: {\n background: '#2E66FE 0% 0% no-repeat padding-box',\n width: 32,\n padding: '10px 20px',\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n cursor: 'pointer',\n position: 'relative',\n },\n altText: {\n fontSize: 14,\n color: '#000000AD',\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n \n}));\n\nexport default function AddComponent({ open, setOpen, renderComponentsArr, handleSelectComponent }) {\n const classes = useStyles();\n return (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\" margin=\"34px 0\">\n <Box display=\"flex\" alignItems=\"center\" onClick={() => setOpen(!open)}>\n <Box className={classes.ButtonText}>ADD QUESTION</Box>\n <Box className={classes.dropdownButton}>\n <ArrowDropDownIcon htmlColor=\"#fff\" />\n <PopperPortal open={open} setOpen={setOpen} left=\"0px\" top=\"45px\">\n <Box width={249} borderRadius={4} style={{ background: '#fff' }} boxShadow=\"0px 3px 6px #0000000D\">\n {renderComponentsArr().map((component, idx) => (\n <Fragment key={idx}>\n {component.divider && <Divider style={{ margin: '8px 0' }} />}\n <MenuItem\n key={idx}\n onClick={() =>\n handleSelectComponent({\n name: component.name,\n type: component.type,\n id: shortid.generate(),\n data: component.data,\n })\n }\n >\n <Box display=\"flex\" alignItems=\"center\">\n <component.Icon fill=\"#6D7385\" htmlColor=\"#6D7385\" style={{ fontSize: 15 }} />\n <Typography style={{ marginLeft: 10, fontSize: 14 }}>{component.name}</Typography>\n </Box>\n </MenuItem>\n </Fragment>\n ))}\n </Box>\n </PopperPortal>\n </Box>\n </Box>\n </Box>\n );\n}\n","import { Box, makeStyles, Tabs, Switch } from '@material-ui/core';\nimport React, { useState } from 'react';\n\nimport { withStyles } from '@material-ui/styles';\nimport { blue } from '@material-ui/core/colors';\n\nimport TabPanel from '../../../components/TabPanel';\nimport { TabComp } from '../../CaseDetails/CaseDetails';\n\nexport const useStylesStaticWrapper = makeStyles(() => ({\n container: {\n width: '100%',\n borderRadius: 5,\n border: '1px solid #2E66FE33',\n },\n header: {\n background: '#fff',\n borderRadius: '5px 5px 0 0',\n borderBottom: '1px solid #2E66FE1A',\n },\n body: {\n background: '#F9FAFD80',\n borderRadius: 5,\n },\n button: {\n background: '#1F63FF',\n textTransform: 'capitalize',\n cursor: 'pointer',\n minWidth: 36,\n boxShadow: 'unset',\n color: '#fff',\n padding: '6px 16px',\n '&:hover': {\n background: '#1F63FF',\n boxShadow: 'unset',\n },\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n}));\n\nexport function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n}\n\nexport const CustomSwitch = withStyles({\n switchBase: {\n '&$checked': {\n color: blue.A700,\n },\n '&$checked + $track': {\n backgroundColor: blue.A700,\n },\n },\n checked: {},\n track: {},\n})(Switch);\n\nexport default function StaticWrapper({ renderSettings = null, renderPreview = () => 'Preview', visible }) {\n const classes = useStylesStaticWrapper();\n const [value, setValue] = useState(0);\n\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n\n return (\n <div className={classes.dndContainer}>\n <Box style={{ padding: '0 20px', width: '100%' }}>\n <Box className={classes.container}>\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" className={classes.header}>\n <Box>\n <Tabs\n value={value}\n onChange={handleChange}\n aria-label=\"simple tabs example\"\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <TabComp label=\"Settings\" {...a11yProps(0)} />\n {renderPreview && <TabComp label=\"Preview\" {...a11yProps(1)} />}\n </Tabs>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" style={{ paddingRight: 30 }}>\n <CustomSwitch checked={visible.value} onChange={visible.onChange} />\n </Box>\n </Box>\n <Box className={classes.body}>\n <TabPanel value={value} index={0} marginBottom={0}>\n {renderSettings()}\n </TabPanel>\n {renderPreview && (\n <TabPanel value={value} index={1} marginBottom={0}>\n {renderPreview()}\n </TabPanel>\n )}\n </Box>\n </Box>\n </Box>\n </div>\n );\n}\n","import { Box, makeStyles, MenuItem, Typography } from '@material-ui/core';\nimport React from 'react';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport PopperPortal from '../../../components/PopperPortal';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n padding: 28,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n },\n ButtonText: {\n background: '#2E66FE 0% 0% no-repeat padding-box',\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n padding: '10px 20px',\n color: '#fff',\n fontSize: 14,\n fontWeight: '500',\n width: 152,\n borderRight: '1px solid #fff',\n textAlign: 'center',\n },\n dropdownButton: {\n background: '#2E66FE 0% 0% no-repeat padding-box',\n width: 32,\n padding: '10px 20px',\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n cursor: 'pointer',\n position: 'relative',\n },\n altText: {\n fontSize: 14,\n color: '#000000AD',\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n}));\n\nconst tags = [\n {\n text: 'Date',\n },\n {\n text: 'Number',\n },\n {\n text: 'Condition',\n },\n {\n text: 'Text',\n },\n];\n\nexport default function SelectableButton({ text, onClick, options }) {\n const classes = useStyles();\n\n const [open, setOpen] = React.useState(false);\n\n const handleSelect = (tag) => {\n if (tag === 'date') {\n onClick({\n tagType: 'date',\n format: options[tag]?.defaultFormat || '',\n separator: options[tag]?.defaultSeparator || '',\n });\n }\n if (tag === 'number') {\n onClick({\n tagType: 'number',\n value: options[tag]?.defaultConsecutive ? 'consecutive_number' : 'random_number' || '',\n length: options[tag]?.defaultLength || '',\n });\n }\n if (tag === 'condition') {\n onClick({\n tagType: 'condition',\n conditions: [\n {\n when: '',\n equals: '',\n value: '',\n },\n ],\n });\n }\n if (tag === 'text') {\n onClick({\n tagType: 'text',\n value: '',\n });\n }\n setOpen(false);\n };\n return (\n <Box margin=\"34px 0\">\n <Box display=\"flex\" alignItems=\"center\" onClick={() => setOpen(!open)} style={{ cursor: 'pointer' }}>\n <Box className={classes.ButtonText}>{text}</Box>\n <Box className={classes.dropdownButton}>\n <ArrowDropDownIcon htmlColor=\"#fff\" />\n <PopperPortal open={open} setOpen={setOpen} left=\"0px\" top=\"45px\">\n <Box width={249} borderRadius={4} style={{ background: '#fff' }} boxShadow=\"0px 3px 6px #0000000D\">\n {tags.map((tag, index) => (\n <MenuItem\n key={index}\n onClick={() => {\n handleSelect(tag.text.toLowerCase());\n }}\n >\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Typography variant=\"body1\" style={{ fontSize: 14 }}>\n {tag.text}\n </Typography>\n </Box>\n </MenuItem>\n ))}\n </Box>\n </PopperPortal>\n </Box>\n </Box>\n </Box>\n );\n}\n","import { Box, Typography } from '@material-ui/core';\nimport React from 'react';\n\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nexport default function DndLogicItem({ title, children, onRemove, onMouseLeave }) {\n return (\n <Box\n padding=\"15px 10px\"\n borderRadius={4}\n border=\"1px solid #f2f2f2\"\n bgcolor=\"#fff\"\n marginBottom={2}\n width=\"100%\"\n onMouseLeave={onMouseLeave}\n >\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 10 }}>\n <Typography variant=\"body1\" style={{ fontSize: 14, fontWeight: '600' }}>\n {title}\n </Typography>\n </Box>\n <DeleteIcon htmlColor=\"rgba(109, 115, 133)\" onClick={onRemove} style={{ cursor: 'pointer' }} />\n </Box>\n\n <Box marginTop={2} marginLeft={4}>\n {children}\n </Box>\n </Box>\n );\n}\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport SelectEngine from '../../../components/Select';\nimport DndLogicItem from './DndLogicItem';\n\nexport default function Date({ onChange, setLogicItems, index, onRemoveItem, logic, options }) {\n return (\n <DndLogicItem title=\"Date\" onRemove={onRemoveItem}>\n <Box display=\"flex\" style={{ gap: 20 }} alignItems=\"center\">\n <SelectEngine\n options={options?.formats?.map((format) => ({ value: format, text: format })) || []}\n onChange={(e) => {\n onChange(e, setLogicItems, index, 'format');\n }}\n value={logic?.format}\n width={200}\n />\n\n <SelectEngine\n options={options?.separators?.map((sp) => ({ value: sp.value, text: sp.label })) || []}\n onChange={(e) => {\n onChange(e, setLogicItems, index, 'separator');\n }}\n value={logic?.separator}\n width={200}\n />\n </Box>\n </DndLogicItem>\n );\n}\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport SelectEngine from '../../../components/Select';\nimport DndLogicItem from './DndLogicItem';\n\nexport default function Number({ onChange, setLogicItems, index, onRemoveItem, logic }) {\n return (\n <DndLogicItem title=\"Number\" onRemove={onRemoveItem}>\n <Box display=\"flex\" style={{ gap: 20 }} alignItems=\"center\">\n <SelectEngine\n options={[\n { text: 'Consecutive number', value: 'consecutive_number' },\n { text: 'Random number', value: 'random_number' },\n ]}\n onChange={(e) => {\n onChange(e, setLogicItems, index, 'value');\n }}\n value={logic?.value}\n width={200}\n />\n <SelectEngine\n options={[\n { text: '1', value: 1 },\n { text: '2', value: 2 },\n { text: '3', value: 3 },\n { text: '4', value: 4 },\n { text: '5', value: 5 },\n { text: '6', value: 6 },\n { text: '7', value: 7 },\n { text: '8', value: 8 },\n { text: '9', value: 9 },\n { text: '10', value: 10 },\n ]}\n onChange={(e) => {\n onChange(e, setLogicItems, index, 'length');\n }}\n value={logic?.length}\n width={200}\n />\n </Box>\n </DndLogicItem>\n );\n}\n","import { Box, MenuItem, Typography } from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport React from 'react';\nimport PopperPortal from '../../../components/PopperPortal';\n\nexport default function ConditionalSelect({ options = [], onChange, value }) {\n const [open, setOpen] = React.useState(false);\n\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n <Box style={{ postion: 'relative' }}>\n <Box\n height={40}\n minWidth={200}\n border=\"1px solid #0000001f\"\n borderRadius=\"4px\"\n padding=\"2.5px 10px\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n style={{ cursor: 'pointer' }}\n onClick={() => setOpen(true)}\n >\n {value ? (\n <Typography>{value}</Typography>\n ) : (\n <Typography style={{ fontSize: 14, color: '#00000040' }}>Select An Option</Typography>\n )}\n\n <ArrowDropDownIcon htmlColor=\"rgba(0, 0, 0, 0.54)\" />\n </Box>\n\n <PopperPortal setOpen={setOpen} open={open}>\n <Box padding=\"15px\" width=\"280px\" style={{ background: '#fff' }}>\n {options?.map((option) => (\n <Box key={option?.id} marginBottom={2}>\n <Typography variant=\"body1\" style={{ fontSize: 14, fontWeight: '400' }}>\n {option?.category}\n </Typography>\n <MenuItem\n onClick={() => {\n onChange(option?.id, 'when');\n handleClose();\n }}\n style={{ fontWeight: 500 }}\n >\n {option?.question}\n </MenuItem>\n </Box>\n ))}\n </Box>\n </PopperPortal>\n </Box>\n );\n}\n","import { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nimport SelectEngine from '../../../components/Select';\nimport DndLogicItem from './DndLogicItem';\n\nimport Input from '../../../components/Input';\nimport AddMore from '../../../components/AddMore';\nimport ConditionalSelect from './ConditionalSelect';\n\nconst getDependentOptions = (options = [], condition) => {\n if (options.length === 0) return [];\n const dependentOptions = options?.find((option) => option?.id === condition?.when);\n return dependentOptions?.values?.map((option) => ({ value: option, text: option }));\n};\n\nconst getConditionalSelectValue = (options = [], condition) => {\n const value = options.find((option) => option?.id === condition?.when);\n return value?.question;\n};\n\nconst CaseNumberConditional = ({ options = [], onChange, condition, onRemoveSubCondition }) => (\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 10, flexWrap: 'wrap', marginBottom: 20 }}>\n <CancelIcon style={{ fontSize: 14, cursor: 'pointer' }} onClick={onRemoveSubCondition} />\n <Typography variant=\"body1\" style={{ fontSize: 14 }}>\n When\n </Typography>\n <ArrowRightAltIcon style={{ fontSize: 14 }} />\n <Box style={{ position: 'relative' }}>\n <ConditionalSelect options={options} onChange={onChange} value={getConditionalSelectValue(options, condition)} />\n </Box>\n <Typography variant=\"body1\" style={{ fontSize: 14 }}>\n =\n </Typography>\n <SelectEngine\n options={getDependentOptions(options, condition) || []}\n onChange={(e) => {\n onChange(e.target.value, 'equals');\n }}\n width={180}\n value={condition?.equals}\n />\n <Typography variant=\"body1\" style={{ fontSize: 14 }}>\n Value\n </Typography>\n <ArrowRightAltIcon style={{ fontSize: 14 }} />\n <Input\n placeholder=\"Add a value\"\n style={{ width: 200 }}\n onChange={(e) => {\n onChange(e.target.value, 'value');\n }}\n value={condition?.value}\n />\n </Box>\n);\n\nexport default function Condition({ setLogicItems, index, onRemoveItem, logic, options }) {\n const onChange = (subIndex, value, prop) => {\n setLogicItems((prev) => {\n const newLogic = [...prev];\n newLogic[index].conditions[subIndex][prop] = value;\n return newLogic;\n });\n };\n\n const onAddMore = () => {\n setLogicItems((prev) => {\n const newLogic = [...prev];\n newLogic[index].conditions.push({ when: '', equals: '', value: '' });\n return newLogic;\n });\n };\n\n const onRemoveSubCondition = (idx) => {\n setLogicItems((prev) => {\n const newLogic = [...prev];\n newLogic[index].conditions.splice(idx, 1);\n return newLogic;\n });\n };\n\n return (\n <DndLogicItem title=\"Condition\" onRemove={onRemoveItem}>\n {logic?.conditions?.map((condition, idx) => (\n <CaseNumberConditional\n key={idx}\n options={options}\n onChange={(value, prop) => onChange(idx, value, prop)}\n condition={condition}\n onRemoveSubCondition={() => onRemoveSubCondition(idx)}\n />\n ))}\n <AddMore\n dataTestId=\"forms-button-add-new-condition\"\n text=\"Add new condition\"\n marginLeft=\"60px\"\n onClick={onAddMore}\n />\n </DndLogicItem>\n );\n}\n","import React from 'react';\n\nimport DndLogicItem from './DndLogicItem';\n\nimport Input from '../../../components/Input';\n\nexport default function Text({ onChange, setLogicItems, index, onRemoveItem, logic }) {\n return (\n <DndLogicItem title=\"Text\" onRemove={onRemoveItem}>\n <Input\n placeholder=\"Add a value\"\n style={{ width: 200 }}\n onChange={(e) => {\n onChange(e, setLogicItems, index, 'value');\n }}\n value={logic?.value}\n />\n </DndLogicItem>\n );\n}\n","import { Box, Checkbox, Typography, Divider } from '@material-ui/core';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\n// import Input from '../../components/Input';\nimport { CustomSwitch } from '../../../formEngine/components/WrapperComponent';\nimport PreviewLabel from '../../../formEngine/utils/Label';\nimport SelectableButton from './SelectableButton';\nimport Date from './Date';\nimport Number from './Number';\nimport Condition from './Condition';\nimport Text from './Text';\nimport DnDArea from '../../../components/DnDArea';\nimport DnDItem from '../../../components/DnDItem';\nimport { onChangeDnDValue, onRemoveDnDItem } from '../../../formEngine/utils/utls';\nimport { getCaseNumberPreview, getFormTypeOptions } from '../../../services/unarmed';\n\nconst CaseNumberItemSpacing = ({ title, children }) => (\n <Box display=\"flex\" alignItems=\"center\" marginBottom={1}>\n <Typography variant=\"body1\" style={{ width: 160 }}>\n {title}\n </Typography>\n {children}\n </Box>\n);\n\nexport default function CaseNumberSettings({\n responseValidation,\n responseTypeValidation,\n caseNumber,\n setCaseNumber,\n id,\n}) {\n const [logicItems, setLogicItems] = React.useState([]);\n const [logicOptions, setLogicOptions] = React.useState(null);\n const [preview, setPreview] = React.useState('');\n\n useEffect(() => {\n const onGetFormTypeOptons = async () => {\n try {\n const { data } = await getFormTypeOptions(id);\n setLogicOptions(data?.logic?.tagTypes);\n } catch (error) {\n console.log(error);\n }\n };\n try {\n onGetFormTypeOptons(\n logicItems.map((item) => {\n if (item?.tagType === 'condition') {\n return {\n tagType: item?.tagType,\n config: {\n rules: item?.conditions,\n },\n };\n }\n if (item?.tagType === 'number') {\n return {\n tagType: item?.tagType,\n config: {\n consecutive: item?.value === 'consecutive_number',\n length: item?.length,\n },\n };\n }\n if (item?.tagType === 'date') {\n return {\n tagType: item?.tagType,\n config: {\n format: item?.format,\n separator: item?.separator,\n },\n };\n }\n\n return {\n tagType: item?.tagType,\n config: {\n value: item?.value,\n },\n };\n })\n );\n } catch (error) {\n console.log(error);\n }\n }, [id, logicItems]);\n\n useEffect(() => {\n setCaseNumber((prevState) => {\n const caseNumerCopy = { ...prevState };\n\n caseNumerCopy.automate.logic = logicItems;\n\n const onGetCaseNumberPreview = async () => {\n try {\n const { data } = await getCaseNumberPreview(\n caseNumerCopy?.automate?.logic.map((item) => {\n if (item?.tagType === 'condition') {\n return {\n tagType: item?.tagType,\n config: {\n rules: item?.conditions,\n },\n };\n }\n if (item?.tagType === 'number') {\n return {\n tagType: item?.tagType,\n config: {\n consecutive: item?.value === 'consecutive_number',\n length: item?.length,\n },\n };\n }\n if (item?.tagType === 'date') {\n return {\n tagType: item?.tagType,\n config: {\n format: item?.format,\n separator: item?.separator,\n },\n };\n }\n\n return {\n tagType: item?.tagType,\n config: {\n value: item?.value,\n },\n };\n })\n );\n setPreview(data?.preview);\n } catch (error) {\n console.log(error);\n }\n };\n if (caseNumerCopy?.automate?.enabled) {\n onGetCaseNumberPreview();\n }\n return caseNumerCopy;\n });\n }, [logicItems, setCaseNumber]);\n\n useEffect(() => {\n if (caseNumber) {\n setLogicItems(caseNumber?.automate?.logic);\n }\n }, [caseNumber]);\n\n const handleOnChangeQuestion = (e, prop) => {\n setCaseNumber((prevState) => {\n const checkQuestionCopy = { ...prevState };\n\n checkQuestionCopy.automate[prop] = e.target.checked;\n\n return checkQuestionCopy;\n });\n };\n\n const renderLogicItem = (logicType, index, logic) => {\n switch (logicType) {\n case 'date':\n return (\n <Date\n onChange={onChangeDnDValue}\n setLogicItems={setLogicItems}\n index={index}\n onRemoveItem={() => onRemoveDnDItem(logicItems, setLogicItems, index)}\n logic={logic}\n options={logicOptions?.date}\n />\n );\n case 'number':\n return (\n <Number\n onChange={onChangeDnDValue}\n setLogicItems={setLogicItems}\n index={index}\n onRemoveItem={() => onRemoveDnDItem(logicItems, setLogicItems, index)}\n logic={logic}\n options={logicOptions?.number}\n />\n );\n case 'condition':\n return (\n <Condition\n onChange={onChangeDnDValue}\n setLogicItems={setLogicItems}\n index={index}\n onRemoveItem={() => onRemoveDnDItem(logicItems, setLogicItems, index)}\n logic={logic}\n options={logicOptions?.condition?.conditionsFields}\n />\n );\n case 'text':\n return (\n <Text\n onChange={onChangeDnDValue}\n setLogicItems={setLogicItems}\n index={index}\n onRemoveItem={() => onRemoveDnDItem(logicItems, setLogicItems, index)}\n logic={logic}\n options={logicOptions?.text}\n />\n );\n default:\n return null;\n }\n };\n\n const handleAddLogicItem = (item) => {\n setLogicItems((prevState) => [...prevState, item]);\n };\n\n const renderer = (moveItem) =>\n logicItems?.map((logic, index) => (\n <DnDItem key={index} moveItem={moveItem} index={index}>\n {renderLogicItem(logic.tagType, index, logic)}\n </DnDItem>\n ));\n\n return (\n <Box>\n <PreviewLabel question=\"Case number\" qNumber={1} />\n <Box marginLeft={4}>\n <CaseNumberItemSpacing title=\"Automate\">\n <CustomSwitch\n checked={caseNumber?.automate?.enabled}\n onChange={(e) => handleOnChangeQuestion(e, 'enabled')}\n />\n </CaseNumberItemSpacing>\n </Box>\n {caseNumber?.automate?.enabled && (\n <>\n <Typography variant=\"body1\" style={{ fontWeight: 'bold', marginTop: 10 }}>\n General\n </Typography>\n <Box marginLeft={4}>\n <CaseNumberItemSpacing title=\"Manual Override\">\n <CustomSwitch\n checked={caseNumber?.automate?.manualOverride}\n onChange={(e) => handleOnChangeQuestion(e, 'manualOverride')}\n />\n </CaseNumberItemSpacing>\n <CaseNumberItemSpacing title=\"Use Tracking Number\">\n <CustomSwitch\n checked={caseNumber?.automate?.useTrackingNumber}\n onChange={(e) => handleOnChangeQuestion(e, 'useTrackingNumber')}\n />\n </CaseNumberItemSpacing>\n </Box>\n {!caseNumber?.automate?.useTrackingNumber && (\n <>\n <Typography variant=\"body1\" style={{ fontWeight: 'bold', marginTop: 30, marginBottom: 10 }}>\n Logic\n </Typography>\n\n <DnDArea selectedItems={logicItems} setSelectedItems={setLogicItems} renderer={renderer} />\n <Box marginTop={1} marginBottom={1} style={{ gap: 10 }}>\n <SelectableButton text=\"ADD TAG\" onClick={handleAddLogicItem} options={logicOptions} />\n </Box>\n <Divider light />\n <Typography variant=\"body1\" style={{ marginTop: 30 }}>\n <strong>Preview e.g.</strong> {preview}\n </Typography>\n </>\n )}\n </>\n )}\n </Box>\n );\n}\n\nexport const CustomCheckbox = styled(Checkbox)`\n &.MuiCheckbox-colorPrimary.Mui-checked {\n color: #2e66fe;\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport ShortTextIcon from '@material-ui/icons/ShortText';\n\nimport Input from '../../../components/Input';\nimport useInput from '../../../hooks/useInput';\nimport StaticWrapper from './StaticWrapper';\nimport CaseNumberSettings from './CaseNumberSettings';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function CaseNumber({\n id,\n onUpdateJson,\n data,\n componentIndex,\n isStaticComponent = false,\n formInfoUpdate,\n}) {\n const classes = useStyles();\n const maxCharacters = useInput(data?.maxCharacters || '');\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n !!data?.maxCharacters,\n ]);\n\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n\n const [caseNumber, setCaseNumber] = useState({\n visible: true,\n automate: {\n enabled: false,\n manualOverride: false,\n useTrackingNumber: false,\n logic: [],\n },\n });\n\n useEffect(() => {\n if (formInfoUpdate) {\n const caseNumberFormatted = JSON.parse(JSON.stringify(formInfoUpdate.caseNumber));\n caseNumberFormatted.automate.logic = caseNumberFormatted.automate.logic.map((item) => {\n if (item?.tagType === 'condition') {\n return {\n tagType: item?.tagType,\n conditions: item?.config?.rules,\n };\n }\n if (item?.tagType === 'number') {\n return {\n tagType: item?.tagType,\n value: item?.config?.consecutive ? 'consecutive_number' : 'random_number',\n length: item?.config?.length,\n };\n }\n if (item?.tagType === 'date') {\n return {\n tagType: item?.tagType,\n format: item?.config?.format,\n separator: item?.config?.separator,\n };\n }\n if (item?.tagType === 'text') {\n return {\n tagType: item?.tagType,\n value: item?.config?.value,\n };\n }\n return item;\n });\n setCaseNumber(caseNumberFormatted);\n }\n }, [formInfoUpdate]);\n\n const handleSaveComponent = () => {\n const dataJson = {\n caseNumber: {\n visible: caseNumber?.visible,\n automate: {\n enabled: caseNumber?.automate?.enabled,\n manualOverride: caseNumber?.automate?.manualOverride,\n useTrackingNumber: caseNumber?.automate?.useTrackingNumber,\n logic: caseNumber?.automate?.logic?.map((item) => {\n if (item?.tagType === 'condition') {\n return {\n tagType: item?.tagType,\n config: {\n rules: item?.conditions?.map((condition) => ({\n when: condition?.when,\n equals: condition?.equals,\n value: condition?.value,\n })),\n },\n };\n }\n if (item?.tagType === 'number') {\n return {\n tagType: item?.tagType,\n config: {\n consecutive: item?.value === 'consecutive_number',\n length: item?.length,\n },\n };\n }\n if (item?.tagType === 'date') {\n return {\n tagType: item?.tagType,\n config: {\n format: item?.format,\n separator: item?.separator,\n },\n };\n }\n\n return {\n tagType: item?.tagType,\n config: {\n value: item?.value,\n },\n };\n }),\n },\n },\n };\n\n onUpdateJson(dataJson);\n };\n\n const saveOnTimeOut = () => {\n setTimeout(() => {\n handleSaveComponent();\n }, 500);\n };\n\n useEffect(() => {\n saveOnTimeOut();\n return () => saveOnTimeOut;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [caseNumber]);\n\n const handleChangeVisible = (e) => {\n setCaseNumber((prevState) => {\n const checkQuestionCopy = { ...prevState };\n\n checkQuestionCopy.visible = e.target.checked;\n\n return checkQuestionCopy;\n });\n };\n\n const renderSettings = () => (\n <CaseNumberSettings\n saveOnTimeOut={saveOnTimeOut}\n questions={['description', 'required', 'max']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n maxCharacter={maxCharacters}\n maxCharacterType=\"short\"\n caseNumber={caseNumber}\n setCaseNumber={setCaseNumber}\n id={id}\n />\n );\n\n return (\n <StaticWrapper\n renderSettings={renderSettings}\n renderPreview={null}\n visible={{ value: caseNumber?.visible, onChange: handleChangeVisible }}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <ShortTextIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Short text</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n disabled={isStaticComponent}\n placeholder=\"Enter name question\"\n value={question.value}\n onChange={(e) => {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n </Box>\n </StaticWrapper>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport CreateIcon from '@material-ui/icons/Create';\nimport { Box, CircularProgress, Typography, makeStyles } from '@material-ui/core';\nimport useOrganization from '../../hooks/useOrganization';\nimport DashButton from '../../components/DashButton';\nimport SelectBox from '../../components/SelectBox';\nimport useInput from '../../hooks/useInput';\nimport { OutLineInput } from '../CaseDetails/UpdateCase';\nimport formatTxt from '../../utils/formatText';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport { getFormColor, getFormColorPlaceholder } from '../../utils';\n\nconst useStyles = makeStyles((theme) => ({\n tag: {\n width: 'fit-content',\n marginLeft: 10,\n borderRadius: 5,\n textTransform: 'capitalize',\n height: '100%',\n },\n}));\n\nexport default function PageHeader({\n form,\n onSaveForm,\n loading,\n formInfo,\n isDefaultForm,\n setFormInfo\n}) {\n const classes = useStyles();\n const formName = useInput('');\n const formDescription = useInput('');\n const name = useInput('');\n const type = useInput('');\n const [isEdit, setIsEdit] = useState(false);\n const { organization } = useOrganization();\n const [formTypes, setFormTypes] = useState({})\n const [currentFormType, setCurrentFormType] = useState('');\n\n useEffect(() => {\n if (formInfo) {\n formName.setValue(formInfo.name);\n formDescription.setValue(formInfo.description);\n name.setValue(formInfo.adminName);\n type.setValue(formInfo.type);\n setCurrentFormType(formInfo.type);\n }\n\n if (organization) {\n const types = {\n COMPLIMENT: \"Compliment\",\n COMPLAINT: \"Complaint\",\n REVIEW: \"Review\",\n RECOMMENDATION: \"Recommendation\",\n ...organization.customFormTypes,\n };\n setFormTypes(types);\n\n if (!currentFormType) {\n setCurrentFormType(Object.keys(types)[0]);\n }\n }\n }, [formInfo, organization]);\n\n const handleTypeChange = (event) => {\n const selectedType = event?.target?.value || event;\n type.setValue(selectedType.toUpperCase());\n setCurrentFormType(selectedType);\n setFormInfo((prev) => {\n return {\n ...prev,\n type: selectedType.toUpperCase(),\n typeDisplayText: formTypes[selectedType]\n }\n })\n };\n\n return (\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n marginBottom=\"24px\"\n >\n <Box>\n <Box display=\"flex\" marginBottom={1} alignItems=\"center\">\n {isEdit ? (\n <>\n <Box width={250}>\n <OutLineInput\n bordered\n placeholder=\"Ex. Form Name\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n value={name.value || ''}\n onChange={name.onChange}\n labelWidth={0}\n />\n </Box>\n </>\n ) : (\n <Typography style={{ fontSize: 24, fontWeight: '500' }}>\n {formatTxt(name.value || form?.adminName || '(Name)', 25)}\n </Typography>\n )}\n </Box>\n <Box display=\"flex\" marginBottom={1} alignItems=\"center\">\n {isEdit ? (\n <>\n <Box width={250}>\n <OutLineInput\n bordered\n placeholder=\"Ex. Diplay Name\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n value={formName.value || ''}\n onChange={formName.onChange}\n labelWidth={0}\n />\n </Box>\n </>\n ) : (\n <Typography style={{ fontSize: 24, fontWeight: '500' }}>\n {formatTxt(formName.value || form?.name || '(Form_name)', 25)}\n </Typography>\n )}\n {!isDefaultForm && (\n <CreateIcon\n style={{ marginLeft: 12, cursor: 'pointer' }}\n htmlColor=\"#6D7385\"\n onClick={() => setIsEdit(!isEdit)}\n />\n )}\n </Box>\n <Box display=\"flex\" marginBottom={1} alignItems=\"center\">\n {isEdit ? (\n <Box width={250}>\n <OutLineInput\n bordered\n placeholder=\"Ex. Form Description\"\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{\n 'aria-label': 'weight',\n }}\n value={formDescription.value || ''}\n onChange={formDescription.onChange}\n labelWidth={0}\n />\n </Box>\n ) : (\n <Typography style={{ fontSize: 14 }}>\n {formDescription.value}\n </Typography>\n )}\n </Box>\n <Box\n className={classes.tag}\n style={{\n background: getFormColorPlaceholder(currentFormType),\n marginLeft: 0,\n }}\n >\n {!isDefaultForm ? (\n <SelectBox\n options={{\n obj: Object.entries(formTypes || {}).map(([key, displayText]) => ({\n value: key,\n text: displayText,\n })),\n }}\n value={currentFormType}\n onChange={(e) => handleTypeChange(e)}\n allowPlaceHolder={false}\n withColors={{\n color: getFormColor(currentFormType),\n }}\n style={{ marginLeft: -2 }}\n />\n ) : (\n <Box display=\"flex\" alignItems=\"center\">\n <DescriptionIcon\n htmlColor=\"#6D7385\"\n style={{ marginRight: 6, fontSize: 15 }}\n />\n <Typography\n style={{\n color: '#6D7385',\n fontSize: 12,\n textTransform: 'capitalize',\n }}\n >\n {formInfo?.typeDisplayText}\n </Typography>\n </Box>\n )}\n </Box>\n </Box>\n {!formInfo?.defaultForm && (\n <Box>\n <DashButton\n onClick={() => {\n setIsEdit(false);\n onSaveForm({\n name: formName.value,\n description: formDescription.value,\n adminName: name.value,\n type: type.value,\n });\n }}\n >\n {loading === 'pending' ? (\n <CircularProgress color=\"#fff\" size=\"20px\" />\n ) : (\n 'Save'\n )}{' '}\n </DashButton>\n </Box>\n )}\n </Box>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport { ReactComponent as CalendarIcon } from '../../assets/icons/today_black_24dp.svg';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n labelAnswer: {\n fontSize: 16,\n color: '#6D7385',\n fontWeight: '500',\n paddingLeft: '10px',\n },\n}));\n\nexport default function DateOfBirth({\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n shouldRenderToggle,\n isSubComponent,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n // false,\n ]);\n\n const visible = useInput(data?.visible, false, false, true);\n const question = useInput(data?.question || '');\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n const dataJson = {\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n question: question.value,\n visible: visible.value,\n required: required.value,\n };\n\n onUpdateJson(dataJson, 'dateOfBirth');\n };\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n <Settings\n // questions={['description', 'required', 'date validation']}\n componentId={componentId}\n componentType=\"date\"\n defaultDataReportLink={data.dataReportLink}\n onSelectDataReportLink={\n !isSubComponent ? (dataReportLink) => onUpdateJson({ ...data, dataReportLink }) : undefined\n }\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const [showAnswerBool, setShowAnswerBool] = React.useState(true);\n const handleShowAnswerBool = (state) => {\n setShowAnswerBool((state) => !state);\n // console.log(hideShowMessage)\n };\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} required={required.value} />\n <HideAnswer onClick={handleShowAnswerBool} marginLeft=\"35px\" />\n <Box marginLeft=\"42px\">\n {showAnswerBool && (\n <Box display=\"flex\">\n {/* <CalendarIcon fill=\"#6D7385\" /> */}\n <Typography className={classes.labelAnswer}>MM/DD/YYYY</Typography>\n </Box>\n )}\n </Box>\n </Box>\n );\n\n return (\n <Box marginBottom=\"20px\">\n <WrapperComponent\n allowDnD={false}\n onBlur={(!questionBankComponent && saveOnTimeOut) || function () {}}\n renderSettings={renderSettings}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent}\n isDemographicComponent\n required={required}\n renderPreview={renderPreview}\n onDeleteComponent={onDeleteComponent}\n id={id}\n componentId={componentId}\n visible={visible}\n path={path}\n loading={loading}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n shouldRenderToggle={shouldRenderToggle}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <CalendarIcon fill=\"#6D7385\" />\n <Typography className={classes.title}>Date Of Birth</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n placeholder=\"Enter name question or label\"\n value={question.value}\n onChange={(e) => {\n question.onChange(e);\n saveOnTimeOut();\n }}\n />\n </Box>\n </WrapperComponent>\n </Box>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useDrop } from 'react-dnd';\nimport { COMPONENT, QUESTION_BANK, SECTION } from './constants';\n\nconst ACCEPTS = [QUESTION_BANK, COMPONENT, SECTION];\n\n/**\n *\n * @description this component is used to render the drop zone component.\n */\nconst DropZone = ({ data, onDrop, isLast, className }) => {\n const [{ isOver, canDrop }, drop] = useDrop({\n accept: ACCEPTS,\n drop: (item, monitor) => {\n onDrop(data, item);\n },\n canDrop: (item, monitor) => {\n const dropZonePath = data.path;\n const splitDropZonePath = dropZonePath.split('-');\n const itemPath = item.path;\n\n // sidebar items can always be dropped anywhere\n if (!itemPath) {\n // if (data.childrenCount >= 3) {\n // return false;\n // }\n return true;\n }\n\n const splitItemPath = itemPath.split('-');\n\n // limit columns when dragging from one row to another row\n const dropZonePathRowIndex = splitDropZonePath[0];\n const itemPathRowIndex = splitItemPath[0];\n const diffRow = dropZonePathRowIndex !== itemPathRowIndex;\n if (diffRow && splitDropZonePath.length === 2 && data.childrenCount >= 3) {\n return false;\n }\n\n // Invalid (Can't drop a parent element (row) into a child (column))\n const parentDropInChild = splitItemPath.length < splitDropZonePath.length;\n if (parentDropInChild) return false;\n\n // Current item can't possible move to it's own location\n if (itemPath === dropZonePath) return false;\n\n // Current area\n if (splitItemPath.length === splitDropZonePath.length) {\n const pathToItem = splitItemPath.slice(0, -1).join('-');\n const currentItemIndex = Number(splitItemPath.slice(-1)[0]);\n\n const pathToDropZone = splitDropZonePath.slice(0, -1).join('-');\n const currentDropZoneIndex = Number(splitDropZonePath.slice(-1)[0]);\n\n if (pathToItem === pathToDropZone) {\n const nextDropZoneIndex = currentItemIndex + 1;\n if (nextDropZoneIndex === currentDropZoneIndex) return false;\n }\n }\n\n return true;\n },\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n }),\n });\n\n const isActive = isOver && canDrop;\n return <div className={classNames('dropZone', { active: isActive, isLast }, className)} ref={drop} />;\n};\nexport default DropZone;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useState, Fragment } from 'react';\nimport DropZone from '../utils/DropZone';\n\n/**\n * @description This function is used to map the config with the props of the component.\n * @param {Array} config - The config of the component.\n */\nconst mapPropsToConfig = (config) => {\n const configWithProps = [];\n config.forEach((item) => {\n if (item.component) {\n const { component, ...props } = item;\n\n configWithProps.push({\n ...props,\n Component: component,\n });\n }\n });\n\n return configWithProps;\n};\n\n/**\n * @description Finds the index of the component with uniqueFieldId set to true\n * @param {Array} components - The array of components to search through\n * @returns {Number} The index of the component with uniqueFieldId set to true, or -1 if not found\n */\nconst findComponentWithUniqueFieldId = (components) => {\n return components.findIndex(component => component.data?.uniqueFieldId === true);\n};\n\n/**\n * @description This component is used to render the components recursively, also it render the DropZone component to allow the drag and drop functionality. for more information about the drag and drop functionality, please check this link: https://react-dnd.github.io/react-dnd/about and for more information of recursion, please check this link: https://developer.mozilla.org/en-US/docs/Glossary/Recursion\n * @param {Array} config - The config of the component.\n * @param {Function} handleDrop - The function to handle the drop event.\n * @param {String} path - The path of the component.\n * @param {Function} duplicateComponent - The function to duplicate a component.\n */\nexport const Renderer = ({ config, handleDrop, path, duplicateComponent }) => {\n if (!config) {\n throw new Error('You are calling Renderer with no config.');\n }\n\n const configWithProps = mapPropsToConfig(config);\n\n /**\n *\n * @description This function is used to render the components with the drag and drop functionality.\n */\n const renderComponentsWithDnD = (items) => {\n // TODO: Hardcoded state, change on node update pls\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (<>\n {items.map((item, index) => {\n const { Component, id, itemId, ...props } = item;\n const currentPath = `${path}-${index}`;\n const key = `${item.type}${item.data.question}`\n\n return (\n <Fragment key={id || key}>\n <DropZone\n data={{\n path: currentPath,\n childrenCount: items.length,\n }}\n onDrop={handleDrop}\n />\n <Component\n duplicateComponent={duplicateComponent}\n {...props}\n indexUniqueFieldId={findComponentWithUniqueFieldId(items)}\n path={currentPath}\n componentId={id || key}\n id={index}\n allComponents={items}\n />\n </Fragment>\n );\n })}\n\n <DropZone\n data={{\n path: `${path}-${items.length}`,\n childrenCount: items.length,\n }}\n onDrop={handleDrop}\n isLast\n />\n </>)\n };\n\n /**\n *\n * @description This function is used to render the components without the drag and drop functionality.\n */\n const renderComponents = (items, index) =>\n items.map((item, itemIndex) => {\n const currentPath = `${path}-${index}`;\n const { Component, id, ...props } = item;\n\n return <Component {...props} path={currentPath} componentId={id} id={id} key={itemIndex} />;\n });\n\n if (typeof handleDrop === 'function') {\n return renderComponentsWithDnD(configWithProps);\n }\n\n return renderComponents(configWithProps);\n};\n","import { Box } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { getConfig } from '../config/Config';\nimport { Renderer } from '../config/Renderer';\nimport WrapperComponent from './WrapperComponent';\nimport Settings from '../utils/Settings';\n\nexport default function Demographics({\n questionBankComponent,\n id,\n onDeleteComponent,\n componentId,\n path,\n data,\n components,\n refActionModal,\n setModal,\n onUpdateJson,\n onUpdateJsonTop,\n type,\n from = \"formtypes\",\n}) {\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: [\n components[0],\n components[2],\n components[4],\n components[3],\n components[1],\n components[5],\n ],\n onUpdateJson,\n isSubComponent: true,\n shouldRenderToggle: false,\n }),\n [components, onUpdateJson]\n );\n\n const renderSettings = () => (\n <Settings\n componentId={componentId}\n componentType={type}\n defaultDataReportLink={components?.[0]?.data?.dataReportLink}\n onSelectDataReportLink={(dataReportLink) => onUpdateJsonTop({ ...data, dataReportLink })}\n from={from}\n />\n );\n\n return (\n <WrapperComponent\n onDeleteComponent={onDeleteComponent}\n id={id}\n path={path}\n renderPreview={() => {}}\n renderSettings={renderSettings}\n containsQuestionBanks\n withDataReportLinkSettings\n refActionModal={refActionModal}\n setModal={setModal}\n >\n <Box padding=\"20px 0\">\n <Renderer config={config} path={path} />\n </Box>\n </WrapperComponent>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, FormControl, InputLabel, makeStyles, Select, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\n\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n}));\n\nexport const mapOptionsToState = (options) => {\n if (options) {\n return options.map((option) => {\n if (typeof option === 'string') {\n return {\n value: option,\n };\n }\n\n return { value: option.label };\n });\n }\n\n return [{ value: '' }, { value: '' }, { value: '' }];\n};\n\nexport default function Gender({\n type,\n questionBankComponent,\n id,\n componentId,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n shouldRenderSettings = true,\n allowDnD = true,\n includeRequired,\n isStaticComponent = false,\n refActionModal,\n setModal,\n shouldRenderToggle,\n isSubComponent,\n from = 'formtypes',\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n const visible = useInput(data?.visible, false, false, true);\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const multipleChoice = useInput(!!data?.multipleChoice, false, false, true);\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n let dataJson = {};\n\n if (isStaticComponent) {\n dataJson = {\n [question.value.toLowerCase()]: {\n visible: visible.value,\n values: answers.map((answer) => answer.value),\n },\n };\n } else {\n dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n ...(data.dataReportLink ? { dataReportLink: data.dataReportLink } : {}),\n visible: visible.value,\n required: required.value,\n multipleChoice: multipleChoice.value,\n options: answers.map((answer) => answer.value),\n };\n }\n\n onUpdateJson(dataJson, 'gender');\n };\n\n const item = (answer, index) => (\n <Box width=\"100%\" maxWidth={434} display=\"flex\" alignItems=\"center\" marginBottom=\"10px\">\n <Typography className={classes.subLabel} style={{ marginRight: 10 }}>\n A{index + 1}\n </Typography>\n\n <Input\n placeholder={`Enter option ${index + 1}`}\n value={answer.value}\n onChange={(e) => {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n <DeleteIcon\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 20, cursor: 'pointer' }}\n onClick={() => {\n onRemoveDnDItem(answers, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n </Box>\n );\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => {\n if (allowDnD) {\n return (\n <DnDItem key={index} moveItem={moveItem} index={index}>\n {item(answer, index)}\n </DnDItem>\n );\n }\n return item(answer, index);\n });\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n <Settings\n multipleChoice={multipleChoice}\n componentId={componentId}\n componentType=\"gender\"\n defaultDataReportLink={data.dataReportLink}\n onSelectDataReportLink={\n !isSubComponent ? (dataReportLink) => onUpdateJson({ ...data, dataReportLink }) : undefined\n }\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} required={required.value} />\n <Box marginTop=\"-16px\" marginLeft=\"45px\">\n <HideAnswer marginLeft=\"-7px\" marginTop={0}>\n <FormControl variant=\"standard\" style={{ minWidth: 280, marginBottom: 20 }}>\n <InputLabel id=\"demo-simple-select-standard-label\">Select an Option</InputLabel>\n <Select\n labelId=\"demo-simple-select-standard-label\"\n id=\"demo-simple-select-standard\"\n disabled\n label=\"Age\"\n value=\"\"\n />\n </FormControl>\n {answers.map((answer, index) => (\n <Box display=\"flex\" alignItems=\"center\" key={index} marginBottom=\"10px\">\n <ArrowRightAltIcon htmlColor=\"#00000061\" style={{ fontSize: 16, marginRight: 10 }} />\n <Typography style={{ color: '#00000061' }}>{answer.value}</Typography>\n </Box>\n ))}\n </HideAnswer>\n </Box>\n </Box>\n );\n\n return (\n <Box marginBottom=\"20px\">\n <WrapperComponent\n onBlur={(!questionBankComponent && saveOnTimeOut) || function () {}}\n renderSettings={shouldRenderSettings ? renderSettings : null}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent || isStaticComponent}\n renderPreview={renderPreview}\n required={required}\n onDeleteComponent={onDeleteComponent}\n id={id}\n componentId={componentId}\n path={path}\n loading={loading}\n isDemographicComponent\n allowDnD={false}\n includeRequired={includeRequired}\n visible={visible}\n isStaticComponent={isStaticComponent}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n shouldRenderToggle={shouldRenderToggle}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <ArrowDropDownIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Gender</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n placeholder=\"Enter name question\"\n value={question.value}\n onChange={(e) => {\n question.onChange(e);\n saveOnTimeOut();\n }}\n disabled={isStaticComponent}\n />\n </Box>\n <Box marginLeft=\"20px\" marginTop=\"30px\">\n {/* <DndProvider backend={HTML5Backend}> */}\n <DnDArea selectedItems={answers} setSelectedItems={setAnswers} renderer={renderer} />\n {/* </DndProvider> */}\n </Box>\n <AddMore\n dataTestId=\"forms-gender-button-add-more\"\n onClick={() => onAddDnDItem(answers, setAnswers, 'radio', '')}\n marginLeft={allowDnD ? '77px' : '18px'}\n />\n </WrapperComponent>\n </Box>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, Grid, makeStyles, TextField, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport PolicyIcon from '@material-ui/icons/Policy';\nimport { handleChangeCheckBox, onChangeDnDValue } from '../utils/utls';\n\nimport Settings, { CustomCheckbox } from '../utils/Settings';\nimport OutLineTable from '../../components/OutLineTable';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\nimport useInput from '../../hooks/useInput';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n fieldLabel: {\n fontSize: 14,\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n type: {\n width: 131,\n },\n labelContainer: {\n width: 425,\n marginLeft: 20,\n },\n\n td: {},\n}));\nconst columns = [\n { name: 'Type', styles: {} },\n { name: 'Label', styles: {} },\n { name: 'Visible', styles: { textAlign: 'right' } },\n { name: 'Required', styles: { textAlign: 'right' } },\n];\nexport default function Police({\n questionBankComponent,\n id,\n onUpdateJson,\n onDeleteComponent,\n path,\n componentIndex,\n data,\n duplicateComponent,\n refActionModal,\n setModal,\n}) {\n const classes = useStyles();\n const [rows, setRows] = useState([\n {\n type: 'First Name',\n text: 'First Name',\n visible: true,\n required: false,\n },\n {\n type: 'Last Name',\n text: 'Last Name',\n visible: true,\n required: false,\n },\n {\n type: 'Badge/Serial Number',\n text: 'Badge/Serial Number',\n visible: true,\n required: false,\n },\n {\n type: 'Officer Description',\n text: 'Officer Description',\n visible: true,\n required: false,\n },\n ]);\n\n const [checkQuestion, setCheckQuestion] = useState([false]);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n\n const renderSettings = () => (\n <Settings\n questions={['description']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n />\n );\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n firstName: {\n text: rows[0].text,\n visible: rows[0].visible,\n required: rows[0].required,\n },\n lastName: {\n text: rows[1].text,\n visible: rows[1].visible,\n required: rows[1].required,\n },\n badge: {\n text: rows[2].text,\n visible: rows[2].visible,\n required: rows[2].required,\n },\n };\n\n onUpdateJson(dataJson);\n };\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} />\n <Box maxWidth={600} marginTop=\"-15px\" marginLeft=\"45px\">\n <HideAnswer marginLeft={'-7px'} marginTop={0}>\n <Grid container spacing={2}>\n {rows.map((row, index) => {\n if (row.visible) {\n return (\n <Grid item xs={6}>\n <TextField\n key={index}\n label={\n <>\n {row.text} {row.required && <span style={{ color: 'red', fontSize: 12 }}>*</span>}{' '}\n </>\n }\n variant=\"standard\"\n disabled\n style={{ width: '100%' }}\n placeholder={row.type}\n />\n </Grid>\n );\n }\n })}\n </Grid>\n </HideAnswer>\n </Box>\n </Box>\n );\n\n const renderRows = (row, index) => (\n <>\n <td className={classes.td} style={{ width: 150 }}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width={130}>\n <Typography className={classes.fieldLabel}>{row.type}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14 }} />\n </Box>\n </td>\n <td className={classes.td}>\n <Box width={250}>\n <Input\n placeholder={row.type}\n value={row.text}\n onChange={(e) => onChangeDnDValue(e, setRows, index, 'text')}\n />\n </Box>\n </td>\n <td className={classes.td}>\n <Box display=\"flex\" justifyContent=\"flex-end\">\n <CustomCheckbox\n color=\"primary\"\n checked={row.visible}\n onChange={(e) => handleChangeCheckBox(e, index, 'visible', rows, setRows)}\n />\n </Box>\n </td>\n <td className={classes.td}>\n <Box display=\"flex\" justifyContent=\"flex-end\" marginRight=\"6px\">\n <CustomCheckbox\n color=\"primary\"\n checked={row.required}\n onChange={(e) => handleChangeCheckBox(e, index, 'required', rows, setRows)}\n />\n </Box>\n </td>\n </>\n );\n\n return (\n <WrapperComponent\n renderSettings={renderSettings}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent}\n includeRequired={false}\n renderPreview={renderPreview}\n onDeleteComponent={onDeleteComponent}\n id={id}\n path={path}\n handleSaveComponent={handleSaveComponent}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <PolicyIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Police</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input placeholder=\"Officers\" value={question.value} onChange={question.onChange} />\n </Box>\n <Box marginTop=\"38px\">\n <OutLineTable columns={columns} rows={rows} renderRows={renderRows} />\n </Box>\n </WrapperComponent>\n );\n}\n","import React, { useState } from 'react';\nimport {\n Box,\n makeStyles,\n Radio,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport TranslateIcon from '@material-ui/icons/Translate';\n\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\nexport default function PrimaryLanguage({\n questionBankComponent,\n id,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n onChangeDataInput,\n componentIndex,\n duplicateComponent,\n refActionModal,\n setModal,\n from = \"formtypes\",\n}) {\n const classes = useStyles();\n const [checkQuestion, setCheckQuestion] = useState([\n data?.description ? true : false,\n data?.requiredMessage ? true : false,\n ]);\n\n const required = useInput(data?.required ? true : false, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const renderSettings = () => (\n <Settings\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n from={from}\n />\n );\n\n const handleSaveComponent = () => {\n const dataJson = {\n question: question.value,\n ...(descriptionQuestion.value\n ? { description: descriptionQuestion.value }\n : {}),\n required: required.value,\n };\n\n onUpdateJson(dataJson);\n };\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel\n question=\"Is English your primary language?\"\n qNumber={componentIndex + 1}\n required={required.value}\n />\n <Box marginLeft=\"45px\">\n <HideAnswer marginLeft={'-7px'} marginTop={0}>\n <Box\n display=\"flex\"\n alignItems=\"center\"\n marginBottom=\"10px\"\n marginTop=\"10px\"\n >\n <Radio\n disabled\n color=\"default\"\n name=\"radio-button-demo\"\n inputProps={{ 'aria-label': 'D' }}\n style={{ padding: 0, marginRight: 7 }}\n />\n <Typography style={{ color: '#00000061' }}>Yes</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginBottom=\"10px\">\n <Radio\n disabled\n color=\"default\"\n checked\n name=\"radio-button-demo\"\n inputProps={{ 'aria-label': 'D' }}\n style={{ padding: 0, marginRight: 7 }}\n />\n <Typography style={{ color: '#00000061' }}>No</Typography>\n </Box>\n <TextField\n id=\"standard-basic\"\n variant=\"standard\"\n disabled\n placeholder=\"If not please enter primary language\"\n style={{ maxWidth: 325, width: '100%' }}\n />\n </HideAnswer>\n </Box>\n </Box>\n );\n return (\n <WrapperComponent\n renderSettings={renderSettings}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent}\n renderPreview={renderPreview}\n required={required}\n onDeleteComponent={onDeleteComponent}\n id={id}\n path={path}\n handleSaveComponent={handleSaveComponent}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <TranslateIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Primary Language</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n placeholder=\"Enter name question\"\n value={question.value}\n onChange={question.onChange}\n />\n </Box>\n </WrapperComponent>\n );\n}\n","import React, { useMemo } from 'react';\nimport { Box } from '@material-ui/core';\nimport WrapperComponent from './WrapperComponent';\nimport { Renderer } from '../config/Renderer';\n\nimport { getConfig } from '../config/Config';\n\n/**\n * @description This component is used to render the question bank side component, also it render recursively the components inside the question bank. (if you are not familiar with recursion, please check this link: https://developer.mozilla.org/en-US/docs/Glossary/Recursion)\n */\n\nexport default function QuestionBankSideComponent({\n id,\n onDeleteComponent,\n path,\n components,\n refActionModal,\n setModal,\n}) {\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: components,\n }),\n [components]\n );\n\n return (\n <WrapperComponent\n onDeleteComponent={onDeleteComponent}\n id={id}\n path={path}\n renderPreview={() => {}}\n containsQuestionBanks\n refActionModal={refActionModal}\n setModal={setModal}\n >\n <Box paddingBottom=\"20px\">\n <Renderer config={config} path={path} />\n </Box>\n </WrapperComponent>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, FormControl, InputLabel, makeStyles, Select, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n}));\n\nexport const mapOptionsToState = (options) => {\n if (options) {\n return options.map((option) => {\n if (typeof option === 'string') {\n return {\n value: option,\n };\n }\n\n return { value: option.label };\n });\n }\n\n return [{ value: '' }, { value: '' }, { value: '' }];\n};\n\nexport default function Race({\n questionBankComponent,\n id,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n shouldRenderSettings = true,\n allowDnD = true,\n includeRequired,\n isStaticComponent = false,\n\n refActionModal,\n setModal,\n shouldRenderToggle,\n from = 'formtypes',\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n\n const [checkQuestion, setCheckQuestion] = useState([\n !!data?.description,\n !!data.requiredMessage,\n !!data?.multipleChoice,\n ]);\n\n const visible = useInput(data?.visible, false, false, true);\n const required = useInput(!!data?.required, false, false, true);\n const multipleChoice = useInput(!!data?.multipleChoice, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n let dataJson = {};\n\n if (isStaticComponent) {\n dataJson = {\n [question.value.toLowerCase()]: {\n visible: visible.value,\n values: answers.map((answer) => answer.value),\n },\n };\n } else {\n dataJson = {\n question: question.value,\n visible: visible.value,\n ...(checkQuestion[0] && descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(checkQuestion[1] && requiredQuestionMessage.value\n ? { requiredMessage: requiredQuestionMessage.value }\n : {}),\n required: required.value,\n multipleChoice: multipleChoice.value,\n options: answers.map((answer) => answer.value),\n };\n }\n\n onUpdateJson(dataJson, 'race');\n };\n\n const item = (answer, index) => (\n <Box width=\"100%\" maxWidth={434} display=\"flex\" alignItems=\"center\" marginBottom=\"10px\">\n <Typography className={classes.subLabel} style={{ marginRight: 10 }}>\n A{index + 1}\n </Typography>\n\n <Input\n placeholder={`Enter option ${index + 1}`}\n value={answer.value}\n onChange={(e) => {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n <DeleteIcon\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 20, cursor: 'pointer' }}\n onClick={() => {\n onRemoveDnDItem(answers, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n </Box>\n );\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => {\n if (allowDnD) {\n return (\n <DnDItem key={index} moveItem={moveItem} index={index}>\n {item(answer, index)}\n </DnDItem>\n );\n }\n return item(answer, index);\n });\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n <Settings\n multipleChoice={multipleChoice}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} required={required.value} />\n <Box marginTop=\"-16px\" marginLeft=\"45px\">\n <HideAnswer marginLeft=\"-7px\" marginTop={0}>\n <FormControl variant=\"standard\" style={{ minWidth: 280, marginBottom: 20 }}>\n <InputLabel id=\"demo-simple-select-standard-label\">Select an Option</InputLabel>\n <Select\n labelId=\"demo-simple-select-standard-label\"\n id=\"demo-simple-select-standard\"\n disabled\n label=\"Age\"\n value=\"\"\n />\n </FormControl>\n {answers.map((answer, index) => (\n <Box display=\"flex\" alignItems=\"center\" key={index} marginBottom=\"10px\">\n <ArrowRightAltIcon htmlColor=\"#00000061\" style={{ fontSize: 16, marginRight: 10 }} />\n <Typography style={{ color: '#00000061' }}>{answer.value}</Typography>\n </Box>\n ))}\n </HideAnswer>\n </Box>\n </Box>\n );\n\n return (\n <Box marginBottom=\"20px\">\n <WrapperComponent\n onBlur={(!questionBankComponent && saveOnTimeOut) || function () {}}\n renderSettings={shouldRenderSettings ? renderSettings : null}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent || isStaticComponent}\n renderPreview={renderPreview}\n required={required}\n onDeleteComponent={onDeleteComponent}\n id={id}\n isDemographicComponent\n path={path}\n loading={loading}\n allowDnD={false}\n includeRequired={includeRequired}\n visible={visible}\n isStaticComponent={isStaticComponent}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n shouldRenderToggle={shouldRenderToggle}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <ArrowDropDownIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Race</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n placeholder=\"Enter name question\"\n value={question.value}\n onChange={(e) => {\n question.onChange(e);\n saveOnTimeOut();\n }}\n disabled={isStaticComponent}\n />\n </Box>\n <Box marginLeft=\"20px\" marginTop=\"30px\">\n {/* <DndProvider backend={HTML5Backend}> */}\n <DnDArea selectedItems={answers} setSelectedItems={setAnswers} renderer={renderer} />\n {/* </DndProvider> */}\n </Box>\n <AddMore\n dataTestId=\"forms-race-button-add-more\"\n onClick={() => onAddDnDItem(answers, setAnswers, 'radio', '')}\n marginLeft={allowDnD ? '77px' : '18px'}\n />\n </WrapperComponent>\n </Box>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, FormControl, InputLabel, makeStyles, Select, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\n\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n}));\n\nexport const mapOptionsToState = (options) => {\n if (options) {\n return options.map((option) => {\n if (typeof option === 'string') {\n return {\n value: option,\n };\n }\n\n return { value: option.label };\n });\n }\n\n return [{ value: '' }, { value: '' }, { value: '' }];\n};\n\nexport default function SexualOrientation({\n questionBankComponent,\n id,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n shouldRenderSettings = true,\n allowDnD = true,\n includeRequired,\n isStaticComponent = false,\n refActionModal,\n setModal,\n shouldRenderToggle,\n from = 'formtypes',\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n const visible = useInput(data?.visible, false, false, true);\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n\n const required = useInput(!!data?.required, false, false, true);\n const multipleChoice = useInput(!!data?.multipleChoice, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n let dataJson = {};\n\n if (isStaticComponent) {\n dataJson = {\n [question.value.toLowerCase()]: {\n visible: visible.value,\n values: answers.map((answer) => answer.value),\n },\n };\n } else {\n dataJson = {\n question: question.value,\n visible: visible.value,\n ...(descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(requiredQuestionMessage.value ? { requiredMessage: requiredQuestionMessage.value } : {}),\n required: required.value,\n multipleChoice: multipleChoice.value,\n options: answers.map((answer) => answer.value),\n };\n }\n\n onUpdateJson(dataJson, 'sexualOrientation');\n };\n\n const item = (answer, index) => (\n <Box width=\"100%\" maxWidth={434} display=\"flex\" alignItems=\"center\" marginBottom=\"10px\">\n <Typography className={classes.subLabel} style={{ marginRight: 10 }}>\n A{index + 1}\n </Typography>\n\n <Input\n placeholder={`Enter option ${index + 1}`}\n value={answer.value}\n onChange={(e) => {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n <DeleteIcon\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 20, cursor: 'pointer' }}\n onClick={() => {\n onRemoveDnDItem(answers, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n </Box>\n );\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => {\n if (allowDnD) {\n return (\n <DnDItem key={index} moveItem={moveItem} index={index}>\n {item(answer, index)}\n </DnDItem>\n );\n }\n return item(answer, index);\n });\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n <Settings\n multipleChoice={multipleChoice}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} required={required.value} />\n <Box marginTop=\"-16px\" marginLeft=\"45px\">\n <HideAnswer marginLeft=\"-7px\" marginTop={0}>\n <FormControl variant=\"standard\" style={{ minWidth: 280, marginBottom: 20 }}>\n <InputLabel id=\"demo-simple-select-standard-label\">Select an Option</InputLabel>\n <Select\n labelId=\"demo-simple-select-standard-label\"\n id=\"demo-simple-select-standard\"\n disabled\n label=\"Age\"\n value=\"\"\n />\n </FormControl>\n {answers.map((answer, index) => (\n <Box display=\"flex\" alignItems=\"center\" key={index} marginBottom=\"10px\">\n <ArrowRightAltIcon htmlColor=\"#00000061\" style={{ fontSize: 16, marginRight: 10 }} />\n <Typography style={{ color: '#00000061' }}>{answer.value}</Typography>\n </Box>\n ))}\n </HideAnswer>\n </Box>\n </Box>\n );\n\n return (\n <Box marginBottom=\"20px\">\n <WrapperComponent\n onBlur={(!questionBankComponent && saveOnTimeOut) || function () {}}\n renderSettings={shouldRenderSettings ? renderSettings : null}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent || isStaticComponent}\n renderPreview={renderPreview}\n required={required}\n isDemographicComponent\n onDeleteComponent={onDeleteComponent}\n id={id}\n path={path}\n loading={loading}\n allowDnD={false}\n includeRequired={includeRequired}\n visible={visible}\n isStaticComponent={isStaticComponent}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n shouldRenderToggle={shouldRenderToggle}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <ArrowDropDownIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Sexual Orientation</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n placeholder=\"Enter name question\"\n value={question.value}\n onChange={(e) => {\n question.onChange(e);\n saveOnTimeOut();\n }}\n disabled={isStaticComponent}\n />\n </Box>\n <Box marginLeft=\"20px\" marginTop=\"30px\">\n {/* <DndProvider backend={HTML5Backend}> */}\n <DnDArea selectedItems={answers} setSelectedItems={setAnswers} renderer={renderer} />\n {/* </DndProvider> */}\n </Box>\n <AddMore\n dataTestId=\"forms-sexual-orientation-button-add-more\"\n onClick={() => onAddDnDItem(answers, setAnswers, 'radio', '')}\n marginLeft={allowDnD ? '77px' : '18px'}\n />\n </WrapperComponent>\n </Box>\n );\n}\n","import React, { Fragment, useState } from 'react';\nimport { Box, Grid, makeStyles, TextField, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport PolicyIcon from '@material-ui/icons/Policy';\n\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport { handleChangeCheckBox } from '../utils/utls';\n\nimport Settings, { CustomCheckbox } from '../utils/Settings';\nimport OutLineTable from '../../components/OutLineTable';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n fieldLabel: {\n fontSize: 14,\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n type: {\n width: 131,\n },\n labelContainer: {\n width: 425,\n marginLeft: 20,\n },\n\n td: {},\n}));\nconst columns = [\n { name: 'Type', styles: {} },\n { name: 'Label', styles: {} },\n { name: 'Visible', styles: { textAlign: 'right' } },\n { name: 'Required', styles: { textAlign: 'right' } },\n];\nexport default function Witnesses({\n questionBankComponent,\n id,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n onChangeOptions,\n duplicateComponent,\n refActionModal,\n setModal,\n from = 'formtypes',\n}) {\n const classes = useStyles();\n const [rows, setRows] = useState([\n {\n type: 'First Name',\n value: 'First Name',\n visible: true,\n required: false,\n },\n {\n type: 'Last Name',\n value: 'Last Name',\n visible: true,\n required: false,\n },\n {\n type: 'Email',\n value: 'Email',\n visible: true,\n required: false,\n },\n {\n type: 'Phone',\n value: 'Home/Cell Telephone',\n visible: true,\n required: false,\n },\n {\n type: 'Relationship',\n value: 'Relationship',\n visible: true,\n required: false,\n },\n ]);\n\n const [checkQuestion, setCheckQuestion] = useState([false]);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n\n const renderSettings = () => (\n <Settings\n questions={['description']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n from={from}\n />\n );\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} />\n <Box maxWidth={600} marginTop=\"-15px\" marginLeft=\"45px\">\n <HideAnswer marginLeft={'-7px'} marginTop={0}>\n <Grid container spacing={2}>\n {rows.map((row, index) => {\n if (row.visible) {\n return (\n <Grid item xs={6}>\n <TextField\n key={index}\n label={\n <>\n {row.value} {row.required && <span style={{ color: 'red', fontSize: 12 }}>*</span>}{' '}\n </>\n }\n variant=\"standard\"\n disabled\n style={{ width: '100%' }}\n placeholder={row.type}\n />\n </Grid>\n );\n }\n })}\n </Grid>\n </HideAnswer>\n </Box>\n </Box>\n );\n\n const renderRows = (row, index) => (\n <Fragment key={index}>\n {row.map((rowItem, itemIndex) => (\n <tr key={itemIndex}>\n <td className={classes.td} style={{ width: 150 }}>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width={130}>\n <Typography className={classes.fieldLabel}>{rowItem.type}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14 }} />\n </Box>\n </td>\n <td className={classes.td}>\n <Box width={250}>\n <Input\n placeholder={rowItem.type}\n value={rowItem.value}\n onChange={(e) =>\n onChangeOptions({\n e,\n componentIndex,\n id,\n currentIteration: [index, itemIndex],\n })\n }\n />\n </Box>\n </td>\n <td className={classes.td}>\n <Box display=\"flex\" justifyContent=\"flex-end\">\n <CustomCheckbox\n color=\"primary\"\n checked={rowItem.visible}\n onChange={(e) => handleChangeCheckBox(e, index, 'visible', rows, setRows)}\n />\n </Box>\n </td>\n <td className={classes.td}>\n <Box display=\"flex\" justifyContent=\"flex-end\" marginRight=\"6px\">\n <CustomCheckbox\n color=\"primary\"\n checked={rowItem.required}\n onChange={(e) => handleChangeCheckBox(e, index, 'required', rows, setRows)}\n />\n </Box>\n </td>\n </tr>\n ))}\n </Fragment>\n );\n\n return (\n <WrapperComponent\n renderSettings={renderSettings}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent}\n includeRequired={false}\n renderPreview={renderPreview}\n onDeleteComponent={onDeleteComponent}\n id={id}\n path={path}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <PolicyIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Witnesses</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input placeholder=\"Contact Information\" value={question.value} onChange={question.onChange} />\n </Box>\n <Box marginTop=\"38px\">\n <OutLineTable columns={columns} rows={data?.options} renderRows={renderRows} withTr={false} />\n <AddMore dataTestId=\"forms-witnesses-button-add-more\" text=\"Add Witness\" marginLeft={0} />\n </Box>\n </WrapperComponent>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, FormControl, InputLabel, makeStyles, Select, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n}));\n\nexport const mapOptionsToState = (options) => {\n if (options) {\n return options.map((option) => {\n if (typeof option === 'string') {\n return {\n value: option,\n };\n }\n\n return { value: option.label };\n });\n }\n\n return [{ value: '' }, { value: '' }, { value: '' }];\n};\n\nexport default function RaceEthnicity({\n questionBankComponent,\n id,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n shouldRenderSettings = true,\n allowDnD = true,\n includeRequired,\n isStaticComponent = false,\n\n refActionModal,\n setModal,\n shouldRenderToggle,\n from = 'formtypes',\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n\n const visible = useInput(data?.visible, false, false, true);\n const multipleChoice = useInput(!!data?.multipleChoice, false, false, true);\n const required = useInput(!!data?.required, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n let dataJson = {};\n\n if (isStaticComponent) {\n dataJson = {\n [question.value.toLowerCase()]: {\n visible: visible.value,\n values: answers.map((answer) => answer.value),\n },\n };\n } else {\n dataJson = {\n question: question.value,\n visible: visible.value,\n ...(checkQuestion[0] && descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(checkQuestion[1] && requiredQuestionMessage.value\n ? { requiredMessage: requiredQuestionMessage.value }\n : {}),\n required: required.value,\n multipleChoice: multipleChoice.value,\n options: answers.map((answer) => answer.value),\n };\n }\n\n onUpdateJson(dataJson, 'raceEthnicity');\n };\n\n const item = (answer, index) => (\n <Box width=\"100%\" maxWidth={434} display=\"flex\" alignItems=\"center\" marginBottom=\"10px\">\n <Typography className={classes.subLabel} style={{ marginRight: 10 }}>\n A{index + 1}\n </Typography>\n\n <Input\n placeholder={`Enter option ${index + 1}`}\n value={answer.value}\n onChange={(e) => {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n <DeleteIcon\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 20, cursor: 'pointer' }}\n onClick={() => {\n onRemoveDnDItem(answers, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n </Box>\n );\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => {\n if (allowDnD) {\n return (\n <DnDItem key={index} moveItem={moveItem} index={index}>\n {item(answer, index)}\n </DnDItem>\n );\n }\n return item(answer, index);\n });\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n <Settings\n multipleChoice={multipleChoice}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} required={required.value} />\n <Box marginTop=\"-16px\" marginLeft=\"45px\">\n <HideAnswer marginLeft=\"-7px\" marginTop={0}>\n <FormControl variant=\"standard\" style={{ minWidth: 280, marginBottom: 20 }}>\n <InputLabel id=\"demo-simple-select-standard-label\">Select an Option</InputLabel>\n <Select\n labelId=\"demo-simple-select-standard-label\"\n id=\"demo-simple-select-standard\"\n disabled\n label=\"Age\"\n value=\"\"\n />\n </FormControl>\n {answers.map((answer, index) => (\n <Box display=\"flex\" alignItems=\"center\" key={index} marginBottom=\"10px\">\n <ArrowRightAltIcon htmlColor=\"#00000061\" style={{ fontSize: 16, marginRight: 10 }} />\n <Typography style={{ color: '#00000061' }}>{answer.value}</Typography>\n </Box>\n ))}\n </HideAnswer>\n </Box>\n </Box>\n );\n\n return (\n <Box marginBottom=\"20px\">\n <WrapperComponent\n onBlur={(!questionBankComponent && saveOnTimeOut) || function () {}}\n renderSettings={shouldRenderSettings ? renderSettings : null}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent || isStaticComponent}\n renderPreview={renderPreview}\n required={required}\n onDeleteComponent={onDeleteComponent}\n id={id}\n isDemographicComponent\n path={path}\n loading={loading}\n allowDnD={false}\n includeRequired={includeRequired}\n visible={visible}\n isStaticComponent={isStaticComponent}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n shouldRenderToggle={shouldRenderToggle}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <ArrowDropDownIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Race/Ethnicity</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n placeholder=\"Enter name question\"\n value={question.value}\n onChange={(e) => {\n question.onChange(e);\n saveOnTimeOut();\n }}\n disabled={isStaticComponent}\n />\n </Box>\n <Box marginLeft=\"20px\" marginTop=\"30px\">\n {/* <DndProvider backend={HTML5Backend}> */}\n <DnDArea selectedItems={answers} setSelectedItems={setAnswers} renderer={renderer} />\n {/* </DndProvider> */}\n </Box>\n <AddMore\n dataTestId=\"forms-race-ethnicity-button-add-more\"\n onClick={() => onAddDnDItem(answers, setAnswers, 'radio', '')}\n marginLeft={allowDnD ? '77px' : '18px'}\n />\n </WrapperComponent>\n </Box>\n );\n}\n","import React, { useState } from 'react';\nimport { Box, FormControl, InputLabel, makeStyles, Select, Typography } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\n\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport WrapperComponent from './WrapperComponent';\nimport Input from '../../components/Input';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport { onAddDnDItem, onChangeDnDValue, onRemoveDnDItem } from '../utils/utls';\nimport AddMore from '../../components/AddMore';\nimport useInput from '../../hooks/useInput';\nimport Settings from '../utils/Settings';\nimport PreviewLabel from '../utils/Label';\nimport HideAnswer from '../../components/HideAnswer';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n subLabel: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n\n settingsQuestions: {\n fontSize: 14,\n minWidth: 160,\n },\n}));\n\nexport const mapOptionsToState = (options) => {\n if (options) {\n return options.map((option) => {\n if (typeof option === 'string') {\n return {\n value: option,\n };\n }\n\n return { value: option.label };\n });\n }\n\n return [{ value: '' }, { value: '' }, { value: '' }];\n};\n\nexport default function Ethnicity({\n questionBankComponent,\n id,\n onUpdateJson,\n onDeleteComponent,\n path,\n data,\n componentIndex,\n duplicateComponent,\n shouldRenderSettings = true,\n allowDnD = true,\n includeRequired,\n isStaticComponent = false,\n\n refActionModal,\n setModal,\n shouldRenderToggle,\n from = 'formtypes',\n}) {\n const classes = useStyles();\n const [answers, setAnswers] = useState(mapOptionsToState(data.options));\n\n const [checkQuestion, setCheckQuestion] = useState([!!data?.description, !!data.requiredMessage]);\n\n const visible = useInput(data?.visible, false, false, true);\n const required = useInput(!!data?.required, false, false, true);\n const multipleChoice = useInput(!!data?.multipleChoice, false, false, true);\n const descriptionQuestion = useInput(data?.description || '');\n const requiredQuestionMessage = useInput(data?.requiredMessage || '');\n const question = useInput(data?.question || '');\n const [loading, setLoading] = React.useState(false);\n\n const handleSaveComponent = () => {\n let dataJson = {};\n\n if (isStaticComponent) {\n dataJson = {\n [question.value.toLowerCase()]: {\n visible: visible.value,\n values: answers.map((answer) => answer.value),\n },\n };\n } else {\n dataJson = {\n question: question.value,\n visible: visible.value,\n ...(checkQuestion[0] && descriptionQuestion.value ? { description: descriptionQuestion.value } : {}),\n ...(checkQuestion[1] && requiredQuestionMessage.value\n ? { requiredMessage: requiredQuestionMessage.value }\n : {}),\n required: required.value,\n multipleChoice: multipleChoice.value,\n options: answers.map((answer) => answer.value),\n };\n }\n\n onUpdateJson(dataJson, 'ethnicity');\n };\n\n const item = (answer, index) => (\n <Box width=\"100%\" maxWidth={434} display=\"flex\" alignItems=\"center\" marginBottom=\"10px\">\n <Typography className={classes.subLabel} style={{ marginRight: 10 }}>\n A{index + 1}\n </Typography>\n\n <Input\n placeholder={`Enter option ${index + 1}`}\n value={answer.value}\n onChange={(e) => {\n onChangeDnDValue(e, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n <DeleteIcon\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 20, cursor: 'pointer' }}\n onClick={() => {\n onRemoveDnDItem(answers, setAnswers, index);\n saveOnTimeOut();\n }}\n />\n </Box>\n );\n\n const renderer = (moveItem) =>\n answers.map((answer, index) => {\n if (allowDnD) {\n return (\n <DnDItem key={index} moveItem={moveItem} index={index}>\n {item(answer, index)}\n </DnDItem>\n );\n }\n return item(answer, index);\n });\n const saveOnTimeOut = () => {\n setLoading(true);\n setTimeout(() => {\n handleSaveComponent();\n setLoading(false);\n }, 500);\n };\n const renderSettings = () => (\n <Settings\n multipleChoice={multipleChoice}\n questions={['description', 'required']}\n checkQuestion={checkQuestion}\n descriptionQuestion={descriptionQuestion}\n requiredQuestion={requiredQuestionMessage}\n setCheckQuestion={setCheckQuestion}\n saveOnTimeOut={saveOnTimeOut}\n from={from}\n />\n );\n\n const renderPreview = () => (\n <Box>\n <PreviewLabel question={question.value} qNumber={componentIndex + 1} required={required.value} />\n <Box marginTop=\"-16px\" marginLeft=\"45px\">\n <HideAnswer marginLeft=\"-7px\" marginTop={0}>\n <FormControl variant=\"standard\" style={{ minWidth: 280, marginBottom: 20 }}>\n <InputLabel id=\"demo-simple-select-standard-label\">Select an Option</InputLabel>\n <Select\n labelId=\"demo-simple-select-standard-label\"\n id=\"demo-simple-select-standard\"\n disabled\n label=\"Age\"\n value=\"\"\n />\n </FormControl>\n {answers.map((answer, index) => (\n <Box display=\"flex\" alignItems=\"center\" key={index} marginBottom=\"10px\">\n <ArrowRightAltIcon htmlColor=\"#00000061\" style={{ fontSize: 16, marginRight: 10 }} />\n <Typography style={{ color: '#00000061' }}>{answer.value}</Typography>\n </Box>\n ))}\n </HideAnswer>\n </Box>\n </Box>\n );\n\n return (\n <Box marginBottom=\"20px\">\n <WrapperComponent\n onBlur={(!questionBankComponent && saveOnTimeOut) || function () {}}\n renderSettings={shouldRenderSettings ? renderSettings : null}\n componentIndex={componentIndex}\n duplicateComponent={duplicateComponent}\n isQuestionBankComponent={questionBankComponent || isStaticComponent}\n renderPreview={renderPreview}\n required={required}\n onDeleteComponent={onDeleteComponent}\n id={id}\n isDemographicComponent\n path={path}\n loading={loading}\n allowDnD={false}\n includeRequired={includeRequired}\n visible={visible}\n isStaticComponent={isStaticComponent}\n dataSaved={data?.question}\n refActionModal={refActionModal}\n setModal={setModal}\n shouldRenderToggle={shouldRenderToggle}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <ArrowDropDownIcon htmlColor=\"#6D7385\" />\n <Typography className={classes.title}>Ethnicity</Typography>\n </Box>\n <Box display=\"flex\" alignItems=\"center\" marginTop=\"15px\">\n <Typography className={classes.label}>Q{componentIndex + 1}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n <Input\n placeholder=\"Enter name question\"\n value={question.value}\n onChange={(e) => {\n question.onChange(e);\n saveOnTimeOut();\n }}\n disabled={isStaticComponent}\n />\n </Box>\n <Box marginLeft=\"20px\" marginTop=\"30px\">\n {/* <DndProvider backend={HTML5Backend}> */}\n <DnDArea selectedItems={answers} setSelectedItems={setAnswers} renderer={renderer} />\n {/* </DndProvider> */}\n </Box>\n <AddMore\n dataTestId=\"forms-ethnicity-button-add-more\"\n onClick={() => onAddDnDItem(answers, setAnswers, 'radio', '')}\n marginLeft={allowDnD ? '77px' : '18px'}\n />\n </WrapperComponent>\n </Box>\n );\n}\n","import React from 'react';\nimport AddressInformation from '../components/AddressInformation';\nimport ContactInfo from '../components/ContactInfo';\nimport Date from '../components/Date';\nimport DateOfBirth from '../components/DateOfBirth';\nimport Demographics from '../components/Demographics';\nimport Dropdown from '../components/Dropdown';\nimport Email from '../components/Email';\nimport File from '../components/FIle';\nimport Gender from '../components/Gender';\nimport Hour from '../components/Hour';\nimport LongText from '../components/LongText';\nimport MultipleChoice from '../components/MultipleChoice';\nimport Phone from '../components/Phone';\nimport Police from '../components/Police';\nimport PrimaryLanguage from '../components/PrimaryLanguage';\nimport QuestionBankSideComponent from '../components/QuestionBankSideComponent';\nimport Race from '../components/Race';\nimport SexualOrientation from '../components/SexaulOrientation';\nimport ShortText from '../components/ShortText';\nimport SingleChoice from '../components/SingleChoice';\nimport Subtitle from '../components/Subtitle';\nimport Title from '../components/Title';\nimport Url from '../components/URL';\nimport Witnesses from '../components/Witnesses';\nimport YesNo from '../components/YesNo';\nimport RaceEthnicity from '../components/RaceEthnicity';\nimport Ethnicity from '../components/Ethnicity';\n\n/**\n * @description This function is used to inject special props to the component that is about to be rendered\n */\nconst onAddPropsToComponent = ({\n Component,\n componentEnhanced,\n componentId,\n deleteComponent,\n componentIndex,\n onChangeOptions,\n onUpdateJson,\n refActionModal,\n setModal,\n handleSubComponents = false,\n isSubComponent,\n customFieldModule,\n from,\n}) => {\n componentEnhanced.component = Component;\n componentEnhanced.onDeleteComponent = () => deleteComponent(componentIndex);\n\n if (handleSubComponents) {\n componentEnhanced.onUpdateJson = (data, subProp) => onUpdateJson(componentIndex, data, subProp);\n componentEnhanced.onUpdateJsonTop = (data) => onUpdateJson(componentIndex, data);\n } else if (isSubComponent) {\n componentEnhanced.onUpdateJson = (data, subProp) => onUpdateJson(data, subProp);\n } else {\n componentEnhanced.onUpdateJson = (data) => onUpdateJson(componentIndex, data);\n }\n componentEnhanced.isSubComponent = isSubComponent;\n componentEnhanced.componentIndex = componentIndex;\n componentEnhanced.onChangeOptions = onChangeOptions;\n componentEnhanced.refActionModal = refActionModal;\n componentEnhanced.setModal = setModal;\n componentEnhanced.customFieldModule = customFieldModule;\n componentEnhanced.from = from;\n};\n\nconst getComponent = (components, type) => {\n for (const component of components) {\n if (component.type === type) {\n return component;\n }\n }\n return null;\n};\n\n/*\n Fix demographic component, adding race and ethnicity,\n so race and ethnicity are displayed for old forms where demographics was already included without those fields\n*/\nconst fixDemographicComponentForRaceAndEthnicity = (component) => {\n if (component.type !== 'demographics') {\n return;\n }\n\n const race = getComponent(component.components, 'race');\n const ethnicity = getComponent(component.components, 'ethnicity');\n if (!race && !ethnicity) {\n component.components.splice(1, 0, {\n type: 'ethnicity',\n data: {\n visible: false,\n question: 'Ethnicity',\n required: false,\n multipleChoice: false,\n options: [\n 'Black or African American',\n 'Hispanic or Latinx',\n 'Asian',\n 'Native Hawaiian or Pacific Islander',\n 'American Indian or Alaskan Native',\n 'Middle Eastern or South Asian',\n 'Multiracial',\n 'White',\n 'Not Listed',\n 'Prefer not to answer',\n ],\n },\n name: '',\n id: 'WPrblNyorF2',\n shouldRenderToggle: true,\n });\n component.components.splice(3, 0, {\n type: 'race',\n data: {\n visible: false,\n question: 'Race',\n required: false,\n multipleChoice: false,\n options: [\n 'Black or African American',\n 'Hispanic or Latinx',\n 'Asian',\n 'Native Hawaiian or Pacific Islander',\n 'American Indian or Alaskan Native',\n 'Middle Eastern or South Asian',\n 'Multiracial',\n 'White',\n 'Not Listed',\n 'Prefer not to answer',\n ],\n },\n name: '',\n id: 'WPrblNyorF1',\n shouldRenderToggle: true,\n });\n }\n};\n\n/**\n * @description This function is used to get the config for the components that are going to be rendered\n */\nexport const getConfig = ({\n setComponents,\n customFieldModule = false,\n componentsFromServer = [],\n deleteComponent,\n onChangeOptions,\n onUpdateJson,\n refActionModal,\n setModal,\n includeRequired = true,\n isSubComponent = false,\n from = \"formtypes\",\n}) => componentsFromServer.map((component, index) => {\n const componentEnhanced = { ...component, includeRequired };\n switch (component.type) {\n case 'questionBank':\n onAddPropsToComponent({\n onUpdateJson,\n Component: QuestionBankSideComponent,\n deleteComponent,\n componentEnhanced,\n componentIndex: index,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'demographics':\n fixDemographicComponentForRaceAndEthnicity(component);\n onAddPropsToComponent({\n onUpdateJson,\n Component: Demographics,\n deleteComponent,\n componentEnhanced,\n componentIndex: index,\n refActionModal,\n setModal,\n handleSubComponents: true,\n customFieldModule,\n from,\n });\n break;\n case 'title':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Title,\n deleteComponent,\n componentEnhanced,\n componentIndex: index,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'primaryLanguage':\n onAddPropsToComponent({\n onUpdateJson,\n Component: PrimaryLanguage,\n deleteComponent,\n componentEnhanced,\n componentIndex: index,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'subtitle':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Subtitle,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'singleChoice':\n onAddPropsToComponent({\n onUpdateJson,\n Component: SingleChoice,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'multipleChoices':\n onAddPropsToComponent({\n onUpdateJson,\n Component: MultipleChoice,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'dropdown':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Dropdown,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'gender':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Gender,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n isSubComponent,\n customFieldModule,\n from,\n });\n break;\n case 'sexualOrientation':\n onAddPropsToComponent({\n onUpdateJson,\n Component: SexualOrientation,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n isSubComponent,\n customFieldModule,\n from,\n });\n break;\n case 'raceEthnicity':\n onAddPropsToComponent({\n onUpdateJson,\n Component: RaceEthnicity,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n isSubComponent,\n customFieldModule,\n from,\n });\n break;\n case 'race':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Race,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n isSubComponent,\n customFieldModule,\n from,\n });\n break;\n case 'ethnicity':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Ethnicity,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n isSubComponent,\n customFieldModule,\n from,\n });\n break;\n case 'yesNo':\n onAddPropsToComponent({\n onUpdateJson,\n Component: YesNo,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'shortText':\n onAddPropsToComponent({\n onUpdateJson,\n Component: ShortText,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'longText':\n onAddPropsToComponent({\n onUpdateJson,\n Component: LongText,\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'fileUpload':\n onAddPropsToComponent({\n onUpdateJson,\n Component: File,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'url':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Url,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'contactInformation':\n onAddPropsToComponent({\n onUpdateJson,\n Component: ContactInfo,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'policeOfficersOrEmployees':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Police,\n onChangeOptions,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'witnesses':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Witnesses,\n onChangeOptions,\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'addressInformation':\n onAddPropsToComponent({\n onUpdateJson,\n Component: AddressInformation,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'date':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Date,\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'dateOfBirth':\n onAddPropsToComponent({\n onUpdateJson,\n Component: DateOfBirth,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n isSubComponent,\n customFieldModule,\n from,\n });\n break;\n case 'hour':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Hour,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'phone':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Phone,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n case 'email':\n onAddPropsToComponent({\n onUpdateJson,\n Component: Email,\n\n componentEnhanced,\n componentIndex: index,\n deleteComponent,\n refActionModal,\n setModal,\n customFieldModule,\n from,\n });\n break;\n\n default:\n return <div>Unsupported Component</div>;\n }\n\n return componentEnhanced;\n });\n \n","import React, { useCallback, Fragment, useMemo, useRef, useState } from 'react';\nimport { Box, Divider, makeStyles, MenuItem, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport WcIcon from '@material-ui/icons/Wc';\nimport TitleIcon from '@material-ui/icons/Title';\nimport RadioButtonIcon from '@material-ui/icons/RadioButtonChecked';\nimport CheckboxIcon from '@material-ui/icons/CheckBox';\nimport ShortTextIcon from '@material-ui/icons/ShortText';\nimport LongTextIcon from '@material-ui/icons/Notes';\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\nimport LinkIcon from '@material-ui/icons/Link';\nimport RoomIcon from '@material-ui/icons/Room';\nimport PersonIcon from '@material-ui/icons/Person';\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\nimport PhoneIcon from '@material-ui/icons/Phone';\nimport EmailIcon from '@material-ui/icons/Email';\nimport { useDrag } from 'react-dnd';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport shortid from 'shortid';\nimport { getConfig } from '../../formEngine/config/Config';\nimport { Renderer } from '../../formEngine/config/Renderer';\nimport { SECTION } from '../../formEngine/utils/constants';\n\nimport { ReactComponent as CalendarIcon } from '../../assets/icons/today_black_24dp.svg';\nimport { ReactComponent as YesNoIcon } from '../../assets/icons/rule_black_24dp.svg';\nimport PopperPortal from '../../components/PopperPortal';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n padding: 28,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n },\n ButtonText: {\n background: '#2E66FE 0% 0% no-repeat padding-box',\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n padding: '10px 20px',\n color: '#fff',\n fontSize: 14,\n fontWeight: '500',\n width: 152,\n borderRight: '1px solid #fff',\n textAlign: 'center',\n },\n dropdownButton: {\n background: '#2E66FE 0% 0% no-repeat padding-box',\n width: 32,\n padding: '10px 20px',\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n cursor: 'pointer',\n position: 'relative',\n },\n altText: {\n fontSize: 14,\n color: '#000000AD',\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n}));\n\nconst renderComponentsArr = (hideDemographics = false) => [\n {\n name: 'Title',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'title',\n },\n {\n name: 'Subtitle',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'subtitle',\n },\n {\n name: 'Single Choice',\n Icon: RadioButtonIcon,\n\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'singleChoice',\n },\n\n {\n name: 'Multiple Choices',\n Icon: CheckboxIcon,\n\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'multipleChoices',\n },\n {\n name: 'Dropdown',\n Icon: ArrowDropDownIcon,\n\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'dropdown',\n },\n\n {\n name: 'Yes/No',\n Icon: YesNoIcon,\n\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'yesNo',\n },\n {\n name: 'Short Text',\n Icon: ShortTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'shortText',\n },\n {\n name: 'Long Text',\n Icon: LongTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'longText',\n },\n {\n name: 'File upload',\n Icon: CloudUploadIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'fileUpload',\n },\n {\n name: 'URL',\n Icon: LinkIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'url',\n },\n ...(!hideDemographics\n ? [\n {\n name: 'Demographics',\n Icon: WcIcon,\n\n // data: {\n // question: '',\n // description: '',\n // required: false,\n // },\n components: [\n {\n name: 'Date Of Birth',\n type: 'dateOfBirth',\n id: 'dob-EMJmrLMK_',\n shouldRenderToggle: true,\n data: {\n visible: true,\n question: 'Date Of Birth',\n required: false,\n },\n },\n {\n name: 'Ethnicity',\n type: 'ethnicity',\n id: 're-MN-A6Xlp4',\n shouldRenderToggle: true,\n data: {\n visible: false,\n question: 'Ethnicity',\n required: false,\n multipleChoice: false,\n options: [\n 'Black or African American',\n 'Hispanic or Latinx',\n 'Asian',\n 'Native Hawaiian or Pacific Islander',\n 'American Indian or Alaskan Native',\n 'Middle Eastern or South Asian',\n 'Multiracial',\n 'White',\n 'Not Listed',\n 'Prefer not to answer',\n ],\n },\n },\n {\n name: 'Gender',\n type: 'gender',\n id: 'ge-Z5QyMOjRr',\n shouldRenderToggle: true,\n data: {\n visible: true,\n question: 'Gender',\n required: false,\n multipleChoice: false,\n options: [\n 'Male',\n 'Female',\n 'Trans Male',\n 'Trans Female',\n 'Genderqueer / Gender Non-binary',\n 'Not Listed',\n 'Prefer not to answer',\n ],\n },\n },\n {\n name: 'Race',\n type: 'race',\n id: 're-MN-A6Xlp3',\n shouldRenderToggle: true,\n data: {\n visible: false,\n question: 'Race',\n required: false,\n multipleChoice: false,\n options: [\n 'Black or African American',\n 'Hispanic or Latinx',\n 'Asian',\n 'Native Hawaiian or Pacific Islander',\n 'American Indian or Alaskan Native',\n 'Middle Eastern or South Asian',\n 'Multiracial',\n 'White',\n 'Not Listed',\n 'Prefer not to answer',\n ],\n },\n },\n\n {\n name: 'Race/Ethnicity',\n type: 'raceEthnicity',\n id: 're-MN-A6Xlp2',\n shouldRenderToggle: true,\n data: {\n visible: true,\n question: 'Race/Ethnicity',\n required: false,\n multipleChoice: false,\n options: [\n 'Black or African American',\n 'Hispanic or Latinx',\n 'Asian',\n 'Native Hawaiian or Pacific Islander',\n 'American Indian or Alaskan Native',\n 'Middle Eastern or South Asian',\n 'Multiracial',\n 'White',\n 'Not Listed',\n 'Prefer not to answer',\n ],\n },\n },\n\n {\n name: 'Sexual Orientation',\n type: 'sexualOrientation',\n id: 'so-I2csJnaXb',\n shouldRenderToggle: true,\n data: {\n question: 'Sexual Orientation',\n required: false,\n multipleChoice: false,\n visible: true,\n options: [\n 'Bisexual',\n 'Gay Male',\n 'Lesbian',\n 'Heterosexual or Straight',\n 'Pansexual',\n 'Asexual',\n 'Not Listed',\n 'Prefer not to answer',\n ],\n },\n },\n ],\n type: 'demographics',\n },\n ]\n : []),\n {\n name: 'Contact Information',\n Icon: PersonIcon,\n data: {\n question: '',\n description: '',\n },\n type: 'contactInformation',\n },\n {\n name: 'Address Information',\n Icon: RoomIcon,\n data: {\n question: '',\n description: '',\n },\n type: 'addressInformation',\n },\n {\n name: 'Date',\n Icon: CalendarIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'date',\n },\n {\n name: 'Hour',\n Icon: AccessTimeIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'hour',\n },\n {\n name: 'Phone',\n Icon: PhoneIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'phone',\n },\n {\n name: 'Email',\n Icon: EmailIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n type: 'email',\n },\n];\n\n/**\n * @description This component is used to render a section of the form\n * @param {function} handleChangeSectionName - function to change the name of the section\n * @param {array} components - array of components of the section\n * @param {function} addComponent - function to add a component to the section\n * @param {function} deleteComponent - function to delete a component of the section\n * @param {function} handleDrop - function to handle the drop of a component\n * @param {object} data - data of the section\n * @param {string} path - path of the section\n * @param {array} pages - array of pages of the form\n * @param {function} onChangeDataInput - function to change the data of a component\n * @param {function} onChangeOptions - function to change the options of a component\n * @param {function} onUpdateJson - function to update the json of the form\n * @param {function} deleteSection - function to delete the section\n * @param {function} duplicateComponent - function to duplicate a component\n * @param {function} setModal - function to set the modal\n * @param {object} refActionModal - ref of the modal\n * @param {boolean} isDefaultForm - boolean to know if the form is default\n */\n\nexport default function Section({\n handleChangeSectionName,\n components,\n addComponent,\n deleteComponent,\n handleDrop,\n data,\n path,\n pages,\n onChangeDataInput,\n onChangeOptions,\n onUpdateJson,\n deleteSection,\n duplicateComponent,\n setModal,\n refActionModal,\n isDefaultForm,\n}) {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const ref = useRef(null);\n const [isHover, setIsHover] = useState(false);\n\n /**\n * @description This hook is used to drag the section in the form\n */\n const [{ isDragging }, drag] = useDrag({\n item: {\n type: SECTION,\n id: data.id,\n components,\n path,\n },\n type: SECTION,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const opacity = isDragging ? 0 : 1;\n drag(ref);\n\n /**\n * @description This function is used to check if the section contains the demographics component\n */\n const checkDemographicsComponent = () => {\n let containsDemographics = false;\n pages.forEach((page) => {\n page.sections.forEach((section) => {\n section.components.forEach((component) => {\n if (component.type === 'demographics') {\n containsDemographics = true;\n }\n });\n });\n });\n\n return containsDemographics;\n };\n checkDemographicsComponent();\n\n const handleDuplicate = useCallback(\n (sectionIx, componentIx) => duplicateComponent(renderComponentsArr, sectionIx, componentIx),\n [renderComponentsArr]\n );\n\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: components,\n deleteComponent,\n onChangeDataInput,\n onChangeOptions,\n onUpdateJson,\n refActionModal, // padre santo\n setModal,\n handleDrop,\n }),\n [components]\n );\n\n /**\n * @description This function is used to select a component to add to the section\n */\n const handleSelectComponent = (component) => {\n setOpen(false);\n addComponent(component);\n };\n\n /**\n * @description This function is used to render the content of the section\n */\n const renderSectionContent = () => (\n <Box className={classes.container}>\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Box style={{ width: '100%', height: 1, background: '#6D738526' }} />\n {/* <Box padding=\"0 20px\">\n <InputSection\n value={data.name}\n onChange={(e) => handleChangeSectionName(e, +path)}\n placeholder=\"Enter section name here\"\n />\n </Box> */}\n <Box style={{ width: '100%', height: 1, background: '#6D738526' }} />\n <DeleteIcon\n onClick={() => {\n setModal(true);\n refActionModal.current = {\n nameAction: 'section',\n actionPress: () => deleteSection(parseInt(path)),\n };\n }}\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 18, cursor: 'pointer' }}\n />\n </Box>\n <Box marginTop=\"30px\">\n <Renderer duplicateComponent={handleDuplicate} config={config} handleDrop={handleDrop} path={path} />\n </Box>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\" margin=\"34px 0\">\n <Box display=\"flex\" alignItems=\"center\" onClick={() => setOpen(!open)} style={{ cursor: 'pointer' }}>\n <Box className={classes.ButtonText}>ADD QUESTION</Box>\n <Box className={classes.dropdownButton}>\n <ArrowDropDownIcon htmlColor=\"#fff\" />\n <PopperPortal open={open} setOpen={setOpen} left=\"0px\" top=\"45px\">\n <Box width={249} borderRadius={4} style={{ background: '#fff' }} boxShadow=\"0px 3px 6px #0000000D\">\n {renderComponentsArr(checkDemographicsComponent()).map((component, idx) => (\n <Fragment key={idx}>\n {idx === 2 && <Divider style={{ margin: '8px 0' }} />}\n {idx === 6 && <Divider style={{ margin: '8px 0' }} />}\n {idx === 8 && <Divider style={{ margin: '8px 0' }} />}\n {idx === 10 && <Divider style={{ margin: '8px 0' }} />}\n <MenuItem\n key={idx}\n onClick={() =>\n handleSelectComponent({\n name: component.name,\n ...(component.components?.length ? { components: component.components } : {}),\n type: component.type,\n id: shortid.generate(),\n data: component.data,\n })\n }\n >\n <Box display=\"flex\" alignItems=\"center\">\n <component.Icon fill=\"#6D7385\" htmlColor=\"#6D7385\" style={{ fontSize: 15 }} />\n <Typography style={{ marginLeft: 10, fontSize: 14 }}>{component.name}</Typography>\n </Box>\n </MenuItem>\n </Fragment>\n ))}\n </Box>\n </PopperPortal>\n </Box>\n </Box>\n </Box>\n <Typography align=\"center\" className={classes.altText}>\n Or choose from the question bank to get started\n </Typography>\n </Box>\n );\n return isDefaultForm ? (\n <>{renderSectionContent()}</>\n ) : (\n <div\n ref={ref}\n style={{ opacity }}\n className={classes.dndContainer}\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n >\n <DragIndicatorIcon\n htmlColor=\"#6D7385\"\n style={{\n marginRight: 7,\n cursor: isDragging ? 'grabbing' : 'grab',\n opacity: isHover ? 1 : 0,\n transition: 'ease all .3s',\n }}\n />\n {renderSectionContent()}\n </div>\n );\n}\n\nconst InputSection = styled.input`\n color: #000000de;\n border: 0;\n outline: 0;\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n ::placeholder {\n color: #00000061;\n font-weight: 500;\n }\n`;\n","/**\n *\n * @description this function is used to reorder the items inside the DnD area.\n */\nexport const reorder = (list, startIndex, endIndex) => {\n const result = [...Array.from(list)];\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex > startIndex ? endIndex - 1 : endIndex, 0, removed); // inserting task in new index\n\n return [...result];\n};\n\n/**\n * @description this function is used to reorder the items of items inside the DnD area.\n * @param {*} children\n * @param {*} splitDropZonePath\n * @param {*} splitItemPath\n * @returns\n */\nexport const reorderChildren = (children, splitDropZonePath, splitItemPath) => {\n if (splitDropZonePath.length === 1) {\n const dropZoneIndex = Number(splitDropZonePath[0]);\n const itemIndex = Number(splitItemPath[0]);\n return reorder(children, itemIndex, dropZoneIndex);\n }\n\n const updatedChildren = [...children];\n\n // const curIndex = Number(splitDropZonePath.slice(0, 1));\n const curIndex = 0;\n\n // Update the specific node's children\n const splitDropZoneChildrenPath = splitDropZonePath.slice(1);\n const splitItemChildrenPath = splitItemPath.slice(1);\n\n // current section\n const nodeChildren = updatedChildren[curIndex];\n\n // update section\n updatedChildren[curIndex] = {\n ...nodeChildren,\n components: reorderChildren(nodeChildren.components, splitDropZoneChildrenPath, splitItemChildrenPath),\n };\n\n return updatedChildren;\n};\n\n/**\n * @description this function is used to move items in the same parent.\n */\nexport const handleMoveWithinParent = (layout, splitDropZonePath, splitItemPath) =>\n reorderChildren(layout, splitDropZonePath, splitItemPath);\n\nexport const reorderOnDrop = (children, splitDropZonePath, items) => {\n const updatedChildren = [...children];\n\n items.forEach((item) => {\n const curIndex = Number(splitDropZonePath.slice(0, 1));\n\n // Update the specific node's children\n const splitItemChildrenPath = splitDropZonePath.slice(1);\n const nodeChildren = updatedChildren[curIndex];\n updatedChildren[curIndex] = {\n ...nodeChildren,\n children: reorderOnDrop(nodeChildren.children, splitItemChildrenPath, item),\n };\n\n return updatedChildren;\n });\n};\n\n/**\n * @description this function is used to move items from sidebar to section.\n */\nexport const handleMoveSidebarComponentIntoSection = (layout, splitDropZonePath, items) => {\n const newLayoutStructure = items;\n\n return reorderOnDrop(layout, splitDropZonePath, newLayoutStructure);\n};\n\nexport const saveOnTimeOut = (callback, setLoading) => {\n setLoading(true);\n setTimeout(() => {\n callback();\n setLoading(false);\n }, 500);\n};\n","import React, { useCallback, useLayoutEffect, useState } from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport shortid from 'shortid';\nimport styled from 'styled-components';\nimport Alert from '../../components/Alert';\n\nimport AddMore from '../../components/AddMore';\n\nimport { addComponentToJson, DeleteComponentFromJson, onUpdateJson } from '../../formEngine/utils/utls';\nimport PageHeader from './PageHeader';\nimport Section from './Section';\n\nimport { handleMoveWithinParent } from '../../formEngine/utils/helpers';\nimport DropZone from '../../formEngine/utils/DropZone';\nimport { QUESTION_BANK } from '../../formEngine/utils/constants';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n height: 'calc(116.1vh - 64px)',\n overflowY: 'auto',\n padding: 24,\n },\n}));\n\nexport default function PageDetails({\n page,\n setPages,\n handleVisibleQuestion,\n handleInitVisibleQuestion,\n handleSaveForm,\n loading,\n formInfo,\n setFormInfo,\n pages,\n refActionModal,\n setOpen,\n isDefaultForm,\n}) {\n const classes = useStyles();\n const [layout, setLayout] = useState(page.sections);\n useLayoutEffect(() => {\n setLayout(page.sections);\n }, [page]);\n\n const addNewSection = () => {\n setPages((prevState) => {\n const pagesCopy = [...prevState];\n pagesCopy[page.pageIndex].sections = [...layout, { name: '', id: shortid.generate(), components: [] }];\n\n return pagesCopy;\n });\n };\n\n const deleteSection = (sectionIx) => {\n setPages((prevState) => {\n const pagesCopy = [...prevState];\n const sections = pagesCopy[page.pageIndex].sections.filter((_, index) => sectionIx !== index);\n const questionsBankAdded = pagesCopy[page.pageIndex].sections[sectionIx].components.filter(\n (res) => res.type === 'questionBank'\n );\n // check questionBank components and reset questions\n handleInitVisibleQuestion(questionsBankAdded, 'reset');\n\n pagesCopy[page.pageIndex].sections = sections;\n return pagesCopy;\n });\n };\n\n const duplicateComponent = (componentsArray, sectionIx, ixComponent) => {\n setPages((prevState) => {\n const pagesCopy = [...prevState];\n const componentType = pagesCopy[page.pageIndex].sections[sectionIx].components[ixComponent].type;\n\n const componentDuplicate = componentsArray().find((res) => res.type === componentType);\n componentDuplicate.data = pagesCopy[page.pageIndex].sections[sectionIx].components[ixComponent].data;\n const componentsBefore = [\n ...pagesCopy[page.pageIndex].sections[sectionIx].components.slice(0, ixComponent + 1),\n componentDuplicate,\n ];\n const componentsAfter = pagesCopy[page.pageIndex].sections[sectionIx].components.slice(ixComponent + 1);\n pagesCopy[page.pageIndex].sections[sectionIx].components = [...componentsBefore, ...componentsAfter];\n return pagesCopy;\n });\n };\n\n const handleChangeSectionName = (e, index) => {\n const { value } = e.target;\n\n setPages((prevState) => {\n const pagesCopy = [...prevState];\n pagesCopy[page.pageIndex].sections[index].name = value;\n\n return pagesCopy;\n });\n };\n\n const handleDrop = useCallback(\n (dropZone, item) => {\n const splitDropZonePath = dropZone.path.split('-');\n const pathToDropZone = splitDropZonePath.slice(0, -1).join('-');\n if (item.type === QUESTION_BANK) {\n // 1. Move sidebar item into section\n const sectionIndex = +dropZone.path.split('-')[0];\n const dropIndex = +dropZone.path.split('-')[1];\n handleVisibleQuestion(item.id, false);\n\n const pagesCopy = Array.from(pages);\n const components = [...layout[sectionIndex].components];\n const questionBankComponent = {\n type: 'questionBank',\n data: {\n type: item.componentType,\n },\n idQuestion: item.id,\n components: item.components.map((component) => ({\n ...component,\n questionBankComponent: true,\n })),\n };\n components.splice(dropIndex, 0, questionBankComponent);\n pagesCopy[page.pageIndex].sections[sectionIndex].components = components;\n\n setPages(pagesCopy);\n return;\n }\n\n // move down here since sidebar items dont have path\n const splitItemPath = item.path.split('-');\n const pathToItem = splitItemPath.slice(0, -1).join('-');\n\n // 2. Pure move (no create)\n if (splitItemPath.length === splitDropZonePath.length) {\n // 2.a. move within parent\n if (pathToItem === pathToDropZone) {\n const pagesCopy = Array.from(pages);\n\n const moveItem = handleMoveWithinParent(layout, splitDropZonePath, splitItemPath);\n pagesCopy[page.pageIndex].sections = moveItem;\n\n setPages(pagesCopy);\n }\n }\n },\n [layout, handleVisibleQuestion]\n );\n const renderSection = (section, currentPath) => (\n <Section\n data={section}\n handleDrop={handleDrop}\n components={section.components}\n path={currentPath}\n pages={pages}\n isDefaultForm={isDefaultForm}\n addComponent={(component) =>\n addComponentToJson({\n setPages,\n page,\n components: section.components,\n component,\n currentSection: +currentPath,\n })\n }\n refActionModal={refActionModal}\n duplicateComponent={duplicateComponent}\n setModal={setOpen}\n deleteSection={deleteSection}\n deleteComponent={(componentIndex) => {\n if (section.components[componentIndex].type === 'questionBank') {\n handleVisibleQuestion(section.components[componentIndex].idQuestion, true);\n }\n DeleteComponentFromJson({\n pages,\n setPages,\n page,\n components: section.components,\n componentIndex,\n currentSection: +currentPath,\n });\n }}\n onUpdateJson={(componentIndex, data, subProp) =>\n onUpdateJson({\n setPages,\n page,\n componentIndex,\n data,\n currentSection: +currentPath,\n subProp,\n })\n }\n handleChangeSectionName={handleChangeSectionName}\n />\n );\n\n const onSaveForm = (dataTopInfo) => {\n // if (questionsRequired && formInfo?.published) {\n // return setSomeQuesRequired(true);\n // }\n // setSomeQuesRequired(false);\n handleSaveForm(dataTopInfo);\n };\n\n return (\n <ContainerPageDetail className={classes.container}>\n <PageHeader onSaveForm={onSaveForm} loading={loading} formInfo={formInfo} setFormInfo={setFormInfo} isDefaultForm={isDefaultForm} />\n {formInfo?.defaultForm && (\n <Alert status=\"info\">\n <Typography style={{ fontSize: 14 }}>\n Default forms cannot be deleted or updated. Duplicate this form to edit.\n </Typography>\n </Alert>\n )}\n\n {layout.map((section, index) => {\n const currentPath = `${index}`;\n\n return (\n <React.Fragment key={section.id}>\n <DropZone\n data={{\n path: currentPath,\n childrenCount: layout.length,\n }}\n onDrop={handleDrop}\n path={currentPath}\n />\n {renderSection(section, currentPath)}\n </React.Fragment>\n );\n })}\n <DropZone\n data={{\n path: `${layout.length}`,\n childrenCount: layout.length,\n }}\n onDrop={handleDrop}\n isLast\n />\n {!isDefaultForm && (\n <Box display=\"flex\" justifyContent=\"center\">\n <AddMore\n dataTestId=\"forms-button-add-new-section\"\n marginLeft={0}\n text=\"Add new section\"\n onClick={addNewSection}\n style={{ cursor: 'pointer' }}\n />\n </Box>\n )}\n </ContainerPageDetail>\n );\n}\n\nexport const ContainerPageDetail = styled.div`\n /* ::-webkit-scrollbar {\n width: 0px;\n } */\n`;\n","import { Box, CircularProgress, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { toast } from '../../components/Notification';\nimport Alert from '../../components/Alert';\nimport DashButton from '../../components/DashButton';\nimport Dropdown from '../../formEngine/components/Dropdown';\nimport ShortText from '../../formEngine/components/ShortText';\nimport useInput from '../../hooks/useInput';\nimport { onSaveFormType } from '../../services/unarmed';\nimport { subtypeOptions } from '../../utils/options';\nimport {\n AllegationOptions,\n DisciplineOptions,\n DispositionOptions,\n ReporterOptions,\n sourceOptions,\n} from '../CaseDetails/UpdateCase';\nimport CaseNumber from './components/CaseNumber';\nimport { ContainerPageDetail } from './PageDetails';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n position: 'relative',\n padding: 28,\n minHeight: 195,\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 35,\n },\n}));\n\nexport const investigatorOptions = ['IA', 'PCOB', 'Both'];\n\nexport const renderHeder = ({ title, onClick, loading, isDefaultForm }) => (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Typography style={{ fontSize: 24, fontWeight: '500' }}>{title}</Typography>\n\n <DashButton onClick={onClick} disabled={isDefaultForm || loading}>\n {loading ? <CircularProgress color=\"#fff\" size=\"20px\" /> : 'Save'}{' '}\n </DashButton>\n </Box>\n);\n\nexport default function Standard({ id, formInfoUpdate, isDefaultForm, setFormInfo }) {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [caseUpdates, setCaseUpdates] = useState({});\n // const visible1 = useInput(true, false, false, true);\n const visible2 = useInput(true, false, false, true);\n const source = useInput(true, false, false, true);\n const reporter = useInput(true, false, false, true);\n const subtype = useInput(true, false, false, true);\n const investigator = useInput(true, false, false, true);\n const allegations = useInput(true, false, false, true);\n const dispositions = useInput(true, false, false, true);\n const disciplines = useInput(true, false, false, true);\n const onUpdateJson = (value) => {\n setCaseUpdates((prevState) => ({ ...prevState, ...value }));\n };\n\n useEffect(() => {\n if (formInfoUpdate) {\n // visible1.setValue(formInfoUpdate?.caseNumber?.visible);\n visible2.setValue(formInfoUpdate?.internalAffairs?.visible);\n subtype.setValue(formInfoUpdate?.subtype?.visible);\n source.setValue(formInfoUpdate?.source?.visible);\n reporter.setValue(formInfoUpdate?.reporter?.visible);\n allegations.setValue(formInfoUpdate?.allegations?.visible);\n dispositions.setValue(formInfoUpdate?.dispositions?.visible);\n disciplines.setValue(formInfoUpdate?.disciplines?.visible);\n investigator.setValue(formInfoUpdate?.investigator?.visible);\n }\n }, [formInfoUpdate]);\n\n const onSave = async () => {\n setLoading(true);\n try {\n const data = {\n caseUpdates: {\n active: formInfoUpdate?.active,\n internalAffairs: {\n visible: visible2.value,\n },\n ...caseUpdates,\n },\n };\n const res = await onSaveFormType(data, id);\n\n setFormInfo((prevState) => ({\n ...prevState,\n caseUpdates: res.data?.caseUpdates,\n }));\n toast.success('Case updates has been updated');\n } catch (error) {\n toast.error(error?.response?.data?.error?.details?.[0]?.message);\n }\n setLoading(false);\n };\n return (\n <ContainerPageDetail style={{ width: '100%', height: 'calc(116.1vh - 64px)', overflowY: 'auto' }}>\n <Box padding=\"30px 20px 20px\" width=\"100%\">\n {renderHeder({\n title: 'Standard',\n onClick: onSave,\n loading,\n isDefaultForm,\n })}\n {isDefaultForm && (\n <Alert status=\"info\">\n <Typography style={{ fontSize: 14 }}>\n Default forms cannot be deleted or updated. Duplicate this form to edit.\n </Typography>\n </Alert>\n )}\n <DndProvider backend={HTML5Backend}>\n <Box className={classes.container}>\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <CaseNumber\n questionBankComponent\n data={{ question: 'Case Number' }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n // visible={visible1}\n id={id}\n formInfoUpdate={formInfoUpdate}\n />\n <ShortText\n questionBankComponent\n data={{ question: 'Internal Affairs Case Number' }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n visible={visible2}\n />\n <Dropdown\n data={{\n question: 'Subtype',\n options: formInfoUpdate?.subtype?.values || subtypeOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={subtype}\n />\n <Dropdown\n data={{\n question: 'Source',\n options: formInfoUpdate?.source?.values || sourceOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={source}\n />\n <Dropdown\n data={{\n question: 'Reporter',\n options: formInfoUpdate?.reporter?.values || ReporterOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={reporter}\n />\n <Dropdown\n data={{\n question: 'Allegations',\n options: formInfoUpdate?.allegations?.values || AllegationOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={allegations}\n />\n <Dropdown\n data={{\n question: 'Dispositions',\n options: formInfoUpdate?.dispositions?.values || DispositionOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={dispositions}\n />\n <Dropdown\n data={{\n question: 'Disciplines',\n options: formInfoUpdate?.disciplines?.values || DisciplineOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={disciplines}\n />\n <Dropdown\n data={{\n question: 'Investigator',\n options: formInfoUpdate?.investigator?.values || investigatorOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={investigator}\n />\n </Box>\n </DndProvider>\n </Box>\n </ContainerPageDetail>\n );\n}\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport TitleIcon from '@material-ui/icons/Title';\nimport RadioButtonIcon from '@material-ui/icons/RadioButtonChecked';\nimport CheckboxIcon from '@material-ui/icons/CheckBox';\nimport ShortTextIcon from '@material-ui/icons/ShortText';\nimport LongTextIcon from '@material-ui/icons/Notes';\nimport { Box, Button, makeStyles, Typography } from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport shortid from 'shortid';\nimport { ReactComponent as CalendarIcon } from '../../assets/icons/today_black_24dp.svg';\nimport { ReactComponent as YesNoIcon } from '../../assets/icons/rule_black_24dp.svg';\nimport AddComponent from '../../components/AddComponent';\nimport { renderHeder } from './Standard';\nimport { getConfig } from '../../formEngine/config/Config';\nimport { Renderer } from '../../formEngine/config/Renderer';\nimport { onSaveFormType } from '../../services/unarmed';\nimport { ContainerPageDetail } from './PageDetails';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport Alert from '../../components/Alert';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\n\n/**\n * Rendered Components Array\n * @returns {object[]} Array of rendered components\n */\nconst renderComponentsArr = () => [\n {\n name: 'Title',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'title',\n },\n {\n name: 'Subtitle',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'subtitle',\n },\n {\n name: 'Single Choice',\n divider: true,\n Icon: RadioButtonIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'singleChoice',\n },\n {\n name: 'Multiple Choices',\n Icon: CheckboxIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'multipleChoices',\n },\n {\n name: 'Dropdown',\n Icon: ArrowDropDownIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'dropdown',\n },\n {\n name: 'Yes/No',\n Icon: YesNoIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'yesNo',\n },\n {\n name: 'Date',\n Icon: CalendarIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'date',\n },\n {\n name: 'Short Text',\n divider: true,\n Icon: ShortTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'shortText',\n },\n {\n name: 'Long Text',\n Icon: LongTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'longText',\n },\n];\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n padding: 28,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 35,\n },\n\n altText: {\n fontSize: 14,\n color: '#000000AD',\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\n/**\n * Ignore Extra Props\n * @param {object[]} layout - Layout object\n * @returns {object} Custom fields object\n */\nexport const ignoreExtraProps = (_version, layout) => {\n const customFields =\n layout?.[0]?.components?.map((component) => {\n const componentCopy = { ...component };\n\n if (_version === FORM_TYPE_VERSION_2) {\n delete componentCopy.id;\n delete componentCopy.uniqueId;\n }\n\n return {\n data: {\n ...componentCopy.data,\n ...(componentCopy.data.dataReportLink\n ? {\n dataReportLink:\n typeof componentCopy.data.dataReportLink === 'string'\n ? componentCopy.data.dataReportLink\n : componentCopy.data.dataReportLink._id,\n }\n : {}),\n question: componentCopy?.data?.question?.trim(),\n options: componentCopy?.data?.options?.map((option) => option.trim()),\n },\n type: componentCopy.type,\n };\n }) || [];\n\n return {\n customFields,\n };\n};\n\nexport const pagesIgnoreExtraProps = (pages) =>\n pages.map((page) => {\n const pageCopy = { ...page };\n\n delete pageCopy.pageId;\n\n return pageCopy;\n });\n\nconst fixDataReportLinkID = (component) => ({\n ...component,\n data: {\n ...component?.data,\n ...(component?.data?.dataReportLink\n ? {\n dataReportLink:\n typeof component?.data?.dataReportLink === 'string'\n ? component?.data?.dataReportLink\n : component?.data?.dataReportLink?._id,\n }\n : {}),\n },\n});\n\n/**\n * Custom Form Component\n * @param {object} props - Component props\n * @param {object[]} props.components - Array of components\n * @param {object} props.formInfo - Form information object\n * @param {object} props.selected - Selected component object\n * @param {Function} props.handleSelectComponent - Function to handle component selection\n * @param {Function} props.handleDrop - Function to handle component drop\n * @param {string} props.path - Path string\n * @param {Function} props.handleDeleteComponent - Function to handle component deletion\n * @param {Function} props.onUpdateJson - Function to update JSON\n * @param {string} props.id - Component ID\n * @param {object[]} props.layout - Layout object\n * @param {boolean} props.isDefaultForm - Flag indicating if the form is default\n * @param {Function} props.handleDuplicateComponent - Function to handle component duplication\n * @returns {JSX.Element} Custom Form component\n */\nexport default function Custom({\n components,\n formInfo,\n selected,\n handleSelectComponent,\n handleDrop,\n path,\n handleDeleteComponent,\n onUpdateJson,\n id,\n layout,\n isDefaultForm,\n handleDuplicateComponent,\n layouts,\n showHeaders,\n label,\n}) {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const refActionModal = React.useRef(null);\n const [openDelete, setOpenDelete] = useState(false);\n\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: components,\n deleteComponent: handleDeleteComponent,\n onUpdateJson,\n refActionModal,\n setModal: setOpenDelete,\n includeRequired: false,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [components]\n );\n\n /**\n * Handles saving form\n */\n const onSave = useCallback(async () => {\n let pageExists = false;\n\n if (formInfo?.version === FORM_TYPE_VERSION_2) {\n pageExists = formInfo?.customFields && !!formInfo?.customFields?.find((page) => page.pageId === selected.pageId);\n }\n\n try {\n setLoading(true);\n await onSaveFormType(\n formInfo?.version === FORM_TYPE_VERSION_2\n ? {\n customFields: pagesIgnoreExtraProps([\n ...formInfo.customFields.map((page) => {\n if (page.pageId === selected.pageId) {\n return {\n ...page,\n name: page?.name,\n sections: [\n {\n name: page?.sections?.[0]?.name || 'Section name',\n components:\n ignoreExtraProps(formInfo.version, layout)?.customFields.map(fixDataReportLinkID) || [],\n },\n ],\n };\n }\n\n // get the layouts edited from the other pages!\n const pageLayout = layouts[page?.pageId];\n\n return {\n ...page,\n sections: [\n {\n name: page?.sections?.[0]?.name || 'Section name',\n components: ignoreExtraProps(formInfo.version, pageLayout || page?.sections)?.customFields.map(\n fixDataReportLinkID\n ),\n },\n ],\n };\n }),\n ...(!pageExists\n ? [\n {\n name: selected?.name,\n active: true,\n sections: [\n {\n name: selected?.sections?.[0]?.name || 'Section name',\n components:\n ignoreExtraProps(formInfo.version, layout)?.customFields.map(fixDataReportLinkID) || [],\n },\n ],\n },\n ]\n : []),\n ]),\n }\n : ignoreExtraProps(formInfo?.version, layouts[0]),\n id\n );\n toast.success('Custom components Added successfully');\n setLoading(false);\n } catch (error) {\n toast.error(\n error.response?.data?.error?.details?.[0]?.message || error.response?.data?.message || 'Something went wrong'\n );\n setLoading(false);\n }\n }, [id, layout, formInfo, selected, layouts]);\n\n return (\n <ContainerPageDetail\n style={{ width: '100%', height: 'calc(109vh - 64px)', ...(showHeaders && { overflowY: 'auto' }) }}\n >\n <ModalPopUp setOpen={setOpenDelete} open={openDelete}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>\n Are you sure you want to delete this {refActionModal?.current?.nameAction ?? ''}?\n </Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button variant=\"outlined\" className={classes.buttonOutlined} onClick={() => setOpenDelete(false)}>\n CANCEL\n </Button>\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => {\n if (refActionModal && refActionModal.current) {\n refActionModal.current.actionPress();\n }\n setOpenDelete(false);\n }}\n >\n DELETE\n </Button>\n </Box>\n </ModalPopUp>\n {showHeaders ? (\n <Box padding=\"30px 20px 20px\" width=\"100%\">\n {renderHeder({\n title: selected?.name,\n onClick: onSave,\n loading,\n isDefaultForm,\n })}\n {isDefaultForm && (\n <Alert status=\"info\">\n <Typography style={{ fontSize: 14 }}>\n Default forms cannot be deleted or updated. Duplicate this form to edit.\n </Typography>\n </Alert>\n )}\n {formInfo?.version === FORM_TYPE_VERSION_2 && (\n <Alert status=\"info\">\n <Typography\n style={{ fontSize: 14 }}\n >{`Empty sections will not be shown in the ${label} Updates tab`}</Typography>\n </Alert>\n )}\n <Box className={classes.container}>\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <Renderer\n config={config}\n handleDrop={handleDrop}\n path={path}\n handleDeleteComponent={handleDeleteComponent}\n duplicateComponent={handleDuplicateComponent}\n />\n <AddComponent\n open={open}\n setOpen={setOpen}\n renderComponentsArr={renderComponentsArr}\n handleSelectComponent={handleSelectComponent}\n />\n </Box>\n </Box>\n ) : (\n <>\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <Renderer\n config={config}\n handleDrop={handleDrop}\n path={path}\n handleDeleteComponent={handleDeleteComponent}\n duplicateComponent={handleDuplicateComponent}\n />\n <AddComponent\n open={open}\n setOpen={setOpen}\n renderComponentsArr={renderComponentsArr}\n handleSelectComponent={handleSelectComponent}\n />\n </>\n )}\n </ContainerPageDetail>\n );\n}\n\nCustom.propTypes = {\n components: PropTypes.array.isRequired,\n formInfo: PropTypes.object.isRequired,\n selected: PropTypes.object.isRequired,\n handleSelectComponent: PropTypes.func.isRequired,\n handleDrop: PropTypes.func.isRequired,\n path: PropTypes.string.isRequired,\n handleDeleteComponent: PropTypes.func.isRequired,\n onUpdateJson: PropTypes.func.isRequired,\n id: PropTypes.string.isRequired,\n layout: PropTypes.array.isRequired,\n isDefaultForm: PropTypes.bool.isRequired,\n handleDuplicateComponent: PropTypes.func.isRequired,\n layouts: PropTypes.func.isRequired,\n};\n","import { Box, Switch, Typography } from '@material-ui/core';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\nimport shortid from 'shortid';\n\nimport Page, { PageTransition } from './Page';\nimport AddMore from '../../components/AddMore';\nimport DnDArea from '../../components/DnDArea';\nimport { onRemoveDnDItem } from '../../formEngine/utils/utls';\nimport { onSaveFormType } from '../../services/unarmed';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\nimport { COMPONENT } from '../../formEngine/utils/constants';\nimport { ignoreExtraProps, pagesIgnoreExtraProps } from './Custom';\n\nexport default function CaseUpdateBar({\n id,\n caseUpdates,\n onChangeStandardCheckbox,\n version,\n selected,\n setSelected,\n defaultPages,\n refActionModal,\n setOpen,\n onChangePages,\n onMoveComponent,\n}) {\n const [pages, setPages] = useState(version === FORM_TYPE_VERSION_2 ? [] : [{ name: 'Custom' }]);\n const [addedDefaultSections, setAddedDefaultSections] = useState(false);\n\n useEffect(() => {\n if (defaultPages?.length > 0 && version === FORM_TYPE_VERSION_2 && !addedDefaultSections) {\n setPages(() => [...defaultPages]);\n setAddedDefaultSections(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultPages]);\n\n const handleOnClickNewPage = useCallback(() => {\n const pagesSorted = defaultPages.slice().sort((x, y) => {\n const xName = x.name?.split(' ') || [];\n const yName = y.name?.split(' ') || [];\n const lastCharXName = xName[xName?.length - 1];\n const lastCharYName = yName[yName?.length - 1];\n const digitX = parseInt(lastCharXName);\n const digitY = parseInt(lastCharYName);\n const digitXParsed = !Number.isNaN(digitX) ? digitX : 0;\n const digitYParsed = !Number.isNaN(digitY) ? digitY : 0;\n\n return digitXParsed - digitYParsed;\n });\n const lastPage = pagesSorted[pagesSorted.length - 1];\n const lastPageName = lastPage?.name?.split(' ');\n const lastPageNumber = lastPageName?.[lastPageName?.length - 1];\n const lastPageNumberParsed = parseInt(lastPageNumber);\n\n const newPages = [\n ...defaultPages,\n {\n name: `Custom section ${(Number.isNaN(lastPageNumberParsed) ? pagesSorted.length : lastPageNumberParsed) + 1}`,\n pageId: shortid.generate(),\n sections: [\n {\n name: 'Section Name',\n components: [],\n },\n ],\n },\n ];\n\n onChangePages(newPages);\n setPages(newPages);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultPages]);\n\n const handleOnDeletePage = useCallback(\n async (page, pageIndex) => {\n let response;\n\n const _pages = defaultPages.filter((_page) => _page.pageId !== page.pageId);\n\n try {\n response = await onSaveFormType(\n {\n customFields: pagesIgnoreExtraProps([\n ..._pages.map((_page) => ({\n ..._page,\n sections: [\n {\n ..._page?.sections?.[0],\n components: ignoreExtraProps(version, _page?.sections).customFields,\n },\n ],\n })),\n ]),\n },\n id\n );\n } catch (error) {\n toast.error(error?.response?.data?.message || error?.message);\n }\n\n if (response) {\n if (_pages.length === 0) {\n setSelected({ name: 'Standard' });\n } else if (_pages.length > 0) {\n const _pageIndex = _pages.length - 1;\n const lastPage = _pageIndex < 0 ? _pages[0] : _pages[_pageIndex];\n\n if (lastPage) {\n setSelected({\n ...lastPage,\n pageIndex: _pageIndex,\n });\n } else {\n setSelected({ name: 'Standard' });\n }\n }\n\n onChangePages(_pages);\n onRemoveDnDItem(_pages, setPages, pageIndex);\n toast.success('Section deleted successfully!');\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [defaultPages]\n );\n\n const renderer = (moveItem) =>\n pages.map((page, pageIndex) => (\n <Page\n isDefaultForm={false}\n withToggle\n page={page}\n key={pageIndex}\n dragType={COMPONENT}\n onMoveComponent={onMoveComponent}\n index={pageIndex}\n moveItem={moveItem}\n setPages={setPages}\n onChangePages={onChangePages}\n selected={selected.pageId ? selected.pageId === page.pageId : selected.pageIndex === pageIndex}\n onSelectPage={() => setSelected({ ...page, pageIndex })}\n disablePageOptions={version === 1}\n handleDeletePage={() => {\n setOpen(true);\n refActionModal.current = {\n nameAction: 'section',\n actionPress: async () => {\n handleOnDeletePage(page, pageIndex);\n },\n };\n }}\n />\n ));\n\n return (\n <>\n <Box padding=\"20px\" marginBottom=\"50px\">\n <Typography style={{ fontSize: 12 }}>Enable sections to be updated on the forms.</Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <LockOutlinedIcon style={{ marginRight: 7 }} />\n <PageTransition\n width=\"100%\"\n maxWidth={434}\n display=\"flex\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n justifyContent=\"space-between\"\n marginBottom=\"10px\"\n selected={selected?.name === 'Standard'}\n style={{ background: '#fff' }}\n onClick={() => setSelected({ name: 'Standard' })}\n marginTop=\"10px\"\n >\n <Typography\n style={{\n fontSize: 14,\n color: 'rgba(0, 0, 0, 0.87',\n fontFamily: 'Roboto',\n padding: '10px 16px',\n width: '100%',\n }}\n >\n Standard\n </Typography>\n <Switch\n color=\"primary\"\n checked={caseUpdates?.active}\n onChange={(e) => onChangeStandardCheckbox(e.target.checked)}\n />\n </PageTransition>\n </Box>\n <DnDArea\n selectedItems={pages}\n setSelectedItems={(_pages) => {\n onChangePages(_pages);\n setPages(_pages);\n }}\n renderer={renderer}\n />\n {version === FORM_TYPE_VERSION_2 && (\n <AddMore\n dataTestId=\"forms-case-updates-button-add-new-section\"\n text=\"Add new section\"\n marginLeft=\"5px\"\n onClick={handleOnClickNewPage}\n />\n )}\n </Box>\n </>\n );\n}\n\nCaseUpdateBar.propTypes = {\n id: PropTypes.string,\n caseUpdates: PropTypes.object,\n onChangeStandardCheckbox: PropTypes.func,\n version: PropTypes.string,\n selected: PropTypes.object,\n setSelected: PropTypes.func,\n defaultPages: PropTypes.array,\n refActionModal: PropTypes.object,\n setOpen: PropTypes.func,\n onChangePages: PropTypes.func.isRequired,\n onMoveComponent: PropTypes.func,\n};\n","import { Box, Switch, Typography } from '@material-ui/core';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\nimport shortid from 'shortid';\n\nimport Page, { PageTransition } from './Page';\nimport AddMore from '../../components/AddMore';\nimport DnDArea from '../../components/DnDArea';\nimport { onRemoveDnDItem } from '../../formEngine/utils/utls';\nimport { onSaveFormType } from '../../services/unarmed';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\nimport { COMPONENT } from '../../formEngine/utils/constants';\nimport { ignoreExtraProps, pagesIgnoreExtraProps } from './Custom';\n\nexport default function OfficerUpdateBar({\n id,\n officerUpdates,\n version,\n selected,\n setSelected,\n defaultPages = [],\n refActionModal,\n setOpen,\n onChangePages,\n isDefaultForm,\n onMoveComponent,\n}) {\n const [pages, setPages] = useState(version === FORM_TYPE_VERSION_2 ? [] : [{ name: 'Custom' }]);\n const [addedDefaultSections, setAddedDefaultSections] = useState(false);\n\n useEffect(() => {\n if (defaultPages?.length > 0 && version === FORM_TYPE_VERSION_2 && !addedDefaultSections) {\n const newPages = [...defaultPages];\n\n setPages(() => newPages);\n\n if (newPages.length > 0) {\n setSelected({ ...newPages[0], pageIndex: 0 });\n onChangePages(newPages);\n }\n\n setAddedDefaultSections(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultPages]);\n\n const handleOnClickNewPage = useCallback(() => {\n const pagesSorted = defaultPages.slice().sort((x, y) => {\n const xName = x.name?.split(' ') || [];\n const yName = y.name?.split(' ') || [];\n const lastCharXName = xName[xName?.length - 1];\n const lastCharYName = yName[yName?.length - 1];\n const digitX = parseInt(lastCharXName);\n const digitY = parseInt(lastCharYName);\n const digitXParsed = !Number.isNaN(digitX) ? digitX : 0;\n const digitYParsed = !Number.isNaN(digitY) ? digitY : 0;\n\n return digitXParsed - digitYParsed;\n });\n const lastPage = pagesSorted[pagesSorted.length - 1];\n const lastPageName = lastPage?.name?.split(' ');\n const lastPageNumber = lastPageName?.[lastPageName?.length - 1];\n const lastPageNumberParsed = parseInt(lastPageNumber);\n\n const newPages = [\n ...defaultPages,\n {\n name: `Custom section ${(Number.isNaN(lastPageNumberParsed) ? pagesSorted.length : lastPageNumberParsed) + 1}`,\n pageId: shortid.generate(),\n sections: [\n {\n name: 'Section Name',\n components: [],\n },\n ],\n },\n ];\n onChangePages(newPages);\n setPages(newPages);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultPages]);\n\n const handleOnDeletePage = useCallback(\n async (page, pageIndex) => {\n let response;\n\n const _pages = defaultPages.filter((_page) => _page.pageId !== page.pageId);\n\n try {\n response = await onSaveFormType(\n {\n officersCustomFields: pagesIgnoreExtraProps([\n ..._pages.map((_page) => ({\n ..._page,\n sections: [\n {\n ..._page?.sections?.[0],\n components: ignoreExtraProps(version, _page?.sections).officersCustomFields,\n },\n ],\n })),\n ]),\n },\n id\n );\n } catch (error) {\n toast.error(error?.response?.data?.message || error?.message);\n }\n\n if (response) {\n if (_pages.length === 0) {\n setSelected({ name: 'Standard' });\n } else if (_pages.length > 0) {\n const _pageIndex = _pages.length - 1;\n const lastPage = _pageIndex < 0 ? _pages[0] : _pages[_pageIndex];\n\n\n if (lastPage) {\n setSelected({\n ...lastPage,\n pageIndex: _pageIndex,\n });\n } else {\n setSelected({ name: 'Standard' });\n }\n }\n\n onChangePages(_pages);\n onRemoveDnDItem(_pages, setPages, pageIndex);\n toast.success('Section deleted successfully!');\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [defaultPages]\n );\n\n const renderer = (moveItem) =>\n pages.map((page, pageIndex) => (\n <Page\n isDefaultForm={isDefaultForm}\n lockIconOnDefaultForm={true}\n withToggle\n page={page}\n key={pageIndex}\n dragType={COMPONENT}\n onMoveComponent={onMoveComponent}\n index={pageIndex}\n moveItem={moveItem}\n setPages={setPages}\n onChangePages={onChangePages}\n selected={selected.pageId ? selected.pageId === page.pageId : selected.pageIndex === pageIndex}\n onSelectPage={() => setSelected({ ...page, pageIndex })}\n disablePageOptions={version === 1}\n handleDeletePage={() => {\n setOpen(true);\n refActionModal.current = {\n nameAction: 'section',\n actionPress: async () => {\n handleOnDeletePage(page, pageIndex);\n },\n };\n }}\n />\n ));\n\n return (\n <>\n <Box padding=\"20px\" marginBottom=\"50px\">\n <Typography style={{ fontSize: 12, marginBottom: 10 }}>Enable sections to be updated on the forms.</Typography>\n {/* <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <LockOutlinedIcon style={{ marginRight: 7 }} />\n <PageTransition\n width=\"100%\"\n maxWidth={434}\n display=\"flex\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n justifyContent=\"space-between\"\n marginBottom=\"10px\"\n selected={selected?.name === 'Standard'}\n style={{ background: '#fff' }}\n onClick={() => setSelected({ name: 'Standard' })}\n marginTop=\"10px\"\n >\n <Typography\n style={{\n fontSize: 14,\n color: 'rgba(0, 0, 0, 0.87',\n fontFamily: 'Roboto',\n padding: '10px 16px',\n width: '100%',\n }}\n >\n Standard\n </Typography>\n <Switch\n color=\"primary\"\n checked={officerUpdates?.active}\n onChange={(e) => onChangeStandardCheckbox(e.target.checked)}\n />\n </PageTransition>\n </Box> */}\n <DnDArea\n selectedItems={pages}\n setSelectedItems={(_pages) => {\n onChangePages(_pages);\n setPages(_pages);\n }}\n renderer={renderer}\n />\n {version === FORM_TYPE_VERSION_2 && (\n <AddMore\n dataTestId=\"forms-case-updates-button-add-new-section\"\n text=\"Add new section\"\n marginLeft=\"5px\"\n onClick={handleOnClickNewPage}\n />\n )}\n </Box>\n </>\n );\n}\n\nOfficerUpdateBar.propTypes = {\n id: PropTypes.string,\n officerUpdates: PropTypes.object,\n version: PropTypes.string,\n selected: PropTypes.object,\n setSelected: PropTypes.func,\n defaultPages: PropTypes.array,\n refActionModal: PropTypes.object,\n setOpen: PropTypes.func,\n onChangePages: PropTypes.func.isRequired,\n isDefaultForm: PropTypes.bool.isRequired,\n onMoveComponent: PropTypes.func,\n};\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport { Box, Divider, makeStyles } from '@material-ui/core';\n\nimport AddMore from '../../components/AddMore';\nimport DnDArea from '../../components/DnDArea';\nimport SelectBox from '../../components/SelectBox';\nimport TabPanel from '../../components/TabPanel';\nimport { onRemoveDnDItem } from '../../formEngine/utils/utls';\nimport CaseUpdateBar from './CaseUpdateBar';\nimport Page from './Page';\nimport OfficerUpdateBar from './OfficerUpdateBar';\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n maxWidth: 340,\n minWidth: 340,\n borderRight: '1px solid #6D738526',\n height: 'calc(116.1vh - 64px)',\n scrollbarWidth: 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n}));\n\nconst SelectType = {\n obj: [\n {\n text: 'Pages',\n value: 0,\n },\n {\n text: 'Case Updates',\n value: 1,\n },\n {\n text: 'Officers',\n value: 2,\n },\n {\n text: 'Tasks',\n value: 3,\n },\n {\n text: 'Case Status',\n value: 4,\n },\n ],\n};\n\n/**\n * Component for rendering pages and case updates\n * @param {object} props - Component props\n * @param {string} props.id - Component ID\n * @param {object[]} props.pages - Array of pages\n * @param {Function} props.setPages - Function to set pages\n * @param {number} props.selectedPage - Index of selected page\n * @param {Function} props.onSelectPage - Function to select a page\n * @param {number} props.value - Value for selection\n * @param {Function} props.handleChange - Function to handle change\n * @param {number} props.selected - Selected value\n * @param {Function} props.setSelected - Function to set selected value\n * @param {Function} props.handleInitVisibleQuestion - Function to initialize visible questions\n * @param {object} props.refActionModal - Reference to action modal\n * @param {Function} props.setOpen - Function to set open state\n * @param {boolean} props.isDefaultForm - Indicates if it's a default form\n * @param {object} props.formInfo - Information about the form\n * @returns {JSX.Element} Pages component\n */\nconst Pages = ({\n id,\n pages = [],\n setPages,\n selectedPage,\n onSelectPage,\n value,\n handleChange,\n selected,\n setSelected,\n handleInitVisibleQuestion,\n refActionModal,\n setOpen,\n isDefaultForm,\n formInfo,\n setFormInfo,\n}) => {\n const classes = useStyles();\n\n const handleResetQuestionBank = (pageIx) => {\n const questionBankExists = [];\n pages[pageIx].sections.forEach((item) => {\n // check components type questionBank\n item.components\n .filter((res) => res.type === 'questionBank')\n .forEach((res) => {\n if (res.idQuestion) {\n questionBankExists.push({ idQuestion: res.idQuestion });\n }\n });\n });\n\n handleInitVisibleQuestion(questionBankExists, 'reset');\n };\n\n const renderer = (moveItem) =>\n pages.map((page, index) => (\n <Page\n isDefaultForm={isDefaultForm}\n page={page}\n key={index}\n index={index}\n moveItem={moveItem}\n setPages={setPages}\n selected={selectedPage === index}\n onSelectPage={() => onSelectPage(index)}\n disablePageOptions={pages.length === 1}\n handleDeletePage={() => {\n setOpen(true);\n refActionModal.current = {\n nameAction: 'page',\n actionPress: () => {\n onRemoveDnDItem(pages, setPages, index);\n handleResetQuestionBank(index);\n if (pages.length - 1 === selectedPage) {\n onSelectPage(selectedPage - 1);\n }\n },\n };\n }}\n />\n ));\n\n const onAddNewPages = () => {\n setPages((prevState) => {\n const newPage = {\n label: 'Page Title',\n name: 'Page Title',\n sections: [{ name: 'Section Name', id: shortid.generate(), components: [] }],\n };\n return [...prevState, newPage];\n });\n };\n\n const onMoveComponent = useCallback(\n (item, index) => {\n const indexes = item?.path?.split('-')?.map((_index) => parseInt(_index));\n const _page = formInfo?.customFields?.[indexes[0]];\n let component = _page?.sections?.[0].components?.[indexes[1]];\n let indexPage = formInfo?.customFields?.[index];\n\n if (!component) {\n component = selected?.sections?.[0].components?.[indexes[1]];\n }\n\n if (component && selected.pageIndex !== index) {\n indexPage = {\n ...indexPage,\n sections: [\n {\n name: 'Section Name',\n components: [...indexPage?.sections?.[0]?.components, component],\n },\n ],\n };\n\n setSelected({ ...indexPage, pageIndex: index, moveComponents: { item, index } });\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [formInfo, formInfo?.customFields?.length, selected]\n );\n\n return (\n <Box className={classes.container}>\n <Box>\n <SelectBox\n allowPlaceHolder={false}\n options={SelectType}\n value={value}\n onChange={(event) => {\n handleChange(event, parseInt(event.target.value));\n }}\n />\n </Box>\n <Divider />\n <Box className={classes.body}>\n <TabPanel value={value} index={0} marginBottom={0}>\n <DnDArea selectedItems={pages} setSelectedItems={setPages} renderer={renderer} />\n {!isDefaultForm && (\n <AddMore\n dataTestId=\"forms-button-add-new-page\"\n text=\"Add new page\"\n marginLeft=\"5px\"\n onClick={onAddNewPages}\n />\n )}\n </TabPanel>\n <TabPanel value={value} index={1} marginBottom={0} padding={0}>\n <CaseUpdateBar\n id={id}\n caseUpdates={formInfo?.caseUpdates}\n version={formInfo?.version}\n selected={selected}\n setSelected={setSelected}\n onMoveComponent={onMoveComponent}\n defaultPages={formInfo?.customFields}\n refActionModal={refActionModal}\n setOpen={setOpen}\n onChangeStandardCheckbox={(checked) => {\n setFormInfo((_formInfo) => {\n const updatedCaseUpdates = Object.fromEntries(\n Object.entries(_formInfo.caseUpdates).map(([key, value]) => [\n key,\n {\n ...value,\n visible: checked ? value.visible : false,\n },\n ])\n );\n\n return {\n ..._formInfo,\n caseUpdates: {\n ...updatedCaseUpdates,\n active: checked,\n },\n };\n });\n }}\n onChangePages={(sections) => {\n setFormInfo((_formInfo) => ({\n ..._formInfo,\n customFields: sections,\n }));\n }}\n />\n </TabPanel>\n <TabPanel value={value} index={2} marginBottom={0} padding={0}>\n <OfficerUpdateBar\n id={id}\n officerUpdates={formInfo?.officersAllegationOptions}\n version={formInfo?.version}\n selected={selected}\n setSelected={setSelected}\n isDefaultForm={formInfo?.defaultForm}\n onMoveComponent={onMoveComponent}\n defaultPages={formInfo?.officersCustomFields}\n refActionModal={refActionModal}\n setOpen={setOpen}\n onChangePages={(sections) => {\n setFormInfo((_formInfo) => ({\n ..._formInfo,\n officersCustomFields: sections,\n }));\n }}\n />\n </TabPanel>\n </Box>\n </Box>\n );\n};\n\nPages.propTypes = {\n id: PropTypes.string.isRequired,\n pages: PropTypes.arrayOf(PropTypes.object),\n setPages: PropTypes.func.isRequired,\n selectedPage: PropTypes.number.isRequired,\n onSelectPage: PropTypes.func.isRequired,\n value: PropTypes.number.isRequired,\n handleChange: PropTypes.func.isRequired,\n selected: PropTypes.number.isRequired,\n setSelected: PropTypes.func.isRequired,\n handleInitVisibleQuestion: PropTypes.func.isRequired,\n refActionModal: PropTypes.object.isRequired,\n setOpen: PropTypes.func.isRequired,\n isDefaultForm: PropTypes.bool.isRequired,\n formInfo: PropTypes.shape({\n caseUpdates: PropTypes.object,\n officersAllegationOptions: PropTypes.object,\n }),\n setFormInfo: PropTypes.func.isRequired,\n};\n\nexport default Pages;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport shortid from 'shortid';\nimport PropTypes from 'prop-types';\n\nimport { handleMoveWithinParent } from '../../formEngine/utils/helpers';\nimport Custom from './Custom';\nimport Standard from './Standard';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\n\nexport default function CaseUpdate({ selected, id, formInfo, isDefaultForm, setFormInfo }) {\n const [layouts, setLayouts] = useState({});\n const [updatedPage, setUpdatedPage] = useState('');\n\n const selectedId = useMemo(() => {\n if (selected.name === 'Custom' && selected.pageIndex === 0 && formInfo.version !== FORM_TYPE_VERSION_2)\n return selected.pageIndex;\n\n return typeof selected === 'object' ? selected.pageId : selected;\n }, [selected, formInfo.version]);\n\n const onSetLayout = useCallback(\n (layout) => {\n if (selectedId !== undefined) {\n setLayouts((_layouts) => ({\n ..._layouts,\n [selectedId]: layout,\n }));\n }\n },\n [selectedId]\n );\n\n const onGetLayout = useCallback(\n () =>\n selected.moveComponents ? selected.sections : layouts[selectedId] || [{ name: 'Section Name', components: [] }],\n [layouts, selectedId, selected]\n );\n\n const onUpdateFormInfo = useCallback(\n (layoutCopy) => {\n if (formInfo.version === FORM_TYPE_VERSION_2) {\n setFormInfo((_formInfo) => ({\n ..._formInfo,\n customFields: [\n ..._formInfo?.customFields.map((page) => {\n if (selected.pageId === page.pageId) {\n return {\n ...page,\n sections: layoutCopy,\n };\n }\n\n return page;\n }),\n ],\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [formInfo]\n );\n\n useEffect(() => {\n if (formInfo && selected && updatedPage !== selected.pageId) {\n const layoutCopy = Array.from(onGetLayout());\n const selectedComponents = formInfo?.customFields[selected?.pageIndex]?.sections?.[0]?.components || [];\n const _components = formInfo.version === FORM_TYPE_VERSION_2 ? selectedComponents || [] : formInfo?.customFields;\n\n if (_components.length > 0 && layoutCopy?.[0]?.components?.length === 0) {\n layoutCopy[0].components =\n _components?.map((field) => ({\n ...field,\n })) || [];\n }\n setUpdatedPage(selected.pageId);\n onSetLayout(layoutCopy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formInfo, selected]);\n\n useEffect(() => {\n if (\n formInfo &&\n selected &&\n selected.name === 'Custom' &&\n selected.pageIndex === 0 &&\n formInfo.version !== FORM_TYPE_VERSION_2\n ) {\n const layoutCopy = Array.from(onGetLayout());\n const _components = formInfo?.customFields;\n\n layoutCopy[0].components =\n _components?.map((field) => ({\n ...field,\n })) || [];\n\n onSetLayout(layoutCopy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formInfo, selected]);\n\n const handleSelectComponent = (component) => {\n const newComponents = [...onGetLayout()[0].components, component];\n const layoutCopy = Array.from(onGetLayout());\n layoutCopy[0].components = newComponents;\n onUpdateFormInfo(layoutCopy);\n onSetLayout(layoutCopy);\n };\n\n const handleDuplicateComponent = (path, index) => {\n const layoutCopy = JSON.parse(JSON.stringify(onGetLayout()));\n const componentsCopy = [...layoutCopy[0].components];\n const component = { ...componentsCopy[index], id: shortid.generate() };\n\n layoutCopy[0].components.splice(index, 0, component);\n\n onUpdateFormInfo(layoutCopy);\n onSetLayout(layoutCopy);\n };\n\n const handleDeleteComponent = (componentIndex) => {\n const layoutCopy = Array.from(onGetLayout());\n const componentsCopy = Array.from(onGetLayout()?.[0]?.components);\n componentsCopy.splice(componentIndex, 1);\n layoutCopy[0].components = componentsCopy;\n onUpdateFormInfo(layoutCopy);\n onSetLayout(layoutCopy);\n };\n\n const onUpdateJson = (componentIndex, data) => {\n setLayouts((prevState) => {\n const prevStateCopy = [...prevState[selectedId]];\n const componentsCopy = [...prevStateCopy[0].components];\n if (componentsCopy[componentIndex]) {\n componentsCopy[componentIndex].data = data;\n }\n prevStateCopy[0].components = componentsCopy;\n return { ...prevState, [selectedId]: prevStateCopy };\n });\n };\n\n const handleDrop = useCallback(\n (dropZone, item) => {\n const splitDropZonePath = dropZone.path.split('-');\n const pathToDropZone = splitDropZonePath.slice(0, -1).join('-');\n // move down here since sidebar items dont have path\n const splitItemPath = item.path.split('-');\n const pathToItem = splitItemPath.slice(0, -1).join('-');\n\n // 2. Pure move (no create)\n if (splitItemPath.length === splitDropZonePath.length) {\n // 2.a. move within parent\n if (pathToItem === pathToDropZone) {\n const _layout = onGetLayout();\n const newLayout = handleMoveWithinParent(_layout, splitDropZonePath, splitItemPath);\n\n onSetLayout(newLayout);\n onUpdateFormInfo(newLayout);\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [layouts]\n );\n\n const onChangeSelected = useCallback(() => {\n if (selected && selected.name !== 'Standard') {\n const _customFields = [...formInfo.customFields];\n\n if (selected.moveComponents) {\n const indexes = selected.moveComponents.item?.path?.split('-')?.map((_index) => parseInt(_index));\n const page = _customFields[indexes[0]];\n const newSections = [\n {\n ...page?.sections?.[0],\n components: page?.sections?.[0].components?.filter((_, componentIndex) => componentIndex !== indexes[1]),\n },\n ];\n\n _customFields[indexes[0]] = {\n ...page,\n sections: newSections,\n };\n\n setLayouts((_layouts) => ({\n ..._layouts,\n [page.pageId]: newSections,\n }));\n }\n\n _customFields[selected.pageIndex] = {\n active: selected.active,\n name: selected.name,\n pageId: selected.pageId,\n sections: selected.moveComponents ? selected.sections : _customFields[selected.pageIndex]?.sections,\n };\n\n setFormInfo({ ...formInfo, customFields: _customFields });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formInfo, selected]);\n\n useEffect(() => {\n onChangeSelected();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected.pageId]);\n\n if (selected?.name === 'Standard') {\n return (\n <Standard\n id={id}\n formInfoUpdate={formInfo?.caseUpdates}\n isDefaultForm={isDefaultForm}\n setFormInfo={setFormInfo}\n />\n );\n }\n\n return (\n <Custom\n label=\"Case\"\n showHeaders\n formInfo={formInfo}\n selected={selected}\n layouts={layouts}\n components={onGetLayout()[0].components}\n isDefaultForm={isDefaultForm}\n path={selected?.pageIndex?.toString() || '0'}\n id={id}\n layout={onGetLayout()}\n handleDuplicateComponent={handleDuplicateComponent}\n handleDrop={handleDrop}\n handleDeleteComponent={handleDeleteComponent}\n handleSelectComponent={handleSelectComponent}\n onUpdateJson={onUpdateJson}\n />\n );\n}\n\nCaseUpdate.propTypes = {\n id: PropTypes.string,\n selected: PropTypes.any,\n formInfo: PropTypes.oneOfType,\n setFormInfo: PropTypes.func,\n isDefaultForm: PropTypes.bool,\n};\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport Input from '../../../components/Input';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n },\n\n dropzoneText: {\n display: 'block',\n fontSize: 12,\n marginTop: 10,\n },\n}));\n\nexport default function QuestionComponent({\n placeholder = 'Enter question',\n value,\n onChange,\n label = 'Q',\n limit,\n styles,\n}) {\n const classes = useStyles();\n return (\n <Box display=\"flex\" marginBottom=\"15px\">\n <Box display=\"flex\" alignItems=\"center\">\n <Typography className={classes.label}>{label}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n </Box>\n <Input\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n limit={limit}\n style={styles}\n />\n </Box>\n );\n}\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport { Editor } from '@tinymce/tinymce-react';\nimport { TINYMCE_DEFAULT_CONFIG, TINYMCE_SCRIPT_SRC } from '../../../config/config';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n marginLeft: 10,\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n },\n\n dropzoneText: {\n display: 'block',\n fontSize: 12,\n marginTop: 10,\n },\n}));\n\nexport default function AnswerComponent({ placeholder = 'Enter answer', value, onChange, labelAnswer = 'A', limit }) {\n const classes = useStyles();\n return (\n <Box display=\"flex\">\n <Box display=\"flex\" alignItems=\"center\">\n <Typography className={classes.label}>{labelAnswer}</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginRight: 10 }} />\n </Box>\n <Editor\n tinymceScriptSrc={TINYMCE_SCRIPT_SRC}\n init={{\n ...TINYMCE_DEFAULT_CONFIG,\n placeholder,\n height: 200,\n }}\n value={value}\n onEditorChange={(newValue) => {\n onChange({ target: { value: newValue } });\n }}\n />\n {/*\n <TextArea\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n limit={limit}\n />\n */}\n </Box>\n );\n}\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport QuestionComponent from './QuestionComponent';\nimport AnswerComponent from './AnswerComponent';\nimport DnDItem from '../../../components/DnDItem';\nimport { onChangeDnDValue } from '../../../formEngine/utils/utls';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n borderRadius: 5,\n border: '1px solid #2E66FE33',\n },\n header: {\n background: '#fff',\n borderRadius: '5px 5px 0 0',\n borderBottom: '1px solid #2E66FE1A',\n padding: '10px 20px',\n },\n body: {\n background: '#F9FAFD80',\n borderRadius: 5,\n padding: '10px 20px',\n },\n button: {\n background: '#1F63FF',\n textTransform: 'capitalize',\n cursor: 'pointer',\n minWidth: 36,\n boxShadow: 'unset',\n color: '#fff',\n padding: '6px 16px',\n '&:hover': {\n background: '#1F63FF',\n boxShadow: 'unset',\n },\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n}));\n\nconst Question = ({\n questionIndex,\n moveItem,\n question,\n setQuestions,\n removeQuestion,\n labelQuestion,\n placeholder = 'Question',\n labelAnswer,\n limitQuestion,\n limitAnswer,\n stylesQuestion,\n keyQuestion = 'question',\n keyAnswer = 'answer',\n questionUpperCase = false,\n}) => {\n const classes = useStyles();\n\n return (\n <DnDItem key={questionIndex} moveItem={moveItem} index={questionIndex}>\n <Box style={{ width: '100%' }} display=\"flex\" alignItems=\"center\">\n <Box className={classes.container}>\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n className={classes.header}\n >\n <Typography>\n {placeholder} {questionIndex + 1}\n </Typography>\n <Box displayP=\"flex\" alignItems=\"center\">\n <DeleteIcon\n htmlColor=\"#6D7385\"\n style={{ marginLeft: 15, cursor: 'pointer' }}\n onClick={() => removeQuestion(questionIndex)}\n />\n </Box>\n </Box>\n <Box className={classes.body}>\n <Box>\n <QuestionComponent\n value={question?.[keyQuestion]}\n onChange={(e) =>\n onChangeDnDValue(\n e,\n setQuestions,\n questionIndex,\n keyQuestion,\n questionUpperCase\n )\n }\n label={labelQuestion}\n limit={limitQuestion}\n styles={stylesQuestion}\n />\n <AnswerComponent\n value={question?.[keyAnswer]}\n onChange={(e) =>\n onChangeDnDValue(e, setQuestions, questionIndex, keyAnswer)\n }\n labelAnswer={labelAnswer}\n limit={limitAnswer}\n />\n </Box>\n </Box>\n </Box>\n </Box>\n </DnDItem>\n );\n};\n\nexport default Question;\n","import {\n Box,\n CircularProgress,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { toast } from '../../components/Notification';\nimport styled from 'styled-components';\nimport Alert from '../../components/Alert';\nimport DashButton from '../../components/DashButton';\nimport DnDArea from '../../components/DnDArea';\nimport { onSaveFormType } from '../../services/unarmed';\nimport Question from '../FAQ/components/Question';\nimport { ContainerPageDetail } from './PageDetails';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n questionContainer: {\n width: '100%',\n maxWidth: 760,\n padding: 28,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 20,\n },\n}));\n\nexport default function CaseStatus({\n id,\n formInfo,\n isDefaultForm,\n setFormInfo,\n}) {\n const classes = useStyles();\n const [questions, setQuestions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loadingCasesType, setLoadingfaqs] = useState(false);\n\n useEffect(() => {\n if (formInfo?.availableStatuses) {\n setQuestions(formInfo?.availableStatuses);\n }\n }, [formInfo?.availableStatuses]);\n\n const addQuestion = () => {\n setQuestions([...questions, { status: '', description: '' }]);\n };\n\n const removeQuestion = (index) => {\n setQuestions(questions.filter((question, i) => i !== index));\n };\n\n const onSave = async () => {\n setLoading(true);\n try {\n const requestPayload = {\n availableStatuses: questions,\n };\n const { data } = await onSaveFormType(requestPayload, id);\n setFormInfo(data);\n toast.success('Case Status has been updated');\n } catch (error) {\n toast.error(error?.response?.data?.error?.details?.[0]?.message);\n } finally {\n setLoading(false);\n }\n };\n\n const renderer = (moveItem) =>\n questions.map((question, index) => (\n <Question\n questionIndex={index}\n moveItem={moveItem}\n key={index}\n labelQuestion=\"S\"\n labelAnswer=\"D\"\n placeholder=\"Status\"\n question={question}\n setQuestions={setQuestions}\n removeQuestion={removeQuestion}\n limitAnswer={200}\n limitQuestion={20}\n styles={{ textTransform: 'uppercase' }}\n keyQuestion=\"status\"\n keyAnswer=\"description\"\n questionUpperCase\n />\n ));\n return (\n <>\n <PageWrapper className={classes.container}>\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n width=\"100%\"\n maxWidth=\"760px\"\n >\n <Box>\n <Typography variant=\"h5\">Case Status </Typography>\n <Typography style={{ fontSize: 14, color: '#747474' }}>\n Edit cases status that will be displayed on the portal case\n details page.\n </Typography>\n </Box>\n <DashButton onClick={onSave} disabled={isDefaultForm || loading}>\n {loading ? <CircularProgress color=\"#fff\" size=\"20px\" /> : 'Save'}{' '}\n </DashButton>\n </Box>\n {isDefaultForm && (\n <Alert status=\"info\">\n <Typography style={{ fontSize: 14 }}>\n Default forms cannot be deleted or updated. Duplicate this form to\n edit.\n </Typography>\n </Alert>\n )}\n <Box className={classes.questionContainer}>\n {loadingCasesType ? (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexDirection=\"column\"\n height={195}\n >\n <Typography style={{ marginBottom: 10 }}>Loading FAQs</Typography>\n <CircularProgress color=\"#1F63FF\" size=\"20px\" />\n </Box>\n ) : (\n <>\n <DndProvider backend={HTML5Backend}>\n <DnDArea\n selectedItems={questions}\n setSelectedItems={setQuestions}\n renderer={renderer}\n />\n </DndProvider>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"center\">\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <DashButton onClick={addQuestion}>ADD STATUS</DashButton>\n </Box>\n </>\n )}\n </Box>\n </PageWrapper>\n </>\n );\n}\n\nconst PageWrapper = styled.div`\n width: 100%;\n`;\n","import React, { useState, useEffect } from 'react';\nimport { Box, FormControl, InputLabel, Select, Typography, makeStyles, Grid, TextField, MenuItem } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport FilterNoneIcon from '@material-ui/icons/FilterNone';\n\nimport { useStylesStaticWrapper } from './StaticWrapper';\nimport SelectBox from '../../../components/SelectBox';\nimport useOrganization from '../../../hooks/useOrganization';\nimport AssignUser from '../../../components/AssignUser';\nimport Input from '../../../components/Input';\n\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 14,\n color: '#000000DE',\n },\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n}));\n\n/**\n * FormTaskBoxEdit\n *\n * Component for each task on the form type.\n *\n * @param {object} task\n * @param {number} componentIndex\n * @param {function} onClickDelete\n * @param {function} onChange\n * @param {function} onClickDuplicate\n */\nconst FormTaskBoxEdit = ({ task, users, componentIndex, onClickDelete, onChange, onClickDuplicate }) => {\n const [name, setName] = useState(task?.name);\n const [typeId, setTypeId] = useState(task?.values?.type);\n const [subTypeId, setSubTypeId] = useState(task?.values?.subType);\n const [subTypes, setSubTypes] = useState([]);\n const [dueDays, setDueDays] = useState(task?.values?.dueDays);\n const [assignedUsers, setAssignedUsers] = useState(task?.values?.assignedTo || []);\n\n const { organization } = useOrganization();\n const classesWrapper = useStylesStaticWrapper();\n const classes = useStyles();\n\n const showTypeAndSubtype = task?.settings\n ? task?.settings?.typeSubtype?.visible\n : organization?.task?.settings?.typeSubtype?.visible;\n\n const availableTypeSubtypes = task?.availableTypeSubtype ? task.availableTypeSubtype : organization?.task?.types;\n\n /**\n * @description useEffect for set data from task.\n */\n useEffect(() => {\n if (task?.name !== name) {\n setName(task?.name);\n setTypeId(task?.values?.type);\n setSubTypeId(task?.values?.subType);\n setDueDays(task?.values?.dueDays || 0);\n setAssignedUsers(task?.values?.assignedTo || []);\n }\n }, [task]);\n\n /**\n * @description useEffect for handle on change from task fields.\n */\n useEffect(() => {\n onChange(componentIndex, {\n name,\n values: {\n type: typeId,\n ...(subTypeId !== '' ? { subType: subTypeId } : { subType: null }),\n dueDays,\n assignedTo: assignedUsers.map((user) => user?._id),\n },\n });\n }, [name, typeId, subTypeId, dueDays, assignedUsers]);\n\n /**\n * @description useEffect for set sub-types from task availableTypeSubtypes.\n */\n useEffect(() => {\n if (typeId) {\n const type = availableTypeSubtypes?.find((type) => type.type === typeId);\n\n if (type) {\n setSubTypes(type.subTypes);\n\n if (type?.subTypes?.indexOf(subTypeId) === -1) {\n setSubTypeId('');\n }\n }\n }\n }, [typeId, subTypeId, availableTypeSubtypes]);\n\n const onDeleteUser = async (user) => {\n const newUsers = assignedUsers.filter((_user) => _user?._id !== user?._id);\n\n setAssignedUsers(newUsers);\n };\n\n const onAssignUser = async (usersArr) => {\n setAssignedUsers(usersArr);\n };\n\n const onChangeDueDays = (value) => {\n setDueDays(value);\n }\n\n return (\n <div className={classesWrapper.dndContainer} style={{ marginBottom: 16, width: '100%' }}>\n <Box style={{ padding: '0 21px', width: '100%' }}>\n <Box className={classesWrapper.container}>\n <Box\n sx={{ padding: '11px 21px' }}\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n className={classesWrapper.header}\n >\n <Box>Task {componentIndex + 1}</Box>\n <Box display=\"flex\" alignItems=\"end\">\n <FilterNoneIcon\n onClick={onClickDuplicate}\n style={{ fontSize: 16, color: '#6D7385', cursor: 'pointer', marginRight: 8 }}\n />\n <DeleteIcon\n onClick={() => onClickDelete && onClickDelete(componentIndex)}\n style={{ fontSize: 19, color: '#6D7385', cursor: 'pointer' }}\n />\n </Box>\n </Box>\n <Box className={classesWrapper.body}>\n <Grid container style={{ padding: 21 }}>\n <Grid item xs={2}>\n <Box display=\"flex\" alignItems=\"center\" mt={1}>\n <Typography className={classes.label}>T</Typography>\n <ArrowRightAltIcon style={{ fontSize: 14, marginLeft: 14 }} />\n </Box>\n </Grid>\n <Grid item xs={10}>\n <Input\n onChange={(e) => setName(e.target.value)}\n placeholder=\"Enter Task name\"\n style={{ width: '100%', marginBottom: 16 }}\n value={name}\n />\n {showTypeAndSubtype && (\n <Grid container spacing={2} style={{ marginBottom: 8 }}>\n <Grid item xs={4}>\n <SelectBox\n id=\"type\"\n placeholderText=\"Select Type\"\n options={{\n obj:\n availableTypeSubtypes?.map((type) => ({\n text: type.type,\n value: type.type,\n })) || [],\n }}\n value={typeId || ''}\n onChange={(e) => setTypeId(e.target.value)}\n outlined\n allowPlaceHolder={false}\n showDefaultValue=\"\"\n withColors={{\n color: '#2E66FE',\n bg: '#2E66FE1A',\n focus: '#2E66FE1A',\n }}\n />\n </Grid>\n <Grid item xs={2} />\n <Grid item xs={4}>\n <SelectBox\n id=\"type\"\n placeholderText=\"Select Subtype\"\n options={{\n obj:\n subTypes?.map((subType) => ({\n text: subType,\n value: subType,\n })) || [],\n }}\n value={subTypeId || ''}\n onChange={(e) => setSubTypeId(e.target.value)}\n outlined\n allowPlaceHolder={false}\n showDefaultValue=\"\"\n withColors={{\n color: '#2E66FE',\n bg: '#2E66FE1A',\n focus: '#2E66FE1A',\n }}\n />\n </Grid>\n <Grid item xs={2} />\n </Grid>\n )}\n <Grid item xs={10} style={{ marginBottom: 16 }}>\n <Box display=\"flex\" style={{ width: '100%', gap: 4 }}>\n <FormControl style={{ width: '100%' }}>\n <InputLabel id=\"label-input-id-due-date\" >Due Date</InputLabel>\n <Select\n labelId=\"label-input-id-due-date\"\n label=\"Due Date\"\n style={{ width: '100%' }}\n value={dueDays}\n onChange={(e) => onChangeDueDays(e.target.value)}\n >\n <MenuItem value={0}>None</MenuItem>\n <MenuItem value={1}>1 Day</MenuItem>\n <MenuItem value={3}>3 Days</MenuItem>\n <MenuItem value={5}>5 Days</MenuItem>\n <MenuItem value={7}>7 Days</MenuItem>\n <MenuItem value={10}>10 Days</MenuItem>\n <MenuItem value={15}>15 Days</MenuItem>\n <MenuItem value={30}>30 Days</MenuItem>\n <MenuItem value={45}>45 Days</MenuItem>\n <MenuItem value={60}>60 Days</MenuItem>\n <MenuItem value={90}>90 Days</MenuItem>\n </Select>\n </FormControl>\n </Box>\n </Grid>\n <Grid item xs={12} style={{ marginBottom: 8 }}>\n <Box display=\"flex\" position=\"relative\">\n <AssignUser\n assignedUsers={assignedUsers.length > 0 ? [...assignedUsers, {}] : [{}]}\n defaultUsers={users}\n setAssignedUsers={setAssignedUsers}\n onAssignUser={onAssignUser}\n loadingRemoveUser={false}\n onDeleteUser={onDeleteUser}\n alignX={0}\n alignKey=\"left\"\n textAlign=\"left\"\n flexWrap=\"wrap\"\n />\n </Box>\n </Grid>\n </Grid>\n </Grid>\n </Box>\n </Box>\n </Box>\n </div>\n );\n};\n\nexport default FormTaskBoxEdit;\n","import React, { useState, useContext, useCallback, useEffect, useMemo } from 'react';\nimport { toast } from '../../components/Notification';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { Box, Typography, Grid, Paper } from '@material-ui/core';\n\nimport DashButton from '../../components/DashButton';\nimport FormTaskBoxEdit from './components/FormTaskBoxEdit';\nimport { getUsers, onSaveFormType } from '../../services/unarmed';\nimport DnDArea from '../../components/DnDArea';\nimport DnDItem from '../../components/DnDItem';\nimport Alert from '../../components/Alert';\nimport { axiosCatchError } from '../../utils';\nimport { Context } from '../../Context';\n\n/**\n * FormTasks\n *\n * Draggable list of tasks for the form type.\n *\n * @param {number} id form ID\n * @param {object} formInfo form information\n * @param {Function} setFormInfo function for set form information\n */\nconst FormTasks = ({ id, formInfo, setFormInfo, isDefaultForm }) => {\n const { authUser } = useContext(Context);\n\n const [tasks, setTasks] = useState([]);\n const [users, setUsers] = useState([]);\n\n useEffect(() => {\n const onGetUsers = async () => {\n try {\n const { data } = await getUsers({});\n\n setUsers(data);\n } catch (error) {\n toast.error(error.message);\n }\n };\n\n if (authUser) {\n onGetUsers();\n }\n }, [authUser]);\n\n /**\n * @description function to handle on save tasks.\n */\n const handleOnSave = useCallback(async () => {\n const tasksData = [\n ...tasks.map((task) => ({\n _id: task?._id,\n name: task.name,\n values: {\n type: task.values.type,\n subType: task.values.subType,\n dueDays: task.values.dueDays || 0,\n assignedTo: task.values.assignedTo.map((user) => user?._id || user) || [],\n },\n })),\n ];\n\n try {\n const res = await onSaveFormType(\n {\n tasks: tasksData,\n },\n id\n );\n\n if (res?.data?.tasks) {\n setTasks(res?.data?.tasks);\n setFormInfo((info) => ({\n ...info,\n tasks: res?.data?.tasks,\n }));\n }\n\n toast.success('Form Tasks Successfully updated!');\n } catch (error) {\n axiosCatchError(error);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tasks, id]);\n\n /**\n * @description function to handle add task.\n */\n const handleAddTask = () => {\n setTasks((tasks) => [...tasks, { name: '' }]);\n };\n\n /**\n * @description function for render the tasks inside de DnD Provider.\n */\n const renderer = useMemo(\n () => (moveItem) =>\n tasks.map((task, taskIndex) => (\n <DnDItem key={taskIndex} moveItem={moveItem} index={taskIndex}>\n <FormTaskBoxEdit\n componentIndex={taskIndex}\n key={taskIndex}\n task={task}\n users={users}\n onClickDuplicate={() => {\n setTasks((tasks) => [...tasks, { ...task }]);\n }}\n onChange={(index, data) => {\n const newTasks = [...tasks];\n const taskData = { ...newTasks[index] };\n\n newTasks[index] = {\n ...taskData,\n ...data,\n values: {\n ...taskData.values,\n ...data.values,\n },\n };\n\n setTasks(newTasks);\n }}\n onClickDelete={(index) => {\n setTasks((tasks) => tasks.filter((task, taskIndex) => taskIndex !== index));\n }}\n />\n </DnDItem>\n )),\n [tasks, users]\n );\n\n /**\n * @description useEffect for set tasks from form information.\n */\n useEffect(() => {\n if (formInfo) {\n setTasks(formInfo?.tasks || []);\n }\n }, [formInfo]);\n\n return (\n <Grid container>\n <Grid item xs={12} md={10} lg={8} xl={6}>\n <Box sx={{ p: 4, width: '100%' }}>\n <Grid container alignItems=\"center\">\n <Grid item xs={10}>\n <Typography variant=\"h5\" sx={{ fontSize: 24 }}>\n Tasks\n </Typography>\n <Typography variant=\"subtitle1\" sx={{ fontSize: 14, marginTop: 8 }}>\n Task listed here will appear on the task tab inside the case profile\n </Typography>\n </Grid>\n <Grid item xs={2}>\n <Grid container item justifyContent=\"flex-end\">\n <DashButton onClick={handleOnSave} disabled={isDefaultForm}>\n Save\n </DashButton>\n </Grid>\n </Grid>\n </Grid>\n {isDefaultForm && (\n <Alert status=\"info\">\n <Typography style={{ fontSize: 14 }}>\n Default forms cannot be deleted or updated. Duplicate this form to edit.\n </Typography>\n </Alert>\n )}\n <Paper style={{ padding: 24, minHeight: '50vh', marginTop: 16 }}>\n <DndProvider backend={HTML5Backend}>\n <DnDArea selectedItems={tasks} setSelectedItems={setTasks} renderer={renderer} />\n </DndProvider>\n <Grid container item xs={12} justifyContent=\"center\" style={{ marginTop: 8 }}>\n <DashButton onClick={handleAddTask} style={{ width: 160 }} disabled={isDefaultForm}>\n ADD TASK\n </DashButton>\n </Grid>\n </Paper>\n </Box>\n </Grid>\n </Grid>\n );\n};\n\nexport default FormTasks;\n","import { Box, CircularProgress, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { toast } from '../../components/Notification';\nimport Alert from '../../components/Alert';\nimport DashButton from '../../components/DashButton';\nimport Dropdown from '../../formEngine/components/Dropdown';\nimport useInput from '../../hooks/useInput';\nimport { onSaveFormType } from '../../services/unarmed';\nimport { ContainerPageDetail } from './PageDetails';\n\nconst StatusOptions = ['Recieved', 'In-Progress', 'Closed'];\nconst ReasonOptions = [\n 'Was Incredibly Helpful',\n 'Was Incredibly Polite',\n 'Demonstrated Extreme Profesionalism',\n 'Provided Outstanding Service And Profesionalism',\n 'Demostrated Exemplary Level Of Service'\n];\nconst AllegationOptions = [\n 'Use of Force',\n 'Abuse of Authority',\n 'Discourtesy',\n 'Offensive Language',\n 'Lack of Service',\n];\nconst DispositionOptions = ['Sustained', 'Not Sustained', 'Unfounded', 'Improper Conduct', 'Policy Failure'];\n\nconst DisciplineOptions = [\n 'Counseled',\n 'Letter of Reprimand',\n 'Suspension',\n 'Demotion',\n 'Dismissal',\n 'Resignation',\n 'No Further Action',\n 'Other',\n];\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n position: 'relative',\n padding: 28,\n minHeight: 195,\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 35,\n },\n}));\n\nexport const renderHeder = ({ title, onClick, loading, isDefaultForm }) => (\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Typography style={{ fontSize: 24, fontWeight: '500' }}>{title}</Typography>\n\n <DashButton onClick={onClick} disabled={isDefaultForm || loading}>\n {loading ? <CircularProgress color=\"#fff\" size=\"20px\" /> : 'Save'}{' '}\n </DashButton>\n </Box>\n);\n\nexport default function Standard({ id, formInfoUpdate, isDefaultForm, setFormInfo }) {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [officersAllegationOptions, setOfficersAllegationOptions] = useState({});\n // const visible1 = useInput(true, false, false, true);\n const reason = useInput(true, false, false, true);\n const allegation = useInput(true, false, false, true);\n const disposition = useInput(true, false, false, true);\n const discipline = useInput(true, false, false, true);\n const status = useInput(true, false, false, true);\n const onUpdateJson = (value) => {\n setOfficersAllegationOptions((prevState) => ({ ...prevState, ...value }));\n };\n\n useEffect(() => {\n if (formInfoUpdate) {\n reason.setValue(formInfoUpdate?.reason?.visible);\n allegation.setValue(formInfoUpdate?.allegation?.visible);\n disposition.setValue(formInfoUpdate?.disposition?.visible);\n discipline.setValue(formInfoUpdate?.discipline?.visible);\n status.setValue(formInfoUpdate?.status?.visible);\n }\n }, [formInfoUpdate]);\n\n const onSave = async () => {\n setLoading(true);\n try {\n const data = {\n officersAllegationOptions: {\n active: formInfoUpdate?.active,\n ...officersAllegationOptions,\n },\n };\n const res = await onSaveFormType(data, id);\n\n setFormInfo((prevState) => ({\n ...prevState,\n officersAllegationOptions: res.data?.officersAllegationOptions,\n }));\n toast.success('Officers has been updated');\n } catch (error) {\n toast.error(error?.response?.data?.error?.details?.[0]?.message);\n }\n setLoading(false);\n };\n return (\n <ContainerPageDetail style={{ width: '100%', height: 'calc(116.1vh - 64px)', overflowY: 'auto' }}>\n <Box padding=\"30px 20px 20px\" width=\"100%\">\n {renderHeder({\n title: 'Standard',\n onClick: onSave,\n loading,\n isDefaultForm,\n })}\n {isDefaultForm && (\n <Alert status=\"info\">\n <Typography style={{ fontSize: 14 }}>\n Default forms cannot be deleted or updated. Duplicate this form to edit.\n </Typography>\n </Alert>\n )}\n <DndProvider backend={HTML5Backend}>\n <Box className={classes.container}>\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <Dropdown\n data={{\n question: 'Reason',\n options: formInfoUpdate?.reason?.values || ReasonOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={reason}\n />\n <Dropdown\n data={{\n question: 'Allegation',\n options: formInfoUpdate?.allegation?.values || AllegationOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={allegation}\n />\n <Dropdown\n data={{\n question: 'Disposition',\n options: formInfoUpdate?.disposition?.values || DispositionOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={disposition}\n />\n <Dropdown\n data={{\n question: 'Discipline',\n options: formInfoUpdate?.discipline?.values || DisciplineOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={discipline}\n />\n <Dropdown\n data={{\n question: 'Status',\n options: formInfoUpdate?.status?.values || StatusOptions,\n }}\n componentIndex={0}\n isStaticComponent\n onUpdateJson={onUpdateJson}\n shouldRenderSettings={false}\n allowDnD={false}\n includeRequired={false}\n visible={status}\n />\n </Box>\n </DndProvider>\n </Box>\n </ContainerPageDetail>\n );\n}\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport TitleIcon from '@material-ui/icons/Title';\nimport RadioButtonIcon from '@material-ui/icons/RadioButtonChecked';\nimport CheckboxIcon from '@material-ui/icons/CheckBox';\nimport ShortTextIcon from '@material-ui/icons/ShortText';\nimport LongTextIcon from '@material-ui/icons/Notes';\nimport { Box, Button, makeStyles, Typography } from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport shortid from 'shortid';\nimport { ReactComponent as CalendarIcon } from '../../assets/icons/today_black_24dp.svg';\nimport { ReactComponent as YesNoIcon } from '../../assets/icons/rule_black_24dp.svg';\nimport AddComponent from '../../components/AddComponent';\nimport { renderHeder } from './Standard';\nimport { getConfig } from '../../formEngine/config/Config';\nimport { Renderer } from '../../formEngine/config/Renderer';\nimport { onSaveFormType } from '../../services/unarmed';\nimport { ContainerPageDetail } from './PageDetails';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport Alert from '../../components/Alert';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\n\n/**\n * Rendered Components Array\n * @returns {object[]} Array of rendered components\n */\nconst renderComponentsArr = () => [\n {\n name: 'Title',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'title',\n },\n {\n name: 'Subtitle',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'subtitle',\n },\n {\n name: 'Single Choice',\n divider: true,\n Icon: RadioButtonIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'singleChoice',\n },\n {\n name: 'Multiple Choices',\n Icon: CheckboxIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'multipleChoices',\n },\n {\n name: 'Dropdown',\n Icon: ArrowDropDownIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'dropdown',\n },\n {\n name: 'Yes/No',\n Icon: YesNoIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'yesNo',\n },\n {\n name: 'Date',\n Icon: CalendarIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'date',\n },\n {\n name: 'Short Text',\n divider: true,\n Icon: ShortTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'shortText',\n },\n {\n name: 'Long Text',\n Icon: LongTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'longText',\n },\n];\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n padding: 28,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 35,\n },\n\n altText: {\n fontSize: 14,\n color: '#000000AD',\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\n/**\n * Ignore Extra Props\n * @param {object[]} layout - Layout object\n * @returns {object} CustomOfficer fields object\n */\nexport const ignoreExtraProps = (_version, layout) => {\n const officersCustomFields =\n layout?.[0]?.components?.map((component) => {\n const componentCopy = { ...component };\n\n if (_version === FORM_TYPE_VERSION_2) {\n delete componentCopy.id;\n delete componentCopy.uniqueId;\n }\n\n return {\n data: {\n ...componentCopy.data,\n ...(componentCopy.data.dataReportLink\n ? {\n dataReportLink:\n typeof componentCopy.data.dataReportLink === 'string'\n ? componentCopy.data.dataReportLink\n : componentCopy.data.dataReportLink._id,\n }\n : {}),\n question: componentCopy?.data?.question?.trim(),\n options: componentCopy?.data?.options?.map((option) => option.trim()),\n },\n type: componentCopy.type,\n };\n }) || [];\n\n return {\n officersCustomFields,\n };\n};\n\nexport const pagesIgnoreExtraProps = (pages) =>\n pages.map((page) => {\n const pageCopy = { ...page };\n\n delete pageCopy.pageId;\n\n return pageCopy;\n });\n\nconst fixDataReportLinkID = (component) => ({\n ...component,\n data: {\n ...component?.data,\n ...(component?.data?.dataReportLink\n ? {\n dataReportLink:\n typeof component?.data?.dataReportLink === 'string'\n ? component?.data?.dataReportLink\n : component?.data?.dataReportLink?._id,\n }\n : {}),\n },\n});\n\n/**\n * CustomOfficer Form Component\n * @param {object} props - Component props\n * @param {object[]} props.components - Array of components\n * @param {object} props.formInfo - Form information object\n * @param {object} props.selected - Selected component object\n * @param {Function} props.handleSelectComponent - Function to handle component selection\n * @param {Function} props.handleDrop - Function to handle component drop\n * @param {string} props.path - Path string\n * @param {Function} props.handleDeleteComponent - Function to handle component deletion\n * @param {Function} props.onUpdateJson - Function to update JSON\n * @param {string} props.id - Component ID\n * @param {object[]} props.layout - Layout object\n * @param {boolean} props.isDefaultForm - Flag indicating if the form is default\n * @param {Function} props.handleDuplicateComponent - Function to handle component duplication\n * @returns {JSX.Element} CustomOfficer Form component\n */\nexport default function CustomOfficer({\n components,\n formInfo,\n selected,\n handleSelectComponent,\n handleDrop,\n path,\n handleDeleteComponent,\n onUpdateJson,\n id,\n layout,\n isDefaultForm,\n handleDuplicateComponent,\n layouts,\n showHeaders,\n label,\n}) {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const refActionModal = React.useRef(null);\n const [openDelete, setOpenDelete] = useState(false);\n\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: components,\n deleteComponent: handleDeleteComponent,\n onUpdateJson,\n refActionModal,\n setModal: setOpenDelete,\n includeRequired: false,\n from: \"allegations\",\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [components]\n );\n\n /**\n * Handles saving form\n */\n const onSave = useCallback(async () => {\n let pageExists = false;\n\n if (formInfo?.version === FORM_TYPE_VERSION_2) {\n pageExists =\n formInfo?.officersCustomFields &&\n !!formInfo?.officersCustomFields?.find((page) => page.pageId === selected.pageId);\n }\n\n try {\n setLoading(true);\n await onSaveFormType(\n formInfo?.version === FORM_TYPE_VERSION_2\n ? {\n officersCustomFields: pagesIgnoreExtraProps([\n ...formInfo.officersCustomFields.map((page) => {\n if (page.pageId === selected.pageId) {\n return {\n ...page,\n name: page?.name,\n sections: [\n {\n name: page?.sections?.[0]?.name || 'Section name',\n components:\n ignoreExtraProps(formInfo.version, layout)?.officersCustomFields.map(fixDataReportLinkID) ||\n [],\n },\n ],\n };\n }\n\n // get the layouts edited from the other pages!\n const pageLayout = layouts[page?.pageId];\n\n return {\n ...page,\n sections: [\n {\n name: page?.sections?.[0]?.name || 'Section name',\n components: ignoreExtraProps(\n formInfo.version,\n pageLayout || page?.sections\n )?.officersCustomFields.map(fixDataReportLinkID),\n },\n ],\n };\n }),\n ...(!pageExists\n ? [\n {\n name: selected?.name,\n active: true,\n sections: [\n {\n name: selected?.sections?.[0]?.name || 'Section name',\n components:\n ignoreExtraProps(formInfo.version, layout)?.officersCustomFields.map(\n fixDataReportLinkID\n ) || [],\n },\n ],\n },\n ]\n : []),\n ]),\n }\n : ignoreExtraProps(formInfo?.version, layouts[0]),\n id\n );\n toast.success('CustomOfficer components Added successfully');\n setLoading(false);\n } catch (error) {\n toast.error(\n error.response?.data?.error?.details?.[0]?.message || error.response?.data?.message || 'Something went wrong'\n );\n setLoading(false);\n }\n }, [id, layout, formInfo, selected, layouts]);\n\n return (\n <ContainerPageDetail\n style={{ width: '100%', height: 'calc(109vh - 64px)', ...(showHeaders && { overflowY: 'auto' }) }}\n >\n <ModalPopUp setOpen={setOpenDelete} open={openDelete}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>\n Are you sure you want to delete this {refActionModal?.current?.nameAction ?? ''}?\n </Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button variant=\"outlined\" className={classes.buttonOutlined} onClick={() => setOpenDelete(false)}>\n CANCEL\n </Button>\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => {\n if (refActionModal && refActionModal.current) {\n refActionModal.current.actionPress();\n }\n setOpenDelete(false);\n }}\n >\n DELETE\n </Button>\n </Box>\n </ModalPopUp>\n {showHeaders ? (\n <Box padding=\"30px 20px 20px\" width=\"100%\">\n {renderHeder({\n title: selected?.name,\n onClick: onSave,\n loading,\n isDefaultForm,\n })}\n {isDefaultForm && (\n <Alert status=\"info\">\n <Typography style={{ fontSize: 14 }}>\n Default forms cannot be deleted or updated. Duplicate this form to edit.\n </Typography>\n </Alert>\n )}\n {formInfo?.version === FORM_TYPE_VERSION_2 && (\n <Alert status=\"info\">\n <Typography\n style={{ fontSize: 14 }}\n >{`Empty sections will not be shown in the ${label} Updates tab`}</Typography>\n </Alert>\n )}\n <Box className={classes.container}>\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <Renderer\n config={config}\n handleDrop={handleDrop}\n path={path}\n handleDeleteComponent={handleDeleteComponent}\n duplicateComponent={handleDuplicateComponent}\n />\n <AddComponent\n open={open}\n setOpen={setOpen}\n renderComponentsArr={renderComponentsArr}\n handleSelectComponent={handleSelectComponent}\n />\n </Box>\n </Box>\n ) : (\n <>\n {isDefaultForm && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n background: 'rgba(0,0,0,0.01)',\n }}\n />\n )}\n <Renderer\n config={config}\n handleDrop={handleDrop}\n path={path}\n handleDeleteComponent={handleDeleteComponent}\n duplicateComponent={handleDuplicateComponent}\n />\n <AddComponent\n open={open}\n setOpen={setOpen}\n renderComponentsArr={renderComponentsArr}\n handleSelectComponent={handleSelectComponent}\n />\n </>\n )}\n </ContainerPageDetail>\n );\n}\n\nCustomOfficer.propTypes = {\n components: PropTypes.array.isRequired,\n formInfo: PropTypes.object.isRequired,\n selected: PropTypes.object.isRequired,\n handleSelectComponent: PropTypes.func.isRequired,\n handleDrop: PropTypes.func.isRequired,\n path: PropTypes.string.isRequired,\n handleDeleteComponent: PropTypes.func.isRequired,\n onUpdateJson: PropTypes.func.isRequired,\n id: PropTypes.string.isRequired,\n layout: PropTypes.array.isRequired,\n isDefaultForm: PropTypes.bool.isRequired,\n handleDuplicateComponent: PropTypes.func.isRequired,\n layouts: PropTypes.func.isRequired,\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport shortid from 'shortid';\nimport PropTypes from 'prop-types';\n\nimport { handleMoveWithinParent } from '../../formEngine/utils/helpers';\nimport OfficerStandard from './OfficerStandard';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\nimport CustomOfficer from './CustomOfficer';\n\nexport default function OfficerUpdate({ selected, id, formInfo, isDefaultForm, setFormInfo }) {\n const [layouts, setLayouts] = useState({});\n const [updatedPage, setUpdatedPage] = useState('');\n\n const selectedId = useMemo(() => {\n if (selected.name === 'Custom' && selected.pageIndex === 0 && formInfo?.version !== FORM_TYPE_VERSION_2)\n return selected.pageIndex;\n\n return typeof selected === 'object' ? selected.pageId : selected;\n }, [selected, formInfo?.version]);\n\n const onSetLayout = useCallback(\n (layout) => {\n if (selectedId !== undefined) {\n setLayouts((_layouts) => ({\n ..._layouts,\n [selectedId]: layout,\n }));\n }\n },\n [selectedId]\n );\n\n const onGetLayout = useCallback(\n () =>\n selected.moveComponents ? selected.sections : layouts[selectedId] || [{ name: 'Section Name', components: [] }],\n [layouts, selectedId, selected]\n );\n\n const onUpdateFormInfo = useCallback(\n (layoutCopy) => {\n if (formInfo?.version === FORM_TYPE_VERSION_2) {\n setFormInfo((_formInfo) => ({\n ..._formInfo,\n officersCustomFields: [\n ..._formInfo?.officersCustomFields.map((page) => {\n if (selected.pageId === page.pageId) {\n return {\n ...page,\n sections: layoutCopy,\n };\n }\n\n return page;\n }),\n ],\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [formInfo]\n );\n\n useEffect(() => {\n if (formInfo && selected && updatedPage !== selected.pageId) {\n const layoutCopy = Array.from(onGetLayout());\n const selectedComponents = formInfo?.officersCustomFields[selected?.pageIndex]?.sections?.[0]?.components || [];\n const _components = formInfo.version === FORM_TYPE_VERSION_2 ? selectedComponents || [] : formInfo?.officersCustomFields;\n if (_components.length > 0 && layoutCopy?.[0]?.components?.length === 0) {\n layoutCopy[0].components =\n _components?.map((field) => ({\n ...field,\n })) || [];\n }\n setUpdatedPage(selected.pageId);\n onSetLayout(layoutCopy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formInfo, selected]);\n\n useEffect(() => {\n if (\n formInfo &&\n selected &&\n selected.name === 'Custom' &&\n selected.pageIndex === 0 &&\n formInfo.version !== FORM_TYPE_VERSION_2\n ) {\n const layoutCopy = Array.from(onGetLayout());\n const _components = formInfo?.officersCustomFields;\n\n layoutCopy[0].components =\n _components?.map((field) => ({\n ...field,\n })) || [];\n\n onSetLayout(layoutCopy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formInfo, selected]);\n\n const handleSelectComponent = (component) => {\n const newComponents = [...onGetLayout()[0].components, component];\n const layoutCopy = Array.from(onGetLayout());\n layoutCopy[0].components = newComponents;\n onUpdateFormInfo(layoutCopy);\n onSetLayout(layoutCopy);\n };\n\n const handleDuplicateComponent = (path, index) => {\n const layoutCopy = JSON.parse(JSON.stringify(onGetLayout()));\n const componentsCopy = [...layoutCopy[0].components];\n const component = { ...componentsCopy[index], id: shortid.generate() };\n\n layoutCopy[0].components.splice(index, 0, component);\n\n onUpdateFormInfo(layoutCopy);\n onSetLayout(layoutCopy);\n };\n\n const handleDeleteComponent = (componentIndex) => {\n const layoutCopy = Array.from(onGetLayout());\n const componentsCopy = Array.from(onGetLayout()?.[0]?.components);\n componentsCopy.splice(componentIndex, 1);\n layoutCopy[0].components = componentsCopy;\n onUpdateFormInfo(layoutCopy);\n onSetLayout(layoutCopy);\n };\n\n const onUpdateJson = (componentIndex, data) => {\n setLayouts((prevState) => {\n const prevStateCopy = [...prevState[selectedId]];\n const componentsCopy = [...prevStateCopy[0].components];\n if (componentsCopy[componentIndex]) {\n componentsCopy[componentIndex].data = data;\n }\n prevStateCopy[0].components = componentsCopy;\n\n return { ...prevState, [selectedId]: prevStateCopy };\n });\n };\n\n const handleDrop = useCallback(\n (dropZone, item) => {\n const splitDropZonePath = dropZone.path.split('-');\n const pathToDropZone = splitDropZonePath.slice(0, -1).join('-');\n // move down here since sidebar items dont have path\n const splitItemPath = item.path.split('-');\n const pathToItem = splitItemPath.slice(0, -1).join('-');\n\n // 2. Pure move (no create)\n if (splitItemPath.length === splitDropZonePath.length) {\n // 2.a. move within parent\n if (pathToItem === pathToDropZone) {\n const _layout = onGetLayout();\n const newLayout = handleMoveWithinParent(_layout, splitDropZonePath, splitItemPath);\n\n onSetLayout(newLayout);\n onUpdateFormInfo(newLayout);\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [layouts]\n );\n\n const onChangeSelected = useCallback(() => {\n if (selected && selected.name !== 'Standard') {\n const _customFields = [...formInfo?.officersCustomFields];\n\n if (selected.moveComponents) {\n const indexes = selected.moveComponents.item?.path?.split('-')?.map((_index) => parseInt(_index));\n const page = _customFields[indexes[0]];\n const newSections = [\n {\n ...page?.sections?.[0],\n components: page?.sections?.[0].components?.filter((_, componentIndex) => componentIndex !== indexes[1]),\n },\n ];\n\n _customFields[indexes[0]] = {\n ...page,\n sections: newSections,\n };\n\n setLayouts((_layouts) => ({\n ..._layouts,\n [page.pageId]: newSections,\n }));\n }\n\n _customFields[selected.pageIndex] = {\n active: selected.active,\n name: selected.name,\n pageId: selected.pageId,\n sections: selected.moveComponents ? selected.sections : _customFields[selected.pageIndex]?.sections,\n };\n\n setFormInfo({ ...formInfo, officersCustomFields: _customFields });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formInfo, selected]);\n\n useEffect(() => {\n onChangeSelected();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected.pageId]);\n\n // if (selected?.name === 'Standard') {\n // return (\n // <OfficerStandard\n // id={id}\n // formInfoUpdate={formInfo?.officersAllegationOptions}\n // isDefaultForm={isDefaultForm}\n // setFormInfo={setFormInfo}\n // />\n // );\n // }\n\n return (\n <CustomOfficer\n label=\"Officer\"\n showHeaders\n formInfo={formInfo}\n selected={selected}\n layouts={layouts}\n components={onGetLayout()[0].components}\n isDefaultForm={isDefaultForm}\n path={selected?.pageIndex?.toString() || '0'}\n id={id}\n layout={onGetLayout()}\n handleDuplicateComponent={handleDuplicateComponent}\n handleDrop={handleDrop}\n handleDeleteComponent={handleDeleteComponent}\n handleSelectComponent={handleSelectComponent}\n onUpdateJson={onUpdateJson}\n />\n );\n}\n\nOfficerUpdate.propTypes = {\n id: PropTypes.string,\n selected: PropTypes.any,\n formInfo: PropTypes.oneOfType,\n setFormInfo: PropTypes.func,\n isDefaultForm: PropTypes.bool,\n};\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable no-prototype-builtins */\n/* eslint-disable no-unused-expressions */\nimport React, { useState, useEffect, useRef } from 'react';\nimport { Box, Button, CircularProgress, Typography, makeStyles } from '@material-ui/core';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { DndProvider } from 'react-dnd';\nimport shortid from 'shortid';\nimport { useParams } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\n\nimport QuestionBank from './QuestionBank';\nimport Pages from './Pages';\nimport PageDetails from './PageDetails';\nimport { getFormType, getQuestionBank, onSaveFormType } from '../../services/unarmed';\nimport CaseUpdate from './CaseUpdate';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport CaseStatus from './CaseStatus';\nimport FormTasks from './FormTasks';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\nimport OfficerUpdate from './OfficerUpdate';\n\nconst useStyles = makeStyles(() => ({\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\nconst ignoreExtraProps = (pages) => {\n const pagesFormatted = pages.map((page) => ({\n name: page.name,\n sections: page.sections.map((section) => ({\n name: section.name,\n components: section.components.map((component) => {\n const data = {\n data: component.data || {},\n type: component.type,\n ...(component.uniqueId ? { uniqueId: component.uniqueId } : {}),\n };\n if (component.type === 'demographics') {\n const demographicsComps = {};\n const dataReportLink = {\n ...(component?.data?.dataReportLink ? { dataReportLink: component?.data?.dataReportLink } : {}),\n };\n component.components.forEach((comp) => {\n if (comp.type === 'dateOfBirth') {\n demographicsComps.birthdate = { ...comp.data, ...dataReportLink };\n } else {\n demographicsComps[comp.type] = { ...comp.data, ...dataReportLink };\n }\n });\n\n delete demographicsComps.dataReportLink;\n\n data.data = demographicsComps;\n return data;\n }\n\n return data;\n }),\n })),\n }));\n return {\n pages: pagesFormatted,\n };\n};\n\nconst getDemographicName = (type) => {\n switch (type) {\n case 'gender':\n return 'Gender';\n case 'sexualOrientation':\n return 'Sexual Orientation';\n case 'dateOfBirth':\n return 'Date of Birth';\n case 'raceEthnicity':\n return 'Race/Ethnicity';\n default:\n return '';\n }\n};\n\nexport default function FormProfile() {\n const { id } = useParams();\n const classes = useStyles();\n const refActionModal = useRef(null);\n const [isSomeQuesRequired, setSomeQuesRequired] = useState(false);\n const [loading, setLoading] = useState('idle');\n const [pages, setPages] = useState([]);\n const [loadingForm, setLoadingForm] = useState('idle');\n const [selectedPage, setSelectedPage] = useState(0);\n const [formInfo, setFormInfo] = useState(null);\n const [selected, setSelected] = useState({ name: 'Standard' });\n const [open, setOpen] = useState(false);\n const [questionsBank, setQuestionsBank] = useState([]);\n\n const [value, setValue] = useState(0);\n\n /**\n * @description This useEffect is used to get the question bank from endpoint and format the data to be used in the form\n */\n useEffect(() => {\n const onGetQuestionBank = async () => {\n setLoadingForm('pending');\n try {\n const response = await getQuestionBank();\n const questions = response.data?.map((res) => ({\n ...res,\n components: res.components.map((item) => ({\n ...item,\n idQuestion: res._id,\n })),\n toggleOptions: false,\n isVisible: true,\n }));\n\n setQuestionsBank(questions);\n } catch (err) {\n console.log('onGetQuestionBank.error', err.response);\n }\n };\n if (id) {\n onGetQuestionBank();\n }\n }, [id]);\n\n const handleVisibleQuestion = (idQuestion, visibleOption) => {\n const arrCopy = [...questionsBank];\n const newArr = arrCopy.map((res) => {\n if (idQuestion === res._id) {\n return {\n ...res,\n isVisible: visibleOption,\n };\n }\n return res;\n });\n setQuestionsBank(newArr);\n };\n\n const handleInitVisibleQuestion = (questionBankExists, typeAction) => {\n const arrCopy = [...questionsBank];\n const newArr = arrCopy.map((res) => {\n if (questionBankExists.some((item) => item.idQuestion === res._id)) {\n return {\n ...res,\n isVisible: typeAction === 'reset',\n };\n }\n return res;\n });\n setQuestionsBank(newArr);\n };\n\n /**\n * @description This useEffect is used to get the form type from endpoint and re-organize the question bank components from the rest of the components\n */\n useEffect(() => {\n const onGetFormTypes = async () => {\n try {\n const { data } = await getFormType(id);\n\n const newPages = data.pages.map((page) => ({\n ...page,\n sections: page.sections.map((section) => {\n const questionBankComponents = section?.components?.map((component, index) => {\n if (component.type === 'questionBank') {\n const questionBankComponent = questionsBank.find((q) => q.type === component.data.type);\n return {\n components: questionBankComponent.components,\n index,\n id: shortid.generate(),\n uniqueId: component.uniqueId,\n componentType: component.data.type,\n };\n }\n\n return { ...component, id: shortid.generate() };\n });\n\n const componentsCopy = section.components.slice();\n questionBankComponents.forEach((q) => {\n if (q?.hasOwnProperty('index')) {\n const questionBankComponent = {\n type: 'questionBank',\n idQuestion: q.components[0].idQuestion,\n data: {\n type: q.componentType,\n },\n id: shortid.generate(),\n uniqueId: q.uniqueId,\n components: q.components.map((component, index) => ({\n ...component,\n id: `${shortid.generate()}-${index}`,\n\n questionBankComponent: true,\n })),\n };\n\n componentsCopy.splice(q.index, 1, questionBankComponent);\n }\n });\n return {\n ...section,\n id: shortid.generate(),\n components: componentsCopy.map((comps) => {\n if (comps.type === 'demographics') {\n const demographicskeys = Object.keys(comps.data).sort();\n const demographicsComps = demographicskeys.map((key) => {\n if (key === 'birthdate') {\n return {\n type: 'dateOfBirth',\n data: comps.data[key],\n name: getDemographicName(key),\n id: shortid.generate(),\n shouldRenderToggle: true,\n };\n }\n return {\n type: key,\n data: comps.data[key],\n name: getDemographicName(key),\n id: shortid.generate(),\n shouldRenderToggle: true,\n };\n });\n return {\n data: {},\n type: 'demographics',\n uniqueId: comps.uniqueId,\n components: demographicsComps,\n id: shortid.generate(),\n };\n }\n\n if (comps.type !== 'questionBank') {\n return { ...comps, id: shortid.generate() };\n }\n\n return comps;\n }),\n };\n }),\n }));\n\n const questionBankAdded = [];\n\n newPages.forEach((item) => {\n item.sections.forEach((res) => {\n const arrComponents = res.components.filter((component) => component.type === 'questionBank');\n if (arrComponents.length > 0) {\n questionBankAdded.push(...arrComponents);\n }\n });\n });\n\n if (questionBankAdded.length > 0) {\n handleInitVisibleQuestion(questionBankAdded, 'added');\n }\n if (data.pages.length === 0) {\n setPages([\n {\n label: 'Page Title',\n name: 'Page Title',\n sections: [\n {\n name: 'Section Name',\n id: shortid.generate(),\n components: [],\n },\n ],\n },\n ]);\n } else {\n setPages(newPages);\n }\n\n if (data.version === FORM_TYPE_VERSION_2) {\n setFormInfo({\n ...data,\n customFields: data.customFields.map((page) => ({\n ...page,\n sections: [\n {\n ...page.sections?.[0],\n components: page.sections?.[0]?.components.map((component) => ({\n ...component,\n id: shortid.generate(),\n })),\n },\n ],\n pageId: shortid.generate(),\n })),\n officersCustomFields: data.officersCustomFields.map((page) => ({\n ...page,\n sections: [\n {\n ...page.sections?.[0],\n components: page.sections?.[0]?.components.map((component) => ({\n ...component,\n id: shortid.generate(),\n })),\n },\n ],\n pageId: shortid.generate(),\n })),\n });\n } else {\n setFormInfo({\n ...data,\n customFields: data.customFields.map((component) => ({ ...component, id: shortid.generate() })),\n officersCustomFields: data.officersCustomFields.map((component) => ({\n ...component,\n id: shortid.generate(),\n })),\n });\n }\n\n setLoadingForm('resolved');\n } catch (error) {\n setLoadingForm('rejected');\n toast.error(error.message);\n }\n };\n\n if (id && questionsBank.length) {\n onGetFormTypes();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, questionsBank.length]);\n\n /**\n * @description This function is used to handle the change of the tabs\n */\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n\n const handleToggleOptions = (idQuestion) => {\n const arrCopy = [...questionsBank];\n const newArr = arrCopy.map((res) => {\n if (idQuestion === res._id) {\n return {\n ...res,\n toggleOptions: !res.toggleOptions,\n };\n }\n return res;\n });\n setQuestionsBank(newArr);\n };\n\n const handleSaveForm = async (dataTop) => {\n const pagesToSend = ignoreExtraProps(pages);\n const pagesNotName = pagesToSend?.pages.some((res) => !res.name);\n const sectionNotName = [];\n\n const _pages = pagesToSend?.pages?.map((page) => ({\n ...page,\n sections: page.sections.map((section) => ({\n ...section,\n components: section.components.map((component) => {\n if (typeof component.data !== 'string' && component.data?.dataReportLink?._id) {\n return {\n ...component,\n data: {\n ...component.data,\n dataReportLink: component.data.dataReportLink._id,\n },\n };\n }\n\n if (typeof component.data !== 'string' && component.data) {\n const updatedData = Object.fromEntries(\n Object.entries(component.data).map(([key, value]) => {\n if (value?.dataReportLink?._id) {\n const dataReportLinkId = value.dataReportLink._id;\n\n return [key, { ...value, ...(dataReportLinkId ? { dataReportLink: dataReportLinkId } : {}) }];\n }\n return [key, value];\n })\n );\n return {\n ...component,\n data: {\n ...updatedData,\n },\n };\n }\n\n return component;\n }),\n })),\n }));\n\n _pages.forEach((item) => {\n const sectionItem = item.sections.find((res) => !res.name);\n if (sectionItem) {\n sectionNotName.push(sectionItem);\n }\n });\n if (!pagesNotName && sectionNotName.length === 0) {\n try {\n setLoading('pending');\n await onSaveFormType(\n {\n ...dataTop,\n pages: _pages,\n },\n id\n );\n setLoading('resolved');\n toast.success('Form Successfully updated!');\n } catch (error) {\n const errorMessage = error?.response?.data?.error?.details[0]?.message;\n toast.error(errorMessage);\n setLoading('rejected');\n }\n } else {\n if (pagesNotName) {\n toast.error('You cannot save a page without a name');\n }\n if (sectionNotName.length > 0) {\n toast.error('You cannot save a section without a name');\n }\n }\n };\n\n const quesRequired = questionsBank.some((res) => res.isVisible && res.required);\n\n return (\n <Box display=\"flex\">\n {loadingForm === 'pending' && (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexDirection=\"column\"\n width=\"100%\"\n height=\"calc(116.1vh - 64px)\"\n >\n <Typography variant=\"h6\" style={{ marginBottom: 10 }}>\n Loading Form\n </Typography>\n <CircularProgress size={20} color=\"#000\" />\n </Box>\n )}\n <ModalPopUp setOpen={setOpen} open={open}>\n <Typography style={{ fontSize: 20, fontWeight: '500' }}>\n Are you sure you want to delete this {refActionModal?.current?.nameAction ?? ''}?\n </Typography>\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"flex-end\" marginTop=\"20px\">\n <Button variant=\"outlined\" className={classes.buttonOutlined} onClick={() => setOpen(false)}>\n CANCEL\n </Button>\n <Button\n variant=\"outlined\"\n className={classes.buttonOutlined}\n onClick={() => {\n if (refActionModal && refActionModal.current) {\n refActionModal.current.actionPress();\n }\n setOpen(false);\n }}\n >\n DELETE\n </Button>\n </Box>\n </ModalPopUp>\n {pages.length > 0 && (\n <DndProvider backend={HTML5Backend}>\n <Pages\n id={id}\n formInfo={formInfo}\n setFormInfo={setFormInfo}\n refActionModal={refActionModal}\n setOpen={setOpen}\n value={value}\n handleChange={handleChange}\n pages={pages}\n setPages={setPages}\n selectedPage={selectedPage}\n handleInitVisibleQuestion={handleInitVisibleQuestion}\n onSelectPage={setSelectedPage}\n selected={selected}\n isDefaultForm={formInfo?.defaultForm}\n setSelected={setSelected}\n />\n {value === 0 && (\n <>\n <PageDetails\n key={selectedPage}\n refActionModal={refActionModal}\n setOpen={setOpen}\n formInfo={formInfo}\n setFormInfo={setFormInfo}\n questionsRequired={quesRequired}\n page={{ ...pages[selectedPage], pageIndex: selectedPage }}\n setPages={setPages}\n pages={pages}\n handleInitVisibleQuestion={handleInitVisibleQuestion}\n handleVisibleQuestion={handleVisibleQuestion}\n setSomeQuesRequired={setSomeQuesRequired}\n handleSaveForm={handleSaveForm}\n loading={loading}\n isDefaultForm={formInfo?.defaultForm}\n />\n <QuestionBank\n questionRequiredActive={isSomeQuesRequired}\n handleToggleOptions={handleToggleOptions}\n questionsBank={questionsBank?.filter((question) => question?.label !== 'Demographics')}\n setQuestionsBank={setQuestionsBank}\n isDefaultForm={formInfo?.defaultForm}\n />\n </>\n )}\n {value === 1 && (\n <CaseUpdate\n selected={selected}\n id={id}\n formInfo={formInfo}\n isDefaultForm={formInfo?.defaultForm}\n setFormInfo={setFormInfo}\n />\n )}\n {value === 2 && (\n <>\n <OfficerUpdate\n selected={selected}\n id={id}\n formInfo={formInfo}\n isDefaultForm={formInfo?.defaultForm}\n setFormInfo={setFormInfo}\n />\n </>\n )}\n {value === 3 && (\n <FormTasks\n id={id}\n formInfo={formInfo}\n setFormInfo={setFormInfo}\n onSaveForm={handleSaveForm}\n isDefaultForm={formInfo?.defaultForm}\n />\n )}\n {value === 4 && (\n <CaseStatus id={id} formInfo={formInfo} isDefaultForm={formInfo?.defaultForm} setFormInfo={setFormInfo} />\n )}\n </DndProvider>\n )}\n </Box>\n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, CircularProgress } from '@material-ui/core';\n\n/**\n * Button component with optional loading spinner.\n * @param {Object} props - The component props.\n * @param {boolean} props.loading - Indicates if the button is in a loading state.\n * @param {function} props.onClick - Click event handler for the button.\n * @param {string} props.text - Text to display on the button.\n * @param {string} [props.className] - Additional CSS class name for the button.\n * @param {Object} [props.classes] - CSS classes to apply to the button.\n * @param {'default' | 'inherit' | 'primary' | 'secondary'} [props.color] - The color of the button.\n * @param {string} [props.circularColor='#364F74'] - Color of the circular progress spinner.\n * @param {'button' | 'submit' | 'reset'} [props.type='button'] - The type of the button.\n * @param {boolean} [props.disabled] - Indicates if the button is disabled.\n * @param {'text' | 'outlined' | 'contained'} [props.variant='text'] - The variant of the button.\n */\nconst Btn = ({\n dataTestId,\n loading,\n onClick,\n text,\n className,\n classes,\n color,\n circularColor = '#364F74',\n type = 'button',\n disabled,\n variant = 'text',\n}) => (\n <Button\n data-testid={dataTestId}\n onClick={onClick}\n className={className}\n color={color}\n type={type}\n variant={variant}\n disabled={disabled}\n classes={classes}\n style={{ textTransform: 'capitalize' }}\n >\n {text} {loading && <CircularProgress color={circularColor} size=\"20px\" style={{ marginLeft: 10 }} />}\n </Button>\n);\n\nBtn.propTypes = {\n dataTestId: PropTypes.string,\n loading: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n text: PropTypes.string.isRequired,\n className: PropTypes.string,\n classes: PropTypes.object,\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']),\n circularColor: PropTypes.string,\n type: PropTypes.oneOf(['button', 'submit', 'reset']),\n disabled: PropTypes.bool,\n variant: PropTypes.oneOf(['text', 'outlined', 'contained']),\n};\n\nexport default Btn;\n","import { Box, Button, Card, CardContent, Divider, makeStyles, TextField, Typography } from '@material-ui/core';\nimport React, { useState, useContext } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { toast } from '../../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport useInput from '../../../hooks/useInput';\nimport { signupInvtion } from '../../../services/unarmed';\nimport { signInWithEmailAndPassword, signInWithMicrosoft } from '../../../services/firebase';\nimport Btn from '../../../components/Btn';\nimport useOrganization from '../../../hooks/useOrganization';\nimport microsoftLogo from '../../../assets/Microsoft_logo.svg.png';\nimport LogoHome from '../../../components/LogoHome';\nimport { Context } from '../../../Context';\n\nconst useStyles = makeStyles(() => ({\n card: {\n width: 500,\n padding: 30,\n },\n unarmedImg: {\n objectFit: 'contain',\n height: 60,\n width: 150,\n alignSelf: 'center',\n cursor: 'pointer',\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n padding: 0,\n },\n cardTitle: {\n marginTop: 20,\n fontWeight: '500',\n },\n text: {\n color: '#00000099',\n },\n form: {\n marginTop: 10,\n },\n textField: {\n width: '100%',\n marginBottom: 20,\n },\n button: {\n background: ' #364F74',\n color: '#fff',\n width: '100%',\n ':hover': {\n background: '#364F74',\n },\n marginTop: 10,\n marginBottom: 20,\n },\n\n divider: {\n width: '47%',\n background: '#0000001F',\n },\n googleButton: {\n width: '100%',\n margin: '20px 0',\n border: '1px solid #0000001F',\n textTransform: 'none',\n color: '#5E5E5E',\n },\n link: {\n color: '#4B7BFF',\n cursor: 'pointer',\n marginTop: 20,\n display: 'flex',\n alignItems: 'center',\n },\n googleIcon: {\n width: 20,\n height: 20,\n objectFit: 'cover',\n marginRight: 10,\n },\n}));\n\nconst SignupForm = ({ invitation }) => {\n const classes = useStyles();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [loading, setLoading] = useState(false);\n const confirmPassword = useInput('', isSubmitting);\n const history = useHistory();\n const password = useInput('', isSubmitting);\n const location = useLocation();\n const query = React.useMemo(() => new URLSearchParams(location.search), [location.search]);\n const { organization } = useOrganization();\n const { setIsAuth } = useContext(Context);\n\n const onSignup = async (e) => {\n e.preventDefault();\n setIsSubmitting(true);\n if (!password.value || !confirmPassword.value) {\n return;\n }\n\n if (password.value !== confirmPassword.value) {\n confirmPassword.setError('Both Passwords must match');\n return;\n }\n if (password.value.length < 12) {\n password.setError('Password must be at least 12 characters long');\n\n return;\n }\n if (!password.value.match(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*/()-,=+{}[\\]<>?`~|;:'\".]).{12,}$/)) {\n password.setError(\n 'Password should be a minimum of 12 characters and include at least one uppercase letter, one lowercase letter, one number, and a special character.'\n );\n return;\n }\n password.setError('');\n confirmPassword.setError('');\n try {\n setLoading(true);\n const userData = {\n password: password.value,\n email: invitation.email,\n code: query.get('code'),\n };\n await signupInvtion(userData);\n signInWithEmailAndPassword(invitation?.email, password.value);\n setLoading(false);\n setIsAuth(true);\n\n history.push('/mfa');\n } catch (error) {\n toast.error(error.response.data.error.details[0].message);\n setLoading(false);\n }\n };\n\n const onSignInWithMicrosoft = async () => {\n try {\n const { user } = await signInWithMicrosoft();\n\n if (user.email !== invitation?.email) {\n toast.error('Please use the email you signed were invited');\n return;\n }\n const userData = {\n code: query.get('code'),\n };\n const token = await user.getIdToken();\n\n signupInvtion(userData, true, token);\n history.push('/mfa');\n } catch (error) {\n if (error.code === 'auth/account-exists-with-different-credential') {\n toast.error(\n 'This account already exists with a different credential. Please use the email you signed were invited'\n );\n }\n }\n };\n\n return (\n <Card className={classes.card}>\n <CardContent className={classes.cardContent} style={{ padding: 0 }}>\n <LogoHome />\n <Typography variant=\"h4\" className={classes.cardTitle}>\n Account Registration\n </Typography>\n <Typography variant=\"body2\" className={classes.text}>\n Please set your password to get started!\n </Typography>\n <form noValidate onSubmit={onSignup} autoComplete=\"off\" className={classes.form}>\n <TextField\n id=\"standard-basic\"\n label=\"First Name\"\n value={`${invitation?.firstName} `}\n className={classes.textField}\n disabled\n />\n <TextField\n id=\"standard-basic\"\n label=\"Last Name\"\n value={`${invitation?.lastName} `}\n className={classes.textField}\n disabled\n />\n\n <TextField\n id=\"standard-basic\"\n label=\"Email\"\n value={`${invitation?.email} `}\n className={classes.textField}\n disabled\n />\n <TextField\n id=\"standard-basic\"\n label=\"Password\"\n type=\"password\"\n value={password.value}\n onChange={password.onChange}\n className={classes.textField}\n error={password.error}\n helperText={password.error}\n />\n <TextField\n id=\"standard-basic\"\n label=\"Confirm Password\"\n type=\"password\"\n value={confirmPassword.value}\n onChange={(e) => {\n confirmPassword.onChange(e);\n if (e.target.value !== password.value) {\n confirmPassword.setError('Both Passwords must match');\n } else {\n confirmPassword.setError('');\n }\n }}\n className={classes.textField}\n error={confirmPassword.error}\n helperText={confirmPassword.error}\n />\n <Btn\n dataTestId=\"sign-up-button-submit\"\n className={classes.button}\n loading={loading}\n text=\"Registration\"\n type=\"submit\"\n circularColor=\"#fff\"\n color=\"primary\"\n />\n {organization?.features?.dashboard?.dashboard?.microsoft_sso && (\n <>\n <Box display=\"flex\" style={{ alignItems: 'center', justifyContent: 'space-between' }}>\n <Divider className={classes.divider} />\n Or\n <Divider className={classes.divider} />\n </Box>\n <Button\n data-testid=\"login-button-sign-in-microsoft\"\n variant=\"outlined\"\n className={classes.googleButton}\n onClick={onSignInWithMicrosoft}\n >\n <img src={microsoftLogo} alt=\"404\" className={classes.googleIcon} /> Sign up with Microsoft\n </Button>\n </>\n )}\n </form>\n </CardContent>\n </Card>\n );\n};\n\nSignupForm.propTypes = {\n invitation: PropTypes.string.isRequired,\n};\n\nexport default SignupForm;\n","import React from 'react';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport cloudWrong from '../assets/nube_wrong.svg';\nimport DashButton from '../components/DashButton';\nimport LogoHome from '../components/LogoHome';\n\nconst InvitationConflict = ({\n title = 'Looks like you are already logged into an existing account',\n text = 'Please use a different browser to open this link or use the sign out button below',\n onClickLogout,\n}) => (\n <Container>\n <Card>\n <LogoHome />\n <Image src={cloudWrong} />\n <Title>{title}\n {text}\n {onClickLogout && (\n \n Logout\n \n \n )}\n \n \n);\n\nInvitationConflict.propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n onClickLogout: PropTypes.func,\n};\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 116.1vh;\n width: 100%;\n padding: 0px 48px;\n background-color: #f9fafd;\n`;\n\nconst Card = styled.div`\n padding: 32px;\n border-radius: 8px;\n display: flex;\n background-color: #fff;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14),\n 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n`;\n\nconst Title = styled.h1`\n text-align: center;\n font-size: 32px;\n\n @media screen and (max-width: 689px) {\n font-size: 24px;\n }\n`;\n\nconst Text = styled.p`\n font-size: 25px;\n text-align: center;\n margin-top: 16px;\n margin-bottom: 16px;\n\n @media screen and (max-width: 689px) {\n font-size: 16px;\n }\n`;\n\nconst Image = styled.img`\n max-width: 100%;\n width: 320px;\n height: 320px;\n margin-bottom: 32px;\n margin-top: 32px;\n\n @media screen and (max-width: 689px) {\n width: 250px;\n height: 250px;\n }\n`;\n\nexport default InvitationConflict;\n","import React, { useState, useContext, useCallback, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { toast } from '../../../components/Notification';\nimport { useLocation } from 'react-router-dom';\n\nimport SignupForm from './SignupForm';\nimport { Context } from '../../../Context';\nimport { getInvitiation } from '../../../services/unarmed';\nimport InvitationConflict from '../../InvitationConflict';\n\nconst useStyles = makeStyles(() => ({\n signup: {\n display: 'flex',\n width: '100%',\n height: '116.1vh',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FAFBFF',\n },\n}));\n\nconst Signup = () => {\n const [showInvitationConflict, setShowInvitationConflict] = useState(false);\n const [invitation, setInvitation] = useState(null);\n const [loadingInvitation, setLoadingInvitation] = useState(true);\n const [invitationNotFound, setInvitationNotFound] = useState(false);\n\n const location = useLocation();\n const { setSignUpUser, removeAuthToLogin } = useContext(Context);\n\n const classes = useStyles();\n\n const onGetInvitedUser = useCallback(async () => {\n try {\n const { data } = await getInvitiation(location.search);\n const token = localStorage.getItem('authToken');\n\n setInvitation(data);\n setLoadingInvitation(false);\n\n if (data && token) {\n setShowInvitationConflict(true);\n } else {\n setSignUpUser(data);\n }\n } catch (error) {\n toast.error(error?.response?.data?.message || error?.message);\n setLoadingInvitation(false);\n setShowInvitationConflict(true);\n\n if (error?.response?.status === 404) {\n setInvitationNotFound(true);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search]);\n\n const handleOnClickLogout = () => {\n removeAuthToLogin('');\n setSignUpUser(invitation);\n setShowInvitationConflict(false);\n };\n\n useEffect(() => {\n if (location.search) {\n onGetInvitedUser();\n } else {\n setLoadingInvitation(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location]);\n\n if (loadingInvitation) return null;\n\n if (showInvitationConflict) {\n if (invitationNotFound) {\n return (\n \n );\n }\n\n return ;\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default Signup;\n","import { Box, Button, Card, CardContent, makeStyles, TextField, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { useHistory } from 'react-router-dom';\nimport useInput from '../../../hooks/useInput';\nimport { getPasswordReset } from '../../../services/unarmed';\nimport { getOrg } from '../../../Context';\nimport LogoHome from '../../../components/LogoHome';\n\nconst useStyles = makeStyles(() => ({\n card: {\n width: 500,\n padding: 30,\n },\n resetContainer: {\n display: 'flex',\n width: '100%',\n height: '116.1vh',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FAFBFF',\n },\n unarmedImg: {\n objectFit: 'contain',\n height: 60,\n width: 150,\n alignSelf: 'center',\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n padding: 0,\n },\n cardTitle: {\n marginTop: 20,\n fontWeight: '500',\n },\n text: {\n color: '#00000099',\n },\n form: {\n marginTop: 10,\n },\n textField: {\n width: '100%',\n marginBottom: 20,\n },\n button: {\n background: ' #364F74',\n color: '#fff',\n width: '100%',\n ':hover': {\n background: '#364F74',\n },\n marginTop: 10,\n marginBottom: 20,\n },\n\n divider: {\n width: '47%',\n background: '#0000001F',\n },\n}));\nconst emailRgx = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\nconst ResetPassword = () => {\n const classes = useStyles();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [loading, setLoading] = useState(false);\n const email = useInput('', isSubmitting);\n const [status, setStatus] = useState(0);\n const history = useHistory();\n\n const onResetPassword = async (e) => {\n const { location } = window;\n e.preventDefault();\n setIsSubmitting(true);\n if (!email.value) {\n return;\n }\n if (!emailRgx.test(email.value)) {\n email.setError('Please use a valid email!');\n return;\n }\n try {\n setLoading(true);\n await getPasswordReset(email.value, getOrg(location));\n setStatus(1);\n setLoading(false);\n } catch ({ code }) {\n if (code.includes('auth/user-not-found')) {\n email.setError('This email is not registered');\n } else {\n email.setError('Email exceed the maximun tries');\n }\n setLoading(false);\n }\n };\n\n return (\n
\n \n \n \n {status === 0 && (\n <>\n \n Reset Password\n \n \n Enter your email address to reset your password.\n \n
\n \n \n {loading ? : 'RESET PASSWORD'}\n \n \n \n )}\n {status === 1 && (\n \n \n Email Sent\n \n \n Please check your email to reset your password\n \n history.push('/login')}\n >\n Login\n \n \n )}\n
\n
\n
\n );\n};\n\nexport default ResetPassword;\n","import { Box, Button, makeStyles, Typography } from '@material-ui/core';\nimport React, { useContext } from 'react';\nimport ReactDOM from 'react-dom';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Context } from '../Context';\n\nconst useStyles = makeStyles(() => ({\n alert: {\n height: 170,\n width: 270,\n borderLeft: '4px solid rgb(61, 109, 241)',\n position: 'fixed',\n bottom: 60,\n left: 0,\n zIndex: 9999,\n background: '#fff',\n borderTopRightRadius: '3px',\n borderBottomRightRadius: '3px',\n boxShadow: '0 4px 8px #ccc',\n },\n title: {\n fontSize: 16,\n fontWeight: 'bold',\n },\n text: {\n fontSize: 16,\n color: '#585858',\n marginTop: 10,\n },\n\n button: {\n marginTop: 20,\n borderColor: 'rgb(61, 109, 241)',\n color: 'rgb(61, 109, 241)',\n },\n}));\n\nconst UpdateAlert = () => {\n const classes = useStyles();\n const { setRequireRefresh } = useContext(Context);\n return ReactDOM.createPortal(\n \n \n setRequireRefresh(false)}\n />\n UPDATE\n \n A new version is available. Click{' '}\n refresh to view.\n \n window.location.reload(true)}\n >\n REFRESH\n \n \n ,\n document.getElementById('alert')\n );\n};\n\nexport default UpdateAlert;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport Paper from '@material-ui/core/Paper';\n\n// const headCells = [\n// {\n// id: 'name',\n// numeric: false,\n// disablePadding: true,\n// label: 'Dessert (100g serving)',\n// },\n// { id: 'calories', numeric: true, disablePadding: false, label: 'Calories' },\n// { id: 'fat', numeric: true, disablePadding: false, label: 'Fat (g)' },\n// { id: 'carbs', numeric: true, disablePadding: false, label: 'Carbs (g)' },\n// { id: 'protein', numeric: true, disablePadding: false, label: 'Protein (g)' },\n// ];\n\nfunction EnhancedTableHead(props) {\n const { onRequestSort, headCells } = props;\n const createSortHandler = (property) => (event) => {\n onRequestSort(event, property);\n };\n\n return (\n \n \n {headCells.map((headCell) => (\n \n {headCell.label}\n \n ))}\n \n \n );\n}\n\nEnhancedTableHead.propTypes = {\n onRequestSort: PropTypes.func.isRequired,\n headCells: PropTypes.array,\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n}));\n\nexport default function PaginationTable({ columns, rows = [], renderRow }) {\n const classes = useStyles();\n const [order, setOrder] = React.useState('asc');\n const [orderBy, setOrderBy] = React.useState('type');\n // eslint-disable-next-line no-unused-vars\n const [selected, setSelected] = React.useState([]);\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n\n const handleRequestSort = (event, property) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(0);\n };\n\n return (\n
\n \n \n \n \n \n {rows\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((row, index) => renderRow(row, index))}\n \n
\n
\n \n
\n
\n );\n}\n\nPaginationTable.propTypes = {\n columns: PropTypes.array,\n rows: PropTypes.array,\n renderRow: PropTypes.func,\n};\n","import { Box, Button, makeStyles, TableCell, TableRow, Typography } from '@material-ui/core';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { toast } from '../../components/Notification';\n\nimport PaginationTable from '../../components/PaginationTable';\nimport EnhancedTable from '../../components/Table';\nimport useOrganization from '../../hooks/useOrganization';\nimport { getCubes } from '../../services/cube';\nimport { reloadOrganizationCubes } from '../../services/unarmed';\nimport useBuildingSchemaStatus from '../../hooks/useBuildingSchemaStatus';\n\nconst columns = [\n {\n id: 'name',\n numeric: false,\n disablePadding: false,\n label: 'Dimension Name',\n },\n {\n id: 'description',\n numeric: false,\n disablePadding: false,\n label: 'Description',\n },\n { id: 'type', numeric: false, disablePadding: false, label: 'Type' },\n];\nconst Meacolumns = [\n {\n id: 'name',\n numeric: false,\n disablePadding: false,\n label: 'Measures Name',\n },\n {\n id: 'description',\n numeric: false,\n disablePadding: false,\n label: 'Description',\n },\n { id: 'type', numeric: false, disablePadding: false, label: 'Type' },\n];\n\nconst typesColumn = ['Type Name', 'Description'];\n\nconst typeRows = [\n { type: 'GLOBAL', description: 'A report that can be use by all users' },\n {\n type: 'PRIVATE',\n description: 'A report that can be use only by the owner of the report',\n },\n];\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n width: '100%',\n\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n\n sectionTitle: {\n fontSize: 16,\n fontWeight: '500',\n marginBottom: 24,\n marginTop: 24,\n color: '#000000AD',\n },\n}));\n\nexport default function DataDocumentation() {\n const classes = useStyles();\n\n const [cubes, setCubes] = useState([]);\n const { organization } = useOrganization();\n\n const [cubesBuilded] = useBuildingSchemaStatus(organization);\n\n const handleOnReloadCubes = useCallback(() => {\n if (cubesBuilded) {\n reloadOrganizationCubes(organization._id)\n .then(() => {\n toast.success('Organization cubes reloaded successfully!');\n })\n .catch(() => {\n toast.error('An error has occurred reloading the cubes.');\n });\n }\n }, [organization, cubesBuilded]);\n\n useEffect(() => {\n const onGetCubes = () => {\n getCubes()\n .then(({ data }) => setCubes(data?.cubes))\n .catch((err) => console.log(err));\n };\n onGetCubes();\n }, []);\n\n const renderRow = (row, index) => (\n \n goToCaseDetails(e, row, handleClick)}\n >\n {row.title}\n \n\n goToCaseDetails(e, row, handleClick)}\n >\n {row?.description || 'N/A'}\n \n goToCaseDetails(e, row, handleClick)}\n >\n {row.type}\n \n \n );\n const renderRowType = (row, index) => (\n \n \n {row.type}\n \n\n {row.description}\n \n );\n\n return (\n \n \n Data Documentation\n \n Reload Cubes\n \n \n\n Types\n \n\n Dimensions\n \n cube.dimensions\n ?.filter((dim) => dim.isVisible)\n .map((dim) => {\n if (dim?.meta?.allowedOrganizations) {\n if (dim?.meta?.allowedOrganizations?.includes(organization?._id)) {\n return dim;\n }\n return null;\n }\n\n return dim;\n })\n .filter((dim) => dim)\n )\n .flat()}\n renderRow={renderRow}\n />\n\n Measures\n cube.measures)\n .map((measure) => {\n if (measure?.meta?.allowedOrganizations) {\n if (measure?.meta?.allowedOrganizations?.includes(organization?._id)) {\n return measure;\n }\n return null;\n }\n\n return measure;\n })\n .filter((measure) => measure)\n .flat()}\n renderRow={renderRow}\n />\n\n \n \n );\n}\n","import { Box, Button, makeStyles, TableCell, TableRow, Typography } from '@material-ui/core';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { toast } from '../../components/Notification';\n\nimport PaginationTable from '../../components/PaginationTable';\nimport EnhancedTable from '../../components/Table';\nimport useOrganization from '../../hooks/useOrganization';\nimport { getCubes } from '../../services/cube';\nimport { reloadOrganizationCubes } from '../../services/unarmed';\nimport useBuildingSchemaStatus from '../../hooks/useBuildingSchemaStatus';\n\nconst columns = [\n {\n id: 'name',\n numeric: false,\n disablePadding: false,\n label: 'Dimension Name',\n },\n {\n id: 'description',\n numeric: false,\n disablePadding: false,\n label: 'Description',\n },\n { id: 'type', numeric: false, disablePadding: false, label: 'Type' },\n];\nconst Meacolumns = [\n {\n id: 'name',\n numeric: false,\n disablePadding: false,\n label: 'Measures Name',\n },\n {\n id: 'description',\n numeric: false,\n disablePadding: false,\n label: 'Description',\n },\n { id: 'type', numeric: false, disablePadding: false, label: 'Type' },\n];\n\nconst typesColumn = ['Type Name', 'Description'];\n\nconst typeRows = [\n { type: 'GLOBAL', description: 'A report that can be use by all users' },\n {\n type: 'PRIVATE',\n description: 'A report that can be use only by the owner of the report',\n },\n];\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n width: '100%',\n\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n\n sectionTitle: {\n fontSize: 16,\n fontWeight: '500',\n marginBottom: 24,\n marginTop: 24,\n color: '#000000AD',\n },\n}));\n\nexport default function InsightsDocumentation() {\n const classes = useStyles();\n\n const [cubes, setCubes] = useState([]);\n const { organization } = useOrganization();\n\n const [cubesBuilded] = useBuildingSchemaStatus(organization);\n\n const handleOnReloadCubes = useCallback(() => {\n if (cubesBuilded) {\n reloadOrganizationCubes(organization._id)\n .then(() => {\n toast.success('Organization cubes reloaded successfully!');\n })\n .catch(() => {\n toast.error('An error has occurred reloading the cubes.');\n });\n }\n }, [organization, cubesBuilded]);\n\n useEffect(() => {\n const onGetCubes = () => {\n getCubes()\n .then(({ data }) => setCubes(data?.cubes))\n .catch((err) => console.log(err));\n };\n onGetCubes();\n }, []);\n\n const renderRow = (row, index) => (\n \n goToCaseDetails(e, row, handleClick)}\n >\n {row.title}\n \n\n goToCaseDetails(e, row, handleClick)}\n >\n {row?.description || 'N/A'}\n \n goToCaseDetails(e, row, handleClick)}\n >\n {row.type}\n \n \n );\n const renderRowType = (row, index) => (\n \n \n {row.type}\n \n\n {row.description}\n \n );\n\n return (\n \n \n Insights Documentation\n \n Reload Cubes\n \n \n\n Types\n \n\n Dimensions\n \n cube.dimensions\n ?.filter((dim) => dim.isVisible)\n .map((dim) => {\n if (dim?.meta?.allowedOrganizations) {\n if (dim?.meta?.allowedOrganizations?.includes(organization?._id)) {\n return dim;\n }\n return null;\n }\n\n return dim;\n })\n .filter((dim) => dim)\n )\n .flat()}\n renderRow={renderRow}\n />\n\n Measures\n cube.measures)\n .map((measure) => {\n if (measure?.meta?.allowedOrganizations) {\n if (measure?.meta?.allowedOrganizations?.includes(organization?._id)) {\n return measure;\n }\n return null;\n }\n\n return measure;\n })\n .filter((measure) => measure)\n .flat()}\n renderRow={renderRow}\n />\n\n \n \n );\n}\n","import { Card, CardContent, makeStyles, TextField, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport { toast } from '../../../components/Notification';\nimport { useHistory } from 'react-router-dom';\n\nimport Btn from '../../../components/Btn';\nimport useInput from '../../../hooks/useInput';\nimport { onPasswordReset } from '../../../services/unarmed';\nimport LogoHome from '../../../components/LogoHome';\n\nconst useStyles = makeStyles(() => ({\n card: {\n width: 500,\n padding: 30,\n },\n resetContainer: {\n display: 'flex',\n width: '100%',\n height: '116.1vh',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FAFBFF',\n },\n unarmedImg: {\n objectFit: 'cover',\n height: 60,\n width: 150,\n alignSelf: 'center',\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n padding: 0,\n },\n cardTitle: {\n marginTop: 20,\n fontWeight: '500',\n },\n text: {\n color: '#00000099',\n },\n form: {\n marginTop: 10,\n },\n textField: {\n width: '100%',\n marginBottom: 20,\n },\n button: {\n background: ' #364F74',\n color: '#fff',\n width: '100%',\n ':hover': {\n background: '#364F74',\n },\n marginTop: 10,\n marginBottom: 20,\n },\n\n divider: {\n width: '47%',\n background: '#0000001F',\n },\n}));\n\nexport default function ResetPasswordById() {\n const classes = useStyles();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [loading, setLoading] = useState(false);\n const newPassword = useInput('', isSubmitting);\n const confirmPassword = useInput('', isSubmitting);\n const { location } = window;\n const params = new URLSearchParams(location.search);\n const email = params.get('email');\n const code = params.get('code');\n const history = useHistory();\n\n const onResetPassword = async (e) => {\n e.preventDefault();\n if (newPassword.value !== confirmPassword.value) {\n toast.error(\"New password and confirm new password don't match\");\n return;\n }\n\n if (!newPassword.value.match(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*/()-,=+{}[\\]<>?`~|;:'\".]).{12,}$/)) {\n toast.error(\n 'Password should be a minimum of 12 characters and include at least one uppercase letter, one lowercase letter, one number, and a special character.'\n );\n return;\n }\n\n try {\n setLoading(true);\n await onPasswordReset({ email, code, newPassword: newPassword.value });\n toast.success('Password reset successfully');\n history.push('/login');\n } catch (error) {\n console.log(error);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n
\n
\n \n \n \n <>\n \n Reset Password\n \n \n Please enter your new password.\n \n
\n \n \n \n \n \n
\n
\n
\n
\n );\n}\n","import {\n Box,\n CircularProgress,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\n\nimport styled from 'styled-components';\n\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { toast } from '../../components/Notification';\n\nimport { onGetFaqs, onUpdateFaqs } from '../../services/unarmed';\n\nimport DashButton from '../../components/DashButton';\nimport DnDArea from '../../components/DnDArea';\nimport Question from './components/Question';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n questionContainer: {\n width: '100%',\n maxWidth: 760,\n padding: 28,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 20,\n },\n}));\n\nconst FAQ = ({ organization }) => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [loadingfaqs, setLoadingfaqs] = useState(false);\n\n const [questions, setQuestions] = useState([]);\n\n useEffect(() => {\n const onGetQuestions = async (orgId) => {\n setLoadingfaqs(true);\n try {\n const { data } = await onGetFaqs(orgId);\n setQuestions(data);\n } catch (error) {\n console.log(error);\n }\n setLoadingfaqs(false);\n };\n if (organization?._id) {\n onGetQuestions(organization?._id);\n }\n }, [organization]);\n\n const addQuestion = () => {\n setQuestions([...questions, { question: '', answer: '' }]);\n };\n\n const removeQuestion = (index) => {\n setQuestions(questions.filter((question, i) => i !== index));\n };\n\n const onSave = async () => {\n setLoading(true);\n try {\n await onUpdateFaqs(questions);\n toast.success('FAQs updated successfully');\n } catch (error) {\n toast.error('Error updating FAQs');\n }\n setLoading(false);\n };\n\n const renderer = (moveItem) =>\n questions.map((question, index) => (\n \n ));\n\n return (\n <>\n \n \n \n {/* FAQ */}\n \n Edit FAQ sections that will be displayed on the portal.{' '}\n {/* \n FAQ preview\n */}\n \n \n \n {loading === 'pending' ? (\n \n ) : (\n 'Save'\n )}{' '}\n \n
\n \n {loadingfaqs ? (\n \n Loading FAQs\n \n \n ) : (\n <>\n \n \n \n \n ADD QUESTION\n
\n \n )}\n \n \n \n );\n};\n\nconst PageWrapper = styled.div`\n width: 100%;\n`;\n\nexport default FAQ;\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { OutLineInputBox } from '../../styles/GlobalStyles';\n\nexport default function TypeItem({\n value,\n onChange,\n placeholder,\n onClick,\n marginBottom,\n}) {\n return (\n \n \n \n \n );\n}\n","import { Box, Checkbox, CircularProgress, Divider, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { toast } from '../../components/Notification';\nimport shortid from 'shortid';\nimport AddMore from '../../components/AddMore';\nimport DashButton from '../../components/DashButton';\nimport { onUpdateOrganization } from '../../services/unarmed';\nimport TypeItem from './TypeItem';\n\nconst overviewTemplate = {\n actionName: 'Template Name',\n overviewFeatures: [\n {\n label: 'Times:',\n visible: false,\n required: false,\n key: 'times',\n },\n {\n label: 'Notes:',\n visible: false,\n required: false,\n key: 'notes',\n },\n {\n label: 'Assigned To:',\n visible: false,\n required: false,\n key: 'assignedTo',\n },\n {\n label: 'Attachments:',\n visible: false,\n required: false,\n key: 'attachments',\n },\n ],\n};\n\nexport const useStylesProjectTypesSettings = makeStyles(() => ({\n container: {\n padding: 20,\n width: '100%',\n },\n typesContainer: {\n width: '100%',\n padding: 30,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 20,\n },\n title: {\n fontSize: 16,\n marginBottom: 15,\n fontWeight: '500',\n },\n types: {\n width: 450,\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n },\n headerTitle: {\n minWidth: 170,\n fontWeight: '500',\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 20,\n },\n itemContainer: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n margin: '40px auto 10px',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 15,\n },\n names: {\n fontWeight: '500',\n\n minWidth: 250,\n },\n actionContainer: {\n marginLeft: 80,\n },\n columnText: {\n fontWeight: '500',\n },\n}));\n\nexport default function ProjectTypes({ organization, setRefetch }) {\n const classes = useStylesProjectTypesSettings();\n const [loading, setLoading] = useState(false);\n\n const [types, setTypes] = useState([]);\n const [actionTypes, setActionTypes] = useState([]);\n const [actionTemplate, setActionTemplate] = React.useState(overviewTemplate);\n\n useEffect(() => {\n if (organization) {\n setTypes(\n organization?.project?.types?.map((type) => ({\n ...type,\n id: shortid.generate(),\n subTypes: type?.subTypes?.map((subType) => ({\n subtype: subType,\n id: shortid.generate(),\n })),\n }))\n );\n setActionTypes(\n organization?.project?.actions?.types?.map((type) => ({\n ...type,\n id: shortid.generate(),\n subTypes: type?.subTypes?.map((subType) => ({\n subtype: subType,\n id: shortid.generate(),\n })),\n }))\n );\n setActionTemplate({\n overviewFeatures: [\n {\n label: 'Times:',\n visible: organization?.project?.actions?.settings?.times?.visible || false,\n required: organization?.project?.actions?.settings?.times?.required || false,\n key: 'times',\n },\n {\n label: 'Notes:',\n visible: organization?.project?.actions?.settings?.notes?.visible || false,\n required: organization?.project?.actions?.settings?.notes?.required || false,\n key: 'notes',\n },\n {\n label: 'Assigned To:',\n visible: organization?.project?.actions?.settings?.assignedTo?.visible || false,\n required: organization?.project?.actions?.settings?.assignedTo?.required || false,\n key: 'assignedTo',\n },\n {\n label: 'Attachments:',\n visible: organization?.project?.actions?.settings?.attachments?.visible || false,\n required: organization?.project?.actions?.settings?.attachments?.required || false,\n key: 'attachments',\n },\n ],\n });\n }\n }, [organization]);\n\n const handleSave = async () => {\n setLoading(true);\n try {\n const data = {\n project: {\n types: types.map((type) => ({\n type: type.type,\n subTypes: type.subTypes.map((subType) => subType.subtype),\n })),\n actions: {\n types: actionTypes.map((type) => ({\n type: type.type,\n subTypes: type.subTypes.map((subType) => subType.subtype),\n })),\n settings: {\n times: {\n required: actionTemplate?.overviewFeatures?.[0].required,\n visible: actionTemplate?.overviewFeatures?.[0].visible,\n },\n notes: {\n required: actionTemplate?.overviewFeatures?.[1].required,\n visible: actionTemplate?.overviewFeatures?.[1].visible,\n },\n assignedTo: {\n required: actionTemplate?.overviewFeatures?.[2].required,\n visible: actionTemplate?.overviewFeatures?.[2].visible,\n },\n attachments: {\n required: actionTemplate?.overviewFeatures?.[3].required,\n visible: actionTemplate?.overviewFeatures?.[3].visible,\n },\n },\n },\n },\n };\n await onUpdateOrganization(organization?._id, data);\n setRefetch(true);\n toast.success('Updated project types successfully');\n } catch (error) {\n toast.error('Cannot update project types');\n } finally {\n setLoading(false);\n }\n };\n\n const handleChange = (event, action, typeIndex, subTypeIndex, state, setState) => {\n const { value } = event.target;\n const typesCopy = [...state];\n if (action === 'type') {\n typesCopy[typeIndex].type = value;\n setState(typesCopy);\n } else if (action === 'subType') {\n const subTypeCopy = [...typesCopy[typeIndex].subTypes];\n subTypeCopy[subTypeIndex].subtype = value;\n setState(typesCopy);\n }\n };\n\n const handleDelete = (action, typeIndex, subTypeIndex, state, setState) => {\n switch (action) {\n case 'type': {\n const typesCopy = [...state];\n typesCopy.splice(typeIndex, 1);\n setState(typesCopy);\n break;\n }\n case 'SubType': {\n const typesCopy = [...state];\n const subTypesCopy = [...typesCopy[typeIndex].subTypes];\n subTypesCopy.splice(subTypeIndex, 1);\n typesCopy[typeIndex].subTypes = subTypesCopy;\n setState(typesCopy);\n break;\n }\n default: {\n const typesCopy = [...state];\n typesCopy.splice(typeIndex, 1);\n setState(typesCopy);\n }\n }\n };\n\n const handleAdd = (action, index, state, setState) => {\n switch (action) {\n case 'type': {\n const newType = {\n type: '',\n id: shortid.generate(),\n subTypes: [],\n };\n setState([...state, newType]);\n break;\n }\n case 'SubType': {\n const newSubtype = {\n id: shortid.generate(),\n subType: '',\n };\n const typesCopy = [...state];\n const subTypes = [...typesCopy[index].subTypes];\n typesCopy[index].subTypes = [...subTypes, newSubtype];\n setState(typesCopy);\n break;\n }\n default: {\n const newType = {\n type: '',\n id: shortid.generate(),\n subTypes: [],\n };\n setState([...state, newType]);\n break;\n }\n }\n };\n\n const onChangeActionFeatures = (e, prop, subProp) => {\n const { checked } = e.target;\n const features = [...actionTemplate.overviewFeatures];\n const feature = { ...features.find((ft) => ft.label === prop) };\n const featureIndex = features.findIndex((ft) => ft.label === prop);\n if (subProp === 'visible' && !checked) {\n feature[subProp] = checked;\n feature.required = false;\n } else {\n feature[subProp] = checked;\n }\n\n features[featureIndex] = feature;\n\n setActionTemplate((prevState) => ({\n ...prevState,\n overviewFeatures: features,\n }));\n };\n\n return (\n <>\n \n \n \n {loading ? : 'Save'}{' '}\n \n \n \n Project Types\n \n \n {types.map((type, typeIndex) => (\n \n handleChange(e, 'type', typeIndex, null, types, setTypes)}\n onClick={() => handleDelete('type', typeIndex, null, types, setTypes)}\n />\n \n {type.subTypes?.map((subtype, subTypeIndex) => (\n handleChange(e, 'subType', typeIndex, subTypeIndex, types, setTypes)}\n marginBottom={2}\n onClick={() => handleDelete('SubType', typeIndex, subTypeIndex, types, setTypes)}\n />\n ))}\n handleAdd('SubType', typeIndex, types, setTypes)}\n />\n \n \n ))}\n \n \n handleAdd('type', null, types, setTypes)}\n />\n \n \n \n \n Action Types\n \n \n {actionTypes.map((type, typeIndex) => (\n \n handleChange(e, 'type', typeIndex, null, actionTypes, setActionTypes)}\n onClick={() => handleDelete('type', typeIndex, null, actionTypes, setActionTypes)}\n />\n \n {type.subTypes?.map((subtype, subTypeIndex) => (\n handleChange(e, 'subType', typeIndex, subTypeIndex, actionTypes, setActionTypes)}\n marginBottom={2}\n onClick={() => handleDelete('SubType', typeIndex, subTypeIndex, actionTypes, setActionTypes)}\n />\n ))}\n handleAdd('SubType', typeIndex, actionTypes, setActionTypes)}\n />\n \n \n ))}\n \n \n handleAdd('type', null, actionTypes, setActionTypes)}\n />\n \n \n \n \n Action Settings\n \n \n \n \n \n Visible\n Required\n \n {actionTemplate?.overviewFeatures?.map((item, actionIndex) => (\n \n {item.label}\n onChangeActionFeatures(e, item.label, 'visible')}\n />\n onChangeActionFeatures(e, item.label, 'required')}\n />\n \n ))}\n \n \n \n \n \n );\n}\n","import { Box, Divider, FormControl, InputLabel, makeStyles, Select, Typography } from '@material-ui/core';\nimport React from 'react';\n\nimport { OutLineInputBox } from '../../../styles/GlobalStyles';\n\nconst useStyles = makeStyles(() => ({\n label: {\n fontWeight: '400',\n fontSize: 14,\n color: '#333',\n },\n}));\n\nconst ColorLabel = ({ color, label }) => {\n const classes = useStyles();\n return (\n \n \n \n {label}\n \n \n );\n};\n\nexport default function EISItem({ onChange, value, color, priorityLabel, conditionNumber }) {\n const classes = useStyles();\n\n return (\n <>\n \n \n >=\n \n {conditionNumber ? (\n {`and < ${conditionNumber} `}\n ) : null}\n Complaints\n \n \n \n );\n}\n","import { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport { OutLineInputBox } from '../../../styles/GlobalStyles';\n\nexport default function MonitorItem({ onChange, value, handleDelete }) {\n return (\n \n \n Months follow up\n \n \n );\n}\n","import { Box, CircularProgress, Divider, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect } from 'react';\nimport { toast } from '../../components/Notification';\n\nimport AddMore from '../../components/AddMore';\nimport DashButton from '../../components/DashButton';\nimport { onUpdateOrganization } from '../../services/unarmed';\nimport { OutLineInputBox } from '../../styles/GlobalStyles';\nimport TypeItem from '../ProjectsTypes/TypeItem';\nimport EISItem from './components/EISItem';\nimport MonitorItem from './components/MonitorItem';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 20,\n width: '100%',\n },\n typesContainer: {\n width: '100%',\n padding: 30,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 20,\n },\n title: {\n fontSize: 16,\n marginBottom: 15,\n fontWeight: '500',\n },\n label: {\n fontWeight: '400',\n fontSize: 14,\n color: '#333',\n },\n types: {\n width: 450,\n marginLeft: 50,\n },\n}));\n\nexport default function OfficerEISTab({ organization, setRefetch }) {\n const classes = useStyles();\n const [monitorList, setMonitorList] = React.useState([]);\n const [interveneList, setInterveneList] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [riskLevel, setRiskLevel] = React.useState({\n evaluationTime: 0,\n high: 0,\n medium: 0,\n low: 0,\n });\n\n useEffect(() => {\n if (organization?.EIS) {\n setMonitorList(organization?.EIS?.monitorMeetingList || []);\n setInterveneList(organization?.EIS?.interveneChecklist || []);\n setRiskLevel(\n organization?.EIS?.riskLevel || {\n evaluationTime: 0,\n high: 0,\n medium: 0,\n low: 0,\n }\n );\n }\n\n return () => null;\n }, []);\n\n const handleSave = async () => {\n setLoading(true);\n try {\n console.log( 3)\n await onUpdateOrganization(organization?._id, {\n EIS: {\n riskLevel,\n interveneChecklist: interveneList,\n monitorMeetingList: monitorList.map((item) => +item),\n },\n });\n setRefetch((prevState) => !prevState);\n toast.success('EIS saved successfully');\n } catch (err) {\n toast.error(err.response?.data?.error?.details[0]?.message || 'Something went Wrong');\n } finally {\n setLoading(false);\n }\n };\n\n const handleRiskLevelChange = (event, key, condition) => {\n const { value } = event.target;\n if (condition && +value >= condition) {\n return;\n }\n\n setRiskLevel({ ...riskLevel, [key]: value });\n };\n\n const handleChange = (event, index, options, setOptions) => {\n const { value } = event.target;\n const optionsCopy = [...options];\n optionsCopy[index] = value;\n setOptions(optionsCopy);\n };\n\n const handleDelete = (index, options, setOptions) => {\n const optionsCopy = [...options];\n optionsCopy.splice(index, 1);\n setOptions(optionsCopy);\n };\n\n const handleAdd = (options, setOptions) => {\n const optionsCopy = [...options];\n optionsCopy.push('');\n setOptions(optionsCopy);\n };\n\n return (\n \n \n \n {loading ? : 'Save'}{' '}\n \n \n \n Early Intervention System\n \n \n \n Evaluation Time\n handleRiskLevelChange(e, 'evaluationTime')}\n value={riskLevel.evaluationTime}\n placeholder=\"0\"\n type=\"number\"\n min={0}\n style={{ width: 40, textAlign: 'center' }}\n />\n Months\n \n \n handleRiskLevelChange(e, 'high')}\n value={riskLevel.high}\n />\n handleRiskLevelChange(e, 'medium', riskLevel.high)}\n value={riskLevel.medium}\n />\n handleRiskLevelChange(e, 'low', riskLevel.medium)}\n value={riskLevel.low}\n />\n \n \n \n Intervene Checklist\n \n \n \n {interveneList.map((intervene, index) => (\n \n handleChange(e, index, interveneList, setInterveneList)}\n onClick={() => handleDelete(index, interveneList, setInterveneList)}\n />\n \n ))}\n \n handleAdd(interveneList, setInterveneList)}\n />\n \n \n \n Monitor Meetings\n \n \n \n {monitorList.map((monitor, index) => (\n \n handleChange(e, index, monitorList, setMonitorList)}\n handleDelete={() => handleDelete(index, monitorList, setMonitorList)}\n />\n \n ))}\n \n handleAdd(monitorList, setMonitorList)}\n />\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { Box, CircularProgress, Typography, Divider, Checkbox } from '@material-ui/core';\nimport shortid from 'shortid';\n\nimport { toast } from '../../components/Notification';\n\nimport DashButton from '../../components/DashButton';\nimport { useStylesProjectTypesSettings } from '../ProjectsTypes/ProjectTypes';\nimport TypeItem from '../ProjectsTypes/TypeItem';\nimport AddMore from '../../components/AddMore';\nimport { onUpdateOrganization } from '../../services/unarmed';\n\nconst overviewTemplate = {\n actionName: 'Template Name',\n overviewFeatures: [\n {\n label: 'Type and Subtype:',\n visible: false,\n required: false,\n key: 'typeSubtype',\n },\n {\n label: 'Due date:',\n visible: false,\n required: false,\n key: 'times',\n },\n {\n label: 'Notes:',\n visible: false,\n required: false,\n key: 'notes',\n },\n {\n label: 'Assigned To:',\n visible: false,\n required: false,\n key: 'assignedTo',\n },\n {\n label: 'Attachments:',\n visible: false,\n required: false,\n key: 'attachments',\n },\n ],\n};\n\n/**\n * TasksTypes\n *\n * task type settings.\n *\n * @param {object} organization\n * @param {function} setRefetch\n */\nconst TasksTypes = ({ organization, setRefetch }) => {\n const [loading, setLoading] = useState(false);\n const [types, setTypes] = useState([]);\n\n const [template, setTemplate] = useState(overviewTemplate);\n\n const classes = useStylesProjectTypesSettings();\n\n /**\n * @description useEffect to set types and template from organization data.\n */\n useEffect(() => {\n if (organization && organization?.task) {\n setTypes(\n organization?.task?.types?.map((type) => ({\n ...type,\n id: shortid.generate(),\n subTypes: type?.subTypes?.map((subType) => ({\n subtype: subType,\n id: shortid.generate(),\n })),\n }))\n );\n setTemplate({\n overviewFeatures: [\n {\n label: 'Type And Subtype:',\n visible: organization?.task?.settings?.typeSubtype?.visible || false,\n required: organization?.task?.settings?.typeSubtype?.required || false,\n key: 'typeSubtype',\n },\n {\n label: 'Due Date:',\n visible: organization?.task?.settings?.times?.visible || false,\n required: organization?.task?.settings?.times?.required || false,\n key: 'times',\n },\n {\n label: 'Notes:',\n visible: organization?.task?.settings?.notes?.visible || false,\n required: organization?.task?.settings?.notes?.required || false,\n key: 'notes',\n },\n {\n label: 'Assigned To:',\n visible: organization?.task?.settings?.assignedTo?.visible || false,\n required: organization?.task?.settings?.assignedTo?.required || false,\n key: 'assignedTo',\n },\n {\n label: 'Attachments:',\n visible: organization?.task?.settings?.attachments?.visible || false,\n required: organization?.task?.settings?.attachments?.required || false,\n key: 'attachments',\n },\n ],\n });\n }\n }, [organization]);\n\n /**\n * @description function to save the task types and settings.\n */\n const handleSave = async () => {\n setLoading(true);\n try {\n const data = {\n task: {\n types: types.map((type) => ({\n type: type.type,\n subTypes: type.subTypes.map((subType) => subType.subtype),\n })),\n settings: {\n typeSubtype: {\n required: template?.overviewFeatures?.[0].required,\n visible: template?.overviewFeatures?.[0].visible,\n },\n times: {\n required: template?.overviewFeatures?.[1].required,\n visible: template?.overviewFeatures?.[1].visible,\n },\n notes: {\n required: template?.overviewFeatures?.[2].required,\n visible: template?.overviewFeatures?.[2].visible,\n },\n assignedTo: {\n required: template?.overviewFeatures?.[3].required,\n visible: template?.overviewFeatures?.[3].visible,\n },\n attachments: {\n required: template?.overviewFeatures?.[4].required,\n visible: template?.overviewFeatures?.[4].visible,\n },\n },\n },\n };\n await onUpdateOrganization(organization?._id, data);\n setRefetch(true);\n toast.success('Updated task types successfully');\n } catch (error) {\n console.dir(error);\n toast.error(\n error?.response?.data?.error?.details?.[0]?.message ||\n error?.response?.data?.message ||\n 'Cannot update task types'\n );\n } finally {\n setLoading(false);\n }\n };\n\n /**\n * @description function to handle the changes on types and sub-types.\n * @param {object} event\n * @param {string} action\n * @param {number} typeIndex\n * @param {number} subTypeIndex\n * @param {object} state\n * @param {function} setState\n */\n const handleChange = (event, action, typeIndex, subTypeIndex, state, setState) => {\n const { value } = event.target;\n const typesCopy = [...state];\n if (action === 'type') {\n typesCopy[typeIndex].type = value;\n setState(typesCopy);\n } else if (action === 'subType') {\n const subTypeCopy = [...typesCopy[typeIndex].subTypes];\n subTypeCopy[subTypeIndex].subtype = value;\n setState(typesCopy);\n }\n };\n\n /**\n * @description function to handle delete type and sub-type.\n * @param {object} action\n * @param {number} typeIndex\n * @param {number} subTypeIndex\n * @param {object} state\n * @param {function} setState\n */\n const handleDelete = (action, typeIndex, subTypeIndex, state, setState) => {\n switch (action) {\n case 'type': {\n const typesCopy = [...state];\n typesCopy.splice(typeIndex, 1);\n setState(typesCopy);\n break;\n }\n case 'SubType': {\n const typesCopy = [...state];\n const subTypesCopy = [...typesCopy[typeIndex].subTypes];\n subTypesCopy.splice(subTypeIndex, 1);\n typesCopy[typeIndex].subTypes = subTypesCopy;\n setState(typesCopy);\n break;\n }\n default: {\n const typesCopy = [...state];\n typesCopy.splice(typeIndex, 1);\n setState(typesCopy);\n }\n }\n };\n\n /**\n * @description function to handle add type and sub-types.\n * @param {string} action\n * @param {number} index\n * @param {object} state\n * @param {function} setState\n */\n const handleAdd = (action, index, state, setState) => {\n switch (action) {\n case 'type': {\n const newType = {\n type: '',\n id: shortid.generate(),\n subTypes: [],\n };\n setState([...state, newType]);\n break;\n }\n case 'SubType': {\n const newSubtype = {\n id: shortid.generate(),\n subType: '',\n };\n const typesCopy = [...state];\n const subTypes = [...typesCopy[index].subTypes];\n typesCopy[index].subTypes = [...subTypes, newSubtype];\n setState(typesCopy);\n break;\n }\n default: {\n const newType = {\n type: '',\n id: shortid.generate(),\n subTypes: [],\n };\n setState([...state, newType]);\n break;\n }\n }\n };\n\n /**\n * @description function to handle change features.\n * @param {object} e\n * @param {object} prop\n * @param {object} subProp\n */\n const onChangeFeatures = (e, prop, subProp) => {\n const { checked } = e.target;\n const features = [...template.overviewFeatures];\n const feature = { ...features.find((ft) => ft.label === prop) };\n const featureIndex = features.findIndex((ft) => ft.label === prop);\n if (subProp === 'visible' && !checked) {\n feature[subProp] = checked;\n feature.required = false;\n } else {\n feature[subProp] = checked;\n }\n\n features[featureIndex] = feature;\n\n setTemplate((prevState) => ({\n ...prevState,\n overviewFeatures: features,\n }));\n };\n\n return (\n <>\n \n \n \n {loading ? : 'Save'}{' '}\n \n \n \n Task Types\n \n \n {types.map((type, typeIndex) => (\n \n handleChange(e, 'type', typeIndex, null, types, setTypes)}\n onClick={() => handleDelete('type', typeIndex, null, types, setTypes)}\n />\n \n {type.subTypes?.map((subtype, subTypeIndex) => (\n handleChange(e, 'subType', typeIndex, subTypeIndex, types, setTypes)}\n marginBottom={2}\n onClick={() => handleDelete('SubType', typeIndex, subTypeIndex, types, setTypes)}\n />\n ))}\n handleAdd('SubType', typeIndex, types, setTypes)}\n />\n \n \n ))}\n \n \n handleAdd('type', null, types, setTypes)}\n />\n \n \n \n \n Task Settings\n \n \n \n \n \n Visible\n Required\n \n {template?.overviewFeatures?.map((item, actionIndex) => (\n \n {item.label}\n onChangeFeatures(e, item.label, 'visible')}\n />\n onChangeFeatures(e, item.label, 'required')}\n />\n \n ))}\n \n \n \n \n \n );\n};\n\nexport default TasksTypes;\n","import React from 'react';\nimport AddComponent from '../../../components/AddComponent';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport TitleIcon from '@material-ui/icons/Title';\nimport RadioButtonIcon from '@material-ui/icons/RadioButtonChecked';\nimport CheckboxIcon from '@material-ui/icons/CheckBox';\nimport ShortTextIcon from '@material-ui/icons/ShortText';\nimport PhoneIcon from '@material-ui/icons/Phone';\nimport LongTextIcon from '@material-ui/icons/Notes';\nimport DashButton from '../../../components/DashButton';\nimport { ReactComponent as CalendarIcon } from '../../../assets/icons/today_black_24dp.svg';\nimport { ReactComponent as YesNoIcon } from '../../../assets/icons/rule_black_24dp.svg';\nimport shortid from 'shortid';\nimport { ContainerPageDetail } from '../../FormProfile/PageDetails';\nimport { Renderer } from '../../../formEngine/config/Renderer';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { Box, Button, Typography } from '@material-ui/core';\nimport ModalPopUp from '../../../components/ModaPopupl';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nconst renderComponentsArr = () => [\n {\n name: 'Title',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'title',\n },\n {\n name: 'Subtitle',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'subtitle',\n },\n {\n name: 'Single Choice',\n divider: true,\n Icon: RadioButtonIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'singleChoice',\n },\n {\n name: 'Multiple Choices',\n Icon: CheckboxIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'multipleChoices',\n },\n {\n name: 'Dropdown',\n Icon: ArrowDropDownIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'dropdown',\n },\n {\n name: 'Yes/No',\n Icon: YesNoIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'yesNo',\n },\n {\n name: 'Date',\n Icon: CalendarIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'date',\n },\n {\n name: 'Short Text',\n divider: true,\n Icon: ShortTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'shortText',\n },\n {\n name: 'Phone',\n Icon: PhoneIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'phone',\n },\n {\n name: 'Long Text',\n Icon: LongTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n uniqueFieldId: false,\n },\n id: shortid.generate(),\n type: 'longText',\n },\n];\n\nexport const OfficersV = ({\n data: { open, openDelete, path, classes, refActionModal, loading },\n config,\n setOpen,\n handleSelectComponent,\n handleDuplicateComponent,\n handleDeleteComponent,\n setOpenDelete,\n handleDrop,\n handleSave,\n}) => {\n return (\n
\n \n \n Are you sure you want to delete this {refActionModal?.current?.nameAction ?? ''}?\n \n Removing this field will also remove its associated data.\n\n \n \n {\n if (refActionModal && refActionModal.current) {\n refActionModal.current.actionPress();\n }\n setOpenDelete(false);\n }}\n >\n DELETE\n \n \n \n \n \n {loading ? : 'Save'}{' '}\n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { OfficersV } from './view';\nimport { makeStyles } from '@material-ui/core';\nimport { getConfig } from '../../../formEngine/config/Config';\nimport TitleIcon from '@material-ui/icons/Title';\nimport RadioButtonIcon from '@material-ui/icons/RadioButtonChecked';\nimport CheckboxIcon from '@material-ui/icons/CheckBox';\nimport ShortTextIcon from '@material-ui/icons/ShortText';\nimport LongTextIcon from '@material-ui/icons/Notes';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport { ReactComponent as YesNoIcon } from '../../../assets/icons/rule_black_24dp.svg';\nimport { ReactComponent as CalendarIcon } from '../../../assets/icons/today_black_24dp.svg';\nimport shortid from 'shortid';\nimport { toast } from '../../../components/Notification';\nimport { handleMoveWithinParent } from '../../../formEngine/utils/helpers';\nimport { FORM_TYPE_VERSION_2 } from '../../../config/config';\nimport { onGetCustomFieldsModule, updateCustomFieldsModule } from '../../../services/unarmed';\n\nconst renderComponentsArr = () => [\n {\n name: 'Title',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'title',\n },\n {\n name: 'Subtitle',\n Icon: TitleIcon,\n data: {\n text: '',\n },\n type: 'subtitle',\n },\n {\n name: 'Single Choice',\n divider: true,\n Icon: RadioButtonIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'singleChoice',\n },\n {\n name: 'Multiple Choices',\n Icon: CheckboxIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'multipleChoices',\n },\n {\n name: 'Dropdown',\n Icon: ArrowDropDownIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'dropdown',\n },\n {\n name: 'Yes/No',\n Icon: YesNoIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'yesNo',\n },\n {\n name: 'Date',\n Icon: CalendarIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'date',\n },\n {\n name: 'Short Text',\n divider: true,\n Icon: ShortTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'shortText',\n },\n {\n name: 'Long Text',\n Icon: LongTextIcon,\n data: {\n question: '',\n description: '',\n required: false,\n },\n id: shortid.generate(),\n type: 'longText',\n },\n];\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n width: '100%',\n padding: 28,\n minHeight: 195,\n position: 'relative',\n borderRadius: 8,\n boxShadow: '0px 3px 6px #0000000D',\n backgroundColor: '#fff',\n marginTop: 35,\n },\n headerContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n header: {\n cursor: 'pointer',\n transition: 'all 0.25s ease',\n backgroundColor: '#fff',\n\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, .1)',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#1F63FF',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n button: {\n color: 'white',\n fontSize: 14,\n fontWeight: '600',\n backgroundColor: '#2e66fe',\n padding: '8px 16px',\n border: 'none',\n },\n content: {\n width: '100%',\n backgroundColor: '#fff',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.1)',\n overflow: 'hidden',\n transition: 'height 0.3s ease-in-out',\n zIndex: 1,\n height: 0,\n padding: '0px 24px',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n outline: 0,\n },\n}));\n\nexport const OfficersI = () => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [components, setComponents] = useState([]);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const fetchCustomFields = async () => {\n try {\n const response = await onGetCustomFieldsModule('officers');\n setComponents(response?.data[0]?.sections[0]?.components || []);\n } catch (error) {\n console.error('Error fetching custom fields:', error);\n setComponents([]);\n }\n };\n\n fetchCustomFields();\n }, []);\n\n const handleSave = async () => {\n try {\n setLoading(true);\n const { customFields } = ignoreExtraProps();\n const almostOneUnique = customFields.some((field) => field.data.uniqueFieldId === true);\n\n if (!almostOneUnique) {\n toast.error('You must have at least one unique field');\n setLoading(false);\n return;\n }\n\n const questions = new Set();\n const duplicateQuestions = [];\n \n for (const field of customFields) {\n if (field.data.question) {\n if (questions.has(field.data.question)) {\n duplicateQuestions.push(field.data.question);\n } else {\n questions.add(field.data.question);\n }\n }\n }\n\n if (duplicateQuestions.length > 0) {\n toast.error(`Found duplicate questions: ${duplicateQuestions.join(', ')}`);\n setLoading(false);\n return;\n }\n\n const hasEmptyFields = customFields.some((field) => {\n if (field.type === 'title' || field.type === 'subtitle') {\n return !field.data.text || field.data.text.trim() === '';\n }\n\n if (\n ['singleChoice', 'multipleChoices', 'dropdown', 'yesNo', 'date', 'shortText', 'longText', 'phone'].includes(field.type)\n ) {\n if (!field.data.question || field.data.question.trim() === '') {\n return true;\n }\n\n if (['singleChoice', 'multipleChoices', 'dropdown'].includes(field.type)) {\n return (\n !field.data.options ||\n !Array.isArray(field.data.options) ||\n field.data.options.length === 0 ||\n field.data.options.some((option) => !option || option.trim() === '')\n );\n }\n }\n\n return false;\n });\n\n if (hasEmptyFields) {\n toast.error('All fields must be completed. Please check for empty questions, options, or titles.');\n setLoading(false);\n return;\n }\n\n const data = {\n name: 'Standard',\n sections: [\n {\n name: 'Section',\n components: customFields.map((item) => {\n const newItem = { ...item };\n if (newItem?.data?.visible === '') {\n delete newItem.data.visible;\n }\n\n if (newItem?.data?.maxCharacters === 0) {\n delete newItem.data.maxCharacters;\n }\n \n return newItem;\n }),\n },\n ],\n type: 'officers',\n };\n\n await updateCustomFieldsModule(data);\n toast.success('Custom fields updated successfully');\n setLoading(false);\n } catch (err) {\n toast.error('Error updating custom fields');\n setLoading(false);\n }\n };\n\n const ignoreExtraProps = () => {\n console.log({components})\n const customFields =\n components?.map((component) => {\n const componentCopy = { ...component };\n\n delete componentCopy.id;\n delete componentCopy.uniqueId;\n\n return {\n data: {\n ...componentCopy.data,\n ...(componentCopy.data.dataReportLink\n ? {\n dataReportLink:\n typeof componentCopy.data.dataReportLink === 'string'\n ? componentCopy.data.dataReportLink\n : componentCopy.data.dataReportLink._id,\n }\n : {}),\n question: componentCopy?.data?.question?.trim(),\n options: componentCopy?.data?.options?.map((option) => option.trim()),\n },\n type: componentCopy.type,\n };\n }) || [];\n\n return {\n customFields,\n };\n };\n\n const refActionModal = React.useRef(null);\n const handleDeleteComponent = (index) => {\n const updatedComponents = [...components];\n updatedComponents.splice(index, 1);\n setComponents(updatedComponents);\n };\n const [openDelete, setOpenDelete] = useState(false);\n const onUpdateJson = (componentIndex, newData, subProp = null) => {\n setComponents((prevComponents) => {\n const updatedComponents = [...prevComponents];\n\n if (subProp) {\n updatedComponents[componentIndex] = {\n ...updatedComponents[componentIndex],\n components: updatedComponents[componentIndex].components.map((comp) =>\n comp.type === subProp.type ? { ...comp, data: { ...comp.data, ...newData } } : comp\n ),\n };\n } else {\n updatedComponents[componentIndex] = {\n ...updatedComponents[componentIndex],\n data: {\n ...updatedComponents[componentIndex].data,\n ...newData,\n },\n };\n }\n\n return [...updatedComponents];\n });\n };\n const config = useMemo(\n () =>\n getConfig({\n setComponents,\n customFieldModule: true,\n componentsFromServer: components,\n deleteComponent: handleDeleteComponent,\n onUpdateJson,\n refActionModal,\n setModal: setOpenDelete,\n includeRequired: false,\n from: 'officers',\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [components]\n );\n\n const handleDrop = useCallback(\n (dropZone, item) => {\n const { path: dropZonePath } = dropZone;\n const { path: itemPath, componentData } = item;\n\n const newComponents = [...components];\n\n if (!itemPath) {\n const dropZoneIndex = Number(dropZonePath.split('-').slice(-1)[0]);\n\n newComponents.splice(dropZoneIndex, 0, componentData);\n } else {\n const itemIndex = Number(itemPath.split('-').slice(-1)[0]);\n let dropZoneIndex = Number(dropZonePath.split('-').slice(-1)[0]);\n\n if (dropZoneIndex !== components.length && itemIndex <= dropZoneIndex) {\n dropZoneIndex = dropZoneIndex - 1;\n }\n const [movedItem] = newComponents.splice(itemIndex, 1);\n newComponents.splice(dropZoneIndex, 0, movedItem);\n }\n\n setComponents([...newComponents]);\n },\n [components]\n );\n\n const handleDuplicateComponent = useCallback(\n (path, index) => {\n const layoutCopy = components;\n const componentsCopy = [...components];\n const component = { ...componentsCopy[index], id: shortid.generate() };\n layoutCopy.splice(index, 0, component);\n\n setComponents([...layoutCopy]);\n },\n [components]\n );\n\n const handleSelectComponent = (newComponent) => {\n setOpen(true);\n setComponents((prevComponents) => [...prevComponents, newComponent]);\n\n setTimeout(() => {\n const element = document.getElementById(newComponent.id);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 100);\n };\n\n return (\n <>\n \n \n );\n};\n","import { Box, makeStyles, Tabs, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\nimport TabPanel from '../../components/TabPanel';\nimport { TabComp } from '../CaseDetails/CaseDetails';\n\nimport FAQ from '../FAQ/FAQ';\nimport Permissions from '../Permissions/Permissions';\nimport Usage from '../Usage/Usage';\nimport ProjectTypes from '../ProjectsTypes/ProjectTypes';\nimport useOrganization from '../../hooks/useOrganization';\nimport OfficerEISTab from './OfficerEisTab';\nimport TasksTypes from '../TasksTypes/TasksTypes';\nimport { OfficersI } from './officers';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n btn: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n outline: 0,\n },\n tabsContainer: {\n background: '#fff',\n borderRadius: 4,\n },\n}));\n\nconst Settings = () => {\n const classes = useStyles();\n const [value, setValue] = useState(0);\n const { organization, setRefetch } = useOrganization();\n const [tabs, setTabs] = useState([]);\n\n useEffect(() => {\n if (organization) {\n const currentTabs = [\n {\n label: 'Projects',\n key: 'projects',\n Component: ,\n },\n {\n label: 'Tasks',\n key: 'tasks',\n Component: ,\n },\n {\n label: 'FAQ',\n key: 'faq',\n Component: ,\n },\n {\n label: 'Permissions',\n key: 'permissions',\n Component: ,\n },\n {\n label: 'Usage',\n key: 'usage',\n Component: ,\n },\n {\n label: 'EIS',\n key: 'eis',\n Component: ,\n },\n {\n label: 'Officers',\n key: 'officers',\n Component: ,\n },\n ];\n const disabledTabs = organization?.features?.dashboard;\n\n const filteredTabs = currentTabs.filter((tab) => {\n if (disabledTabs?.[tab.key]?.enabled === undefined) {\n return tab;\n }\n if (disabledTabs?.[tab.key]?.enabled) {\n return tab;\n }\n\n return null;\n });\n setTabs(filteredTabs);\n }\n }, [organization, setRefetch]);\n\n function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n }\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n\n return (\n <>\n \n Settings\n \n \n {tabs.map((tab, index) => (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n ))}\n \n
\n {tabs.map((tab, index) => (\n \n \n {tab.Component}\n \n \n ))}\n \n \n );\n};\n\nconst PageWrapper = styled.div`\n width: 100%;\n`;\n\nexport default Settings;\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport oversignImgBlack from '../assets/oversignBlack.png';\nimport oversignImgWhite from '../assets/oversignWhite.png';\n\nconst useStyles = makeStyles(() => ({\n unarmedImg: {\n objectFit: 'contain',\n alignSelf: 'center',\n cursor: 'pointer',\n },\n}));\n\nexport default function Logo({ height = 70, width = 200, logo = 'black' }) {\n const history = useHistory();\n const classes = useStyles();\n\n return (\n history.push('/')}\n />\n );\n}\n\nLogo.propTypes = {\n height: PropTypes.number,\n width: PropTypes.number,\n logo: PropTypes.string,\n};\n","import React from 'react';\nimport { Box, makeStyles, useMediaQuery } from '@material-ui/core';\n\nimport Logo from '../../../components/Logo';\n\nconst useStyles = makeStyles(() => ({\n topBar: {\n width: '100%',\n height: 104,\n background: '#364F74',\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n },\n}));\n\nexport default function FormDashbaordBar() {\n const classes = useStyles();\n\n const isMobile = useMediaQuery('(max-width: 999px)');\n\n return (\n
\n \n \n \n
\n );\n}\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nconst useZoomStyles = () => {\n const location = useLocation();\n\n useEffect(() => {\n if (location.pathname.startsWith('/form-dashboard/')) {\n const rootElement = document.getElementById('root');\n rootElement.style.zoom = '100%';\n rootElement.style.minHeight = '100vh';\n }\n return () => {\n const rootElement = document.getElementById('root');\n rootElement.style.zoom = '86%';\n rootElement.style.minHeight = '116.1vh';\n };\n }, [location.pathname]);\n};\n\nexport default useZoomStyles;\n","import { Box, Button, CircularProgress, makeStyles, Typography, useMediaQuery } from '@material-ui/core';\nimport React, { Fragment, useCallback, useEffect, useState } from 'react';\nimport { toast } from '../../components/Notification';\nimport set from 'lodash.set';\nimport get from 'lodash.get';\nimport { useHistory, useParams } from 'react-router-dom';\nimport shortid from 'shortid';\nimport styled from 'styled-components';\nimport CheckIcon from '@material-ui/icons/Check';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nimport LoadingScreen from '../../components/LoadingScreen';\nimport useOrganization from '../../hooks/useOrganization';\nimport { createFormType, getAvailableFormType, getQuestionBank } from '../../services/unarmed';\nimport FormDashbaordBar from './components/FormDashbaordBar';\nimport FormSection from './FormSection';\n// import { addressInfoData, contactInfoData } from './configRequired';\nimport { updateUrlWithParams } from '../../utils/libs';\nimport useZoomStyles from '../../hooks/useZoomStyle';\n\nconst filterObjectTypesComponents = (components) => components.filter((component) => component.require);\nconst emailRgx = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\nconst useStyles = makeStyles(() => ({\n topBar: {\n width: '100%',\n height: 127,\n background: '#364F74',\n display: 'flex',\n alignItems: 'center',\n },\n formSection: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: 'bold',\n marginTop: 20,\n },\n stepper: {\n background: 'transparent',\n width: '100%',\n maxWidth: 660,\n },\n unarmedlogo: {\n width: 150,\n height: 50,\n objectFit: 'contain',\n cursor: 'pointer',\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n stepLabel: {\n color: '#fff',\n },\n pageTitle: {\n fontSize: 22,\n fontWeight: '500',\n },\n}));\n\nexport default function FormDashboard() {\n const history = useHistory();\n const classes = useStyles();\n const { id } = useParams();\n const [questionsBanks, setQuestionsBanks] = useState([]);\n const [pages, setPages] = useState([]);\n const [formValues, setFormValues] = useState([]);\n const [currentPage, setCurrentPage] = useState(0);\n const { organization } = useOrganization();\n const [loading, setLoading] = useState(false);\n const [imagesPreview, setImagesPreview] = useState({});\n const [formType, setFormType] = useState(null);\n const containerRef = React.useRef();\n\n const [openStepperMobile, setOpenStepperMobile] = useState(false);\n const isMobile = useMediaQuery('(max-width: 999px)');\n\n const steps = formType?.pages?.map((page) => page?.name) || [];\n const currentPageData = formType?.pages?.find((page, pageIndex) => currentPage === pageIndex);\n const currentPageDataIndex = steps?.indexOf(currentPageData?.name);\n const activeCircleColor = formType?.type === 'COMPLIMENT' ? '#008858' : '#FF4242';\n\n\n useZoomStyles();\n\n const handleOnUpdateUrlParams = useCallback(() => {\n const pageName = currentPageData?.name?.toLowerCase()?.replace(/ /g, '-');\n\n if (currentPageData) {\n updateUrlWithParams(\n {\n organization_name: organization.name,\n form_page_name: currentPageData?.name,\n current_page: currentPage + 1,\n total_pages: pages.length,\n },\n {\n currentPage: currentPage + 1,\n totalPages: pages.length,\n title: pageName,\n }\n );\n }\n }, [currentPage, pages, currentPageData, organization]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [currentPage]);\n\n useEffect(() => {\n handleOnUpdateUrlParams();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentPage, currentPageData, pages]);\n\n const scrollToTop = () => {\n if (containerRef && containerRef.current) {\n containerRef.current.scrollTo(0, 0);\n }\n };\n\n const onSubmit = async () => {\n try {\n setLoading(true);\n const form = {\n organizationId: organization?._id,\n formTypeId: id,\n values: formValues,\n };\n const { data } = await createFormType(form);\n setLoading(false);\n history.push(`/successForm/${data.code}?t=1`, {\n formId: data._id,\n type: data.type,\n });\n } catch (error) {\n const errorResponse = error.response?.data?.error?.details || error.response?.data?.error?.error?.details || null;\n setLoading(false);\n if (Array.isArray(errorResponse) && errorResponse?.length > 0) {\n return errorResponse.map((res) => toast.error(res.message || 'Something went wrong creating the form'));\n }\n return toast.error('Something went wrong creating the form');\n }\n };\n\n useEffect(() => {\n const onGetFormType = async () => {\n try {\n const { data } = await getAvailableFormType(organization?._id);\n const form = data.find((dt) => dt._id === id);\n if (!form) {\n history.push('/cases');\n return;\n }\n\n const pagesFormatted = form.pages.map((page, pageIndex) => ({\n ...page,\n sections: page.sections.map((section, sectionIndex) => ({\n ...section,\n components: section.components.map((component, componentIndex) => {\n if (component.type === 'demographics') {\n const demographicskeys = Object.keys(component.data);\n const demographicsComps = demographicskeys.map((key) => ({\n type: key,\n data: {\n ...component.data[key],\n questionBankIndex: demographicskeys.indexOf(key),\n isDemographics: true,\n demographicKey: key,\n },\n id: shortid.generate(),\n path: `[${pageIndex}].sections[${sectionIndex}].components[${componentIndex}].components[${demographicskeys.indexOf(\n key\n )}]`,\n }));\n\n const getDemographicsComponentByType = (type) =>\n demographicsComps.find((comp) => comp.type === type) || null;\n\n const demographicsComponentsOrdered = [\n getDemographicsComponentByType('birthdate'),\n getDemographicsComponentByType('gender'),\n getDemographicsComponentByType('raceEthnicity'),\n getDemographicsComponentByType('race'),\n getDemographicsComponentByType('ethnicity'),\n getDemographicsComponentByType('sexualOrientation'),\n ];\n\n return {\n ...component,\n components: demographicsComponentsOrdered.filter((comp) => comp?.data?.visible),\n path: `[${pageIndex}].sections[${sectionIndex}].components[${componentIndex}]`,\n };\n }\n return {\n ...component,\n path: `[${pageIndex}].sections[${sectionIndex}].components[${componentIndex}]`,\n };\n }),\n })),\n }));\n setPages(pagesFormatted);\n\n setFormType(form);\n const formatArrayValues = form.pages.map((page) => ({\n sections: page.sections.map((section) => ({\n components: section.components.map((component) => {\n if (component.type === 'questionBank') {\n return [null];\n }\n if (component.type === 'addressInformation') {\n return {\n street: null,\n aptUnit: null,\n state: null,\n city: null,\n zipCode: null,\n };\n }\n if (component.type === 'contactInformation') {\n return {\n email: null,\n firstName: null,\n lastName: null,\n phone: null,\n fileAnonymously: null,\n workTelephone: null,\n };\n }\n return null;\n }),\n })),\n }));\n setFormValues(formatArrayValues);\n } catch (error) {\n toast.error(error.message);\n }\n };\n const onGetQuestionsBanks = async () => {\n try {\n const { data } = await getQuestionBank();\n setQuestionsBanks(data);\n } catch (error) {\n toast.error(error.message);\n }\n };\n if (id && organization) {\n onGetFormType();\n onGetQuestionsBanks();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, organization]);\n\n const onSaveFormValues = (pageIndex, sectionIndex, componentIndex, value, dmographicIndex) => {\n if (formValues.length === 0) {\n return;\n }\n const formValuesCopy = Array.from(formValues);\n\n if (typeof demographicIndex === 'number') {\n formValuesCopy[pageIndex].sections[sectionIndex].components[componentIndex].components[dmographicIndex] = value;\n } else {\n formValuesCopy[pageIndex].sections[sectionIndex].components[componentIndex] = value;\n }\n setFormValues(formValuesCopy);\n };\n\n const getFormValue = (pageIndex, sectionIndex, componentIndex) => {\n if (formValues.length === 0) {\n return;\n }\n return formValues[pageIndex]?.sections?.[sectionIndex]?.components[componentIndex];\n };\n\n const getComponents = (components) => {\n const questionBankComponents = components.map((component) => {\n if (component.type === 'questionBank') {\n const comps = questionsBanks.find((q) => q.type === component.data.type);\n return {\n ...component,\n components: comps.components.map((comp, index) => ({\n ...comp,\n data: {\n ...comp.data,\n questionBankIndex: index,\n },\n })),\n };\n }\n\n return component;\n });\n\n return questionBankComponents;\n };\n\n const getRequiredFields = (callBack) => {\n let shouldDoNextPage = true;\n let shouldDoNextPageWithSubComponentsRequired = true;\n const pagesCopy = Array.from(pages);\n const currentPageComponents = pagesCopy[currentPage].sections?.map((section) => section.components);\n const components = currentPageComponents.reduce((acc, curr) => [...acc, ...curr], []);\n\n const filteredComponents = getComponents(components).filter((component) => component.type !== 'questionBank');\n\n const filteredQuestionBankComponents = getComponents(components);\n\n const requiredComponents = filteredComponents.filter((component) => component?.data?.required);\n\n const requiredSubComponents = filteredComponents\n .filter(\n (component) => component?.type === 'contactInformation' || component?.type === 'addressInformation' || component?.type === 'demographics'\n );\n\n const errorsToast = []\n\n if (requiredSubComponents.length > 0) {\n requiredSubComponents.forEach((component) => {\n\n const keysRequired = Object.keys(component.data).filter((key) => component.data[key]?.required && component.data[key]?.visible);\n\n keysRequired.forEach((key) => {\n\n if (key === 'showFileAnonymously' && component?.type === 'contactInformation') {\n key = 'fileAnonymously';\n }\n\n let isFieldFilled = get(formValues, component.path)?.[key];\n\n if (isFieldFilled === null || isFieldFilled === undefined) {\n errorsToast.push(`${component.data[key]?.text || [key]} is required`);\n shouldDoNextPageWithSubComponentsRequired = false;\n }\n\n if (component?.type === 'demographics') {\n set(pagesCopy, component.path, {\n ...component,\n type: component.type,\n path: component.path,\n components: component.components.map((IComponent) => {\n return {\n ...IComponent,\n type: IComponent.type,\n path: IComponent.path,\n data: {\n ...IComponent.data,\n showRequired: !get(formValues, component.path)?.[IComponent.data.demographicKey]\n }\n }\n }),\n data: {\n ...component.data,\n ...Object.keys(component.data).filter((key) => component.data[key]?.required).reduce((acc, key) => {\n acc[key] = {\n ...component.data[key],\n showRequired: !get(formValues, component.path)?.[key]\n };\n return acc;\n }, {}),\n },\n });\n } else {\n set(pagesCopy, component.path, {\n ...component,\n type: component.type,\n path: component.path,\n data: {\n ...component.data,\n ...Object.keys(component.data).filter((key) => component.data[key]?.required).reduce((acc, key) => {\n acc[key] = {\n ...component.data[key],\n showRequired: (get(formValues, component.path)?.[\n key === 'showFileAnonymously' && component?.type === 'contactInformation' ? 'fileAnonymously' : key] === null || get(formValues, component.path)?.[\n key === 'showFileAnonymously' && component?.type === 'contactInformation' ? 'fileAnonymously' : key] === undefined\n ) ? true : false\n };\n return acc;\n }, {}),\n },\n });\n }\n\n });\n\n if (get(formValues, component.path)?.email && !emailRgx.test(get(formValues, component.path).email)) {\n errorsToast.push('\"email\" must be a valid email');\n shouldDoNextPageWithSubComponentsRequired = false;\n }\n });\n }\n\n if (requiredComponents.length > 0) {\n requiredComponents.forEach((component) => {\n\n let isFieldFilled = get(formValues, component.path);\n\n if (isFieldFilled === null || isFieldFilled === undefined) {\n errorsToast.push(`${component.data?.question || component.type} is required`);\n shouldDoNextPageWithSubComponentsRequired = false;\n }\n\n if (component.type === 'email' && get(formValues, component.path) && !emailRgx.test(get(formValues, component.path))) {\n errorsToast.push('\"email\" must be a valid email');\n shouldDoNextPageWithSubComponentsRequired = false;\n }\n\n\n if (get(formValues, component.path) === null) {\n set(pagesCopy, component.path, {\n type: component.type,\n path: component.path,\n data: { ...component.data, showRequired: true },\n });\n\n shouldDoNextPage = false;\n } else {\n set(pagesCopy, component.path, {\n type: component.type,\n path: component.path,\n data: { ...component.data, showRequired: false },\n });\n }\n\n if (get(formValues, component.path) !== null && typeof get(formValues, component.path) === 'object') {\n if (component.type === 'contactInformation') {\n const comps = Object.keys(component.data).filter((comp) => typeof comp === 'object');\n const requiredComps = filterObjectTypesComponents(comps).map((filterObj) => ({\n ...filterObj,\n showRequired: true,\n }));\n set(pagesCopy, component.path, {\n type: component.type,\n path: component.path,\n data: { ...component.data, ...requiredComps },\n });\n }\n }\n });\n }\n\n filteredQuestionBankComponents.forEach((comps) => {\n if (comps?.data?.type === 'witnesses') {\n if (\n get(formValues, comps.path)?.[0]?.[0]?.email &&\n !emailRgx.test(get(formValues, comps.path)?.[0]?.[0]?.email)\n ) {\n toast.error('\"email\" must be a valid email');\n\n shouldDoNextPageWithSubComponentsRequired = false;\n }\n }\n\n if (comps?.data?.type === 'basicInformation') {\n if (get(formValues, comps.path)?.[0]?.email && !emailRgx.test(get(formValues, comps.path)?.[0]?.email)) {\n toast.error('\"email\" must be a valid email');\n\n shouldDoNextPageWithSubComponentsRequired = false;\n }\n }\n\n if (comps.type === 'email') {\n if (get(formValues, comps.path) && !emailRgx.test(get(formValues, comps.path))) {\n toast.error('\"email\" must be a valid email');\n\n shouldDoNextPageWithSubComponentsRequired = false;\n }\n }\n });\n\n setPages([...pagesCopy]);\n if (shouldDoNextPage && shouldDoNextPageWithSubComponentsRequired) {\n if (typeof callBack === 'function') {\n callBack();\n } else {\n setCurrentPage(currentPage + 1);\n }\n\n scrollToTop();\n }\n if (errorsToast.length > 0) {\n toast.error(errorsToast[0]);\n }\n\n };\n\n if (questionsBanks.length === 0) {\n return ;\n }\n\n return (\n
\n \n \n {!isMobile ? (\n \n \n {steps.map((step, stepIndex) => {\n const active = currentPage >= stepIndex;\n const completed = currentPage > stepIndex;\n\n return (\n \n \n {completed ? : stepIndex + 1}\n \n {step}\n \n );\n })}\n \n \n \n ) : (\n <>\n \n setOpenStepperMobile(!openStepperMobile)}\n >\n {!openStepperMobile ? (\n <>\n \n \n \n {currentPage > currentPageDataIndex ? (\n \n ) : (\n currentPage + 1\n )}\n \n {currentPageData?.name}\n \n {openStepperMobile ? (\n \n ) : (\n \n )}\n \n \n ) : (\n <>\n {steps.map((step, stepIndex) => {\n const active = currentPage >= stepIndex;\n const completed = currentPage > stepIndex;\n\n return (\n \n \n \n {completed ? : stepIndex + 1}\n \n {step}\n \n {stepIndex === 0 ? (\n <>\n {openStepperMobile ? (\n \n ) : (\n \n )}\n \n ) : (\n \n )}\n \n );\n })}\n \n )}\n \n \n )}\n \n \n {pages.map((page, pageIndex) => {\n if (pageIndex === currentPage) {\n return (\n \n \n {formType?.name}\n \n {page.sections.map((section, sectionIndex) => (\n <>\n \n onSaveFormValues(pageIndex, sectionIndex, componentIndex, value, demographicIndex)\n }\n imagesPreview={imagesPreview}\n setImagesPreview={setImagesPreview}\n organizationId={organization?._id}\n getFormValue={(componentIndex) => getFormValue(pageIndex, sectionIndex, componentIndex)}\n />\n \n ))}\n \n );\n }\n return <>;\n })}\n\n {currentPage === pages.length - 1 && (\n <>\n \n Acknowledgement\n \n \n By submitting this form, you acknowledge that the information provided is accurate to the\n best of your knowledge.\n \n \n )}\n\n \n \n {currentPage > 0 && (\n {\n setCurrentPage(currentPage - 1);\n scrollToTop();\n }}\n style={{ marginRight: 10 }}\n >\n Back\n \n )}\n\n {currentPage !== pages.length - 1 && (\n \n Next\n \n )}\n\n {currentPage === pages.length - 1 && (\n getRequiredFields(onSubmit)}\n disabled={loading}\n style={{\n background: '#2F4F77',\n color: '#fff',\n }}\n >\n Submit {loading && }\n \n )}\n \n \n \n \n \n
\n );\n}\n\nconst FixedMenu = styled.div`\n width: 25%;\n min-height: calc(116vh - 104px);\n padding: 32px;\n display: flex;\n flex-direction: column;\n border-right: 25px solid #f3f3f3;\n\n @media screen and (max-width: 1200px) {\n width: 35%;\n }\n`;\n\nconst FixedContent = styled.div`\n width: 75%;\n overflow-y: scroll;\n overflow-x: hidden;\n max-height: calc(116vh - 104px);\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n @media screen and (max-width: 1200px) {\n width: 65%;\n }\n\n @media screen and (max-width: 999px) {\n width: 100%;\n }\n`;\n\nconst StyledStepper = styled.div`\n display: flex;\n flex-direction: column;\n /*max-height: 80vh;*/\n padding-top: 16px;\n padding-bottom: 16px;\n overflow: scroll;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nconst StyledStep = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 24px;\n position: relative;\n\n ${(props) =>\n props.withLine &&\n `\n &:before {\n content: '';\n display: block;\n position: absolute;\n height: 24px;\n bottom: -24px;\n left: 21px;\n width: 1px;\n background-color: ${props.active ? props.activeColor : 'rgba(153, 153, 153, 1)'};\n }\n `}\n`;\n\nconst StyledStepIndex = styled.span`\n width: 42px;\n height: 42px;\n border-radius: 84px;\n display: flex;\n justify-content: center;\n font-weight: 500;\n align-items: center;\n font-size: 18px;\n color: #fff;\n background-color: ${(props) => (props.active ? props.activeColor : '#fff')};\n\n ${(props) =>\n !props.active\n ? `\n color: rgba(87, 90, 102, 1);\n border: 1px solid rgba(153, 153, 153, 1);\n `\n : `\n color: #fff;\n `}\n`;\n\nconst StyledStepLabel = styled.span`\n margin-left: 16px;\n font-weight: bold;\n font-size: 14px;\n`;\n\nconst StyledStepperMobile = styled.div`\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 75px;\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n background-color: #fff;\n z-index: 999;\n transition: all 0.25s ease;\n cursor: pointer;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n ${(props) =>\n props.open\n ? `\n animation-delay: 0s;\n animation-name: slideDown;\n animation-timing-function: ease-out;\n animation-duration: 0.5s;\n animation-iteration-count: 1;\n animation-fill-mode: forwards;\n `\n : `\n animation-delay: 0s;\n animation-name: slideUp;\n animation-timing-function: ease-out;\n animation-duration: 0.5s;\n animation-iteration-count: 1;\n animation-fill-mode: forwards;\n `}\n\n @keyframes slideDown {\n from {\n height: 75px;\n }\n to {\n height: ${(props) => `${props.heightPerItem}px`};\n }\n }\n\n @keyframes slideUp {\n from {\n height: ${(props) => `${props.heightPerItem}px`};\n }\n to {\n height: 75px;\n }\n }\n`;\n\nconst StyledStepMobile = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding: 16px;\n`;\n","import { Box, Button, Container, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect } from 'react';\nimport FileCopyOutlinedIcon from '@material-ui/icons/FileCopyOutlined';\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport styled from 'styled-components';\nimport { useHistory, useLocation, useParams } from 'react-router-dom';\nimport { getFormColor } from '../../utils';\nimport useOrganization from '../../hooks/useOrganization';\nimport { toast } from '../../components/Notification';\n\nimport Logo from '../../components/Logo';\nimport { logEvent } from '../../services/firebase';\n\nconst useStyles = makeStyles(() => ({\n topBar: {\n width: '100%',\n height: 100,\n background: '#364F74',\n display: 'flex',\n alignItems: 'center',\n },\n formSection: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: 'bold',\n marginTop: 20,\n },\n stepper: {\n background: 'transparent',\n width: '100%',\n maxWidth: 660,\n },\n unarmedlogo: {\n width: 150,\n height: 50,\n objectFit: 'contain',\n cursor: 'pointer',\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n stepLabel: {\n color: '#fff',\n },\n}));\n\nconst SuccessSumitted = () => {\n const classes = useStyles();\n const { id } = useParams();\n const location = useLocation();\n const history = useHistory();\n const { organization } = useOrganization();\n\n useEffect(() => {\n if (id && location.state?.type) {\n logEvent('new_case_sent', {\n trackingCode: id,\n type: location.state?.type,\n });\n }\n }, [id, location]);\n\n const reportType = location?.state?.type;\n const types = {\n COMPLIMENT: \"Compliment\",\n COMPLAINT: \"Complaint\",\n REVIEW: \"Review\",\n RECOMMENDATION: \"Recommendation\",\n ...organization?.customFormTypes,\n };\n const reportTypeDisplayText = types[reportType] || reportType;\n\n return (\n <>\n
\n \n \n \n
\n \n \n Thank you!\n \n\n \n {id}\n toast.success('Tracking Number copied!')}>\n \n \n \n\n \n \n \n {reportTypeDisplayText} form submitted successfully\n \n \n \n \n \n );\n};\n\nconst ContainerDiv = styled.div`\n @media screen and (min-width: 320px) {\n padding: 10px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 500px;\n text-align: center;\n }\n @media screen and (min-width: 768px) {\n padding-top: 120px;\n padding-left: 140px;\n text-align: unset;\n display: block;\n }\n`;\nexport default SuccessSumitted;\n","import { useEffect, useState } from 'react';\nimport getProjectSubTypes from '../pages/Projects/utils';\n\nexport default function useProjectTypes(typeOptions, currentType) {\n const [types, setTypes] = useState([]);\n const [subTypes, setSubTypes] = useState([]);\n\n useEffect(() => {\n if (typeOptions?.length) {\n setTypes(typeOptions?.map((x) => ({ text: x.type, value: x.type })));\n const subTypesOptions = getProjectSubTypes(typeOptions, currentType);\n setSubTypes(subTypesOptions);\n }\n }, [typeOptions, currentType]);\n\n return [types, subTypes];\n}\n","import { Box, Button, CircularProgress, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: 0,\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: 0,\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n}));\n\nexport default function ModalButtons({\n loading,\n handleSubmit,\n handleCancel,\n isValid,\n buttonText = 'Create',\n cancelColor = '#1F63FF',\n}) {\n const classes = useStyles();\n\n return (\n \n \n CANCEL\n \n \n {loading ? (\n \n ) : (\n buttonText\n )}\n \n \n );\n}\n","import { FormControl, InputLabel, Select } from '@material-ui/core';\nimport React from 'react';\n\nexport default function OutlineSelect({\n options = [],\n label,\n register = () => {},\n registerKey,\n registerOptions,\n required = true,\n hasValue = false,\n}) {\n return (\n \n \n {label}{' '}\n {required ? (\n *\n ) : null}\n \n \n \n {options?.map((option, index) => (\n \n {option}\n \n ))}\n \n {/* \n {option.error}\n */}\n \n );\n}\n","import { Box, makeStyles, TextField, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { toast } from '../../components/Notification';\nimport useOrganization from '../../hooks/useOrganization';\nimport useProjectTypes from '../../hooks/useProjectTypes';\nimport { onCreateProject } from '../../services/unarmed';\nimport ModalButtons from './components/ModalButtons';\nimport OutlineSelect from './components/OutlineSelect';\n\nconst useStyles = makeStyles(() => ({\n input: {\n marginBottom: 20,\n },\n description: {\n marginTop: 20,\n },\n}));\n\nexport default function CreateProject({ handleCancel, handleUpdateProjects }) {\n const classes = useStyles();\n const [loading, setLoading] = useState();\n const { organization } = useOrganization();\n\n const { register, handleSubmit, control, watch } = useForm();\n\n const [typesOptions, subTypeOptions] = useProjectTypes(organization?.project?.types, watch('projectType'));\n\n const isFormEmpty = () => {\n if (!watch('projectType') || !watch('name') || !watch('description') || !watch('number') || !watch('subType')) {\n return true;\n }\n return false;\n };\n\n const onSubmit = async (data) => {\n setLoading(true);\n try {\n const response = await onCreateProject(data);\n toast.success('Project created successfully');\n handleCancel();\n handleUpdateProjects(response.data);\n } catch (error) {\n toast.error(\n error.response?.data?.error?.details?.[0]?.message ||\n error.response?.data?.message ||\n 'Something went wrong creating the project'\n );\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <>\n Create Project\n \n Please enter the name and description in the fields below.\n \n \n types.type)}\n />\n \n (\n \n {' '}\n Number *\n \n }\n inputProps={{ maxLength: 7 }}\n style={{ width: '100%' }}\n />\n )}\n />\n (\n \n {' '}\n Name *\n \n }\n style={{ width: '100%' }}\n />\n )}\n />\n (\n \n {' '}\n Description *\n \n }\n style={{ width: '100%' }}\n />\n )}\n />\n \n \n \n );\n}\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\nimport ModalButtons from './components/ModalButtons';\n\nexport default function DeletePopup({ handleCancel, handleSubmit, loading }) {\n return (\n <>\n \n Are you sure you want to delete?\n \n \n Projects well be archived for 7 years before being permanently deleted.{' '}\n \n false}\n loading={loading}\n buttonText=\"Delete\"\n />\n \n );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Box, Checkbox, makeStyles, TableCell, TableRow, Typography } from '@material-ui/core';\nimport moment from 'moment';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport DashButton from '../../components/DashButton';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport EnhancedTable from '../../components/Table';\nimport { onArchiveProject, onGetProjects } from '../../services/unarmed';\nimport CreateProject from './CreateProject';\nimport DeletePopup from './DeletePopup';\nimport useOrganization from '../../hooks/useOrganization';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport Alert from '../../components/Alert';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 40,\n width: '100%',\n },\n}));\n\nconst tableColumns = ['Type', 'Subtype', 'Number', 'Name', 'Created Date', 'Created By'];\n\nexport const ProjectRenderRow = ({ isItemSelected, index, row, labelId, handleClick, withCheckbox }) => {\n const classes = useStyles();\n const history = useHistory();\n\n const goToProjectDetails = (e) => {\n const go = handleClick(e, row._id);\n if (go) {\n history.push(`/project/${row._id}`);\n }\n };\n\n return (\n goToProjectDetails(e, row, handleClick)}\n >\n {withCheckbox && (\n \n \n \n )}\n\n \n {row?.projectType}\n \n \n {row?.subType}\n \n \n {row?.number}\n \n \n {row?.name}\n \n \n {moment(row.createdAt).format('MMMM DD, YYYY')}\n \n \n {row?.createdBy?.firstName} {row?.createdBy?.lastName}\n \n \n );\n};\n\nProjectRenderRow.propTypes = {\n isItemSelected: PropTypes.bool,\n index: PropTypes.number,\n row: PropTypes.object,\n labelId: PropTypes.string,\n handleClick: PropTypes.func,\n withCheckbox: PropTypes.bool,\n};\n\nexport default function Projects() {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [loadingDelete, setLoadingDelete] = useState(false);\n const [checked, setChecked] = useState(false);\n\n const [projects, setProjects] = useState([]);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [page, setPage] = useState(1);\n const [selected, setSelected] = React.useState([]);\n const [openDelete, setOpenDelete] = React.useState(false);\n\n const [refetch, setRefetch] = useState(false);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const { organization } = useOrganization();\n const location = useLocation();\n\n const [isFilteringByContact, setIsFilteringByContact] = useState(location?.state?.isFilteringByContact || false);\n const [showAlert, setShowAlert] = useState(location.state?.showAlert || false);\n const isSelected = (name) => selected.indexOf(name) !== -1;\n\n const getProjects = useCallback(async () => {\n setLoading(true);\n try {\n const { data, headers } = await onGetProjects(\n page,\n rowsPerPage,\n sortBy,\n sort,\n isFilteringByContact ? location?.state?.id : undefined\n );\n setProjects({ data, headers });\n } catch (error) {\n toast.error('Cannot get projects');\n } finally {\n setLoading(false);\n }\n }, [page, rowsPerPage, sortBy, sort, isFilteringByContact, location]);\n\n useEffect(() => {\n getProjects();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [refetch, sortBy, sort, page, rowsPerPage, isFilteringByContact, location]);\n\n useEffect(() => {\n if (!location.state?.showAlert && showAlert) {\n setShowAlert(false);\n }\n }, [location, showAlert]);\n\n const onClearContactsProjects = async () => {\n setIsFilteringByContact(false);\n setShowAlert(false);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const handleUpdateProjectList = (newProject) => {\n const finaleProjects = [...projects.data, newProject];\n setProjects({ ...projects, data: finaleProjects });\n setRefetch(!refetch);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const handleDeleteProjects = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n try {\n setLoadingDelete(true);\n const { data } = await onArchiveProject(ids);\n getProjects();\n setOpenDelete(false);\n if (data?.deleted?.length) {\n toast.success('Project was delete it successfully');\n setRefetch(!refetch);\n }\n if (data?.error) {\n toast.error(data.error);\n }\n } catch (error) {\n toast.error('Project, can not be deleted please un-link related projects to be able to delete the projects');\n } finally {\n setLoadingDelete(false);\n }\n };\n\n const renderRow = (row, index, handleClick) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n\n return (\n \n );\n };\n\n return (\n <>\n {organization && }\n \n Projects \n \n \n All Projects ({projects?.headers?.['x-pagination-totalitems'] || 0})\n \n \n setOpenDelete(true)}\n >\n Delete\n \n setOpen(!open)}>\n Create Project\n \n \n \n {showAlert && (\n \n \n You are only seeing projects from Contact: {location?.state?.name} email:{' '}\n {location?.state?.email}\n \n \n )}\n \n \n \n \n \n \n \n setOpenDelete(false)}\n loading={loadingDelete}\n handleSubmit={handleDeleteProjects}\n />\n \n
\n \n );\n}\n","import { useEffect, useState, useCallback } from 'react';\nimport { toast } from '../components/Notification';\n\nimport { getProjectInfo } from '../services/unarmed';\n\nconst useProject = (id) => {\n const [project, setProject] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const onProject = useCallback(async () => {\n try {\n setLoading(true);\n\n const { data } = await getProjectInfo(id);\n\n setProject(data);\n } catch (error) {\n toast.error(error.message);\n setProject(null);\n } finally {\n setLoading(false);\n }\n }, [id]);\n\n useEffect(() => {\n if (id) {\n onProject();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id]);\n\n return {\n loading,\n setProject,\n project,\n refetch: onProject,\n };\n};\n\nexport default useProject;\n","import { useState, useEffect, useRef } from 'react';\nimport { toast } from '../components/Notification';\nimport { assignUserToProject, getUsers } from '../services/unarmed';\nimport { axiosCatchError } from '../utils';\n\nexport default function useUsers(\n id,\n usersAssigned = [],\n shouldAddMoreUser = true,\n shouldFetchUsers = true,\n usersSource\n) {\n const [users, setUsers] = useState([]);\n const [loading, setLoading] = useState(false);\n const [assignedUsers, setAssignedUsers] = useState([]);\n const prevAssignedUsersRef = useRef([]);\n\n useEffect(() => {\n const onGetUsers = async () => {\n try {\n setLoading(true);\n const { data } = await getUsers();\n setUsers(data);\n } catch (error) {\n console.log(error);\n } finally {\n setLoading(false);\n }\n };\n if (shouldFetchUsers) {\n onGetUsers();\n }\n if (usersSource?.length) {\n setUsers(usersSource);\n }\n }, [shouldFetchUsers, usersSource]);\n\n useEffect(() => {\n const onFilterUser = (userId) => users.find((user) => user._id === userId);\n\n const _assignedUsers = usersAssigned\n ? usersAssigned.map((user) => (typeof user === 'object' ? user : onFilterUser(user))).filter((user) => !!user)\n : [];\n\n const newAssignedUsers =\n usersAssigned && usersAssigned.length > 0\n ? shouldAddMoreUser\n ? [..._assignedUsers, {}]\n : [..._assignedUsers]\n : [{}];\n\n if (JSON.stringify(newAssignedUsers) !== JSON.stringify(prevAssignedUsersRef.current)) {\n setAssignedUsers(newAssignedUsers);\n prevAssignedUsersRef.current = newAssignedUsers;\n }\n }, [id, users, usersAssigned, shouldAddMoreUser]);\n\n const onDeleteUser = async (user, index) => {\n const usersArr = [...assignedUsers];\n usersArr.splice(index, 1);\n const userData = {\n users: usersArr,\n };\n if (usersArr.length <= 1) {\n userData.users = [];\n } else {\n userData.users = usersArr.slice(0, -1);\n }\n\n setAssignedUsers(usersArr);\n\n try {\n setLoading(true);\n await assignUserToProject(id, {\n users: userData.users?.map((userXt) => userXt?._id),\n });\n toast.success(`The user has been unassigned successfully`);\n setLoading(false);\n } catch (error) {\n axiosCatchError(error);\n setLoading(false);\n }\n };\n\n const onAssignUser = async (usersArr, callback) => {\n const assignedUserData = {\n users: usersArr?.map((user) => user?._id),\n };\n\n try {\n await assignUserToProject(id, assignedUserData);\n callback();\n toast.success(`User has been assigned successfully`);\n } catch (error) {\n axiosCatchError(error);\n }\n };\n\n return [users, assignedUsers, setAssignedUsers, onAssignUser, onDeleteUser, loading, setUsers];\n}\n","import {\n Box,\n FormControl,\n InputBase,\n makeStyles,\n NativeSelect,\n Typography,\n withStyles,\n} from '@material-ui/core';\nimport moment from 'moment';\nimport React, { useState, useEffect } from 'react';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\nimport { toast } from '../../../components/Notification';\nimport AssignUser from '../../../components/AssignUser';\nimport SelectBox from '../../../components/SelectBox';\nimport { getFormColor, getFormColorPlaceholder } from '../../../utils';\nimport HeaderTabs from './HeaderTabs';\nimport useUsers from '../../../hooks/useUsers';\nimport { updateProject } from '../../../services/unarmed';\nimport getProjectSubTypes from '../utils';\nimport { BootstrapInput } from '../../../styles/GlobalStyles';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: '20px 40px 0',\n background: '#fff',\n width: '100%',\n minHeight: 115,\n },\n description: {\n fontSize: 12,\n color: '#0000003F',\n letterSpacing: 0.4,\n marginTop: 5,\n },\n createdBy: {\n color: '#585858',\n fontSize: 14,\n marginTop: 10,\n },\n layout: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'start',\n },\n tag: {\n width: 'fit-content',\n // padding: '5px 10px',\n marginLeft: 10,\n borderRadius: 5,\n textTransform: 'capitalize',\n // height: '100%',\n },\n}));\n\nexport default function Header({\n tabValue,\n handleChangeTab,\n a11yProps,\n project,\n statusOptions,\n typesOptions = [],\n}) {\n const [types, setTypes] = useState([]);\n const [subTypes, setSubTypes] = useState([]);\n const [type, setType] = useState('');\n const [subType, setSubType] = useState('');\n const [status, setStatus] = useState('');\n const classes = useStyles();\n\n const [\n users,\n assignedUsers,\n setAssignedUsers,\n onAssignUser,\n onDeleteUser,\n loadingUsers,\n ] = useUsers(project?._id, project?.assignedTo);\n\n // console.log('assignedUsers', assignedUsers);\n\n useEffect(() => {\n if (typesOptions.length) {\n setTypes(typesOptions?.map((x) => ({ text: x.type, value: x.type })));\n const subTypesOptions = getProjectSubTypes(\n typesOptions,\n project?.projectType\n );\n setSubTypes(subTypesOptions);\n setType(project?.projectType);\n setSubType(project?.subType);\n setStatus(project?.status);\n }\n }, [typesOptions, project]);\n\n useEffect(() => {\n if (type) {\n const subTypesOptions = getProjectSubTypes(typesOptions, type);\n setSubTypes(subTypesOptions);\n }\n }, [type]);\n\n const onChangeStatus = async (e) => {\n const { value } = e.target;\n setStatus(value);\n try {\n await updateProject(project?._id, { status: value });\n toast.success('Project status updated successfully');\n } catch (error) {\n console.log(error);\n }\n };\n\n const onChangeTypes = async (e, action) => {\n const data = {};\n const { value } = e.target;\n\n if (action === 'type') {\n setType(value);\n data.projectType = value;\n } else {\n setSubType(value);\n data.subType = value;\n }\n try {\n await updateProject(project?._id, data);\n if (action === 'type') {\n toast.success('Project Types updated successfully');\n } else {\n toast.success('Project Subtypes updated successfully');\n }\n } catch (error) {\n console.log(error);\n }\n };\n\n return (\n \n \n \n \n {project?.name}\n \n Created by{' '}\n {`${project?.createdBy?.firstName} ${project?.createdBy?.lastName}`}{' '}\n - {moment(project?.createdAt).format('MMMM DD, YYYY')}\n \n \n {project?.description}\n \n \n \n \n onChangeTypes(e, 'type')}\n allowPlaceHolder={false}\n withColors={{\n color: getFormColor('other'),\n }}\n />\n \n \n onChangeTypes(e, 'subtype')}\n allowPlaceHolder\n withColors={{\n color: getFormColor('other'),\n }}\n />\n \n \n \n \n \n \n \n \n \n }\n IconComponent={KeyboardArrowDownIcon}\n >\n {statusOptions?.map((status, index) => (\n \n {status}\n \n ))}\n \n \n \n Last update {moment().format('MMMM DD, YYYY - hh:mm a')}\n \n \n \n \n \n \n );\n}\n","import { Box, Typography, Button, makeStyles } from '@material-ui/core';\n\nimport React from 'react';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n minWidth: 400,\n outline: 0,\n },\n}));\n\nexport default function DeleteActionPopup({ setOpen, handleClicked }) {\n const classes = useStyles();\n\n return (\n
\n \n Are you sure you want to delete?\n \n This action can’t be undone!\n \n setOpen(false)}\n >\n CANCEL\n \n {\n handleClicked();\n setOpen(false);\n }}\n >\n DELETE\n \n \n
\n );\n}\n","import { Box, Divider, FormControl, Grid, makeStyles, NativeSelect, Typography } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport React, { useEffect, useState } from 'react';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport moment from 'moment';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport PropTypes from 'prop-types';\nimport { Editor } from '@tinymce/tinymce-react';\n\nimport { BootstrapInput } from '../../../styles/GlobalStyles';\nimport useUsers from '../../../hooks/useUsers';\nimport AssignUser from '../../../components/AssignUser';\nimport DateTimePickerMUI from '../../../components/DateTimePickerMUi';\nimport { convertHMS } from '../utils';\nimport ModalPopUp from '../../../components/ModaPopupl';\nimport DeleteActionPopup from './PopUpDeleteAction';\nimport { getFormColor, getFormColorPlaceholder } from '../../../utils';\nimport SelectBox from '../../../components/SelectBox';\nimport useProjectTypes from '../../../hooks/useProjectTypes';\nimport { TINYMCE_DEFAULT_CONFIG, TINYMCE_SCRIPT_SRC } from '../../../config/config';\nimport ModalUploadFile from '../../../components/ModalUploadFile';\nimport Attachment from '../../../components/Attachment';\nimport CarouselModal from '../../../components/CarouselModal';\nimport { deleteAction } from '../../../services/unarmed';\n\nconst useStyles = makeStyles(() => ({\n itemComponent: {\n width: '100%',\n },\n container: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n marginBottom: 34,\n background: '#fff',\n boxShadow: '0px 3px 6px #00000012',\n borderRadius: 5,\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n headerTitle: {\n marginRight: 8,\n fontWeight: '500',\n },\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n },\n dropzoneText: {\n display: 'block',\n fontSize: 12,\n marginTop: 10,\n textAlign: 'center',\n },\n deleteIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: '35%',\n margin: 'auto',\n cursor: 'pointer',\n },\n viewIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: '35%',\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n itemContainer: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n margin: '40px auto 10px',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 15,\n },\n names: {\n fontWeight: '500',\n minWidth: 250,\n },\n actionContainer: {\n marginLeft: 80,\n },\n columnText: {\n fontWeight: '500',\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n featureItem: {\n width: 137,\n },\n timeSpent: {\n height: 64,\n fontSize: 16,\n marginTop: 17,\n },\n required: {\n color: 'red',\n fontSize: 16,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n tag: {\n width: 'fit-content',\n marginLeft: 10,\n borderRadius: 5,\n textTransform: 'capitalize',\n },\n}));\n\nexport default function ActionItem({\n _id,\n index = 0,\n project,\n name,\n assignedTo,\n attachments,\n organizationId,\n notes,\n times,\n statusOptions,\n users = [],\n onRemoveAction,\n handleChangeActionValues,\n values,\n types,\n tabValue,\n updatedAt,\n projectId,\n refetch,\n}) {\n const classes = useStyles();\n\n const [, assignedUsers, setAssignedUsers] = useUsers(project?._id, values.assignedTo || [], false, false, users);\n const [open, setOpen] = useState(false);\n const [filesSelected, setFilesSelected] = useState([]);\n const [loadingOpenFiles, setLoadingOpenFiles] = useState([]);\n const [openDeleteModal, setOpenDeleteModal] = useState(false);\n const [openModalUploadFile, setOpenModalUploadFile] = useState(false);\n const [files, setFiles] = useState([]);\n const [typesOptions, subTypeOptions] = useProjectTypes(types, values?.type);\n\n useEffect(() => {\n if (tabValue !== 0) {\n handleChangeActionValues(index, 'attachments', values.attachments);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tabValue]);\n\n useEffect(() => {\n if (values?.attachments?.length) {\n setFiles(\n values.attachments.map((file) => ({\n _id: file?._id,\n name: file?.name,\n size: file?.size,\n src: file?.public_url || '',\n mimetype: file?.mimetype,\n public_url: file?.public_url,\n preview_url: file?.preview_url,\n download_url: file?.download_url,\n tags: file?.tags || [],\n archivedDate: file.archivedDate,\n }))\n );\n } else {\n setFiles([]);\n }\n }, [values, name]);\n\n const onAssignUser = (selected, callback) => {\n const filteredUsers = selected.filter(Boolean);\n handleChangeActionValues(index, 'assignedTo', filteredUsers);\n setAssignedUsers([...filteredUsers]);\n callback();\n };\n\n const onDeleteUser = () => {\n handleChangeActionValues(index, 'assignedTo', []);\n setAssignedUsers([]);\n };\n\n const onDeleteFile = (file) => {\n const newFiles = files.filter((_file) => _file?._id !== file?._id);\n setFiles(newFiles);\n handleChangeActionValues(index, 'attachments', newFiles);\n };\n\n const handleOpen = (imgUrl, filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter(\n (flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video') || flop.mimetype.includes('audio')\n );\n const selectedFile = filesToOpen.find((flop) => flop.public_url === imgUrl);\n const selectedFileIndex = filesToOpen.indexOf(selectedFile);\n filesToOpen.splice(selectedFileIndex, 1);\n filesToOpen.unshift(selectedFile);\n setFilesSelected(filesToOpen);\n setLoadingOpenFiles(filesToOpen.map(() => ({ loading: false })));\n };\n\n const handleDeleteAction = async () => {\n try {\n await deleteAction(projectId, _id);\n onRemoveAction();\n refetch();\n } catch (error) {\n console.error('Error deleting action:', error);\n } finally {\n setOpenDeleteModal(false);\n }\n };\n\n return (\n \n \n \n \n \n A{index + 1} {name && }\n \n {name}\n \n setOpenDeleteModal(true)}\n />\n \n \n \n \n \n \n \n \n handleChangeActionValues(index, 'type', e.target.value)}\n allowPlaceHolder\n withColors={{ color: getFormColor('other') }}\n />\n \n \n handleChangeActionValues(index, 'subType', e.target.value)}\n allowPlaceHolder\n withColors={{ color: getFormColor('other') }}\n />\n \n \n \n \n handleChangeActionValues(index, 'status', e.target.value)}\n input={}\n IconComponent={KeyboardArrowDownIcon}\n >\n \n Select an Option\n \n {statusOptions?.map((status, statusOptionIndex) => (\n \n ))}\n \n \n \n Last update {moment(updatedAt).format('MMMM DD, YYYY - hh:mm a')}\n \n \n \n \n \n \n {times?.visible && (\n <>\n \n \n \n Start Date Time: {times?.required && *}\n \n handleChangeActionValues(index, 'startDateTime', date)}\n dateToCompare={values.endDateTime}\n />\n \n \n \n \n \n End Date Time: {times?.required && *}\n \n handleChangeActionValues(index, 'endDateTime', date)}\n dateToCompare={values.startDateTime}\n disabled={!values.startDateTime}\n />\n \n \n \n )}\n \n \n \n Time Spent:\n \n \n {convertHMS(values?.timeSpent)}\n \n \n \n {assignedTo?.visible && (\n \n \n \n \n \n )}\n \n \n {notes?.visible && (\n \n \n Notes {notes?.required && *}\n \n {\n handleChangeActionValues(index, 'notes', newValue);\n }}\n />\n \n )}\n {attachments?.visible && (\n \n \n \n Attachments {attachments?.required && *}\n \n setOpenModalUploadFile(true)} style={{ cursor: 'pointer' }}>\n {' '}\n \n New attachments\n \n \n \n \n {files?.map((file) => (\n onDeleteFile(file)}\n onClickPreview={() => {\n if (file.mimetype.includes('pdf')) {\n const link = document.createElement('a');\n link.href = file.preview_url;\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n return;\n }\n handleOpen(file.public_url, files);\n }}\n archived={!!file.archivedDate}\n />\n ))}\n \n \n )}\n \n \n \n \n \n \n ({\n download_url: file.download_url,\n name: '',\n mimetype: file.mimetype,\n public_url: file.public_url,\n tags: file?.tags || [],\n })) || [],\n }}\n loadingOpenFiles={loadingOpenFiles}\n setLoadingOpenFiles={setLoadingOpenFiles}\n />\n setOpenModalUploadFile(false)}\n onConfirm={(_, _files) => {\n setFiles((prevFiles) => {\n const newFiles = [...prevFiles, ..._files];\n handleChangeActionValues(index, 'attachments', newFiles);\n return newFiles;\n });\n setOpenModalUploadFile(false);\n }}\n />\n \n );\n}\n\nActionItem.propTypes = {\n _id: PropTypes.string,\n index: PropTypes.number,\n project: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n assignedTo: PropTypes.array.isRequired,\n attachments: PropTypes.array.isRequired,\n organizationId: PropTypes.string.isRequired,\n notes: PropTypes.string.isRequired,\n times: PropTypes.array.isRequired,\n statusOptions: PropTypes.array.isRequired,\n users: PropTypes.array,\n onRemoveAction: PropTypes.func.isRequired,\n handleChangeActionValues: PropTypes.func.isRequired,\n values: PropTypes.object.isRequired,\n types: PropTypes.object.isRequired,\n tabValue: PropTypes.number.isRequired,\n updatedAt: PropTypes.string.isRequired,\n projectId: PropTypes.string.isRequired,\n refetch: PropTypes.func.isRequired,\n};\n","import { Box, Checkbox, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport styled from 'styled-components';\n\nconst useStyles = makeStyles(() => ({\n itemComponent: {\n width: '100%',\n height: 420,\n },\n container: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n\n background: '#fff',\n padding: '20px 30px 20px',\n // boxShadow: '0px 3px 6px #00000012',\n borderRadius: 5,\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n },\n headerTitle: {\n minWidth: 170,\n fontWeight: '500',\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 20,\n },\n itemContainer: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n margin: '40px auto 10px',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 15,\n },\n names: {\n fontWeight: '500',\n\n minWidth: 250,\n },\n actionContainer: {\n marginLeft: 80,\n },\n columnText: {\n fontWeight: '500',\n },\n}));\n\nexport default function OverviewItem({ overviewFeatures, actionName, setTemplate, onChangeActionFeatures }) {\n const classes = useStyles();\n\n const item = () => (\n \n \n \n \n \n A Action name:\n \n {\n const { value } = e.target;\n setTemplate((prev) => ({\n ...prev,\n actionName: value,\n }));\n }}\n />\n \n \n \n \n Visible\n Required\n \n {overviewFeatures?.map((overviewFeature, actionIndex) => (\n \n {overviewFeature.label}\n onChangeActionFeatures(e, overviewFeature.label, 'visible')}\n />\n onChangeActionFeatures(e, overviewFeature.label, 'required')}\n />\n \n ))}\n \n \n \n \n );\n\n return item();\n}\n\nconst OutLineInput = styled('input')`\n background-color: #f8f8f9;\n height: 35px;\n font-size: 14px !important;\n width: 100%;\n padding: 10px;\n border-radius: 5px;\n border: 0;\n font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;\n outline: 0;\n &::placeholder {\n color: #00000061;\n }\n ${(props) =>\n props.bordered &&\n `\n border: 1px solid rgba(0, 0, 0, 0.23);\n background: transparent;\n `}\n`;\n","import { Box, Button, CircularProgress, Divider, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { toast } from '../../../components/Notification';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { useHistory } from 'react-router-dom';\nimport { onGetProjects, updateProject } from '../../../services/unarmed';\n\nimport MultiSelectBox from '../../../components/MultiSelectBox';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n margin: '20px 0',\n },\n containerTitle: {\n padding: '10px 20px',\n borderBottom: '1px solid #e2e2e2',\n },\n resaltText: {\n color: '#3B70FE',\n fontWeight: 600,\n fontSize: 13,\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n}));\n\nconst findProjectById = (projects, projectId) => {\n const project = projects?.find((prj) => prj?._id === projectId);\n return project;\n};\n\nconst SelectedProjectItem = ({ onRemove, project }) => {\n const history = useHistory();\n return (\n \n \n history.push(`/project/${project?._id}`)}\n >\n {project?.name}\n \n \n \n \n );\n};\n\nconst RelatedProjects = ({ relatedProjects, id, refetch }) => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [projects, setProjects] = useState([]);\n const [selectedProjects, setSelectedProjects] = useState([]);\n\n const formatProjectSelected = (selected) => {\n if (selected) {\n const selectedProjectsWithText = selected.map((projectId) => findProjectById(projects?.data, projectId)?.name);\n return selectedProjectsWithText.join(', ');\n }\n return selected.join(', ');\n };\n\n const getProjects = async () => {\n try {\n const { data, headers } = await onGetProjects();\n setProjects({\n data: data?.filter((project) => project?._id !== id),\n headers,\n });\n setSelectedProjects(relatedProjects);\n } catch (error) {\n toast.error('Cannot get projects');\n }\n };\n\n useEffect(() => {\n getProjects();\n }, []);\n\n const saveRelatedProjects = async (e) => {\n e.preventDefault();\n try {\n setLoading(true);\n await updateProject(id, { relatedProjects: selectedProjects });\n toast.success('Related projects have been updated successfully!');\n refetch();\n } catch (error) {\n toast.error(error);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n
\n \n \n Related Projects\n \n \n \n setSelectedProjects(e.target.value)}\n id=\"relatedProjects\"\n callback={formatProjectSelected}\n options={\n {\n obj:\n projects?.data?.map((project) => ({\n text: project.name,\n value: project._id,\n })) || [],\n } || []\n }\n />\n \n \n \n {selectedProjects?.map((project) => (\n setSelectedProjects(selectedProjects.filter((prj) => prj !== project))}\n />\n ))}\n \n \n {loading ? : 'Save'}\n \n \n \n \n
\n );\n};\n\nexport default RelatedProjects;\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { convertHMS } from '../utils';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n margin: '20px 0',\n },\n containerTitle: {\n padding: '10px 20px',\n borderBottom: '1px solid #e2e2e2',\n },\n resaltText: {\n color: '#3B70FE',\n fontWeight: 600,\n fontSize: 13,\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n}));\n\nconst TotalTimeSpent = ({ totalTimeSpent }) => {\n const classes = useStyles();\n\n return (\n \n \n \n Total time spent\n \n \n \n \n {convertHMS(totalTimeSpent) || '00:00:00'}\n \n \n \n );\n};\n\nexport default TotalTimeSpent;\n","import { Box, CircularProgress, Typography, makeStyles } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport { toast } from '../../../components/Notification';\nimport { useForm } from 'react-hook-form';\nimport { Editor } from '@tinymce/tinymce-react';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport PropTypes from 'prop-types';\n\nimport AssignUser from '../../../components/AssignUser';\nimport DateTimePickerMUI from '../../../components/DateTimePickerMUi';\nimport useUsers from '../../../hooks/useUsers';\nimport DashButton from '../../../components/DashButton';\nimport useInput from '../../../hooks/useInput';\nimport useProjectTypes from '../../../hooks/useProjectTypes';\nimport OutlineSelect from './OutlineSelect';\nimport { TINYMCE_DEFAULT_CONFIG, TINYMCE_SCRIPT_SRC } from '../../../config/config';\nimport ModalUploadFile from '../../../components/ModalUploadFile';\nimport CarouselModal from '../../../components/CarouselModal';\nimport Attachment from '../../../components/Attachment';\nimport Card from '../../../components/Card';\n\nconst useStyles = makeStyles(() => ({\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n headerTitle: {\n marginRight: 8,\n fontWeight: '500',\n },\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n },\n\n dropzoneText: {\n display: 'block',\n fontSize: 12,\n marginTop: 10,\n textAlign: 'center',\n },\n deleteIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: '35%',\n margin: 'auto',\n cursor: 'pointer',\n },\n viewIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: '35%',\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n itemContainer: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n margin: '40px auto 10px',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 15,\n },\n names: {\n fontWeight: '500',\n\n minWidth: 250,\n },\n actionContainer: {\n marginLeft: 80,\n },\n columnText: {\n fontWeight: '500',\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n featureItem: {\n width: 137,\n },\n timeSpent: {\n height: 64,\n fontSize: 16,\n marginTop: 17,\n },\n required: {\n color: 'red',\n fontSize: 16,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n}));\n\nexport default function ActionCard({ users = [], onSaveActions, organizationId, actionSettings }) {\n const classes = useStyles();\n\n const [files, setFiles] = useState([]);\n const [open, setOpen] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState([]);\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n const [startDate, setStartDate] = useState(null);\n const [endDate, setEndDate] = useState(null);\n const notes = useInput('');\n const [assignedTo, setAssignedTo] = useState([]);\n const [, assignedUsers, setAssignedUsers] = useUsers([], false, false, users);\n const [openModalUploadFile, setOpenModalUploadFile] = useState(false);\n\n const onAssignUser = (_, callback) => {\n setAssignedTo([_[0]?._id]);\n callback();\n };\n\n const { register, watch } = useForm();\n\n const [typesOptions, subTypeOptions] = useProjectTypes(actionSettings?.types, watch('type'));\n\n const onDeleteUser = () => {\n setAssignedTo([]);\n setAssignedUsers([{}]);\n };\n\n const onDeleteFile = (file) => {\n const newFiles = [...files.filter((_file) => _file?._id !== file?._id)];\n\n setFiles(newFiles);\n };\n\n const getActionsRequired = () => {\n const requiredActions = [];\n\n if (actionSettings?.settings?.times?.required) {\n if (!startDate || !endDate) {\n requiredActions.push('true');\n }\n } else if (actionSettings?.settings?.notes?.required) {\n if (!notes) {\n requiredActions.push('true');\n }\n } else if (actionSettings?.settings?.assignedTo?.required) {\n if (!assignedTo?.length) {\n requiredActions.push('true');\n }\n } else if (actionSettings?.settings?.attachments?.required) {\n if (!files?.length) {\n requiredActions.push('true');\n }\n }\n\n return requiredActions.length;\n };\n\n const handleOpen = (imgUrl, filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter(\n (flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video') || flop.mimetype.includes('audio')\n );\n const selectedFile = filesToOpen.find((flop) => flop.public_url === imgUrl);\n const selectedFileIndex = filesToOpen.indexOf(selectedFile);\n filesToOpen.splice(selectedFileIndex, 1);\n filesToOpen.unshift(selectedFile);\n setFilesSelected(filesToOpen);\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n };\n\n const handleSave = async () => {\n setLoading(true);\n const currentAction = {\n values: {\n ...(startDate ? { startDateTime: startDate } : {}),\n ...(endDate ? { endDateTime: endDate } : {}),\n ...(notes.value ? { notes: notes.value } : {}),\n ...(assignedTo?.length && typeof assignedTo[0]?._id ? { assignedTo } : {}),\n ...(files?.length\n ? {\n attachments: files?.map((attachment) => ({\n ...(attachment.hashId\n ? { file: attachment.hashId, tags: attachment?.tags?.map((tag) => tag?._id) || [] }\n : { _id: attachment._id }),\n })),\n }\n : {}),\n ...(watch('type') && { type: watch('type') }),\n ...(watch('subType') && { subType: watch('subType') }),\n },\n settings: {\n times: {\n required: actionSettings?.settings?.times?.required,\n visible: actionSettings?.settings?.times?.visible,\n },\n notes: {\n required: actionSettings?.settings?.notes?.required,\n visible: actionSettings?.settings?.notes?.visible,\n },\n assignedTo: {\n required: actionSettings?.settings?.assignedTo?.required,\n visible: actionSettings?.settings?.assignedTo?.visible,\n },\n attachments: {\n visible: actionSettings?.settings?.attachments?.visible,\n required: actionSettings?.settings?.attachments?.required,\n },\n },\n };\n try {\n await onSaveActions(currentAction);\n } catch (error) {\n toast(error?.response?.data?.message);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n \n \n \n \n \n \n tp.value)}\n required={false}\n />\n \n \n \n \n \n {actionSettings?.settings?.times?.visible && (\n \n \n \n Start Date Time:{' '}\n {actionSettings?.settings?.times?.required && *}\n \n\n setStartDate(date)}\n dateToCompare={endDate}\n />\n \n \n \n End Date Time:{' '}\n {actionSettings?.settings?.times?.required && *}\n \n setEndDate(date)}\n dateToCompare={startDate}\n disabled={!startDate}\n />\n \n \n )}\n {actionSettings?.settings?.assignedTo?.visible && (\n \n \n \n )}\n \n {actionSettings?.settings?.notes?.visible && (\n \n \n Notes {actionSettings?.settings?.notes?.required && *}\n \n {\n notes.onChange({ target: { value: newValue } });\n }}\n />\n \n )}\n {actionSettings?.settings?.attachments?.visible && (\n \n \n \n Attachments{' '}\n {actionSettings?.settings?.attachments?.required && *}\n \n setOpenModalUploadFile(true)} style={{ cursor: 'pointer' }}>\n {' '}\n New attachments\n \n \n \n {files?.map((file) => (\n onDeleteFile(file)}\n onClickPreview={() => {\n if (file.mimetype.includes('pdf')) {\n const link = document.createElement('a');\n link.href = file.preview_url;\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n return;\n }\n handleOpen(file.public_url, files);\n }}\n />\n ))}\n \n \n )}\n \n \n {loading ? : 'Create Action'}\n \n \n \n \n ({\n download_url: file.download_url,\n name: '',\n mimetype: file.mimetype,\n public_url: file.public_url,\n tags: file?.tags || [],\n })) || [],\n }}\n loadingOpenFiles={loadingOpenFiles}\n setLoadingOpenFiles={setLoadingOpenFiles}\n />\n setOpenModalUploadFile(false)}\n onConfirm={(_, _files) => {\n setFiles((prevFiles) => {\n const newFiles = [...prevFiles, ..._files];\n\n return newFiles;\n });\n setOpenModalUploadFile(false);\n }}\n />\n \n );\n}\n\nActionCard.propTypes = {\n users: PropTypes.array,\n onSaveActions: PropTypes.func.isRequired,\n organizationId: PropTypes.number.isRequired,\n actionSettings: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport { Box, Button, Typography, makeStyles } from '@material-ui/core';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { toast } from '../../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport DnDArea from '../../../components/DnDArea';\nimport DnDItem from '../../../components/DnDItem';\nimport ModalPopUp from '../../../components/ModaPopupl';\nimport useUsers from '../../../hooks/useUsers';\nimport { updateProjectActions } from '../../../services/unarmed';\nimport ActionItem from '../components/ActionItem';\nimport OverviewItem from '../components/OverviewItem';\nimport RelatedProjects from '../components/RelatedProjects';\nimport TotalTimeSpent from '../components/TotalTimeSpent';\nimport ActionCard from '../components/ActionCard';\nimport { BoxContainer } from '../../../styles/GlobalStyles';\nimport Card, { useCardStyles } from '../../../components/Card';\nimport Btn from '../../../components/Btn';\n\nconst getTotalTimeSpent = (actions) => {\n let timeSpentSoFar = 0;\n if (!actions?.length) return timeSpentSoFar;\n actions.forEach((action) => {\n if (action?.values?.timeSpent) {\n timeSpentSoFar += action.values?.timeSpent;\n }\n });\n\n return timeSpentSoFar;\n};\n\n// {\n// \"times\": {\n// \"visible\": false,\n// \"requiredValue\": false\n// },\n// \"notes\": {\n// \"visible\": false,\n// \"requiredValue\": false\n// },\n// \"assignedTo\": {\n// \"visible\": false,\n// \"requiredValue\": false\n// },\n// \"attachments\": {\n// \"visible\": false,\n// \"requiredValue\": false\n// },\n// \"_id\": \"638e8a901ed540001201f431\",\n// \"name\": \"Template Name\"\n// }\n\nconst overviewTemplate = {\n actionName: 'Template Name',\n overviewFeatures: [\n {\n label: 'Times:',\n visible: false,\n required: false,\n key: 'times',\n },\n {\n label: 'Notes:',\n visible: false,\n required: false,\n key: 'notes',\n },\n {\n label: 'Assigned To:',\n visible: false,\n required: false,\n key: 'assignedTo',\n },\n {\n label: 'Attachments:',\n visible: false,\n required: false,\n key: 'attachments',\n },\n ],\n};\n\nconst useStyles = makeStyles({\n buttonRoot: {\n minWidth: 0,\n },\n buttonText: {\n padding: '0px 2px',\n },\n});\n\nexport default function Actions({\n relatedProjects,\n id,\n organizationId,\n statusOptions,\n refetch,\n tabValue,\n actions,\n setActions,\n organization,\n}) {\n const [users] = useUsers();\n const [openModal, setOpenModal] = React.useState(false);\n const [selectedIndex, setSelectedIndex] = React.useState(null);\n const [actionTemplate, setActionTemplate] = React.useState(overviewTemplate);\n const [loading, setLoading] = React.useState(false);\n const [shouldResetHashFiles, setShouldResetHashFiles] = React.useState(false);\n\n const classes = useCardStyles();\n const actionsClasses = useStyles();\n\n const getActionsRequired = () => {\n const requiredActions = [];\n actions.forEach((action) => {\n if (action?.times?.required) {\n if (!action?.values?.startDateTime || !action?.values?.endDateTime) {\n requiredActions.push(action);\n }\n } else if (action?.notes?.required) {\n if (!action?.values?.notes) {\n requiredActions.push(action);\n }\n } else if (action?.assignedTo?.required) {\n if (!action?.values?.assignedTo?.length && Object.keys(action?.values?.assignedTo?.[0] || {})?.length) {\n requiredActions.push(action);\n }\n } else if (action?.attachments?.required) {\n if (!action?.values?.attachments?.length) {\n requiredActions.push(action);\n }\n }\n });\n\n return requiredActions.length;\n };\n\n const handleAddAction = () => {\n const newAction = {\n times: {\n visible: actionTemplate?.overviewFeatures?.[0]?.visible,\n required: actionTemplate?.overviewFeatures?.[0]?.required,\n },\n notes: {\n visible: actionTemplate?.overviewFeatures?.[1]?.visible,\n required: actionTemplate?.overviewFeatures?.[1]?.required,\n },\n assignedTo: {\n visible: actionTemplate?.overviewFeatures?.[2]?.visible,\n required: actionTemplate?.overviewFeatures?.[2]?.required,\n },\n attachments: {\n visible: actionTemplate?.overviewFeatures?.[3]?.visible,\n required: actionTemplate?.overviewFeatures?.[3]?.required,\n },\n name: actionTemplate?.actionName,\n values: {\n startDateTime: null,\n endDateTime: null,\n status: '',\n assignedTo: [],\n notes: '',\n attachments: [],\n },\n };\n\n if (selectedIndex !== null) {\n setActions((prevState) => {\n const newState = [...prevState];\n newState.splice(selectedIndex + 1, 0, newAction);\n return newState;\n });\n } else {\n setActions((prevState) => [...prevState, newAction]);\n }\n setActionTemplate(overviewTemplate);\n setOpenModal(false);\n setSelectedIndex(null);\n };\n\n const onSaveActions = async (upcomingAction = null) => {\n setLoading(true);\n try {\n const actionsToEndpoint = actions.map((action) => {\n const { values, name, assignedTo, attachments, notes, times } = action;\n\n const currentAction = {\n name,\n ...(action?._id ? { _id: action._id } : {}),\n values: {\n ...(values.startDateTime ? { startDateTime: values.startDateTime } : {}),\n ...(values.endDateTime ? { endDateTime: values.endDateTime } : {}),\n ...(values.status ? { status: values.status } : {}),\n ...(values.notes ? { notes: values.notes } : {}),\n ...(values.assignedTo?.length\n ? {\n assignedTo:\n values?.assignedTo?.map((assigned) => (typeof assigned === 'string' ? assigned : assigned?._id)) ||\n [],\n }\n : {}),\n ...(values.type && { type: values.type }),\n ...(values.subType && { subType: values.subType }),\n ...(values.attachments?.length\n ? {\n attachments: values.attachments?.map((attachment) => ({\n ...(attachment.hashId\n ? { file: attachment.hashId, tags: attachment?.tags?.map((tag) => tag?._id) || [] }\n : { _id: attachment._id }),\n })),\n }\n : {}),\n },\n settings: {\n times,\n notes,\n assignedTo,\n attachments,\n },\n };\n return currentAction;\n });\n\n await updateProjectActions(id, [...actionsToEndpoint, ...(upcomingAction ? [upcomingAction] : [])]);\n setShouldResetHashFiles(true);\n refetch();\n toast.success('Actions updated successfully');\n } catch (error) {\n toast.error(\n error.response?.data?.error?.details?.[0]?.message || error.response?.data?.message || 'Something went wrong'\n );\n } finally {\n setLoading(false);\n }\n };\n\n const handleChangeActionValues = (index, prop, value) => {\n const actionsCopy = [...actions];\n const action = { ...actionsCopy[index] };\n action.values[prop] = value;\n actionsCopy[index] = action;\n setActions(actionsCopy);\n };\n\n const onRemoveAction = (index) => {\n setActions((prevState) => {\n const newState = [...prevState];\n newState.splice(index, 1);\n return newState;\n });\n };\n\n const onChangeActionFeatures = (e, prop, subProp) => {\n const { checked } = e.target;\n const features = [...actionTemplate.overviewFeatures];\n const feature = { ...features.find((ft) => ft.label === prop) };\n const featureIndex = features.findIndex((ft) => ft.label === prop);\n if (subProp === 'visible' && !checked) {\n feature[subProp] = checked;\n feature.required = false;\n } else {\n feature[subProp] = checked;\n }\n\n features[featureIndex] = feature;\n\n setActionTemplate((prevState) => ({\n ...prevState,\n overviewFeatures: features,\n }));\n };\n\n const renderer = (moveItem) =>\n actions?.map((action, index) => (\n \n \n {\n onRemoveAction(index);\n toast.success('Action removed successfully');\n }}\n actionSettings={organization?.project?.actions}\n handleChangeActionValues={handleChangeActionValues}\n shouldResetHashFiles={shouldResetHashFiles}\n setShouldResetHashFiles={setShouldResetHashFiles}\n tabValue={tabValue}\n />\n \n \n ));\n\n return (\n \n \n \n Actions\n \n \n }\n >\n \n {actions.length === 0 && (\n \n There is not any actions added yet\n \n )}\n \n \n \n {actions.length ? (\n \n onSaveActions(null)}\n disabled={getActionsRequired() || loading}\n classes={{ root: actionsClasses.button, text: actionsClasses.buttonText }}\n />\n \n ) : null}\n {/* {!actions.length ? setOpenModal(true)} /> : null} */}\n \n \n \n \n \n \n \n \n \n\n \n {\n setOpenModal(false);\n setActionTemplate(overviewTemplate);\n }}\n color=\"primary\"\n style={{ color: '#3B70FE' }}\n >\n CANCEL\n \n \n \n \n \n );\n}\n\nActions.propTypes = {\n relatedProjects: PropTypes.array.isRequired,\n id: PropTypes.string.isRequired,\n organizationId: PropTypes.string.isRequired,\n statusOptions: PropTypes.array.isRequired,\n refetch: PropTypes.func.isRequired,\n tabValue: PropTypes.number.isRequired,\n actions: PropTypes.array.isRequired,\n setActions: PropTypes.func.isRequired,\n organization: PropTypes.object.isRequired,\n};\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\nimport ModalButtons from './components/ModalButtons';\n\nexport default function ConfirmationPopup({\n handleCancel,\n handleSubmit,\n loading,\n}) {\n return (\n <>\n \n Are you sure you want to leave?\n \n \n There are some changes in overview that may not being reflect it in\n actions\n \n false}\n loading={loading}\n buttonText=\"Leave current tab\"\n />\n \n );\n}\n","import { Box, Typography, makeStyles } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { downloadImage } from '../../../utils/libs';\nimport LogIcon from '../../../components/LogIcon';\nimport HTMLContent from '../../../components/HTMLContent';\nimport Tags from '../../../components/Tags';\nimport CarouselModal from '../../../components/CarouselModal';\nimport ArchivedImage from '../../../components/ArchivedImage';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport TimeLineItemNotes from '../../Activity/TimeLineItemNotes';\nimport { CustomModalDelete } from '../../../components/CustomModalDelete';\nimport { Context } from '../../../Context';\nimport { getProjectInfo, onArchiveNoteProject, onUnArchiveNoteProject } from '../../../services/unarmed';\nimport useOrganization from '../../../hooks/useOrganization';\n\nconst sortByCreatedAt = (data, order = 'desc') => {\n return data.sort((x, y) => {\n const dateX = new Date(x.createdAt).getTime();\n const dateY = new Date(y.createdAt).getTime();\n return order === 'asc' ? dateX - dateY : dateY - dateX;\n });\n};\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n imgModal: {\n objectFit: 'contain',\n maxWidth: 600,\n maxHeight: 400,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n emphasis: {\n color: '#4b7bff',\n textTransform: 'capitalize',\n fontWeight: '600',\n },\n noteLogContainer: {\n position: 'relative',\n padding: '10px 20px',\n borderBottom: '1px solid #e0e0e0',\n '&:hover $deleteIcon': {\n display: 'block',\n },\n },\n deleteIcon: {\n display: 'none',\n position: 'absolute',\n top: '10px',\n right: '10px',\n fontSize: '24px',\n color: '#848484',\n cursor: 'pointer',\n transition: 'color 0.3s ease',\n '&:hover': {\n color: '#ff4d4d',\n },\n },\n}));\n\nfunction NoteLog({ createdAt, attachments = [], text, user, userInfo, createdBy, handleRestoreClick,\n archivedDate,\n comment,\n handleDeleteNote }) {\n const { myUser } = useContext(Context);\n const classes = useStyles();\n const { organization } = useOrganization();\n const [openDelete, setOpenDelete] = useState(false)\n const [open, setOpen] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n const [canDelete, setCanDelete] = useState(false);\n\n useEffect(() => {\n setCanDelete((\n myUser.role === 'admin' ||\n organization?.permissions?.[myUser?.role]?.canDeleteNotesProjects !== 0 ||\n myUser?._id.toString() === user?._id.toString()\n ));\n }, [user, organization]);\n\n const handleOpen = (filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter((flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video'));\n setFilesSelected({ files: filesToOpen, selectedFileIndex: 0 });\n setLoadingOpenFiles(filesToOpen.map(() => ({ loading: false })));\n };\n\n const handleClickEvents = (fl) => ({\n onDownload: () => downloadImage(fl.download_url, fl.name),\n onClick: () => handleOpen(attachments),\n });\n\n const renderName = (wholeName = false) => {\n if (user && !user?.photo?.public_url && !wholeName) {\n return `${user?.email[0]?.toUpperCase()} ${user?.email[1]?.toUpperCase()}`;\n }\n if (user && wholeName) {\n return user?.email;\n }\n\n if (!user && userInfo && !wholeName) {\n return `${userInfo?.email[0]?.toUpperCase()} ${userInfo?.email[1]?.toUpperCase()}`;\n }\n if (!user && !userInfo && !wholeName && createdBy) {\n return `${createdBy?.firstName[0]?.toUpperCase()} ${createdBy?.lastName[1]?.toUpperCase()}`;\n }\n if (!user && userInfo && wholeName) {\n return userInfo?.email;\n }\n if (!user && !userInfo && wholeName && createdBy) {\n return `${createdBy?.firstName} ${createdBy?.lastName}`;\n }\n\n if (!user && !userInfo && !wholeName) {\n return 'DU';\n }\n if (!user && !userInfo && wholeName) {\n return 'Deleted User';\n }\n };\n\n const renderLog = () => {\n const hasFiles = attachments.length > 0;\n const hasComment = !!text;\n const hasBoth = hasFiles && hasComment;\n return (\n <>\n {renderName(true)}{' '}\n {hasComment && (\n <>\n made a new comment\n \n )}\n {hasBoth && ' and '}\n {hasFiles && (\n <>\n uploaded {attachments.length} file(s)\n \n )}{' '}\n to the project\n {hasComment && (\n <>\n \n \n )}\n {hasFiles && (\n <>\n \n {attachments.map((file, index) => {\n const showPreview = !file?.archivedDate;\n return (\n
\n \n \n {showPreview ? (\n \n ) : (\n \n )}\n \n {file.name}\n \n \n
\n );\n })}\n
\n \n )}\n \n );\n };\n\n return (\n \n onEditClick({ _id, comment })}\n onDeleteClick={() => setOpenDelete(true)}\n editing={false}\n avatar={`${createdBy?.firstName[0]}${createdBy?.lastName[0]}`}\n >\n {renderLog()}\n\n setOpenDelete(false)}\n fileName={comment}\n onConfirm={handleDeleteNote}\n />\n \n \n );\n}\n\nNoteLog.propTypes = {\n createdAt: PropTypes.instanceOf(Date).isRequired,\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n mimetype: PropTypes.string,\n archivedDate: PropTypes.string,\n _id: PropTypes.string.isRequired,\n })\n ),\n text: PropTypes.string.isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n email: PropTypes.string,\n name: PropTypes.string,\n photo: PropTypes.shape({\n public_url: PropTypes.string,\n }),\n }).isRequired,\n userInfo: PropTypes.object,\n createdBy: PropTypes.shape({\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n _id: PropTypes.string,\n }).isRequired,\n};\n\nexport default function ProjectNoteLogs({ noteLogs, sortOrder = 'desc', archivedOnly , project}) {\n const [notes, setNotes] = useState([])\n const [notesShow, setNotesShow] = useState([]);\n\n\n useEffect(() => {\n if (noteLogs?.length) {\n setNotes(sortByCreatedAt(noteLogs, sortOrder));\n }\n }, [noteLogs, sortOrder]);\n\n useEffect(() => {\n if(archivedOnly) {\n const newLogs = notes.filter(log => log.hasOwnProperty('archivedDate') && log.archivedDate !== null);\n setNotesShow(newLogs)\n }else{\n const newLogsWithoutArchivedDate = notes.filter(log => !log.hasOwnProperty('archivedDate'));\n setNotesShow(newLogsWithoutArchivedDate)\n }\n\n }, [notes, archivedOnly])\n\n return (\n \n {!notesShow?.length ? (\n No notes added to this project\n ) : null}\n {notesShow?.map(({ _id, createdAt, attachments, text, user, userInfo, createdBy, archivedDate }, i) => (\n {\n await onArchiveNoteProject(project, _id)\n const { data } = await getProjectInfo(project);\n setNotes(sortByCreatedAt(data.notes, sortOrder));\n }}\n handleRestoreClick={async() => {\n await onUnArchiveNoteProject(project, _id)\n const { data } = await getProjectInfo(project);\n setNotes(sortByCreatedAt(data.notes, sortOrder));\n }}\n key={_id}\n createdAt={createdAt}\n attachments={attachments}\n text={text}\n user={user || createdBy}\n userInfo={userInfo}\n createdBy={createdBy}\n />\n ))}\n \n );\n}\n\nProjectNoteLogs.propTypes = {\n noteLogs: PropTypes.arrayOf(\n PropTypes.shape({\n createdAt: PropTypes.string.isRequired,\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n mimetype: PropTypes.string,\n archivedDate: PropTypes.string,\n _id: PropTypes.string.isRequired,\n })\n ),\n text: PropTypes.string.isRequired,\n user: PropTypes.object,\n userInfo: PropTypes.object,\n createdBy: PropTypes.shape({\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n }).isRequired,\n })\n ).isRequired,\n sortOrder: PropTypes.string,\n};\n\nconst PreviewImg = styled.div`\n height: 100px;\n position: relative;\n overflow: hidden;\n margin-right: 10px;\n\n & div:hover {\n opacity: 1;\n }\n`;","import { Box, FormControlLabel, Typography } from '@material-ui/core';\nimport { CustomSwitch } from '../../../formEngine/components/WrapperComponent';\nimport React, { useState, useEffect, useContext } from 'react';\nimport { Context } from '../../../Context';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../../components/Notification';\nimport { createProjectNote, onArchiveNoteProject, onUnArchiveNoteProject, updateNotesSortOrder } from '../../../services/unarmed';\nimport CaseComment from '../../CaseDetails/CaseComment';\nimport ProjectNoteLogs from '../components/ProjectNoteLogs';\nimport Card from '../../../components/Card';\n\nconst sortByCreatedAt = (data, order = 'desc') => {\n return data.sort((x, y) => {\n const dateX = new Date(x.createdAt).getTime();\n const dateY = new Date(y.createdAt).getTime();\n return order === 'asc' ? dateX - dateY : dateY - dateX;\n });\n};\n\nexport default function ProjectNotes({ id, organizationId, logs, refetch }) {\n const { myUser } = useContext(Context);\n\n const initialSortOrder = localStorage.getItem('projectNotesSortOrder') || (myUser?.notesSortOrderDesc?.projects ? 'desc' : 'asc');\n\n const [archivedOnly, setArchivedOnly] = useState(false);\n const [sortOrder, setSortOrder] = useState(initialSortOrder);\n const [sortedLogs, setSortedLogs] = useState([]);\n\n const toggleSortOrder = () => {\n const newSortOrder = sortOrder === 'asc' ? 'desc' : 'asc';\n const updatedSortOrder = newSortOrder === 'desc';\n\n updateNotesSortOrder(myUser?._id, 'projects', updatedSortOrder)\n .then(() => {\n setSortOrder(newSortOrder);\n localStorage.setItem('projectNotesSortOrder', newSortOrder);\n })\n .catch((error) => {\n toast.error('Failed to update sort order');\n });\n };\n\n\n const handleArchiveOnly = () => {\n setArchivedOnly(!archivedOnly)\n }\n\n useEffect(() => {\n setSortedLogs(sortByCreatedAt([...logs], sortOrder));\n }, [sortOrder, logs]);\n\n return (\n \n \n \n Notes\n \n \n \n }\n label={sortOrder === 'desc' ? 'Most Recent' : 'Oldest'}\n labelPlacement=\"end\"\n style={{ marginLeft: '500px' }}\n />\n }\n labelPlacement=\"end\"\n label=\"Archived only\"\n />\n \n \n }\n >\n \n \n {\n await createProjectNote(id, { text, attachments: files });\n refetch();\n resetValues();\n }}\n />\n \n );\n}\n\nProjectNotes.propTypes = {\n id: PropTypes.string.isRequired,\n organizationId: PropTypes.string.isRequired,\n logs: PropTypes.arrayOf(\n PropTypes.shape({\n createdAt: PropTypes.string.isRequired,\n })\n ).isRequired,\n refetch: PropTypes.func.isRequired,\n};\n","import { Box, Typography, CircularProgress } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport FileDownload from 'js-file-download';\nimport { toast } from '../../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport {\n addProjectAttachments,\n archiveProjectAttachment,\n getProjectFileAttachments,\n getProjectFileAttachmentsToShow,\n unarchiveProjectAttachment,\n updateProjectsAttachmentTags,\n} from '../../../services/unarmed';\nimport ImageDownload from '../../../components/ImageDownload';\nimport { handleOpenPopupFiles } from '../../../utils';\nimport CarouselModal from '../../../components/CarouselModal';\nimport ModalUploadFile from '../../../components/ModalUploadFile';\nimport Tags from '../../../components/Tags';\nimport TagsFilters from '../../../components/TagsFilters';\nimport { BoxLeftContainer } from '../../../styles/GlobalStyles';\n\nexport default function ProjectAttachments({ id, organizationId, projectName, refetch }) {\n const [attachments, setAttachments] = useState([]);\n const [attachmentsFiltered, setAttachmentsFiltered] = useState([]);\n const [showAttachmentsFiltered, setShowAttachmentsFiltered] = useState(false);\n const [archivedOnly, setArchivedOnly] = useState(false);\n const [tags, setTags] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const [loadingDownload, setLoadingDonwload] = useState('idle');\n const [open, setOpen] = React.useState(false);\n const [openPopupFiles, setOpenPopupFiles] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const getProjectAttachments = async () => {\n setLoading(true);\n try {\n const { data } = await getProjectFileAttachmentsToShow(id);\n const _attachments = data.sort((x, y) => new Date(y.createdAt).getTime() - new Date(x.createdAt).getTime());\n setAttachments(_attachments);\n filterAttachments(_attachments, tags, archivedOnly);\n } catch (error) {\n toast.error(error?.message);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (id) {\n getProjectAttachments();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id]);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const onDownloadAll = async () => {\n setLoadingDonwload('pending');\n getProjectFileAttachments(id)\n .then(({ data }) => {\n FileDownload(data, `${projectName}-project-attachments.zip`);\n setLoadingDonwload('resolved');\n })\n .catch((err) => {\n setLoadingDonwload('rejected');\n });\n };\n\n const onSubmit = async (e, files) => {\n e.preventDefault();\n\n try {\n const filesData = files.map((file) => ({\n file: file.hashId,\n tags: file?.tags?.map((tag) => tag?._id) || [],\n }));\n\n setLoading(true);\n await addProjectAttachments(id, { attachments: filesData });\n await getProjectAttachments();\n\n setOpen(false);\n // setIsRefetch((prevState) => !prevState);\n } catch (error) {\n toast.error(error?.response?.data?.message);\n toast.error(error?.response?.data?.error?.details[0]?.message);\n } finally {\n setLoading(false);\n }\n };\n\n const filterAttachments = (attachments, tags, archivedOnly) => {\n setAttachmentsFiltered(\n attachments\n .filter((attachment) => {\n if (!tags?.length) {\n return true;\n }\n return attachment.tags.map((tag) => tag?._id || tag).find((tag) => tags.indexOf(tag) !== -1);\n })\n .filter((attachment) => (archivedOnly ? !!attachment.archivedDate : !attachment.archivedDate))\n );\n };\n\n const attachmentsToShow = showAttachmentsFiltered ? attachmentsFiltered : attachments;\n\n return (\n \n {\n //if (tags.length > 0) {\n setTags(tags);\n setShowAttachmentsFiltered(true);\n //} else {\n // setShowAttachmentsFiltered(false);\n //}\n\n filterAttachments(attachments, tags, archivedOnly);\n }}\n archivedOnly={archivedOnly}\n setArchivedOnly={setArchivedOnly}\n />\n \n \n \n \n {' '}\n New attachments\n \n {attachments?.length && !archivedOnly ? (\n \n {loadingDownload === 'pending' && (\n \n )}\n \n Download all\n \n \n ) : null}\n \n \n {loading && }\n {!attachmentsToShow.length && !loading && (\n No attachments added to this project\n )}\n \n {attachmentsToShow?.map((file, i) => (\n
\n {\n if (file?.mimetype?.includes('pdf')) {\n const link = document.createElement('a');\n link.href = file.preview_url;\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n } else if (\n file?.mimetype?.includes('audio') ||\n file?.mimetype?.includes('video') ||\n file?.mimetype?.includes('image')\n ) {\n handleOpenPopupFiles(\n file.url,\n attachmentsToShow,\n setOpenPopupFiles,\n setFilesSelected,\n setLoadingOpenFiles\n );\n }\n }}\n restorable={archivedOnly && (file?.archivableByUser ?? true)}\n deletable={!archivedOnly && (file?.archivableByUser ?? true)}\n downloadable={!archivedOnly}\n entityId={id}\n id={file._id}\n onDeleteFile={async (entityId, id) => {\n await archiveProjectAttachment(entityId, id);\n refetch();\n getProjectAttachments();\n }}\n onRestoreFile={async (entityId, id) => {\n await unarchiveProjectAttachment(entityId, id);\n refetch();\n getProjectAttachments();\n }}\n >\n {\n updateProjectsAttachmentTags(id, file._id, {\n tags: [...(file?.tags?.map((_tag) => _tag?._id) || []), tag?._id],\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: [...(_attachment?.tags || []), tag],\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n withAddBtn={!archivedOnly}\n canRemove={!archivedOnly}\n onClickRemove={(tag) => {\n updateProjectsAttachmentTags(id, file._id, {\n tags: file?.tags.map((_tag) => _tag?._id).filter((_tag) => _tag !== tag?._id),\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: _attachment?.tags?.filter((_tag) => _tag?._id !== tag?._id),\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n />\n \n
\n ))}\n setOpen(false)}\n organizationId={organizationId}\n />\n \n
\n );\n}\n\nProjectAttachments.propTypes = {\n id: PropTypes.number.isRequired,\n organizationId: PropTypes.number.isRequired,\n projectName: PropTypes.string.isRequired,\n};\n","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React from 'react';\nimport moment from 'moment';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\n\nimport { downloadImage } from '../../../utils/libs';\nimport { validateIsoDate } from '../../../utils';\nimport LogIcon from '../../../components/LogIcon';\nimport TimeLineItem from '../../Activity/TimeLineItem';\nimport HTMLContent from '../../../components/HTMLContent';\nimport CarouselModal from '../../../components/CarouselModal';\nimport Tag from '../../../components/Tag';\nimport ArchivedImage from '../../../components/ArchivedImage';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n imgModal: {\n objectFit: 'contain',\n maxWidth: 600,\n maxHeight: 400,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n emphasis: {\n color: '#4b7bff',\n textTransform: 'capitalize',\n fontWeight: '600',\n },\n lightEmphasis: { color: '#2E66FE', fontWeight: '500' },\n}));\n\nconst getActionLabel = (key) => {\n if (key === 'startDateTime') {\n return 'Start Date Time';\n }\n if (key === 'endDateTime') {\n return 'End Date Time';\n }\n\n if (key === 'notes') {\n return 'Notes';\n }\n\n if (key === 'description') {\n return 'Description';\n }\n if (key === 'status') {\n return 'Status';\n }\n};\n\nconst ProjectLog = ({ data, type, createdAt }) => {\n const classes = useStyles();\n const {\n user,\n project,\n changes,\n action,\n newStatus,\n oldStatus,\n assignedUser,\n newSubType,\n oldSubType,\n newType,\n oldType,\n unassignedUser,\n project1,\n project2,\n note,\n projectTemplate,\n files,\n removedProject,\n } = data;\n\n const [open, setOpen] = React.useState(false);\n\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const handleOpen = (filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter((flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video'));\n setFilesSelected({ files: filesToOpen, selectedFileIndex: 0 });\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n };\n\n const stripHTML = (str) => {\n if (!str) return '';\n return str.replace(/<\\/?[^>]+(>|$)/g, '');\n };\n\n const handleClickEvents = (fl) => ({\n onDownload: () => downloadImage(fl.download_url, fl.name),\n onClick: () => handleOpen(files),\n });\n\n const renderText = () => {\n if (type === 'PROJECT_CONTACT_ASSIGNED') {\n return (\n \n {user?.email} has assigned contact{' '}\n \n {data?.contact?.email}\n \n \n );\n }\n\n if (type === 'PROJECT_CONTACT_DELETED') {\n return (\n \n {user?.email} has removed contact{' '}\n {data?.contact?.email}\n \n );\n }\n\n if (type === 'PROJECT_FILE_UPLOADED_TAGS_ADDED') {\n return (\n \n {user?.email} has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n to a new attachment: {data?.file?.name}{' '}\n \n );\n }\n\n if (type === 'PROJECT_ACTION_ATTACHMENT_TAGS_ADDED') {\n return (\n \n {user?.email} has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment: {data?.file?.name} to an action\n \n );\n }\n\n if (type === 'PROJECT_NOTE_TAGS_ADDED') {\n return (\n \n {user?.email} has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n to note\n \n );\n }\n\n if (type === 'PROJECT_ATTACHMENT_TAGS_ADDED') {\n return (\n \n {user?.email} has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment: {data?.file?.name}\n \n );\n }\n\n if (type === 'PROJECT_ATTACHMENT_TAGS_DELETE') {\n return (\n \n {data?.user?.email} has removed {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n from attachment: {data?.file && file name}\n \n );\n }\n\n if (type === 'PROJECT_VIEWED') {\n return (\n \n {user?.email} viewed project.\n \n );\n }\n\n if (type === 'PROJECT_NOTE_UNARCHIVED') {\n return (\n \n {user?.email} has unarchived the note\n {data?.note?.text} on the project with tracking\n number{' '}\n {data?.project?.name}\n\n \n );\n }\n\n if (type === 'PROJECT_NOTE_ARCHIVED') {\n return (\n \n {user?.email} has archived the note\n {data?.comment?.text} on the project with tracking\n number{' '}\n {stripHTML(data?.project?.name)}\n \n );\n }\n if (type === 'PROJECT_ACTIONS_ADDED') {\n return (\n \n {user?.email} added new action\n \n );\n }\n if (type === 'PROJECT_ACTIONS_ASSIGNED') {\n return (\n \n {user?.email} assigned new user:{' '}\n \n {assignedUser?.firstName} {assignedUser?.lastName}\n {' '}\n to an action\n \n );\n }\n if (type === 'PROJECT_ACTIONS_UNASSIGNED') {\n return (\n \n {user?.email} unassigned new user:{' '}\n \n {unassignedUser?.firstName} {unassignedUser?.lastName}\n {' '}\n to action\n \n );\n }\n if (type === 'PROJECT_ACTIONS_REMOVED') {\n return (\n \n {user?.email} removed an action\n \n );\n }\n if (type === 'PROJECT_TEMPLATE_SAVED') {\n return (\n \n {user?.email} saved template with name.{' '}\n {projectTemplate?.name}\n \n );\n }\n if (type === 'PROJECT_FILE_UPLOADED') {\n return (\n \n {user?.email} has added attachment(s) to project:{' '}\n {project?.name}\n \n );\n }\n if (type === 'PROJECT_RELATED') {\n return (\n \n {user?.email} has related the project{' '}\n {project1?.name} with project{' '}\n {project2?.name}\n \n );\n }\n if (type === 'PROJECT_REMOVED_RELATED') {\n return (\n \n {user?.email} has unrelated the project{' '}\n {removedProject?.name}{' '}\n \n );\n }\n if (type === 'PROJECT_RECOMMENDATIONS_DELETED') {\n return (\n \n {user?.email} has deleted a recommendation from project:{' '}\n {project?.name}\n \n );\n }\n\n if (type === 'PROJECT_NOTE_FILE') {\n const hasFiles = files.length > 0;\n const hasComment = !!note;\n const hasBoth = hasFiles && hasComment;\n return (\n <>\n {user.email}{' '}\n {hasComment && (\n <>\n made a new comment\n \n )}\n {hasBoth && ' and '}\n {hasFiles && (\n <>\n uploaded {files.length} file(s)\n \n )}{' '}\n to the project\n {hasComment && (\n <>\n
\n \n \n )}\n {hasFiles && (\n <>\n \n {files.map((file, index) => {\n const showPreview = !file?.archivedDate;\n return (\n <>\n \n \n {showPreview ? (\n \n ) : (\n \n )}\n \n {file.name}\n \n \n );\n })}\n \n \n )}\n \n );\n }\n if (type === 'PROJECT_ACTION_ATTACHMENT') {\n return (\n \n {user?.email} has added attachment(s) to action {action} in the project:{' '}\n {project?.name}\n \n );\n }\n if (type === 'PROJECT_ASSIGNED') {\n return (\n \n {user?.email} Assigned{' '}\n \n {assignedUser?.firstName} {assignedUser?.lastName}\n {' '}\n to project.\n \n );\n }\n if (type === 'PROJECT_UNASSIGNED') {\n return (\n \n {user?.email} Removed{' '}\n \n {unassignedUser?.firstName} {unassignedUser?.lastName}\n {' '}\n to project.\n \n );\n }\n if (type === 'PROJECT_CREATED') {\n return (\n \n {user?.email} created project: {project?.name}\n \n );\n }\n if (type === 'PROJECT_STATUS_CHANGED') {\n return (\n \n {user?.email} has changed the project status from{' '}\n {oldStatus} to{' '}\n {newStatus}\n \n );\n }\n if (type === 'PROJECT_SUBTYPE_CHANGED') {\n return (\n \n {user?.email} has changed the project Subtype from{' '}\n {oldSubType} to{' '}\n {newSubType}\n \n );\n }\n if (type === 'PROJECT_TYPE_CHANGED') {\n return (\n \n {user?.email} has changed the project Type from{' '}\n {oldType} to{' '}\n {newType}\n \n );\n }\n if (type === 'PROJECT_RECOMMENDATIONS_ADDED') {\n return (\n \n {user?.email} created a new recommendation\n \n );\n }\n if (type === 'PROJECT_RECOMMENDATIONS_EDITED') {\n return changes?.map((change, index) => {\n const isLongText = change.key === 'description' || change.key === 'notes';\n\n if (isLongText) {\n return (\n \n {user.email} has {!change?.oldValue ? 'added' : 'changed'} {getActionLabel(change?.key)}{' '}\n in recommendation\n {!change?.oldValue ? (\n \n ) : (\n <>\n {' from: '}\n \n {' to: '}\n \n \n )}\n \n );\n }\n return (\n \n {user.email} has {!change?.oldValue ? 'added' : 'changed'}{' '}\n {!change?.oldValue ? (\n <>\n \n {validateIsoDate(change.newValue) ? moment(change.newValue).format('DD-MM-YYYY') : change.newValue}\n {' '}\n to {getActionLabel(change?.key)} in recommendation\n \n ) : (\n <>\n {getActionLabel(change?.key)} to recommendations{' '}\n \n {validateIsoDate(change.oldValue) ? moment(change.oldValue).format('DD-MM-YYYY') : change.oldValue}\n {' '}\n to{' '}\n \n {validateIsoDate(change.newValue) ? moment(change.newValue).format('DD-MM-YYYY') : change.newValue}\n {' '}\n \n )}\n \n );\n });\n }\n if (type === 'PROJECT_ACTIONS_UPDATED') {\n return changes?.map((change, index) => {\n const isNotes = change.key === 'notes';\n if (isNotes) {\n return (\n \n {!change?.oldValue ? (\n <>\n {user.email} has added a note to action {action} in the {getActionLabel(change?.key)}{' '}\n to project {project?.name}{' '}\n \n \n ) : (\n <>\n {user.email} has changed action {action} {getActionLabel(change?.key)}\n {' for project '}\n {project?.name} {' from:'}\n \n {' to:'}\n \n \n )}\n \n );\n }\n return (\n \n {!change?.oldValue ? (\n <>\n {user.email} has added{' '}\n \n {validateIsoDate(change?.newValue?.toString())\n ? moment(change?.newValue).format('DD-MM-YYYY')\n : change?.newValue}\n {' '}\n to action {action} in the {getActionLabel(change?.key)} to project{' '}\n {project?.name}{' '}\n \n ) : (\n <>\n {user.email} has changed to action {action} {getActionLabel(change?.key)}{' '}\n {change.oldValue} to{' '}\n {change.newValue} for project{' '}\n {project?.name}{' '}\n \n )}\n \n );\n });\n }\n if (type === 'PROJECT_ATTACHMENT_ARCHIVED') {\n return (\n <>\n {user.email} has archived the file{' '}\n {data?.file?.name} on the project with name{' '}\n \n {data?.project?.name}\n \n .\n \n );\n }\n\n if (type === 'PROJECT_ATTACHMENT_UNARCHIVED') {\n return (\n <>\n {user.email} has unarchived the file{' '}\n {data?.file?.name} on the project with name{' '}\n \n {data?.project?.name}\n \n .\n \n );\n }\n };\n\n return (\n <>\n \n {renderText()}\n \n \n \n );\n};\n\nProjectLog.propTypes = {\n data: PropTypes.shape({\n tags: PropTypes.array,\n file: PropTypes.object,\n comment: PropTypes.object,\n user: PropTypes.string.isRequired,\n project: PropTypes.string.isRequired,\n changes: PropTypes.array.isRequired,\n action: PropTypes.string.isRequired,\n newStatus: PropTypes.string,\n oldStatus: PropTypes.string,\n assignedUser: PropTypes.string,\n newSubType: PropTypes.string,\n oldSubType: PropTypes.string,\n newType: PropTypes.string,\n oldType: PropTypes.string,\n unassignedUser: PropTypes.string,\n project1: PropTypes.string,\n project2: PropTypes.string,\n note: PropTypes.string,\n projectTemplate: PropTypes.string,\n files: PropTypes.array,\n removedProject: PropTypes.bool,\n contact: PropTypes.object,\n }).isRequired,\n type: PropTypes.string.isRequired,\n createdAt: PropTypes.instanceOf(Date).isRequired,\n};\n\nexport const PreviewImg = styled.div`\n height: 100px;\n position: relative;\n border-radius: 7px;\n overflow: hidden;\n margin-right: 10px;\n & div:hover {\n opacity: 1;\n }\n`;\n\nexport default ProjectLog;\n","import { Box, CircularProgress } from '@material-ui/core';\nimport React, { useEffect, useState, useRef } from 'react';\nimport { Waypoint } from 'react-waypoint';\n\nimport { getActivity } from '../../../services/unarmed';\nimport ProjectLog from '../components/ProjectLog';\nimport useNearScreen from '../../../hooks/userNearScreen';\nimport { BoxLeftContainer } from '../../../styles/GlobalStyles';\nimport Card from '../../../components/Card';\n\nexport default function History({ id }) {\n const [loading, setLoading] = useState(false);\n const [log, setLog] = useState([]);\n\n const [lastId, setLastId] = useState('');\n const [hasNextPage, setHasNextPage] = useState(true);\n\n const externalRef = useRef();\n\n const { isNearScreen } = useNearScreen({\n externalRef: loading === 'pending' ? null : externalRef,\n once: false,\n });\n\n const onGetHistory = async () => {\n try {\n setLoading(true);\n const data = await getActivity({ project: id, limit: 15, before: lastId });\n if (data.length === 0) {\n setLoading(false);\n setHasNextPage(false);\n return;\n }\n setLastId(data[data.length - 1]?._id);\n setLog((items) => [...items, ...data]);\n } catch (error) {\n console.log(error);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (id) {\n onGetHistory();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id]);\n\n return (\n \n \n \n {log.length === 0 && loading && (\n \n \n \n )}\n {log?.map((logItem, i) => (\n \n ))}\n \n
\n {isNearScreen && hasNextPage && lastId && (\n \n \n \n \n \n )}\n \n \n );\n}\n","import { Box, Button, CircularProgress, makeStyles, Typography } from '@material-ui/core';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { toast } from '../../../components/Notification';\nimport { Editor } from '@tinymce/tinymce-react';\nimport PropTypes from 'prop-types';\n\nimport DashButton from '../../../components/DashButton';\nimport DatePickerMUI from '../../../components/DatePickerMUi';\nimport { deleteRecommendation, updateRecommendation } from '../../../services/unarmed';\nimport OutlineSelect from './OutlineSelect';\nimport { TINYMCE_DEFAULT_CONFIG, TINYMCE_SCRIPT_SRC } from '../../../config/config';\nimport HTMLContent from '../../../components/HTMLContent';\n\nconst useStyles = makeStyles(() => ({\n button: {\n color: 'rgb(46, 102, 254)',\n textTransform: 'capitalize',\n },\n separator: {\n color: '#ccc',\n margin: '0 10px',\n },\n label: {\n fontSize: 14,\n color: '#000000AD',\n },\n labelDescription: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n cancelButton: {\n marginRight: 20,\n color: '#D50000',\n },\n}));\n\nconst statusOPtions = ['ACCEPTED', 'REJECTED'];\n\nconst capitalizeStatus = (status) => {\n if (status) {\n const firstCap = status.charAt(0).toUpperCase();\n return `${firstCap}${status.slice(1)}`;\n }\n\n return status;\n};\n\n/**\n * Renders a recommendation item.\n * @param {Object} props - The props of the component.\n * @param {string} props.id - The ID of the recommendation.\n * @param {Function} props.toggleEditRecommendation - Function to toggle editing mode.\n * @param {boolean} props.edit - Flag indicating whether in edit mode.\n * @param {string} props.description - The description of the recommendation.\n * @param {string} props.status - The status of the recommendation.\n * @param {string} props.notes - The notes of the recommendation.\n * @param {string} props.projectId - The ID of the project.\n * @param {Function} props.refetch - Function to refetch data.\n * @param {Date|null} props.responseDate - The response date of the recommendation.\n * @param {Date|null} props.submittedDate - The submitted date of the recommendation.\n */\nexport default function RecommendationItem({\n id,\n toggleEditRecommendation,\n edit,\n description,\n status,\n notes,\n projectId,\n refetch,\n responseDate = null,\n submittedDate = null,\n}) {\n const classes = useStyles();\n const { register, handleSubmit, control, setValue, watch } = useForm();\n const [loading, setLoading] = useState(false);\n const [loadingDelete, setLoadingDelete] = useState(false);\n const [submittedDateIn, setSubmittedDate] = useState(null);\n const [responseDateIn, setResponseDate] = useState(null);\n\n useEffect(() => {\n setValue('description', description);\n setValue('notes', notes);\n setValue('status', capitalizeStatus(status));\n setSubmittedDate(submittedDate);\n setResponseDate(responseDate);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [description, status]);\n\n const onDelete = async () => {\n try {\n setLoadingDelete(true);\n await deleteRecommendation(projectId, id);\n toast.success('Deleted recommendation successfully');\n refetch();\n } catch (error) {\n toast.error(error.message);\n } finally {\n setLoadingDelete(false);\n }\n };\n\n const saveRecommendation = async (data) => {\n try {\n setLoading(true);\n\n await updateRecommendation(projectId, id, {\n description: data.description,\n notes: data.notes,\n ...(submittedDateIn ? { submittedDate: submittedDateIn } : { submittedDate: null }),\n ...(responseDateIn ? { responseDate: responseDateIn } : { responseDate: null }),\n\n ...(data.status === 'Select an Option' ? {} : { status: data?.status?.toUpperCase() }),\n });\n toggleEditRecommendation();\n refetch();\n toast.success('Recommendation updated successfully');\n } catch (error) {\n toast.error(error.response?.data?.error?.details[0]?.message);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n {!edit ? (\n <>\n \n \n Description\n \n \n \n Status\n {status}\n \n \n Submitted Date\n \n {submittedDate && moment(submittedDate).format('MM-DD-YYYY')}\n \n \n \n Response Date\n \n {responseDate && moment(responseDate).format('MM-DD-YYYY')}\n \n \n \n Notes\n \n \n \n \n \n |\n \n \n \n ) : (\n \n \n Description:\n \n (\n {\n field.onChange({ target: { value: newValue } });\n }}\n />\n )}\n />\n \n \n \n \n \n \n Submitted Date:\n \n \n \n \n \n Response Date:\n \n \n \n \n \n Notes:\n \n (\n {\n field.onChange({ target: { value: newValue } });\n }}\n />\n )}\n />\n \n \n \n {loading ? : 'Save'}\n \n \n \n )}\n \n );\n}\n\nRecommendationItem.propTypes = {\n id: PropTypes.string.isRequired,\n toggleEditRecommendation: PropTypes.func.isRequired,\n edit: PropTypes.bool.isRequired,\n description: PropTypes.string.isRequired,\n status: PropTypes.string.isRequired,\n notes: PropTypes.string.isRequired,\n projectId: PropTypes.string.isRequired,\n refetch: PropTypes.func.isRequired,\n responseDate: PropTypes.instanceOf(Date),\n submittedDate: PropTypes.instanceOf(Date),\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Typography } from '@material-ui/core';\nimport { toast } from '../../../components/Notification';\nimport AddMore from '../../../components/AddMore';\nimport { addRecommendation } from '../../../services/unarmed';\nimport RecommendationItem from '../components/RecommendationItem';\nimport { BoxLeftContainer } from '../../../styles/GlobalStyles';\nimport Card from '../../../components/Card';\n\n/**\n * Recommendations component displays a list of recommendations for a project.\n * @param {object} props - Component props.\n * @param {string} props.projectId - ID of the project.\n * @param {array} props.projectRecommendations - Array of project recommendations.\n * @param {function} props.refetch - Function to refetch data.\n * @returns {JSX.Element} Recommendations component.\n */\nexport default function Recommendations({ projectId, projectRecommendations, refetch }) {\n const [recommendations, setRecommendations] = useState([]);\n const [loadingAddRecommendation, setLoadingAddRecommendation] = useState(false);\n\n useEffect(() => {\n if (projectRecommendations) {\n const projectRecommendationsFormat = projectRecommendations?.map((recommendation) => ({\n id: recommendation?._id,\n description: recommendation?.description || '',\n status: recommendation?.status?.toLowerCase(),\n edit: false,\n notes: recommendation?.notes || '',\n submittedDate: recommendation?.submittedDate,\n responseDate: recommendation?.responseDate,\n }));\n setRecommendations(projectRecommendationsFormat);\n }\n }, [projectRecommendations]);\n\n const toggleEditRecommendation = (index) => {\n const recommendationsCopy = [...recommendations];\n recommendationsCopy[index].edit = !recommendationsCopy[index]?.edit;\n setRecommendations(recommendationsCopy);\n };\n\n const onAddRecommendation = async () => {\n try {\n setLoadingAddRecommendation(true);\n await addRecommendation(projectId);\n refetch();\n toast.success('Recommendation added successfully');\n } catch (error) {\n toast.error(error.message);\n } finally {\n setLoadingAddRecommendation(false);\n }\n };\n\n return (\n \n \n {recommendations?.length === 0 && (\n \n There is not any recommendations added yet\n \n )}\n {recommendations?.map((recommendation, index) => (\n toggleEditRecommendation(index)}\n />\n ))}\n \n \n \n );\n}\n\n// PropTypes for type checking\nRecommendations.propTypes = {\n projectId: PropTypes.string.isRequired,\n projectRecommendations: PropTypes.array.isRequired,\n refetch: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport { TableRow, TableCell, makeStyles, IconButton } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { useHistory } from 'react-router-dom';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport formatTxt from '../utils/formatText';\nimport { formatPhoneNumber } from '../utils';\n\nconst useStyles = makeStyles(() => ({\n row: {\n cursor: 'pointer',\n height: 50,\n maxHeight: 50,\n background: '#fff',\n '&:hover': {\n backgroundColor: '#f5f5f5',\n '& $externalIcon': {\n visibility: 'visible',\n color: '#1F63FF',\n },\n },\n },\n}));\n\n/**\n * Table row component representing a contact.\n *\n * @param {Object} props - The properties of the component.\n * @param {Object} props.row - The data for the contact.\n * @param {number} props.index - The index of the row.\n * @param {Function} props.handleClick - The click event handler for the row.\n * @returns {JSX.Element} React component.\n */\nconst ContactTableRow = ({ row, index, handleClick, onClickRemove }) => {\n const classes = useStyles();\n const history = useHistory();\n\n /**\n * Handles the click event on the table row.\n *\n * @param {React.MouseEvent} e - The mouse event.\n */\n const goToContactProfile = (e) => {\n const go = handleClick(e, row._id);\n\n if (go) {\n history.push(`/contacts/${row._id}`);\n }\n };\n\n return (\n \n goToContactProfile(e, row, handleClick)}\n align=\"left\"\n style={row.firstName ? { textTransform: 'capitalize' } : {}}\n >\n {row.firstName ? `${formatTxt(row?.firstName, 15)} ${formatTxt(row?.lastName, 15)}` : 'Not specified'}\n \n {row.companyName ? row.companyName : 'Not specified'}\n goToContactProfile(e, row, handleClick)} align=\"left\">\n {formatPhoneNumber(row.phoneNumber) || 'Not specified'}\n \n goToContactProfile(e, row, handleClick)} align=\"left\">\n {row.email || 'Not specified'}\n \n \n \n \n \n \n \n );\n};\n\nContactTableRow.propTypes = {\n row: PropTypes.object,\n index: PropTypes.number,\n handleClick: PropTypes.func,\n onClickRemove: PropTypes.func,\n};\n\nexport default ContactTableRow;\n","import React, { useState, useEffect } from 'react';\nimport { Box } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\n\nimport EnhancedTable from '../../components/Table';\nimport useInput from '../../hooks/useInput';\nimport { axiosCatchError } from '../../utils';\nimport { createContact, createLinkProjectContact, deleteLinkProjectContact } from '../../services/unarmed';\nimport CreateContactForm from '../../components/CreateContactForm';\nimport SearchContacts from '../../components/SearchContacts';\nimport ContactTableRow from '../../components/ContactTableRow';\nimport { parseContactPhoneNumber } from '../Contacts/ModalCreateContact';\nimport { BoxContainer } from '../../styles/GlobalStyles';\nimport Card from '../../components/Card';\n\nconst columns = ['Name', 'Company Name', 'Phone Number', 'Email', 'Actions'];\n\nconst ProjectContacts = ({ projectId, defaultContacts, onRemoveContact }) => {\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('asc');\n const [loading, setLoading] = useState(false);\n\n const [contacts, setContacts] = useState([...defaultContacts]);\n\n const search = useInput('');\n const firstName = useInput('');\n const lastName = useInput('');\n const email = useInput('');\n const phoneNumber = useInput('');\n const type = useInput('');\n const companyName = useInput('');\n\n const renderRow = (row, index, handleClick) => (\n {\n deleteLinkProjectContact(projectId, row?._id).then(() => {\n onRemoveContact();\n toast.success('Contact removed from the project successfully!');\n });\n }}\n />\n );\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const onClearFields = () => {\n firstName.setValue('');\n lastName.setValue('');\n phoneNumber.setValue('');\n email.setValue('');\n type.setValue('');\n companyName.setValue('');\n };\n\n const handleOnSubmit = () => {\n const phoneNumberParsed = parseContactPhoneNumber(phoneNumber.value);\n\n if (phoneNumber.value && phoneNumberParsed.length < 10) {\n toast.error('The phone number must have 10 digits.');\n return;\n }\n\n if (email.value === '') {\n toast.error('The email is required.');\n return;\n }\n\n if (type.value === 'Organization' && companyName.value === '') {\n toast.error('The company name is required.');\n return;\n }\n\n const data = {\n ...(firstName.value ? { firstName: firstName.value } : {}),\n ...(lastName.value ? { lastName: lastName.value } : {}),\n ...(phoneNumber.value ? { phoneNumber: phoneNumberParsed } : {}),\n ...(type.value ? { type: type.value } : {}),\n ...(type.value === 'Organization' && companyName.value ? { companyName: companyName.value } : {}),\n email: email.value,\n };\n\n setLoading(true);\n createContact(data)\n .then(async (res) => {\n onClearFields();\n setLoading(false);\n if (res?.data) {\n try {\n await createLinkProjectContact(projectId, res?.data?._id);\n } catch (error) {\n toast.error(error.message);\n }\n toast.success('Contact created successfully!');\n const _contacts = [...contacts, res.data];\n\n setContacts(_contacts);\n }\n })\n .catch((error) => {\n setLoading(false);\n axiosCatchError(error);\n });\n };\n\n useEffect(() => {\n setContacts([...defaultContacts]);\n }, [defaultContacts]);\n\n const startIndex = (page - 1) * rowsPerPage;\n const endIndex = startIndex + rowsPerPage;\n const contactsPaged = contacts.slice(startIndex, endIndex);\n\n return (\n \n \n \n \n \n {\n const _contacts = [...contacts, newContact];\n\n setContacts(_contacts);\n }}\n />\n \n \n \n );\n};\n\nProjectContacts.propTypes = {\n defaultContacts: PropTypes.array,\n projectId: PropTypes.number,\n onRemoveContact: PropTypes.func,\n};\n\nexport default ProjectContacts;\n","import React, { useState, useEffect, useContext } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { Box, CircularProgress } from '@material-ui/core';\n\nimport TabPanel from '../../components/TabPanel';\nimport useProject from '../../hooks/useProject';\nimport Header from './components/Header';\nimport useOrganization from '../../hooks/useOrganization';\nimport Actions from './tabs/Actions';\nimport { formatOverviewFeatureItemToRender } from './utils';\nimport ModalPopUp from '../../components/ModaPopupl';\nimport ConfirmationPopup from './ConfirmationPopup';\nimport ProjectNotes from './tabs/Notes';\nimport ProjectAttachments from './tabs/ProjectAttachments';\nimport History from './tabs/History';\nimport Recommendations from './tabs/Recommendations';\nimport ProjectContacts from './ProjectContacts';\nimport UpgradeTabPopup from '../../components/UpgradeTabPopup';\nimport { Context } from '../../Context';\nimport { updateUrlWithParams } from '../../utils/libs';\n\nconst tabsArray = [\n { label: 'Actions', value: 0 },\n { label: 'Recommendations', value: 1 },\n { label: 'Contacts', value: 2 },\n { label: 'Notes', value: 3 },\n { label: 'Attachments', value: 4 },\n { label: 'History', value: 5 },\n];\n\nexport default function ProjectDetails() {\n const { id } = useParams();\n\n const { project, loading, refetch } = useProject(id);\n const { organization } = useOrganization();\n const [open, setOpen] = useState(false);\n const [tabToChange, setTabToChange] = useState(0);\n const { myUser } = useContext(Context);\n const [actionsSaved, setActionsSaved] = useState([]);\n const [value, setValue] = useState(0);\n const [items, setItems] = useState([]);\n\n const [actions, setActions] = useState([]);\n\n const getActionsFetched = () => {\n const fetchedActions = JSON.parse(JSON.stringify(project?.actions));\n\n return fetchedActions.map((action) => ({\n ...action?.settings,\n name: action?.name,\n values: action?.values,\n types: action?.validTypes,\n updatedAt: action?.updatedAt,\n _id: action?._id,\n }));\n };\n\n useEffect(() => {\n if (organization) {\n updateUrlWithParams(\n {\n organization_name: organization?.name,\n tab_name: 'actions',\n },\n {\n tab_name: 'actions',\n }\n );\n }\n }, [organization]);\n\n useEffect(() => {\n if (project?.actions?.length && actions.length === 0) {\n setActions(getActionsFetched());\n }\n }, [project?.actions]);\n\n function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n }\n\n const handleChange = (event, newValue) => {\n // let hasChanges = null;\n // if (newValue > 0) {\n // if (project?.overview?.length !== items.length) {\n // setOpen(true);\n // setTabToChange(newValue);\n // return;\n // }\n\n // hasChanges = project.actions.map((overvew, index) => {\n // if (\n // getChangesDiff(overvew, {\n // ...formatOverviewFeatureItemToSave(items)[index],\n // _id: overvew?._id,\n // })\n // ) {\n // return 'it has';\n // }\n // return null;\n // });\n // }\n\n // if (hasChanges && hasChanges.includes('it has')) {\n // setOpen(true);\n // setTabToChange(newValue);\n // return;\n // }\n // setOldTab(value);\n\n const tabData = tabsArray[newValue];\n const tabLabel = tabData.label?.toLowerCase()?.replace(/ /g, '-');\n\n updateUrlWithParams(\n {\n organization_name: organization.name,\n tab_name: tabLabel,\n },\n {\n tab_name: tabLabel,\n }\n );\n\n if (newValue !== 0) {\n setActions(getActionsFetched());\n }\n setValue(newValue);\n };\n\n const changeTabOnValidate = () => {\n const overViewFeatures = formatOverviewFeatureItemToRender(project?.overview);\n\n setItems(overViewFeatures);\n setValue(tabToChange);\n setOpen(false);\n };\n\n return (\n
\n \n \n {loading ? (\n \n \n \n ) : (\n \n )}\n \n \n \n \n \n {!organization?.permissions?.[myUser?.role]?.contacts && }\n \n \n \n \n \n \n \n \n \n \n \n \n setOpen(false)} loading={false} handleSubmit={changeTabOnValidate} />\n \n
\n );\n}\n","import { Box, CircularProgress, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Waypoint } from 'react-waypoint';\nimport useNearScreen from '../../hooks/userNearScreen';\nimport { getNotification } from '../../services/unarmed';\nimport { onGetDateLabels } from '../Activity/Activity';\nimport TimeLine from '../Activity/TImeLine';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n width: '100%',\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#fff',\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid #4b7bff ',\n color: '#4b7bff',\n '&:hover': {\n background: '#fff',\n border: '1px solid #4b7bff ',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#F9FAFF',\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: 20,\n },\n}));\n\nexport default function Notifications() {\n const classes = useStyles();\n const [lastId, setLastId] = useState('');\n const [items, setItems] = useState({});\n const [hasNextPage, setHasNextPage] = useState(true);\n\n const [loading, setLoading] = useState('idle');\n const externalRef = useRef();\n const { isNearScreen } = useNearScreen({\n externalRef: loading === 'pending' ? null : externalRef,\n once: false,\n });\n\n useEffect(() => {\n setLoading('pending');\n getNotification({ limit: 10 })\n .then(({ data }) => {\n const dataFormattedByDate = {};\n data.forEach((itm) => {\n onGetDateLabels(itm, dataFormattedByDate);\n });\n setItems(dataFormattedByDate);\n\n setLastId(data[data.length - 1]?._id);\n setLoading('resolved');\n })\n .catch((err) => {\n setLoading('rejected');\n });\n }, []);\n\n const getMoreActivities = () => {\n setLoading('pending');\n getNotification({\n limit: 15,\n before: lastId,\n })\n .then(({ data }) => {\n if (data.length === 0) {\n setHasNextPage(false);\n return;\n }\n const dataFormattedByDate = {};\n data.forEach((itm) => {\n onGetDateLabels(itm, dataFormattedByDate);\n });\n console.log(lastId, dataFormattedByDate);\n if (typeof lastId === 'string' && lastId !== data[data.length - 1]?._id) {\n const dataKeys = Object.keys(dataFormattedByDate);\n const itemsCopy = { ...items };\n dataKeys.forEach((dataKey) => {\n if (itemsCopy[dataKey]) {\n itemsCopy[dataKey] = [...itemsCopy[dataKey], ...dataFormattedByDate[dataKey]];\n } else {\n itemsCopy[dataKey] = dataFormattedByDate[dataKey];\n }\n });\n setLastId(data[data.length - 1]?._id);\n // setItems((prevState) => [...prevState, ...res]);\n setItems(itemsCopy);\n } else {\n setLastId(false);\n }\n setLoading('resolved');\n })\n .catch((err) => {\n setLoading('rejected');\n });\n };\n\n return (\n \n

Notifications

\n \n {Object?.keys(items)?.map((item, index) => (\n \n ))}\n
\n {isNearScreen && hasNextPage && lastId && (\n \n \n {loading === 'pending' && }\n \n \n )}\n \n \n );\n}\n","import React from 'react';\nimport { Box, Button, CircularProgress, Divider, Typography, Grid, makeStyles, FormControlLabel } from '@material-ui/core';\nimport { CustomSwitch } from '../formEngine/components/WrapperComponent';\nimport propTypes from 'prop-types';\nimport { OutLineInput } from '../pages/CaseDetails/UpdateCase';\nimport SelectBox from './SelectBox';\nimport { activeColors } from './CaseFilters';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n}));\n\n/**\n * Functional component representing a set of filters for contacts.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {Object} props.name - The input for filtering by name.\n * @param {Object} props.phoneNumber - The input for filtering by phone number.\n * @param {Object} props.email - The input for filtering by email address.\n * @param {Object} props.module - The select box for filtering by module.\n * @param {boolean} props.loading - Indicates whether the component is in a loading state.\n * @param {Function} props.onClearFilters - Function to clear all filters.\n * @param {Function} props.onClickCancel - Function to handle the cancel action.\n * @param {Function} props.onClickApply - Function to handle the apply action.\n * @returns {JSX.Element} - The rendered component.\n */\nconst ContactsFilters = ({\n name,\n phoneNumber,\n email,\n module,\n // type,\n flaggedOnly,\n loading,\n onClearFilters,\n onClickCancel,\n onClickApply,\n filtersApplied\n}) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n Email\n \n email.setValue(e.target.value.replace(/[^\\w \\.@_-]/g, ''))}\n labelWidth={0}\n />\n \n \n \n Name\n \n \n \n {/* \n \n Type\n \n \n */}\n \n \n Phone Number\n \n \n \n \n \n Module\n \n \n \n \n \n \n }\n labelPlacement=\"start\"\n label=\"Flagged only\"\n />\n \n \n \n \n \n \n \n \n Clear All Filters{' '}\n \n \n \n \n Cancel\n \n \n {loading ? : 'Apply'}\n \n \n \n \n );\n};\n\nContactsFilters.propTypes = {\n name: propTypes.object,\n email: propTypes.object,\n loading: propTypes.bool,\n phoneNumber: propTypes.object,\n flaggedOnly: propTypes.bool,\n module: propTypes.object,\n // type: propTypes.object,\n onClearFilters: propTypes.func,\n onClickCancel: propTypes.func,\n onClickApply: propTypes.func,\n filtersApplied: propTypes.object,\n};\n\nexport default ContactsFilters;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n Box,\n Checkbox,\n Tooltip,\n Typography,\n Popover,\n IconButton,\n List,\n ListItem,\n Divider,\n TextField,\n InputAdornment,\n} from '@material-ui/core';\nimport SearchIcon from '@material-ui/icons/Search';\nimport moment from 'moment';\nimport PageButtons from '../../components/PageButtons';\nimport EnhancedTable from '../../components/Table';\nimport { fetchContacts, getfiltersConfigById, getViewByIdv, updateFilterConfigById } from '../../services/unarmed';\nimport AddMore from '../../components/AddMore';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport ContactsFilters from '../../components/ContactsFilters';\n\nexport const ViewTabContacts = ({\n classes,\n contacts,\n handleClick,\n openPopover,\n anchorEl,\n handleClose,\n searchTerm,\n setSearchTerm,\n showColumns,\n handleToggleColumn,\n formatHeadersText,\n visibleColumns,\n hideColumns,\n openFilter,\n setOpenFilter,\n setLoadingFilters,\n loadingFilters,\n onEditMultipleContacts,\n selected,\n setOpen,\n name,\n phoneNumber,\n email,\n module,\n flaggedOnly,\n type,\n fetchFiltersConfig,\n setOpenCreate,\n onClearFilters,\n setPage,\n rowsPerPage,\n sort,\n sortBy,\n authUser,\n setSort,\n filtersLoaded,\n setFiltersLoaded,\n getVisibleColumns,\n handleOnClickDownload,\n // handleOnFetchContactsWithFilters,\n handleOnFetchAllContacts,\n setSortBy,\n parseContactPhoneNumber,\n setContacts,\n renderRow,\n setChecked,\n checked,\n page,\n setSelected,\n handleChangeRowsPerPage,\n tabSelected,\n setVisibleColumns,\n loading,\n}) => {\n const [view, setView] = useState();\n const [filtersConfig, setfiltersConfig] = useState({});\n const [filtersApplied, setFiltersApplied] = useState({});\n const [filterCount, setFilterCount] = useState(0);\n\n const handleOnSetFiltersConfig = () => {\n const newFiltersApplied = {};\n if (filtersConfig) {\n const configCopy = { ...filtersConfig };\n\n delete configCopy.sortOrder;\n delete configCopy.sortBy;\n delete configCopy.page;\n delete configCopy.limit;\n delete configCopy.isFiltering;\n Object.keys(configCopy).forEach((key) => {\n const value = configCopy[key];\n let isApplied = false;\n\n if (value === null || !value || value === '0') {\n isApplied = false;\n } else if (Array.isArray(value)) {\n isApplied = value.length > 0;\n } else if (typeof value === 'boolean') {\n isApplied = value === true;\n } else {\n isApplied = true;\n }\n\n newFiltersApplied[key] = isApplied;\n });\n\n const newCount = Object.values(newFiltersApplied).filter((item) => item).length;\n setFilterCount(newCount);\n setFiltersApplied(newFiltersApplied);\n }\n };\n\n const getData = () => {\n const params = {\n ...(email.value ? { email: email.value } : {}),\n ...(name.value ? { name: name.value } : {}),\n ...(phoneNumber.value ? { phoneNumber: parseContactPhoneNumber(phoneNumber.value) } : {}),\n ...(module.value && module.value !== '0'\n ? { module: module.value === 'not specified' ? 'none' : module.value }\n : {}),\n ...{ flaggedOnly: flaggedOnly.value },\n // ...(type.value && type.value !== '0' ? { type: type.value === 'not specified' ? 'none' : type.value } : {}),\n ...(filtersConfig ? { filtersConfigId: filtersConfig?._id } : {}),\n sortBy,\n sortOrder: sort,\n page,\n limit: rowsPerPage,\n };\n\n fetchContacts(params)\n .then((res) => {\n setLoadingFilters(false);\n setContacts(res);\n //fetchFiltersConfig();\n })\n .catch((error) => {\n const message = error?.response?.data?.error?.details[0]?.message || error?.response?.data?.message;\n\n setLoadingFilters(false);\n });\n };\n\n const getData1 = ({ email1, name1, phoneNumber1, module1, flaggedOnly1 }) => {\n const params = {\n ...(email1 ? { email: email1 } : {}),\n ...(name1 ? { name: name1 } : {}),\n ...(phoneNumber1 ? { phoneNumber: parseContactPhoneNumber(phoneNumber1) } : {}),\n ...(module1 && module1 !== '0' ? { module: module1 === 'not specified' ? 'none' : module1 } : {}),\n ...{ flaggedOnly: flaggedOnly1 },\n // ...(type.value && type.value !== '0' ? { type: type.value === 'not specified' ? 'none' : type.value } : {}),\n ...(filtersConfig ? { filtersConfigId: filtersConfig?._id } : {}),\n sortBy,\n sortOrder: sort,\n page,\n limit: rowsPerPage,\n };\n\n fetchContacts(params)\n .then((res) => {\n setLoadingFilters(false);\n setContacts(res);\n //fetchFiltersConfig();\n })\n .catch((error) => {\n const message = error?.response?.data?.error?.details[0]?.message || error?.response?.data?.message;\n\n setLoadingFilters(false);\n });\n };\n const saveFiltersApplied = async () => {\n setLoadingFilters(true);\n const filterSaved = {\n name: name.value,\n email: email.value,\n phoneNumber: phoneNumber.value,\n module: module.value,\n sortBy,\n sortOrder: sort,\n flaggedOnly: flaggedOnly.value,\n };\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n await updateFilterConfigById(view?.filtersConfigId, filterSaved);\n };\n\n const onClearFiltersF = async () => {\n onClearFilters()\n setLoadingFilters(true);\n const filterSaved = {\n name: '',\n email: '',\n phoneNumber: '',\n module: '',\n sortBy,\n sortOrder: sort,\n flaggedOnly: false,\n };\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n await updateFilterConfigById(view?.filtersConfigId, filterSaved);\n };\n\n useEffect(() => {\n handleOnSetFiltersConfig();\n if (filtersConfig) {\n console.log('entro aqui', filtersConfig)\n email.setValue(filtersConfig?.email);\n name.setValue(filtersConfig?.name);\n phoneNumber.setValue(filtersConfig?.phoneNumber);\n setSort(sort || filtersConfig?.sortOrder);\n setSortBy(sortBy || filtersConfig?.sortBy);\n module.setValue(filtersConfig?.module);\n flaggedOnly.setValue(filtersConfig?.flaggedOnly);\n // setValue(config?.type || '');\n\n setFiltersLoaded(true);\n getData1({\n email1: filtersConfig.email,\n name1: filtersConfig.name,\n phoneNumber1: filtersConfig.phoneNumber,\n module1: filtersConfig.module,\n flaggedOnly1: filtersConfig.flaggedOnly,\n });\n } else if (filtersConfig === null) {\n setFiltersLoaded(true);\n getData();\n }\n }, [filtersConfig, page, sort, sortBy]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (view) {\n const responsefiltersConfig = await getfiltersConfigById(view?.filtersConfigId);\n setfiltersConfig(responsefiltersConfig?.data?.filterConfig[0]?.config);\n }\n };\n\n fetchData();\n }, [view]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (tabSelected?.displayObjectId && tabSelected?.displayObjectType === TYPE_USER_TABS.VIEW) {\n const responseView = await getViewByIdv(tabSelected?.displayObjectId);\n if (responseView?.data?.view[0]) {\n setView(responseView.data.view[0]);\n setVisibleColumns(responseView.data.view[0].columns);\n }\n }\n };\n\n fetchData();\n }, [tabSelected]);\n\n return (\n <>\n <>\n \n \n \n All Contacts ({contacts?.headers?.['x-pagination-totalitems']})\n \n\n \n \n \n \n \n Show / Hide Columns\n \n \n\n \n\n setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n disableUnderline: true,\n style: {\n fontSize: '12px',\n height: '28px',\n },\n }}\n style={{\n padding: '5px 0',\n backgroundColor: 'transparent',\n fontSize: '12px',\n height: '28px',\n }}\n />\n\n \n\n \n \n Visible\n \n \n\n \n {showColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n\n \n\n \n \n Hidden\n \n \n\n \n {hideColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n \n \n \n\n setOpen(true)}\n disabledDelete={selected.length === 0}\n onClickDownload={handleOnClickDownload}\n disabledDownload={false}\n />\n \n\n {openFilter && (\n saveFiltersApplied()}\n loading={loadingFilters}\n onClickCancel={() => {\n handleOnFetchAllContacts();\n setOpenFilter(false);\n }}\n />\n )}\n\n \n \n \n \n \n );\n};\n","import React, { useEffect, useState, useCallback, useContext } from 'react';\nimport {\n Box,\n Checkbox,\n Modal,\n TableCell,\n TableRow,\n Typography,\n makeStyles,\n Backdrop,\n CircularProgress,\n Fade,\n Tooltip,\n Popover,\n IconButton,\n List,\n ListItem,\n Divider,\n TextField,\n InputAdornment\n} from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport { Context } from '../../Context';\nimport { useHistory } from 'react-router-dom';\nimport moment from 'moment';\nimport PageWrapper from '../../components/PageWrapper';\nimport formatTxt from '../../utils/formatText';\nimport { deleteContacts, fetchContacts, editMultipleContacts, updateViewsById } from '../../services/unarmed';\nimport { StyledButtonOutlined } from '../../styles/GlobalStyles';\nimport ContactsFilters from '../../components/ContactsFilters';\nimport Flagged from '../../assets/flagged.png';\nimport useInput from '../../hooks/useInput';\nimport ModalCreateContact, { parseContactPhoneNumber } from './ModalCreateContact';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport useOrganization from '../../hooks/useOrganization';\nimport { formatPhoneNumber } from '../../utils';\nimport useFiltersConfig from '../../hooks/useFiltersConfig';\nimport { useTabsUtil } from '../../hooks/useTabs';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport TabsModules from '../../components/TabsModules';\nimport { ViewTabContacts } from './ViewTabContacts';\n\n/**\n * Material-UI styling hook.\n */\nconst useStyles = makeStyles((theme) => ({\n row: {\n cursor: 'pointer',\n height: 50,\n maxHeight: 50,\n background: '#fff',\n '&:hover': {\n backgroundColor: '#f5f5f5',\n '& $externalIcon': {\n visibility: 'visible',\n color: '#1F63FF',\n },\n },\n },\n externalIcon: {\n visibility: 'hidden',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n outline: 0,\n },\n}));\n\n/**\n * Functional component for managing and displaying contacts.\n *\n * @component\n */\nconst Contacts = () => {\n const classes = useStyles();\n\n const { authUser } = useContext(Context);\n const [openFilter, setOpenFilter] = useState(false);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [checked, setChecked] = useState(false);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const [loading, setLoading] = useState(false);\n const [contacts, setContacts] = useState([]);\n const [loadingFilters, setLoadingFilters] = useState(false);\n const [open, setOpen] = useState(false);\n const [loadingDelete, setLoadingDelete] = useState(false);\n const [openCreate, setOpenCreate] = useState(false);\n const { organization } = useOrganization();\n const baseColumns = {\n flag: true,\n name: true,\n pronouns: false,\n type: false,\n companyName: true,\n phoneNumber: true,\n email: true,\n module: true,\n createdAt: true,\n demographic: false\n }\n const [loadingEditContacts, setLoadingEditContacts] = useState(false);\n const [visibleColumns, setVisibleColumns] = useState(baseColumns || {});\n const [anchorEl, setAnchorEl] = useState(null);\n const [searchTerm, setSearchTerm] = useState('');\n\n const filteredColumns = Object.keys(visibleColumns).filter((column) =>\n column.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n const showColumns = filteredColumns.filter((column) => visibleColumns[column]);\n const hideColumns = filteredColumns.filter((column) => !visibleColumns[column]);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const openPopover = Boolean(anchorEl);\n const popoverId = open ? 'column-popover' : undefined;\n\n\n const {\n filtersConfig,\n filterCount,\n filtersLoaded,\n filtersApplied,\n resetFilterCount,\n setFiltersLoaded,\n fetchFiltersConfig,\n } = useFiltersConfig('contacts');\n\n const {\n activeTab,\n setActiveTab,\n tabSelected,\n setTabSelected,\n onGetUserTabs,\n userTabs,\n updateNameTab,\n setUserTabs,\n handleSaveTab,\n handleTabSelection,\n nextPosition,\n handleTabsReorder,\n handleTabSelectionAction,\n deleteSelectedTab,\n activeTabName,\n setActiveTabName,\n} = useTabsUtil({ moduleName: 'CONTACTS' });\n\n const history = useHistory();\n const name = useInput('');\n const phoneNumber = useInput('');\n const email = useInput('');\n const module = useInput('');\n const type = useInput('');\n const flaggedOnly = useInput(false, false, false, true);\n\n /**\n * Checks if a contact is selected.\n *\n * @param {string} _name - The name of the contact.\n * @returns {boolean} Whether the contact is selected.\n */\n const isSelected = (_name) => selected.indexOf(_name) !== -1;\n\n /**\n * Navigates to the contact profile page.\n *\n * @param {Event} e - The click event.\n * @param {Object} row - The contact data.\n * @param {Function} handleClick - The function to handle row click.\n */\n const goToContactProfile = (e, row, handleClick) => {\n const go = handleClick(e, row._id);\n\n if (go) {\n history.push(`/contacts/${row._id}`);\n }\n };\n\n /**\n * Renders a row for the contacts table.\n *\n * @param {Object} row - The contact data.\n * @param {number} index - The index of the row.\n * @param {Function} handleClick - The function to handle row click.\n * @returns {JSX.Element} The rendered row.\n */\n const renderRow = (row, index, handleClick) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n\n /**\n * Gets the module(s) of the contact.\n *\n * @returns {string} The contact module(s).\n */\n const getContactModule = () => {\n const modules = [...(row.modules.cases ? ['Cases'] : []), ...(row.modules.projects ? ['Projects'] : [])];\n\n return modules.length > 0 ? modules.join(', ') : 'Not specified';\n };\n\n return (\n goToContactProfile(e, row, handleClick)}\n >\n \n \n \n {visibleColumns?.flag && (\n \n {row?.flagged && \"Flagged\"}\n \n )}\n {visibleColumns?.name && (\n \n {row.firstName ? `${formatTxt(row?.firstName, 25)} ${formatTxt(row?.lastName, 25)}` : 'Not specified'}\n \n )}\n {visibleColumns?.pronouns && (\n {row.pronouns ? row.pronouns : 'Not specified'}\n )}\n {visibleColumns?.type && (\n {row.type ? row.type : 'Not specified'}\n )}\n {visibleColumns?.companyName && (\n {row.companyName ? row.companyName : 'Not specified'}\n )}\n {visibleColumns?.phoneNumber && (\n {formatPhoneNumber(row.phoneNumber) || 'Not specified'}\n )}\n {visibleColumns?.email && (\n {row.email || 'Not specified'}\n )}\n {visibleColumns?.module && (\n {getContactModule()}\n )}\n {visibleColumns?.createdAt && (\n {moment(row.createdAt).format('MMMM DD, YYYY')}\n )}\n \n );\n };\n\n /**\n * Handles the change of rows per page.\n *\n * @param {Event} event - The change event.\n */\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const handleOnFetchAllContacts = useCallback(() => {\n setLoading(true);\n /*fetchContacts({\n page,\n limit: rowsPerPage,\n sortBy: 'createdAt',\n sortOrder: 'desc',\n ...(filtersConfig ? { filtersConfigId: filtersConfig?._id } : {}),\n }).then((res) => {\n setLoading(false);\n setContacts(res);\n fetchFiltersConfig();\n });*/\n }, [page, rowsPerPage, filtersConfig]);\n\n /**\n * Deletes selected contacts.\n */\n const onDeleteContact = async () => {\n let ids = '';\n\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingDelete(true);\n const response = await deleteContacts(ids);\n handleOnFetchAllContacts();\n setLoadingDelete(false);\n setOpen(false);\n setSelected([]);\n setChecked(false);\n toast.success('Contacts deleted Successfully');\n\n if (response && response.data && response.data.idsNotDeleted) {\n const { idsNotDeleted } = response.data;\n const contactNotDeleted = [];\n\n if (contacts && contacts.data) {\n contacts.data.forEach((contact) => {\n if (idsNotDeleted.indexOf(contact?._id) !== -1) {\n contactNotDeleted.push(contact);\n }\n });\n }\n\n if (contactNotDeleted.length > 0) {\n const contactsNames = contactNotDeleted.map((contact) => `${contact.firstName} ${contact.lastName}`);\n\n toast.error(\n `${contactsNames.join(', ')} cannot be deleted because there are assigned to a project or a case.`\n );\n }\n }\n } catch (error) {\n setLoadingDelete(false);\n toast.error(error?.response?.data?.message);\n }\n };\n\n const handleOnClickDownload = () => {\n setOpenCreate(true);\n };\n\n /**\n * Handles the click event for clearing filters.\n */\n const handleOnClickClearFilters = () => {\n name.setValue(null);\n email.setValue(null);\n phoneNumber.setValue(null);\n module.setValue(null);\n type.setValue('');\n flaggedOnly.setValue(false);\n resetFilterCount();\n //handleOnFetchAllContacts();\n toast.success('Successfully cleared filters!')\n };\n\n const handleToggleColumn = async (viewId, columnName) => {\n try {\n const updatedColumns = {\n ...visibleColumns,\n [columnName]: !visibleColumns[columnName],\n };\n\n const response = await updateViewsById(viewId, { columns: updatedColumns });\n\n if (response && response.status === 200 && response.view) {\n setVisibleColumns(response.view.columns);\n } else {\n console.error('Failed to update columns:', response);\n }\n } catch (error) {\n console.error('Error updating column visibility:', error);\n }\n };\n\n const formatHeadersText = (str) => {\n const result = str.replace(/([A-Z])/g, ' $1');\n\n return result\n .replace(/^./, (firstChar) => firstChar.toUpperCase())\n .trim();\n };\n\n const onEditMultipleContacts = async () => {\n let ids = '';\n const selectedContacts = contacts.data.filter((contact) => selected.includes(contact._id));\n const allAreFlagged = selectedContacts.every((contact) => contact.flagged);\n\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingEditContacts(true);\n await editMultipleContacts(ids);\n\n setContacts((prevContacts) => {\n const updatedData = prevContacts.data.map((contact) => {\n if (selected.includes(contact._id)) {\n return {\n ...contact,\n flagged: allAreFlagged ? false : true,\n };\n }\n return contact;\n });\n\n return {\n ...prevContacts,\n data: updatedData,\n };\n });\n\n setLoadingEditContacts(false);\n setSelected([]);\n toast.success(allAreFlagged ? 'Successfully unflagged contacts' : 'Successfully flagged contacts');\n } catch (error) {\n setLoadingEditContacts(false);\n toast.error(error.message);\n }\n };\n\n const getVisibleColumns = () => {\n return Object.keys(visibleColumns).filter((column) => visibleColumns[column]).map((column) => formatHeadersText(column));\n };\n\n return (\n <>\n {organization && }\n \n \n Contacts\n \n\n {}}\n saveTab={handleSaveTab}\n onTabSelect={handleTabSelection}\n nextPosition={nextPosition}\n saveTabPositions={handleTabsReorder}\n onTabAction={handleTabSelectionAction}\n deleteTab={deleteSelectedTab}\n moduleName={'CONTACTS'}\n />\n\n {activeTab === TYPE_USER_TABS.MAIN && (\n \n )}\n\n {activeTab === TYPE_USER_TABS.VIEW && (\n \n )}\n\n setOpen(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n Are you sure you want to delete?\n Contacts will be deleted permanently.\n \n setOpen(false)}>\n CANCEL\n \n \n {loadingDelete ? : 'DELETE'}\n \n \n
\n
\n \n\n setOpenCreate(false)} onUpdate={handleOnFetchAllContacts} />\n
\n \n );\n};\n\nexport default Contacts;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Modal, Fade, Paper, makeStyles, Typography, Box, Avatar } from '@material-ui/core';\nimport { toast } from '../../components/Notification';\nimport { DropzoneArea } from 'material-ui-dropzone';\n\nimport useInput from '../../hooks/useInput';\nimport { updateContact, uploadFormImg } from '../../services/unarmed';\nimport ContactForm from './ContactForm';\nimport { ImageContainer } from '../../styles/GlobalStyles';\nimport useOrganization from '../../hooks/useOrganization';\nimport { axiosCatchError } from '../../utils';\nimport { getStatesOfCountry } from '../../services/countryStateService';\nimport { parseContactPhoneNumber } from './ModalCreateContact';\nimport { checkNullValues } from '../../utils/validateForm';\n\n/**\n * Material-UI styling hook.\n */\nconst useStyles = makeStyles((theme) => ({\n paper: {\n boxShadow: theme.shadows[5],\n padding: 64,\n minWidth: 600,\n alignSelf: 'center',\n borderRadius: 4,\n maxHeight: '80vh',\n overflowY: 'scroll',\n maxWidth: 700,\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n image: {\n width: 120,\n height: 120,\n },\n}));\n\n/**\n * Modal for editing a contact profile.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {Object} props.contact - The contact object to edit.\n * @param {boolean} props.open - Whether the modal is open.\n * @param {Function} props.onClose - Function to handle modal closure.\n * @param {Function} props.onUpdate - Function to handle updates after contact editing.\n */\nconst ModalEditContact = ({ contact, open, onClose, onUpdate }) => {\n const classes = useStyles();\n\n const [loading, setLoading] = useState(false);\n const [avatar, setAvatar] = useState('');\n const [hashFile, setHashFile] = useState('');\n // const [loadingImage, setLoadingImage] = useState(false);\n // const [loadingPercentage, setLoadingPercentage] = useState(0);\n const [states, setStates] = useState([]);\n\n const { organization } = useOrganization();\n\n const firstName = useInput('');\n const lastName = useInput('');\n const type = useInput('');\n const companyName = useInput('');\n const phoneNumber = useInput('');\n const gender = useInput([]);\n const raceEthnicity = useInput([]);\n const birthdate = useInput('');\n const title = useInput('');\n const suffix = useInput('');\n const pronouns = useInput('');\n const salutation = useInput('');\n const description = useInput('');\n const department = useInput('');\n\n const mailingStreet = useInput('');\n const mailingApt = useInput('');\n const mailingState = useInput('');\n const mailingCity = useInput('');\n const mailingZipCode = useInput('');\n const otherStreet = useInput('');\n const otherApt = useInput('');\n const otherState = useInput('');\n const otherCity = useInput('');\n const otherZipCode = useInput('');\n\n /**\n * Clears input fields.\n */\n const onClearFields = () => {\n setHashFile('');\n };\n\n /**\n * Handles the save action for editing a contact profile.\n */\n const handleOnSave = useCallback(() => {\n const isoCodeState = states.find((st) => st.name === mailingState.value);\n const otherIsoCodeState = states.find((st) => st.name === otherState.value);\n\n const phoneNumberParsed = parseContactPhoneNumber(phoneNumber.value);\n\n if (phoneNumber.value && phoneNumberParsed.length < 10) {\n toast.error('The phone number must have 10 digits.');\n return;\n }\n\n if (mailingZipCode.value && mailingZipCode.value.length !== 5) {\n toast.error('The mailing zip code must have 5 digits.');\n return;\n }\n\n if (otherZipCode.value && otherZipCode.value.length !== 5) {\n toast.error('The other zip code must have 5 digits.');\n return;\n }\n\n if (type.value === 'Organization' && companyName.value === '') {\n toast.error('The company name is required.');\n return;\n }\n\n const data = {\n suffix: suffix.value,\n title: title.value,\n pronouns: pronouns.value,\n salutation: salutation.value,\n firstName: firstName.value,\n lastName: lastName.value,\n type: type.value,\n phoneNumber: phoneNumberParsed,\n description: description.value,\n department: department.value,\n ...(hashFile !== '' ? { photo: hashFile } : {}),\n ...(type.value === 'Organization' && companyName.value ? { companyName: companyName.value } : {}),\n demographic: {\n gender: gender.value,\n raceEthnicity: raceEthnicity.value,\n birthdate: birthdate.value === 'Invalid date' ? '' : birthdate.value,\n },\n mailingLocation: {\n address: mailingStreet.value,\n city: {\n name: mailingCity.value,\n },\n state: {\n isoCode: isoCodeState?.isoCode,\n name: mailingState.value,\n },\n zipCode: mailingZipCode.value,\n aptUnit: mailingApt.value,\n },\n otherLocation: {\n address: otherStreet.value,\n city: {\n name: otherCity.value,\n },\n state: {\n isoCode: otherIsoCodeState?.isoCode,\n name: otherState.value,\n },\n zipCode: otherZipCode.value,\n aptUnit: otherApt.value,\n },\n };\n\n setLoading(true);\n updateContact(contact?._id, checkNullValues(data))\n .then(() => {\n onClose();\n onUpdate();\n onClearFields();\n setLoading(false);\n toast.success('Contact updated successfully!');\n })\n .catch((error) => {\n setLoading(false);\n axiosCatchError(error);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n firstName.value,\n lastName.value,\n phoneNumber.value,\n gender.value,\n hashFile,\n mailingState.value,\n otherState.value,\n mailingZipCode.value,\n otherZipCode.value,\n type.value,\n companyName.value,\n suffix.value,\n title.value,\n pronouns.value,\n salutation.value,\n description.value,\n department.value,\n raceEthnicity.value,\n birthdate.value,\n mailingStreet.value,\n mailingCity.value,\n mailingApt.value,\n otherStreet.value,\n otherCity.value,\n otherApt.value,\n states,\n ]);\n\n /**\n * Handles file upload when an image is selected.\n *\n * @param {File} fl - The selected image file.\n */\n const uploadOnLoad = async (fl) => {\n const imgData = new FormData();\n\n imgData.append('file', fl);\n imgData.append('organizationId', organization?._id);\n\n // setLoadingImage(true);\n\n try {\n // const img = await uploadFormImg(imgData, setLoadingPercentage);\n const img = await uploadFormImg(imgData);\n\n setAvatar(img.publicUrl);\n setHashFile(img.hashId);\n // setLoadingImage(false);\n } catch (error) {\n axiosCatchError(error);\n }\n };\n\n useEffect(() => {\n if (contact) {\n firstName.setValue(contact.firstName);\n lastName.setValue(contact.lastName);\n type.setValue(contact.type);\n companyName.setValue(contact.companyName);\n phoneNumber.setValue(contact.phoneNumber);\n gender.setValue(contact.demographic?.gender);\n raceEthnicity.setValue(contact.demographic?.raceEthnicity);\n birthdate.setValue(contact.demographic?.birthdate);\n title.setValue(contact.title);\n suffix.setValue(contact.suffix);\n pronouns.setValue(contact.pronouns);\n salutation.setValue(contact.salutation);\n description.setValue(contact.description);\n department.setValue(contact.department);\n mailingStreet.setValue(contact.mailingLocation?.address);\n mailingApt.setValue(contact.mailingLocation?.aptUnit);\n mailingState.setValue(contact.mailingLocation?.state?.name);\n mailingCity.setValue(contact.mailingLocation?.city?.name);\n mailingZipCode.setValue(contact.mailingLocation?.zipCode);\n otherStreet.setValue(contact.otherLocation?.address);\n otherApt.setValue(contact.otherLocation?.aptUnit);\n otherState.setValue(contact.otherLocation?.state?.name);\n otherCity.setValue(contact.otherLocation?.city?.name);\n otherZipCode.setValue(contact.otherLocation?.zipCode);\n setAvatar(contact?.photo?.public_url);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [contact]);\n\n useEffect(() => {\n getStatesOfCountry().then((res) => setStates(res));\n }, []);\n\n return (\n \n \n \n \n

Edit Profile

\n Edition of contact profile\n
\n \n \n \n {\n if (files[0].size > 1000000) {\n toast.error(\n 'The file is too large, please upload to a file repository and share the link on incident External links section.'\n );\n }\n }}\n onChange={(fl) => {\n if (fl.length > 0) {\n uploadOnLoad(fl[fl.length - 1]);\n }\n }}\n clearOnUnmount\n filesLimit={1}\n showPreviewsInDropzone={false}\n />\n \n \n {\n onClose();\n onClearFields();\n }}\n onClickSave={handleOnSave}\n isEdit\n />\n
\n
\n
\n );\n};\n\nModalEditContact.propTypes = {\n contact: PropTypes.object.isRequired,\n open: PropTypes.bool,\n onClose: PropTypes.func,\n onUpdate: PropTypes.func,\n};\n\nexport default ModalEditContact;\n","import { useHistory } from 'react-router-dom';\nimport React, { useState } from 'react';\nimport { Avatar, Box, Button, Divider, Grid, Typography, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\nimport moment from 'moment';\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\n\nimport UserAttr from '../../components/UserAttr';\nimport ModalEditContact from './ModalEditContact';\nimport DashboardCard from '../../components/DashboardCard';\nimport { formatPhoneNumber } from '../../utils';\n\nconst useStyles = makeStyles((theme) => ({\n avatar: {\n width: theme.spacing(18),\n height: theme.spacing(18),\n },\n}));\n\n/**\n * React component for displaying contact information and related statistics.\n *\n * @component\n * @param {Object} props - The properties passed to the ContactInfo component.\n * @param {Object} props.contact - The contact information.\n * @param {Object} props.stats - The statistics related to the contact.\n * @param {Function} props.onUpdate - The function to handle updates to the contact information.\n */\nconst ContactInfo = ({ openEditModal, onCloseEditModal, contact, stats, onUpdate }) => {\n const classes = useStyles();\n const history = useHistory();\n\n const [showAllAttrs, setShowAllAttrs] = useState(false);\n\n /**\n * Renders additional dashboard cards for displaying contact statistics.\n *\n * @returns {JSX.Element} The rendered dashboard cards.\n */\n const renderCards = () => (\n \n {\n history.push('/cases', {\n name: `${contact.firstName} ${contact.lastName}`,\n email: contact.email,\n id: contact?._id,\n showAlert: true,\n isFiltering: true,\n isFilteringByContact: true,\n });\n }}\n />\n {\n history.push('/projects', {\n name: `${contact.firstName} ${contact.lastName}`,\n email: contact.email,\n id: contact?._id,\n showAlert: true,\n isFiltering: true,\n isFilteringByContact: true,\n });\n }}\n />\n {/* {}}\n /> */}\n \n );\n\n return (\n \n \n \n \n \n \n \n \n {contact?.firstName || contact?.lastName\n ? `${contact.firstName || ''} ${contact.lastName || ''}`\n : 'Contact name not specified'}\n \n \n \n \n {contact.type === 'Organization' && contact?.companyName && (\n \n )}\n \n \n {renderCards}\n \n \n \n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n 0\n ? contact?.demographic?.raceEthnicity.join(', ')\n : 'Not specified'\n }\n />\n
\n
\n 0\n ? contact?.demographic?.gender?.join(', ')\n : 'Not specified'\n }\n />\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {showAllAttrs && (\n <>\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n )}\n \n setShowAllAttrs(!showAllAttrs)}\n >\n {showAllAttrs ? 'See less' : 'See all'}\n {showAllAttrs ? (\n \n ) : (\n \n )}\n \n \n
\n
\n \n
\n );\n};\n\nContactInfo.propTypes = {\n contact: PropTypes.string,\n openEditModal: PropTypes.bool,\n onCloseEditModal: PropTypes.func,\n stats: PropTypes.object,\n onUpdate: PropTypes.func,\n};\n\nexport default ContactInfo;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport EnhancedTable from './Table';\n\nconst TableContainer = ({ data, columns, loading, onRenderRow, onChangeSort, showCheckBox }) => {\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [checked, setChecked] = useState(false);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n useEffect(() => {\n if (onChangeSort) {\n onChangeSort(sort, sortBy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sort, sortBy]);\n\n return (\n \n );\n};\n\nTableContainer.propTypes = {\n data: PropTypes.array.isRequired,\n columns: PropTypes.array.isRequired,\n loading: PropTypes.bool.isRequired,\n onRenderRow: PropTypes.func.isRequired,\n showCheckBox: PropTypes.bool,\n onChangeSort: PropTypes.func,\n};\n\nexport default TableContainer;\n","import { Box, Typography, CircularProgress } from '@material-ui/core';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport FileDownload from 'js-file-download';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport useOrganization from '../../hooks/useOrganization';\nimport {\n archiveContactAttachment,\n createContactComment,\n fetchContactAttachments,\n unarchiveContactAttachment,\n updateContactAttachmentTags,\n} from '../../services/unarmed';\nimport ImageDownload from '../../components/ImageDownload';\nimport { handleOpenPopupFiles } from '../../utils';\nimport CarouselModal from '../../components/CarouselModal';\nimport Tags from '../../components/Tags';\nimport ModalUploadFile from '../../components/ModalUploadFile';\nimport TagsFilters from '../../components/TagsFilters';\nimport { downloadContactImage, downloadContactImages } from '../../utils/libs';\nimport { BoxLeftContainer } from '../../styles/GlobalStyles';\n\n/**\n * React component representing a form for managing contact attachments.\n *\n * @component\n * @param {Object} props - The properties passed to the ContactAttachments component.\n * @param {string} props.id - The unique identifier of the contact.\n */\nexport default function ContactAttachments({ id, onAddNewAttachment, onEditAttachments }) {\n const [attachments, setAttachments] = useState([]);\n const [attachmentsFiltered, setAttachmentsFiltered] = useState([]);\n const [showAttachmentsFiltered, setShowAttachmentsFiltered] = useState(false);\n const [archivedOnly, setArchivedOnly] = useState(false);\n const [tags, setTags] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const [loadingDownload, setLoadingDownload] = useState('idle');\n const { organization } = useOrganization();\n const [open, setOpen] = React.useState(false);\n\n const [openPopupFiles, setOpenPopupFiles] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n /**\n * Asynchronously retrieves contact attachments from the server and updates the component state.\n *\n * @async\n * @function\n * @returns {Promise} A Promise that resolves after fetching and updating the attachments.\n * @throws {Error} If there is an error during the fetch operation.\n */\n const onGetContactAttachments = async () => {\n setLoading(true);\n return fetchContactAttachments(id)\n .then(({ data }) => {\n const _attachments = data.sort((x, y) => new Date(y.createdAt).getTime() - new Date(x.createdAt).getTime());\n\n setAttachments(_attachments);\n filterAttachments(_attachments, tags, archivedOnly);\n setLoading(false);\n })\n .catch((err) => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n if (id) {\n onGetContactAttachments();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id]);\n\n /**\n * Handles the click event to open the modal for uploading new attachments.\n */\n const handleOpen = () => {\n setOpen(true);\n };\n\n /**\n * Initiates the download of all attachments as a ZIP file.\n */\n const onDownloadAll = () => {\n setLoadingDownload('pending');\n downloadContactImages(id)\n .then(({ data }) => {\n FileDownload(data, `${id}-attachments.zip`);\n setLoadingDownload('resolved');\n })\n .catch((err) => {\n setLoadingDownload('rejected');\n });\n };\n\n /**\n * Submits the form with selected files for attachment creation.\n *\n * @param {Event} e - The form submission event.\n * @param {Array} files - The array of files selected for attachment.\n */\n const onSubmit = useCallback(\n async (e, files) => {\n e.preventDefault();\n\n try {\n const filesData = files.map((file) => ({\n file: file.hashId,\n tags: file?.tags?.map((tag) => tag?._id) || [],\n }));\n await createContactComment(id, {\n files: filesData,\n });\n await onGetContactAttachments();\n onAddNewAttachment();\n setOpen(false);\n } catch (error) {\n toast.error(error?.response?.data?.message);\n toast.error(error?.response?.data?.error?.details[0]?.message);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const filterAttachments = (attachments, tags, archivedOnly) => {\n setAttachmentsFiltered(\n attachments\n .filter((attachment) => {\n if (!tags?.length) {\n return true;\n }\n return attachment.tags.map((tag) => tag?._id || tag).find((tag) => tags.indexOf(tag) !== -1);\n })\n .filter((attachment) => (archivedOnly ? !!attachment.archivedDate : !attachment.archivedDate))\n );\n };\n\n const attachmentsToShow = showAttachmentsFiltered ? attachmentsFiltered : attachments;\n\n return (\n \n \n {\n setTags(tags);\n setShowAttachmentsFiltered(true);\n\n filterAttachments(attachments, tags, archivedOnly);\n }}\n archivedOnly={archivedOnly}\n setArchivedOnly={setArchivedOnly}\n />\n \n \n downloadContactImage(id, file?._id, file?.name)}\n />\n \n {!archivedOnly && (\n \n {' '}\n New attachments\n \n )}\n {attachments?.length && !archivedOnly ? (\n \n {loadingDownload === 'pending' && (\n \n )}\n \n Download all\n \n \n ) : null}\n \n \n {loading && }\n {!attachmentsToShow.length && !loading && (\n No attachments added to this contact\n )}\n \n {attachmentsToShow?.map((file, i) => (\n
\n {\n downloadContactImage(id, file?._id, file?.name);\n }}\n onPreviewImage={() => {\n if (file?.mimetype?.includes('pdf')) {\n const link = document.createElement('a');\n link.href = file.preview_url;\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n } else if (\n file?.mimetype?.includes('audio') ||\n file?.mimetype?.includes('video') ||\n file?.mimetype?.includes('image')\n ) {\n handleOpenPopupFiles(file.url, attachments, setOpenPopupFiles, setFilesSelected, setLoadingOpenFiles);\n }\n }}\n restorable={archivedOnly && (file?.archivableByUser ?? true)}\n deletable={!archivedOnly && (file?.archivableByUser ?? true)}\n downloadable={!archivedOnly}\n entityId={id}\n id={file._id}\n onDeleteFile={async (entityId, id) => {\n await archiveContactAttachment(entityId, id);\n onGetContactAttachments();\n onEditAttachments && onEditAttachments();\n }}\n onRestoreFile={async (entityId, id) => {\n await unarchiveContactAttachment(entityId, id);\n onGetContactAttachments();\n onEditAttachments && onEditAttachments();\n }}\n >\n {\n updateContactAttachmentTags(id, file._id, {\n tags: [...(file?.tags?.map((_tag) => _tag?._id) || []), tag?._id],\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: [...(_attachment?.tags || []), tag],\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n withAddBtn={!archivedOnly}\n canRemove={!archivedOnly}\n onClickRemove={(tag) => {\n updateContactAttachmentTags(id, file._id, {\n tags: file?.tags.filter((_tag) => _tag?._id !== tag?._id).map((_tag) => _tag?._id),\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: file?.tags?.filter((_tag) => _tag?._id !== tag?._id),\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n />\n \n
\n ))}\n setOpen(false)}\n organizationId={organization?._id}\n />\n \n
\n );\n}\n\nContactAttachments.propTypes = {\n /**\n * The unique identifier of the contact.\n */\n id: PropTypes.string.isRequired,\n onAddNewAttachment: PropTypes.func,\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useState, useEffect, useCallback, useContext } from 'react';\nimport { Box, CircularProgress, Tabs, Typography, makeStyles, Button, FormControlLabel } from '@material-ui/core';\nimport { CustomSwitch } from '../../formEngine/components/WrapperComponent';\nimport { useParams } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\nimport { TabComp } from '../CaseDetails/CaseDetails';\nimport TabPanel from '../../components/TabPanel';\nimport ContactInfo from './ContactInfo';\nimport {\n createContactComment,\n editContactComment,\n fetchContact,\n fetchContactCases,\n fetchContactNotes,\n fetchContactProjects,\n fetchContactStats,\n onArchiveNoteContact,\n onUnArchiveNoteContact,\n updateNotesSortOrder,\n} from '../../services/unarmed';\nimport { CaseRenderRow, TransferredFrom, TransferredTo } from '../Cases/Cases';\nimport TableContainer from '../../components/TableContainer';\nimport { ProjectRenderRow } from '../Projects/Projects';\nimport { NoteLog } from '../../components/NoteLogs';\nimport CaseComment from '../CaseDetails/CaseComment';\nimport useOrganization from '../../hooks/useOrganization';\nimport { axiosCatchError } from '../../utils';\nimport ContactAttachments from './ContactAttachments';\nimport ContactHistory from './ContactHistory';\nimport { Context } from '../../Context';\nimport { downloadContactImage, updateUrlWithParams } from '../../utils/libs';\nimport Card from '../../components/Card';\nimport { BoxLeftContainer } from '../../styles/GlobalStyles';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n}));\n\nconst casesColumns = ['Type', 'Tracking number', 'Created Date', 'Name', 'Assigned To', 'Status'];\nconst visibleColumns={type: true, trackingNumber: true, createdDate: true, name: true, assignedTo: true, status: true}\n\nconst projectsColumns = ['Type', 'Subtype', 'Number', 'Name', 'Created Date', 'Created by'];\n\nconst tabs = [\n { label: 'Cases', value: 0 },\n { label: 'Projects', value: 1 },\n { label: 'Notes', value: 2 },\n { label: 'Attachments', value: 4 },\n { label: 'History', value: 5 },\n];\n\n/**\n * React component for displaying the profile of a contact, including details, cases, projects, notes, attachments, and history.\n *\n * @component\n */\nconst ContactProfile = () => {\n const [contact, setContact] = useState();\n const [value, setValue] = useState(0);\n const [notesShow, setNotesShow] = useState([]);\n const [archivedOnly, setArchivedOnly] = useState(false);\n const [cases, setCases] = useState([]);\n const [projects, setProjects] = useState([]);\n const [loadingCases, setLoadingCases] = useState(false);\n const [loadingProjects, setLoadingProjects] = useState(false);\n const [stats, setStats] = useState({\n cases: 0,\n projects: 0,\n events: 0,\n });\n\n const getCanDelete = (user) => {\n if(myUser.role === 'admin' && organization?.permissions?.[myUser?.role]?.canDeleteNotesContacts !== 0 ){\n return true\n }else if(organization?.permissions?.[myUser?.role]?.canDeleteNotesContacts !== 0 && (myUser._id === user._id) ){\n return true\n }else{\n return false\n }\n }\n const [notes, setNotes] = useState([]);\n const [editingNote, setEditingNote] = useState();\n const { organization } = useOrganization();\n const { id } = useParams();\n const [openEditModal, setOpenEditModal] = useState(false);\n\n const { myUser } = useContext(Context);\n\n const initialSortOrder = localStorage.getItem('contactNotesSortOrder') || (myUser?.notesSortOrderDesc?.contacts ? 'desc' : 'asc');\n const [sortOrder, setSortOrder] = useState(initialSortOrder);\n\n const classes = useStyles();\n\n const handleArchiveOnly = () => {\n setArchivedOnly(!archivedOnly)\n }\n\n useEffect(() => {\n if(archivedOnly) {\n const newLogs = notes.filter(log => log.hasOwnProperty('archivedDate') && log.archivedDate !== null);\n setNotesShow(newLogs)\n }else{\n const newLogsWithoutArchivedDate = notes.filter(log => !log.hasOwnProperty('archivedDate'));\n setNotesShow(newLogsWithoutArchivedDate)\n }\n\n }, [notes, archivedOnly])\n\n /**\n * Handles the change of tabs.\n *\n * @param {Event} event - The event object.\n * @param {number} newValue - The new value (index) of the selected tab.\n */\n const handleChange = (event, newValue) => {\n const tabData = tabs[newValue];\n const tabLabel = tabData.label?.toLowerCase()?.replace(/ /g, '-');\n\n setValue(newValue);\n updateUrlWithParams(\n {\n organization_name: organization.name,\n tab_name: tabLabel,\n },\n {\n tab_name: tabLabel,\n }\n );\n };\n\n const sortByCreatedAt = (data, order = 'desc') => {\n return data.sort((x, y) => {\n const dateX = new Date(x.createdAt).getTime();\n const dateY = new Date(y.createdAt).getTime();\n\n if (order === 'asc') {\n return dateX - dateY;\n }\n return dateY - dateX;\n });\n };\n\n const toggleSortOrder = () => {\n const newSortOrder = sortOrder === 'asc' ? 'desc' : 'asc';\n const updatedSortOrder = newSortOrder === 'desc';\n\n updateNotesSortOrder(myUser?._id, 'contacts', updatedSortOrder)\n .then(() => {\n setSortOrder(newSortOrder);\n localStorage.setItem('contactNotesSortOrder', newSortOrder);\n })\n .catch((error) => {\n toast.error('Failed to update sort order');\n });\n };\n\n /**\n * Provides accessibility props for a tab.\n *\n * @param {number} index - The index of the tab.\n * @returns {Object} Accessibility props for the tab.\n */\n function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n }\n\n /**\n * Updates the contact information.\n */\n const onUpdateContactInfo = useCallback(() => {\n fetchContact(id).then((res) => {\n setContact(res.data);\n });\n }, [id]);\n\n /**\n * Renders a row for a case in the table.\n *\n * @param {Object} row - The case data.\n * @param {number} index - The index of the row.\n * @param {Function} handleClick - The function to handle row click.\n * @returns {JSX.Element} The rendered row.\n */\n const renderRowCase = (row, index, handleClick) => {\n const labelId = `enhanced-table-checkbox-${index}`;\n const description = [\n row.archived ? 'Archived' : null,\n row.transferred && row.referral?.previous?.organization ? (\n \n ) : null,\n row.transferred && row.referral?.next?.organization ? (\n \n ) : null,\n ]\n .filter(Boolean)\n .flatMap((_value, _index, array) => {\n if (_index < array.length - 1) {\n return [_value, ' - '];\n }\n\n return [_value];\n });\n\n return (\n \n );\n };\n\n /**\n * Renders a row for a project in the table.\n *\n * @param {Object} row - The project data.\n * @param {number} index - The index of the row.\n * @param {Function} handleClick - The function to handle row click.\n * @returns {JSX.Element} The rendered row.\n */\n const renderRowProject = (row, index, handleClick) => {\n const labelId = `enhanced-table-checkbox-${index}`;\n\n return (\n \n );\n };\n\n /**\n * Fetches notes for the contact.\n */\n const handleOnFetchNotes = () => {\n fetchContactNotes(id).then((res) => {\n setNotes(sortByCreatedAt(res.data, sortOrder));\n });\n };\n\n useEffect(() => {\n onUpdateContactInfo();\n }, [id, onUpdateContactInfo]);\n\n useEffect(() => {\n if (contact) {\n setLoadingCases(true);\n fetchContactCases(contact?._id).then((res) => {\n setLoadingCases(false);\n setCases(res.data);\n });\n\n setLoadingProjects(true);\n fetchContactProjects(contact?._id).then((res) => {\n setLoadingProjects(false);\n setProjects(res.data);\n });\n\n fetchContactStats(contact?._id).then((res) => {\n setStats(res.data);\n });\n\n handleOnFetchNotes();\n }\n }, [contact]);\n\n useEffect(() => {\n handleOnFetchNotes();\n }, [sortOrder, id]);\n\n useEffect(() => {\n if (organization) {\n updateUrlWithParams(\n {\n organization_name: organization?.name,\n tab_name: 'cases',\n },\n {\n tab_name: 'cases',\n }\n );\n }\n }, [organization]);\n\n return (\n \n \n \n Contact Profile\n setOpenEditModal(true)}\n color=\"primary\"\n variant=\"contained\"\n className={classes.button}\n >\n Edit Profile\n \n \n {!contact ? (\n \n \n \n ) : (\n setOpenEditModal(false)}\n contact={contact}\n stats={stats}\n onUpdate={onUpdateContactInfo}\n onClickCard={(tab) => {\n if (tab === 'cases') {\n setValue(0);\n }\n\n if (tab === 'projects') {\n setValue(1);\n }\n }}\n />\n )}\n \n \n {tabs.map((tab, i) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Notes\n \n \n \n }\n label={sortOrder === 'desc' ? 'Most Recent' : 'Oldest'}\n labelPlacement=\"end\"\n style={{ marginLeft: '500px' }}\n />\n }\n labelPlacement=\"end\"\n label=\"Archived only\"\n />\n \n\n \n }>\n {!notesShow?.length ? (\n \n No notes added to this contact\n \n ) : null}\n {notesShow.map((note) => {\n return(\n {\n await onArchiveNoteContact(id, note?._id)\n fetchContactNotes(id).then((res) => {\n setNotes(sortByCreatedAt(res.data, sortOrder));\n });\n }}\n handleRestoreClick={async() => {\n await onUnArchiveNoteContact(id, note?._id)\n fetchContactNotes(id).then((res) => {\n setNotes(sortByCreatedAt(res.data, sortOrder));\n });\n }}\n key={note?._id}\n _id={note?._id}\n createdAt={note?.createdAt}\n files={note?.files}\n comment={note?.comment}\n user={note?.user}\n userInfo={note?.userInfo}\n updatedAt={note?.updatedAt}\n subject=\"contact\"\n canEdit={note?.user?._id === myUser?._id}\n canDelete={getCanDelete(note?.user)}\n onEditClick={(item) => setEditingNote(item)}\n editing={editingNote?._id === note?._id}\n onCancelEditingClick={() => setEditingNote(undefined)}\n onDownloadImage={(file) => downloadContactImage(id, file?._id, file?.name)}\n />\n )})}\n \n {}}\n callBack={async (filesHash, comment, resetValues, canceled = false) => {\n if (!canceled) {\n if (editingNote) {\n await editContactComment(contact?._id, editingNote?._id, {\n comment,\n }).catch(axiosCatchError);\n } else {\n await createContactComment(contact?._id, {\n ...(comment ? { comment } : {}),\n files: filesHash,\n }).catch(axiosCatchError);\n }\n\n handleOnFetchNotes();\n }\n\n resetValues();\n setEditingNote(undefined);\n }}\n editingLog={editingNote}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ContactProfile;","import React, { useEffect, useState } from 'react';\nimport { Grid, Tabs, Divider } from '@material-ui/core';\nimport styled from 'styled-components';\nimport ShareIcon from '@material-ui/icons/Share';\n\nimport { TabComp } from '../CaseDetails/CaseDetails';\nimport TabPanel from '../../components/TabPanel';\n\nfunction a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n}\n\nconst Social = () => {\n const [tabsAccounts, setTabsAccounts] = useState(0);\n\n useEffect(() => {\n window.fbAsyncInit = function () {\n window.FB.init({\n appId: process.env.REACT_APP_FACEBOOK_ID,\n cookie: true,\n xfbml: true,\n version: 'v10.0',\n });\n\n window.FB.AppEvents.logPageView();\n };\n\n (function (d, s, id) {\n var js,\n fjs = d.getElementsByTagName(s)[0];\n if (d.getElementById(id)) {\n return;\n }\n js = d.createElement(s);\n js.id = id;\n js.src = 'https://connect.facebook.net/en_US/sdk.js';\n fjs.parentNode.insertBefore(js, fjs);\n })(document, 'script', 'facebook-jssdk');\n }, []);\n\n const onChangeTabsAccounts = (event, newValue) => {\n setTabsAccounts(newValue);\n };\n\n const handleFacebookLogin = () => {\n window.FB.login(\n (response) => {\n if (response.authResponse) {\n console.log('Welcome! Fetching your information.... ');\n window.FB.api('/me', function (response) {\n console.log('Good to see you, ' + response.name + '.');\n });\n } else {\n console.log('User cancelled login or did not fully authorize.');\n }\n },\n { scope: 'public_profile,email' }\n );\n };\n\n return (\n \n \n \n \n {/* */}\n \n \n \n \n \n Connect your Facebook Account\n \n \n \n \n \n \n \n );\n};\n\nconst ConnectAccountButton = styled.button`\n width: 100%;\n border: 0;\n display: flex;\n align-items: center;\n border: 1px dashed rgba(0, 0, 0, 0.1);\n background-color: rgba(0, 0, 0, 0.05);\n height: 45px;\n padding: 0px 16px;\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.25s ease;\n &:hover {\n opacity: 0.7;\n }\n span {\n margin-left: 12px;\n color: rgba(0, 0, 0, 0.5);\n font-size: 14px;\n }\n`;\n\nexport default Social;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Switch, Route, Router, BrowserRouter, Redirect } from 'react-router-dom';\nimport Layout from '../components/Layout';\nimport { Context } from '../Context';\nimport Activity from '../pages/Activity/Activity';\nimport Allegations from '../pages/Allegations/Allegations';\nimport Login from '../pages/Auth/Login/Login';\nimport CaseDetails from '../pages/CaseDetails/CaseDetails';\nimport CasePdf from '../pages/CaseDetails/CasePdf';\nimport Cases from '../pages/Cases/Cases';\nimport Data from '../pages/Data/Data';\nimport FileImport from '../pages/FileImport/FileImport';\nimport SuccessImported from '../pages/FileImport/SuccessImported';\nimport FormEngine from '../pages/FormEngine/FormEngine';\nimport Forms from '../pages/Forms/Forms';\nimport Home from '../pages/Home/Home';\nimport Mfa from '../pages/Mfa/Mfa';\nimport OfficerProfile from '../pages/Officer/OfficerProfile';\nimport OfficersList from '../pages/Officers/OfficersTable';\nimport OfficersMerge from '../pages/Officers/pages/Merge';\nimport OfficersMergeConfirmation from '../pages/Officers/pages/MergeConfirmation';\nimport Permissions from '../pages/Permissions/Permissions';\nimport Profile from '../pages/Profile/Profile';\nimport ReportProfile from '../pages/ReportProfile/ReportProfile';\nimport ExploreProfile from '../pages/Insights/ExploreProfile/ExploreProfile';\nimport DashboardProfile from '../pages/Insights/DashboardProfile';\nimport Usage from '../pages/Usage/Usage';\nimport User from '../pages/User/User';\nimport Users from '../pages/Users/Users';\nimport NotFound from '../pages/NotFound';\nimport Insights from '../pages/Insights/Insights';\n\nimport history from './history';\nimport FormProfile from '../pages/FormProfile/FormProfile';\nimport Signup from '../pages/Auth/Signup/Signup';\nimport ResetPassword from '../pages/Auth/ResetPassword/ResetPassword';\nimport UpdateAlert from '../components/UpdateAlert';\nimport DataDocumentation from '../pages/DataDocumentation/DataDocumentation';\nimport InsightsDocumentation from '../pages/Insights/InsightsDocumentation';\nimport ResetPasswordById from '../pages/Auth/ResetPasswordById/ResetPasswordById';\nimport FAQ from '../pages/FAQ/FAQ';\nimport Settings from '../pages/Settings/Settings';\nimport FormDashboard from '../pages/FormDashboard/FormDashboard';\nimport SuccessSumitted from '../pages/FormDashboard/SuccessScreen';\nimport Projects from '../pages/Projects/Projects';\nimport ProjectDetails from '../pages/Projects/ProjectDetails';\nimport Notifications from '../pages/Notifications/Notifications';\nimport Contacts from '../pages/Contacts/Contacts';\nimport ContactProfile from '../pages/Contacts/ContactProfile';\nimport Social from '../pages/Social/Social';\n\nfunction NoMatch() {\n return ;\n}\n\nfunction PrivateRoute({ auth, showMfa, children, ...rest }) {\n return (\n {\n if (auth && showMfa) {\n return (\n \n );\n }\n if (auth) {\n return children;\n }\n return (\n \n );\n }}\n />\n );\n}\n\nconst generalRoutes = {\n allegations: '/allegations',\n cases: '/cases',\n contacts: '/contacts',\n forms: '/forms',\n import: '/import',\n insights: '/insights',\n officers: '/officers',\n projects: '/projects',\n users: '/users',\n};\n\nconst casesRoutes = [\n { path: '/cases', Component: Cases },\n { path: '/case/:id', Component: CaseDetails },\n { path: '/case-exported/:id', Component: CasePdf },\n];\nconst contactsRoutes = [\n { path: '/contacts', Component: Contacts },\n {\n path: '/contacts/:id',\n Component: ContactProfile,\n },\n];\nconst officerRoutes = [\n { path: '/officer/:id', Component: OfficerProfile },\n { path: '/officers/merge', Component: OfficersMerge },\n { path: '/officers/merge-confirmation', Component: OfficersMergeConfirmation},\n { path: '/officers', Component: OfficersList },\n];\n\nconst adminRoutes = [\n { path: '/usage', Component: Usage },\n { path: '/activity', Component: Activity },\n { path: '/user/:id', Component: User },\n { path: '/invitation/:id', Component: User },\n { path: '/import', Component: FileImport },\n { path: '/permissions', Component: Permissions },\n];\n\nconst AppRouter = ({ auth, showMfa, hasEnrollFactor }) => {\n const { organization, myUser, requireRefresh } = useContext(Context);\n const [defaultRoute, setDefaultRoute] = useState('/');\n const [stateUpdate, setStateUpdate] = useState(false);\n function findRouteWithPermission(permissions, generalRoutes) {\n for (const permission in permissions) {\n if (permissions[permission] === 2 && generalRoutes.hasOwnProperty(permission)) {\n return generalRoutes[permission];\n }\n }\n return null;\n }\n\n useEffect(() => {\n if (organization?.permissions?.[myUser?.role]?.cases === 0) {\n const result = findRouteWithPermission(organization?.permissions?.[myUser?.role], generalRoutes);\n setDefaultRoute(result);\n setStateUpdate(true);\n } else if (organization?.permissions?.[myUser?.role]?.cases === 2) {\n setStateUpdate(true);\n }\n }, [organization, myUser]);\n\n return (\n <>\n {requireRefresh && }\n \n \n \n {/*\n {(organization?.permissions?.[myUser?.role]?.dashboard && (\n \n \n \n )) || (\n \n )}\n */}\n \n {(stateUpdate && organization?.permissions?.[myUser?.role]?.cases && (\n \n \n \n )) || (\n \n )}\n \n\n {casesRoutes.map((route, index) => (\n \n {organization?.permissions?.[myUser?.role]?.cases ? (\n \n \n \n ) : (\n \n )}\n \n ))}\n {contactsRoutes.map((route, index) => (\n \n {organization?.permissions?.[myUser?.role]?.contacts ? (\n \n \n \n ) : (\n \n )}\n \n ))}\n {officerRoutes.map((route, index) => (\n \n {organization?.permissions?.[myUser?.role]?.officers ? (\n \n \n \n ) : (\n \n )}\n \n ))}\n {adminRoutes.map((route, index) => (\n \n {myUser?.role === 'admin' ? (\n \n \n \n ) : (\n \n )}\n \n ))}\n\n \n {organization?.permissions?.[myUser?.role]?.users ? (\n \n \n \n ) : (\n \n )}\n \n\n \n {organization?.permissions?.[myUser?.role]?.allegations ? (\n \n \n \n ) : (\n \n )}\n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {auth && (\n \n \n \n )}\n\n {auth && window.location.pathname.includes('/mfa') && (\n \n )}\n\n {!auth && (\n \n \n \n )}\n\n \n \n \n\n {!auth && (\n \n \n \n )}\n {!auth && (\n \n \n \n )}\n\n {!auth && window.location.pathname.includes('/mfa') && (\n \n )}\n\n {auth && window.location.pathname.includes('/login') && !showMfa && (\n \n )}\n\n \n \n \n \n \n \n \n );\n};\n\nexport default AppRouter;\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { Context } from './Context';\nimport AppRouter from './routes/AppRouter';\nimport { onAuthStateChanged } from './services/firebase';\nimport LoadingScreen from './components/LoadingScreen';\n\nlet resentEmailCount = 1;\n\nfunction App() {\n const { activateAuth, isAuth, setIsAuth, organization, loadingOrg, signUpUser } = useContext(Context);\n const [loading, setLoading] = useState(true);\n const [userAut, setUsers] = useState(null);\n\n useEffect(() => {\n onAuthStateChanged((user) => {\n if (user && organization) {\n const token = localStorage.getItem('authToken');\n\n if (!token) {\n if (!user.emailVerified && organization?.features?.dashboard?.forceMFA?.enabled) {\n if (resentEmailCount === 1) {\n user.sendEmailVerification({\n url: `${window.location.origin}/mfa`,\n });\n }\n resentEmailCount += 1;\n }\n }\n\n // Generate a new token Id everytime the user changes\n user.getIdToken().then((newToken) => {\n activateAuth({ ...user, tokenId: newToken });\n localStorage.setItem('authToken', newToken);\n localStorage.setItem('refreshToken', user.refreshToken);\n });\n\n setUsers(user);\n setIsAuth(true);\n setLoading(false);\n }\n\n if (loadingOrg === 'resolved') {\n setLoading(false);\n }\n });\n // eslint-disable-next-line\n }, [organization, loadingOrg, signUpUser]);\n\n return loading ? (\n \n ) : (\n \n );\n}\n\nexport default App;\n","// chartjsConfig.js\nimport { Chart as ChartJS, ArcElement, Tooltip, Legend } from 'chart.js';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\n\nChartJS.register(ArcElement, Tooltip, Legend, ChartDataLabels);\n\nChartJS.defaults.pie = {\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: 'bottom',\n },\n datalabels: {\n anchor: 'end',\n align: 'start',\n offset: 10,\n formatter: (value, ctx) => {\n const label = ctx.chart.data.labels[ctx.dataIndex];\n return `${label}: ${value}`;\n },\n color: '#000',\n font: {\n weight: 'bold',\n },\n },\n },\n};\n","const en = {\n translations: {\n complaint: 'Complaint',\n compliment: 'Compliment',\n inquiry: 'Inquiry',\n referral: 'Referral',\n other: 'Other',\n form: 'Form',\n 'Tracking Number': 'Tracking Number',\n Created: 'Created by',\n 'Personal Information': 'Personal Information',\n anonymous: 'Anonymous/I do not want to share personal info',\n 'Civilian First Name': 'First Name',\n 'Civilian Last Name': 'Last Name',\n 'Email Address': 'Email Address',\n 'Phone Number': 'Phone Number',\n Address: 'Address',\n 'Incident Details': 'Incident Details',\n whyWouldYouLike: 'Why would you like to thank this employee?',\n Statement: 'Statement',\n links: 'Incident External Link',\n location: 'Location of Incident',\n date: 'Incident Date',\n time: 'Incident Time',\n officers: 'Police Officers',\n 'officer name': \"Officer's First Name\",\n 'officer lastName': \"Officer's Last Name\",\n 'officer badge': 'Badge/Serial Number',\n witness: 'Witness(es) or Others Involved',\n 'witness name': \"Witness's First Name\",\n 'witness lastName': \"Witness's Last Name\",\n 'additional information': 'Additional Information',\n how: 'How do you hear about us?',\n whatDescribeYou: 'What best describes you?',\n birth: 'Date of Birth',\n gender: 'Gender',\n sOrientation: 'Sexual Orientation',\n race: 'Race/Ethnicity',\n language: 'Is English your primary language?',\n EventInfo: 'Incident Details',\n eventLocationL: 'Location of Incident',\n eventDate: 'Date of Incident',\n eventTime: 'Time of Incident',\n },\n};\n\nexport default en;\n","const es = {\n translations: {\n complaint: 'Reclamo',\n compliment: 'Cumplido',\n inquiry: 'Consulta',\n referral: 'Remisión',\n other: 'Otro',\n form: 'Formulario de',\n 'Tracking Number': 'Número de Rastreo',\n Created: 'Creado por',\n 'Personal Information': 'Información Personal',\n anonymous: 'Anónimo / No quiero compartir información personal',\n 'Civilian First Name': 'Nombre',\n 'Civilian Last Name': 'Apellido',\n 'Email Address': 'Correo Electrónico',\n 'Phone Number': 'Número de Teléfono',\n Address: 'Dirección',\n 'Incident Details': 'Detalles del Incidente',\n whyWouldYouLike: '¿Por qué te gustaría agradecer a este empleado?',\n Statement: 'Declaración',\n links: 'Enlaces Externo del Incidente',\n location: 'Lugar del Incidente',\n date: 'Fecha del Incidente',\n time: 'Hora del Incidente',\n officers: 'Oficiales de Policia o Empleado(s)',\n 'officer name': 'Nombre del Oficial',\n 'officer lastName': 'Apellido del Oficial',\n 'officer badge': 'Insignia / Número de Serie',\n witness: 'Testigo(s) u otros involucrado(s)',\n 'witness name': 'Nombre del Testigo',\n 'witness lastName': 'Apellido del Testigo',\n 'additional information': 'Información Adicional',\n how: '¿Cómo te enteras de nosotros?',\n whatDescribeYou: '¿Qué te describe mejor?',\n birth: 'Fecha de Nacimiento',\n gender: 'Género',\n sOrientation: 'Orientación Sexual',\n race: 'Raza/Etnia',\n language: '¿Es el Inglés su idioma principal?',\n EventInfo: 'Información del Incidente',\n eventLocationL: 'Lugar del Incidente',\n eventDate: 'Fecha del Incidente',\n eventTime: 'Hora del Incidente',\n },\n};\n\nexport default es;\n","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\nimport en from './en';\nimport es from './es';\n\ni18n\n .use(initReactI18next)\n .use(LanguageDetector)\n .init({\n resources: {\n en,\n es,\n },\n fallbackLng: 'en',\n\n ns: ['translations'],\n defaultNS: 'translations',\n keySeparator: false,\n\n interpolation: {\n escapeValue: false,\n },\n });\n\nexport default i18n;\n","// Setting up Sentry\nimport * as Sentry from '@sentry/react';\nimport { BrowserTracing } from '@sentry/tracing';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ToastNotification } from './components/Notification';\nimport { ThemeProvider } from '@material-ui/core';\n\nimport App from './App';\nimport Context from './Context';\nimport GlobalStyles, { globalTheme } from './styles/GlobalStyles';\nimport 'react-toastify/dist/ReactToastify.css';\nimport './utils/chartjsConfig'\nimport './i18n/i18n';\nimport TagsProvider from './provider/TagsProvider';\nimport AccordionProvider from './provider/AccordionProvider';\nimport DataReportLinkProvider from './provider/DataReportLinkProvider';\n\nSentry.init({\n dsn: 'https://acfc3be5e0f747c8a8a58accbf628a86@o4504260247683072.ingest.sentry.io/4504406989799424',\n integrations: [new BrowserTracing()],\n environment: process.env.REACT_APP_ENV,\n tracesSampleRate: 1.0,\n});\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n","const validateForm = (values) => {\n for (const value of values) {\n if (!value) {\n return true;\n }\n }\n\n return false;\n};\n\nexport default validateForm;\n\nexport const checkValues = (savedValue, preValues) => {\n if (savedValue || savedValue?.length > 0) {\n return savedValue;\n }\n\n return preValues;\n};\n\nexport const checkNullValues = (obj) => {\n const copyObj = {};\n const keys = Object.keys(obj);\n\n keys.forEach((key) => {\n if (obj[key] || obj[key] === '') {\n copyObj[key] = obj[key];\n }\n });\n\n return copyObj;\n};\n\nexport const validateEmail = (email) => email?.toLowerCase()?.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/);\n","import React from 'react';\nimport { Box, makeStyles, Tooltip, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nimport formatText from '../../utils/formatText';\nimport AccordionWrap from '../../components/AccordionWrap';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3B70FE',\n fontWeight: '500',\n margin: '20px 0',\n },\n label: {\n fontSize: 12,\n color: '#585858',\n },\n}));\n\nconst PersonalInformation = ({ form }) => {\n const classes = useStyles();\n\n return (\n \n \n \n Personal Information\n \n \n }\n >\n \n Basic Info\n \n \n \n First name\n \n \n \n {formatText(form?.civilian?.firstName, 15) || 'Not specified'}\n \n \n \n \n \n Last name\n \n \n \n {formatText(form?.civilian?.lastName, 15) || 'Not specified'}\n \n \n \n \n \n Email\n \n \n {formatText(form?.civilian?.email, 15) || 'Not specified'}\n \n \n \n \n Phone\n \n \n {formatText(form?.civilian?.phone, 15) || 'Not specified'}\n \n \n \n\n Contact Info\n \n \n \n Street name\n \n \n \n {formatText(form?.civilian?.addressLine1, 26) || 'Not specified'}\n \n \n \n \n \n Apt/Unit #\n \n \n \n {formatText(form?.civilian?.addressLine2, 26) || 'Not specified'}\n \n \n \n \n \n City\n \n \n \n {formatText(form?.civilian?.city?.name, 26) || 'Not specified'}\n \n \n \n \n \n State\n \n \n \n {formatText(form?.civilian?.state?.name, 26) || 'Not specified'}\n \n \n \n \n \n Zip code\n \n \n {formatText(form?.civilian?.zipCode) || 'Not specified'}\n \n \n \n \n \n \n );\n};\n\nPersonalInformation.propTypes = {\n form: PropTypes.object,\n};\n\nexport default PersonalInformation;\n","import React, { useState } from 'react';\nimport {\n Box,\n Grid,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\n\nimport formatText from '../../utils/formatText';\nimport MenuTable from '../../components/MenuTable';\nimport { onTranslate } from '../../services/unarmed';\nimport AccordionWrap from '../../components/AccordionWrap';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3B70FE',\n fontWeight: '500',\n margin: '20px 0',\n },\n label: {\n fontSize: 12,\n color: '#585858',\n },\n}));\n\nconst timeRangeOptions = [\n { text: 'Night - 12:00am - 5:59am', value: 1 },\n { text: 'Morning - 6:00am - 11:59am', value: 2 },\n { text: 'Afternoon - 12:00pm - 5:59pm', value: 3 },\n { text: 'Evening - 6:00pm - 11:59pm', value: 4 },\n];\n\nexport const getTimeRange = (form) => {\n const timeRange = timeRangeOptions.filter((time) => time.value === form?.location?.time);\n\n return timeRange[0]?.text;\n};\n\nconst localeLan = ['English'];\n\nconst IncidentDetails = ({ form }) => {\n const classes = useStyles();\n const [translate, setTranslate] = useState('');\n const [options, setOptions] = useState(localeLan);\n const [statement, setStatement] = useState(() => form?.statement);\n\n const onSelect = (value) => {\n if (value === 'Show Original') {\n setTranslate('');\n setOptions(localeLan);\n setStatement(form?.statement);\n return;\n }\n onTranslate(statement).then(({ translations }) => {\n setStatement(translations?.[0]);\n });\n setOptions(['Show Original']);\n setTranslate(value);\n };\n return (\n \n \n \n Incident Details\n \n \n }\n >\n \n {form?.type === 'COMPLAINT' && (\n <>\n Incident Information\n \n \n \n Address\n \n \n \n {formatText(form?.location?.address, 15) || 'Not specified'}\n \n \n \n \n \n City\n \n \n \n {formatText(form?.location?.city?.name, 20) || 'Not specified'}\n \n \n \n \n \n State\n \n {/* */}\n \n {formatText(form?.location?.state?.name, 20) || 'Not specified'}\n \n {/* */}\n \n \n \n Zip Code\n \n {/* */}\n \n {formatText(form?.location?.zipCode, 20) || 'Not specified'}\n \n {/* */}\n \n \n \n Incident date\n \n\n \n {' '}\n {form?.location?.datetime ? moment(form?.location?.datetime).format('MM/DD/YYYY') : 'Not specified'}\n \n \n \n \n Incident time\n \n\n {getTimeRange(form) || 'Not specified'}\n \n \n \n )}\n \n Statement/Description of incident\n \n {/* */}\n\n \n \n \n {translate === 'Show Original' || !translate ? 'Translate To' : translate}\n \n\n \n \n \n \n \n \n {form?.type === 'COMPLIMENT' && (\n <>\n \n \n Why would you like to thank this employee?\n \n {form?.whyYouWantToThank || 'Not specified'}\n \n \n )}\n \n \n Statement\n \n {statement}\n \n \n\n Incident External Links\n \n \n {form?.links?.map((link, i) => (\n \n \n {formatText(link, 50)}\n \n \n ))}\n \n \n\n Name of Police officers (if Known)\n\n \n \n \n \n \n N.\n \n \n First name\n \n \n Last name\n \n \n Badge/Serial number\n \n \n Badge/Serial number\n \n \n \n \n {form?.employees?.map((row, i) => (\n \n {i + 1}\n {row.firstName}\n {row.lastName}\n {row.id}\n \n \n ))}\n \n
\n
\n {form?.type === 'COMPLAINT' && (\n <>\n Name of Police witness(es) or others involved\n \n \n \n \n \n N.\n \n \n First name\n \n \n Last name\n \n \n Phone number\n \n \n Email\n \n \n \n \n {form?.others?.map((row, i) => (\n \n {i + 1}\n {row.firstName}\n {row.lastName}\n {row.phone}\n {row.email}\n \n ))}\n \n
\n
\n \n )}\n\n {form?.type === 'COMPLIMENT' && (\n <>\n Event information\n \n \n \n Location of event\n \n \n \n {formatText(form?.location?.address, 20) || 'Not specified'}\n \n \n \n \n \n City\n \n \n \n {formatText(form?.location?.city?.name, 20) || 'Not specified'}\n \n \n \n \n \n State\n \n {/* */}\n \n {formatText(form?.location?.state?.name, 20) || 'Not specified'}\n \n {/* */}\n \n \n \n Zip Code\n \n {/* */}\n \n {formatText(form?.location?.zipCode, 20) || 'Not specified'}\n \n {/* */}\n \n \n \n Date of event\n \n \n {form?.location?.datetime ? moment(form?.location?.datetime).format('MM/DD/YYYY') : 'Not specified'}\n \n \n \n \n Time of event\n \n {getTimeRange(form) || 'Not specified'}\n \n \n \n )}\n \n \n \n );\n};\n\nIncidentDetails.propTypes = {\n form: PropTypes.object,\n};\n\nexport default IncidentDetails;\n","import { Box, Button, CircularProgress, makeStyles, Typography, Grid } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport useInput from '../../hooks/useInput';\nimport { OutLineInput } from './UpdateCase';\nimport { assignOfficer, onSearchOfficer } from '../../services/unarmed';\nimport Card from '../../components/Card';\nimport SearchResults from '../../components/SearchResults';\nimport formatText from '../../utils/formatText';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 8,\n marginBottom: 16,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n}));\n\n/**\n * Component for searching officers and assigning them to a case.\n * @param {Object} props - The props for the component.\n * @param {string} props.id - The ID of the case.\n * @param {Function} props.setIsRefetch - Function to trigger refetching case data.\n * @param {Function} props.setIsRequestingData - Function to indicate if data is being requested.\n * @returns {JSX.Element} - The SearchOfficer component.\n */\nconst SearchOfficer = ({ id, setIsRefetch, setIsRequestingData, defaultOfficers }) => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [loadingAddOfficer, setLoadingAddOfficer] = useState(false);\n const searchOfficer = useInput('');\n const [officers, setOfficers] = useState([]);\n const [searched, setSearched] = useState(false);\n\n /**\n * Function to search officers based on the input value.\n * @param {Event} e - The event object.\n */\n const searchOfficers = async (e) => {\n e.preventDefault();\n if (!searchOfficer.value) {\n return;\n }\n try {\n setLoading(true);\n setIsRequestingData(true);\n const { data } = await onSearchOfficer(searchOfficer.value);\n setOfficers(data);\n setLoading(false);\n setIsRequestingData(false);\n setSearched(true);\n } catch (error) {\n toast.error(error.response.data.error.details[0].message);\n setLoading(false);\n }\n };\n\n /**\n * Function to assign an officer to the case.\n * @param {Object} currentOfficer - The officer object to be assigned.\n */\n const onAddOfficer = async (currentOfficer) => {\n try {\n console.log({ currentOfficer });\n setIsRequestingData(true);\n setLoadingAddOfficer(currentOfficer?._id);\n await assignOfficer(id, currentOfficer?._id);\n toast.success(`Officer assigned Successfully`);\n setIsRequestingData(false);\n setLoadingAddOfficer(false);\n setIsRefetch();\n } catch (error) {\n setLoadingAddOfficer(false);\n toast.error(error?.response?.data?.message);\n toast.error(error?.response?.data?.error?.details[0]?.message);\n console.log(error);\n }\n };\n\n useEffect(() => {\n if (searchOfficer.value === '' && searched) {\n setSearched(false);\n }\n }, [searchOfficer.value, searched]);\n\n return (\n
\n \n \n \n \n \n {searchOfficer.error}\n \n \n \n \n {loading ? : 'Search'}\n \n \n setOfficers([])}\n >\n Clear\n \n \n \n \n \n formatText(value, 16),\n },\n {\n type: 'customField',\n name: 'Officer First Name',\n key: 'First Name',\n xs: 3,\n renderValue: (value) => formatText(value, 16),\n },\n {\n type: 'customField',\n name: 'Officer Last Name',\n key: 'Last Name',\n xs: 3,\n renderValue: (value) => formatText(value, 16),\n },\n ]}\n data={officers}\n loading={loadingAddOfficer}\n defaultData={defaultOfficers}\n onClickAdd={(item) => onAddOfficer(item)}\n searched={searchOfficer.value !== '' && searched}\n noResultsText=\"No officers found yet\"\n />\n \n
\n );\n};\n\nSearchOfficer.propTypes = {\n id: PropTypes.string.isRequired,\n setIsRefetch: PropTypes.func.isRequired,\n setIsRequestingData: PropTypes.func.isRequired,\n defaultOfficers: PropTypes.array.isRequired,\n};\n\nexport default SearchOfficer;\n","import { Box, Button, CircularProgress, Typography, Grid } from '@material-ui/core';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { toast } from '../../components/Notification';\nimport styled from 'styled-components';\nimport OfficerAdded from '../../components/OfficerAdded';\nimport { getOfficerOptions, updateForm } from '../../services/unarmed';\nimport Card from '../../components/Card';\nimport UpdateRenderer from './UpdateCaseComponents/UpdateRenderer';\nimport { BoxContainer } from '../../styles/GlobalStyles';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\nimport CaseUpdateSection from '../../components/CaseUpdateSection';\nimport MultiSelectBox from '../../components/MultiSelectBox';\n/**\n * Officers component to display officers related to a case.\n * @param {Object} props - Component props.\n * @param {Array} props.officers - Array of officers.\n * @param {string} props.id - Case ID.\n * @param {Function} props.setIsRefetch - Function to set refetch status.\n * @param {Function} props.setIsRequestingData - Function to set requesting data status.\n * @param {Object} props.officersOption - Options related to officers.\n * @returns {JSX.Element} Officers component.\n */\n\nconst Officers = ({\n officersAllegationOptions,\n officers,\n id,\n form,\n setIsRefetch,\n setIsRequestingData,\n officersOption,\n setForm,\n formType,\n}) => {\n const [loadingOfficers, setLoadingOfficers] = React.useState(false);\n const [contents, setContents] = useState([]);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n useEffect(() => {\n if (formType && formType.version === FORM_TYPE_VERSION_2) {\n const newContents = formType?.customFields.map((page, pageIndex) => {\n const pageName = page?.name?.toLowerCase().replace(/ /g, '-');\n const itemId = `custom-section-${pageIndex}-${pageName}`;\n\n return {\n active: page.active,\n name: page.name,\n value: itemId,\n components: page?.sections[0]?.components?.length || 0,\n };\n });\n\n if (newContents.length > 0) {\n setContents(newContents);\n }\n }\n }, []);\n\n return (\n
\n {officers.length === 0 && (\n No officers added to this case\n )}\n {loadingOfficers && (\n \n \n \n )}\n\n {!loadingOfficers && officers.length > 0 &&\n
\n {\n officers.map((officer, i) => (\n \n ))\n }\n
\n }\n
\n );\n // return (\n // \n // {officers.length === 0 && (\n // No officers added to this case\n // )}\n // {loadingOfficers && (\n // \n // \n // \n // )}\n // {!loadingOfficers &&\n // officers.map((officer, i) => (\n // \n // ))}\n // \n // );\n};\n\nconst StyledList = styled.ul`\n list-style: inside;\n`;\n\n// PropTypes validation\nOfficers.propTypes = {\n officers: PropTypes.array.isRequired,\n id: PropTypes.string.isRequired,\n setIsRefetch: PropTypes.func.isRequired,\n setIsRequestingData: PropTypes.func.isRequired,\n officersOption: PropTypes.object,\n};\n\nexport default Officers;\n","import React from 'react';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { TextField, makeStyles, Chip, Checkbox } from '@material-ui/core';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\n\nconst useStyles = makeStyles((theme) => ({\n autocomplete: {\n width: '100%',\n },\n chip: {\n margin: 2,\n },\n optionItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 16px',\n },\n selectedText: {\n color: '#2E66FE',\n },\n paper: {\n backgroundColor: 'white',\n boxShadow: '0px 5px 15px rgba(0, 0, 0, 0.1)',\n borderRadius: 4,\n },\n option: {\n backgroundColor: 'white',\n '&:hover': {\n backgroundColor: 'rgba(46, 102, 254, 0.08)',\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: 'white',\n },\n '&[aria-selected=\"true\"]:hover': {\n backgroundColor: 'rgba(46, 102, 254, 0.08)',\n },\n },\n listbox: {\n padding: 0,\n },\n}));\n\nconst icon = ;\nconst checkedIcon = ;\n\nexport default function DropdownResults({\n list = [],\n selectedOrg = null,\n setSelectedOrg,\n placeholder = 'Seleccione una organización',\n multiple = false,\n selectedItems = [],\n setSelectedItems,\n}) {\n const classes = useStyles();\n\n const value = multiple ? selectedItems : selectedOrg;\n const handleChange = (event, newValue) => {\n if (multiple) {\n if (setSelectedItems) {\n setSelectedItems(newValue);\n }\n } else {\n if (setSelectedOrg) {\n setSelectedOrg(newValue);\n }\n }\n };\n\n return (\n option?.name || ''}\n value={value}\n onChange={handleChange}\n multiple={multiple}\n disableCloseOnSelect={multiple}\n classes={{\n paper: classes.paper,\n option: classes.option,\n listbox: classes.listbox,\n }}\n renderOption={(option, { selected }) => (\n
\n {multiple && (\n \n )}\n {option.name}\n
\n )}\n renderInput={(params) => }\n renderTags={(value, getTagProps) =>\n value.map((option, index) => )\n }\n noOptionsText=\"No available organizations were found.\"\n ChipProps={{ color: 'primary' }}\n />\n );\n}\n","import {\n Box,\n Button,\n Checkbox,\n CircularProgress,\n FormControlLabel,\n Grid,\n makeStyles,\n TextField,\n Typography,\n Modal,\n Backdrop,\n Fade,\n} from '@material-ui/core';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { toast } from '../../components/Notification';\nimport React, { useState, useEffect } from 'react';\nimport DropdownResults from '../../components/DropdownResults';\nimport { getOrganizationsTransfer, onTransferCase } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n },\n alertContainer: {\n height: 'fit-content',\n width: '100%',\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n background: '#FFFBF3',\n borderLeft: '6px solid #FFC64C',\n borderRadius: 2,\n marginTop: 10,\n marginBottom: 20,\n padding: '10px',\n },\n}));\n\nexport default function TransferCase({\n setOpen,\n organizationName,\n id,\n setForm,\n setIsRequestingData,\n transferredTo,\n referrals = [],\n refetch,\n}) {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [organizations, setOrganizations] = useState([]);\n const [showDropdown, setShowDropdown] = useState(false);\n const [selectedOrgs, setSelectedOrgs] = useState([]);\n const [confirm, setConfirm] = useState(false);\n const [showTransferConfirm, setShowTransferConfirm] = useState(false);\n\n useEffect(() => {\n getOrganizationsTransfer()\n .then(({ data }) => setOrganizations(data))\n .catch((err) => console.log(err));\n }, []);\n\n const getAlreadyTransferredOrgs = () => {\n if (!referrals || !selectedOrgs.length) return [];\n\n return selectedOrgs\n .filter((org) => referrals.some((ref) => ref.organization && ref.organization._id === org._id))\n .map((org) => {\n return {\n id: org._id,\n name: org.name,\n };\n });\n };\n\n const transferCase = () => {\n if (selectedOrgs.length === 0 || !confirm) {\n toast.error('Please select at least one Organization and confirm the case transfer');\n return;\n }\n\n const alreadyTransferredOrgs = getAlreadyTransferredOrgs();\n if (alreadyTransferredOrgs.length > 0) {\n setShowTransferConfirm(true);\n return;\n }\n\n proceedWithTransfer();\n };\n\n const proceedWithTransfer = () => {\n setLoading(true);\n\n const transferOrganizationIds = selectedOrgs.map((org) => org._id);\n\n onTransferCase(id, { transferOrganizationIds })\n .then(({ data }) => {\n setLoading(false);\n setOpen(false);\n setIsRequestingData(true);\n setForm((prevState) => ({ ...prevState, ...data }));\n\n if (typeof refetch === 'function') {\n refetch().then(() => {\n toast.success('The Case was transferred successfully');\n setIsRequestingData(false);\n });\n } else {\n toast.success('The Case was transferred successfully');\n setIsRequestingData(false);\n }\n })\n .catch((error) => {\n toast.error(error?.response?.data?.error?.details[0]?.message || error?.response?.data?.message);\n setLoading(false);\n });\n };\n\n return (\n <>\n Transfer Cases\n\n \n \n \n You can transfer this case to multiple organizations. Please confirm case transfer in the checkbox below. This\n action cannot be undone.\n \n \n \n \n From}\n style={{ width: '100%' }}\n value={organizationName}\n disabled\n />\n \n \n \n \n \n setConfirm(!confirm)} />}\n label=\"Confirm case transfer\"\n labelPlacement=\"end\"\n />\n \n \n \n setOpen(false)}\n >\n CANCEL\n \n \n {loading ? : 'Transfer'}\n \n \n\n setShowTransferConfirm(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n \n Are you sure you want to transfer?\n \n \n This case has already been transferred to the following organizations:{' '}\n {getAlreadyTransferredOrgs()\n .map((org) => org.name)\n .join(', ')}\n . Do you want to proceed anyway?\n \n \n setShowTransferConfirm(false)}\n >\n CANCEL\n \n {\n setShowTransferConfirm(false);\n proceedWithTransfer();\n }}\n >\n CONFIRM\n \n \n
\n
\n \n \n );\n}\n","import {\n Box,\n Button,\n Checkbox,\n CircularProgress,\n FormControlLabel,\n Grid,\n makeStyles,\n TextField,\n MenuItem,\n Typography,\n} from '@material-ui/core';\nimport styled from 'styled-components';\nimport React, { useState } from 'react';\nimport { toast } from '../../components/Notification';\nimport { onDuplicateCase } from '../../services/unarmed';\nimport { useHistory } from 'react-router-dom';\nimport { TrendingUpTwoTone } from '@material-ui/icons';\n\nconst TitleContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: 0,\n },\n },\n\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n },\n\n alertContainer: {\n height: 'fit-content',\n width: '100%',\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n background: '#FFFBF3',\n borderLeft: '6px solid #FFC64C',\n borderRadius: 2,\n marginTop: 10,\n marginBottom: 20,\n padding: '10px',\n },\n}));\n\nconst includeFields = [\n { label: \"Cases Updates\", value: 'caseUpdates' },\n { label: \"Contacts\", value: 'contacts' },\n { label: \"Officers\", value: 'officers' },\n { label: \"Tasks\", value: 'tasks' },\n { label: \"Notes\", value: 'notes' },\n { label: \"Attachments\", value: 'attachments' },\n { label: \"History\", value: 'history' },\n]\n\nconst newCaseOptions = [\n { label: \"Created date from case source\", value: 'originalCreatedDate' },\n { label: \"Assign case to me\", value: 'assignToMe' },\n { label: \"Archive source case\", value: 'archiveOriginal' },\n]\n\nexport default function DuplicateCase({ setOpen, organizationName, typeOptions, id, setForm, setIsRequestingData }) {\n const classes = useStyles();\n const history = useHistory();\n const [loading, setLoading] = useState(false);\n const [options, setOptions] = useState({\n caseType: \"\",\n include: {\n caseUpdates: true,\n contacts: true,\n officers: true,\n tasks: true,\n notes: true,\n attachments: true,\n history: true,\n },\n additionalOptions: {\n originalCreatedDate: true,\n assignToMe: true,\n archiveOriginal: true,\n }\n })\n\n const handleCheckboxChange = (e, property) => {\n setOptions({\n ...options,\n [property]: {\n ...options[property],\n [e.target.name]: e.target.checked,\n }\n })\n }\n\n const handleDuplicateCase = () => {\n setLoading(true);\n onDuplicateCase(id, options)\n .then(({ data }) => {\n setLoading(false);\n setOpen(false);\n setIsRequestingData(true);\n setForm((prevState) => ({ ...prevState, ...data }));\n toast.success(`The Case was duplicated successfully. The Case Code is ${data.code}`);\n toast.success(`You have been redirected to the new case.`);\n setIsRequestingData(false);\n\n history.push(`/case/${data.code}`);\n })\n .catch((error) => {\n toast.error('Error duplicating the case. Please make sure that a form of the type you are trying to duplicate into exists.');\n setLoading(false);\n });\n };\n\n return (\n <>\n \n Duplicate Cases\n Select options to duplicate a case\n \n\n \n \n
\n
\n { !options.caseType &&\n Select new case type\n }\n setOptions({ ...options, caseType: e.target.value })}\n >\n {typeOptions.map((option) => (\n \n {option.text}\n \n ))}\n \n
\n
\n
\n \n Include\n
\n {\n includeFields.map((field) => (\n handleCheckboxChange(e, \"include\")}\n name={field.value}\n color=\"primary\"\n />\n }\n label={field.label}\n />\n ))\n }\n
\n
\n \n Options for new case\n
\n {\n newCaseOptions.map((field) => (\n handleCheckboxChange(e, \"additionalOptions\")}\n name={field.value}\n color=\"primary\"\n />\n }\n label={field.label}\n />\n ))\n }\n
\n
\n
\n\n \n setOpen(false)}\n >\n CANCEL\n \n \n {loading ? : 'Duplicate'}\n \n \n \n );\n}\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport Log from '../../components/Log';\n\nexport default function History({ log = [], loading }) {\n return (\n \n {log?.map((logItem, i) => (\n \n ))}\n \n );\n}\n","import { Box, Typography, CircularProgress } from '@material-ui/core';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport FileDownload from 'js-file-download';\nimport { toast } from '../../components/Notification';\nimport PropTypes from 'prop-types';\n\nimport useOrganization from '../../hooks/useOrganization';\nimport {\n archiveCaseAttachment,\n getFormAttachments,\n getFormAttachmentsDownload,\n unarchiveCaseAttachment,\n updateAttachmentTags,\n updateFormComments,\n} from '../../services/unarmed';\nimport ImageDownload from '../../components/ImageDownload';\nimport { handleOpenPopupFiles } from '../../utils';\nimport CarouselModal from '../../components/CarouselModal';\nimport Tags from '../../components/Tags';\nimport ModalUploadFile from '../../components/ModalUploadFile';\nimport TagsFilters from '../../components/TagsFilters';\nimport { BoxLeftContainer } from '../../styles/GlobalStyles';\n\nexport default function Attachments({ id, trackingNumber, setIsRequestingData, onEditAttachments }) {\n const [attachments, setAttachments] = useState([]);\n const [attachmentsFiltered, setAttachmentsFiltered] = useState([]);\n const [showAttachmentsFiltered, setShowAttachmentsFiltered] = useState(false);\n const [archivedOnly, setArchivedOnly] = useState(false);\n const [tags, setTags] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const [loadingDownload, setLoadingDownload] = useState('idle');\n const { organization } = useOrganization();\n const [open, setOpen] = React.useState(false);\n\n const [openPopupFiles, setOpenPopupFiles] = React.useState(false);\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const onGetFormAttachments = async () => {\n setLoading(true);\n return getFormAttachments(id)\n .then(({ data }) => {\n const _attachments = data.sort((x, y) => new Date(y.createdAt).getTime() - new Date(x.createdAt).getTime());\n\n setAttachments(_attachments);\n filterAttachments(_attachments, tags, archivedOnly);\n\n setLoading(false);\n })\n .catch((err) => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n if (id) {\n onGetFormAttachments();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id]);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const onDownloadAll = () => {\n setLoadingDownload('pending');\n getFormAttachmentsDownload(id)\n .then(({ data }) => {\n FileDownload(data, `${trackingNumber}-attachments.zip`);\n setLoadingDownload('resolved');\n })\n .catch((err) => {\n setLoadingDownload('rejected');\n });\n };\n\n const onSubmit = useCallback(\n async (e, files) => {\n e.preventDefault();\n\n try {\n const filesData = files.map((file) => ({\n file: file.hashId,\n tags: file?.tags?.map((tag) => tag?._id) || [],\n }));\n\n setOpen(false);\n setIsRequestingData(true);\n await updateFormComments(id, '', filesData, null);\n await onGetFormAttachments();\n setIsRequestingData(false);\n } catch (error) {\n toast.error(error?.response?.data?.message);\n toast.error(error?.response?.data?.error?.details[0]?.message);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]\n );\n\n const attachmentsToShow = showAttachmentsFiltered ? attachmentsFiltered : attachments;\n\n const filterAttachments = (attachments, tags, archivedOnly) => {\n setAttachmentsFiltered(\n attachments\n .filter((attachment) => {\n if (!tags?.length) {\n return true;\n }\n return attachment.tags.map((tag) => tag?._id || tag).find((tag) => tags.indexOf(tag) !== -1);\n })\n .filter((attachment) => (archivedOnly ? !!attachment.archivedDate : !attachment.archivedDate))\n );\n };\n\n return (\n \n {\n setTags(tags);\n setShowAttachmentsFiltered(true);\n filterAttachments(attachments, tags, archivedOnly);\n }}\n archivedOnly={archivedOnly}\n setArchivedOnly={setArchivedOnly}\n />\n \n \n \n {!archivedOnly && (\n \n {' '}\n New attachments\n \n )}\n {attachments?.length && !archivedOnly ? (\n \n {loadingDownload === 'pending' && (\n \n )}\n \n Download all\n \n \n ) : null}\n \n \n {loading && }\n\n {!attachmentsToShow.length && !loading && (\n No attachments added to this case\n )}\n \n {attachmentsToShow?.map((file, i) => (\n
\n {\n if (file?.mimetype?.includes('pdf')) {\n const link = document.createElement('a');\n link.href = file.preview_url;\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n } else if (\n file?.mimetype?.includes('audio') ||\n file?.mimetype?.includes('video') ||\n file?.mimetype?.includes('image')\n ) {\n handleOpenPopupFiles(\n file.url,\n attachmentsToShow,\n setOpenPopupFiles,\n setFilesSelected,\n setLoadingOpenFiles\n );\n }\n }}\n restorable={archivedOnly && (file?.archivableByUser ?? true)}\n deletable={!archivedOnly && (file?.archivableByUser ?? true)}\n downloadable={!archivedOnly}\n entityId={id}\n id={file._id}\n onDeleteFile={async (entityId, id) => {\n await archiveCaseAttachment(entityId, id);\n onGetFormAttachments();\n onEditAttachments && onEditAttachments();\n }}\n onRestoreFile={async (entityId, id) => {\n await unarchiveCaseAttachment(entityId, id);\n onGetFormAttachments();\n onEditAttachments && onEditAttachments();\n }}\n >\n {\n updateAttachmentTags(id, file._id, {\n tags: [...(file?.tags?.map((_tag) => _tag?._id) || []), tag?._id],\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: [...(_attachment?.tags || []), tag],\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n withAddBtn={!archivedOnly}\n canRemove={!archivedOnly}\n onClickRemove={(tag) => {\n updateAttachmentTags(id, file._id, {\n tags: file?.tags.filter((_tag) => _tag?._id !== tag?._id).map((_tag) => _tag?._id),\n });\n setAttachments((_attachments) =>\n _attachments.map((_attachment) => {\n if (_attachment._id === file._id) {\n return {\n ..._attachment,\n tags: file?.tags?.filter((_tag) => _tag?._id !== tag?._id),\n };\n }\n\n return { ..._attachment };\n })\n );\n }}\n />\n \n
\n ))}\n setOpen(false)}\n organizationId={organization?._id}\n />\n
\n
\n );\n}\n\nAttachments.propTypes = {\n id: PropTypes.string.isRequired,\n trackingNumber: PropTypes.string.isRequired,\n setIsRequestingData: PropTypes.func.isRequired,\n};\n","import React, { useEffect, useState, useContext } from 'react';\nimport { Box, Typography, Grid, makeStyles, NativeSelect, withStyles, InputBase } from '@material-ui/core';\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\nimport { toast } from '../../components/Notification';\nimport { Editor } from '@tinymce/tinymce-react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\n\nimport SelectBox from '../../components/SelectBox';\nimport DashButton from '../../components/DashButton';\nimport { transformStatus } from '../../utils';\nimport AssignUser from '../../components/AssignUser';\nimport { Context } from '../../Context';\nimport { onUpdateFormTask } from '../../services/unarmed';\nimport useOrganization from '../../hooks/useOrganization';\nimport { TINYMCE_DEFAULT_CONFIG, TINYMCE_SCRIPT_SRC } from '../../config/config';\nimport DateTimePickerMUI from '../../components/DateTimePickerMUi';\nimport ModalUploadFile from '../../components/ModalUploadFile';\nimport CarouselModal from '../../components/CarouselModal';\nimport Attachment from '../../components/Attachment';\n\nconst BootstrapInput = withStyles((theme) => ({\n root: {\n 'label + &': {\n marginTop: theme.spacing(3),\n },\n '& svg': {\n color: '#fff !important',\n marginRight: 15,\n },\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: theme.palette.background.paper,\n border: '1px solid #008858',\n background: '#008858 !important',\n color: '#fff',\n paddingRight: '35px !important',\n fontSize: 14,\n minWidth: 112,\n height: 24,\n padding: '10px 0px 10px 0px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n // Use the system font instead of the default Roboto font.\n fontFamily: 'Roboto',\n '& option': {\n color: '#333',\n },\n '&:focus': {\n borderRadius: 4,\n },\n },\n}))(InputBase);\n\nconst useStyles = makeStyles(() => ({\n containerTitle: {\n padding: '10px 20px',\n borderBottom: '1px solid #e2e2e2',\n },\n required: {\n color: 'red',\n fontSize: 16,\n },\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n cursor: 'pointer',\n },\n dropzoneText: {\n display: 'block',\n fontSize: 12,\n marginTop: 10,\n textAlign: 'center',\n },\n deleteIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: '35%',\n margin: 'auto',\n cursor: 'pointer',\n },\n viewIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: '35%',\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n}));\n\n/**\n * CaseDetailTask\n *\n * Component for each task on case\n *\n * @param {array} users\n * @param {object} form\n * @param {object} task\n * @param {string} taskKey\n * @param {function} updateTasks\n */\nconst CaseDetailTask = ({ users, form, task, taskKey, updateTasks }) => {\n const [type, setType] = useState('');\n const [types, setTypes] = useState([]);\n const [availableStatuses, setAvailableStatuses] = useState([]);\n const [subType, setSubType] = useState(null);\n const [subTypes, setSubTypes] = useState([]);\n const [notes, setNotes] = useState('');\n const [dueDate, setDueDate] = useState(new Date().toISOString());\n const [selectedStatus, setSelectedStatus] = useState(task?.values?.status);\n const [assignedUsers, setAssignedUsers] = useState([{}]);\n const classes = useStyles();\n const { authUser } = useContext(Context);\n const [open, setOpen] = useState(false);\n const [openModalUploadFile, setOpenModalUploadFile] = useState(false);\n const [filesSelected, setFilesSelected] = React.useState([]);\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n const [filled, setFilled] = useState(false);\n const [files, setFiles] = useState([]);\n\n const { organization } = useOrganization();\n\n const taskSettings = form?.formType?.tasks?.find((_task) => _task._id === task._id)?.settings;\n\n /**\n * @description function to handle change task data.\n * @param {object} taskData\n */\n const handleOnChangeTask = (taskData) => {\n updateTasks((prevTasks) =>\n prevTasks.map((_task) => {\n if (_task._id === taskData._id) {\n return {\n ..._task,\n ...taskData,\n };\n }\n\n return _task;\n })\n );\n };\n\n /**\n * @description function to handle delete user.\n * @param {object} user\n */\n const onDeleteUser = async (user) => {\n const newUsers = assignedUsers.filter((_user) => _user?._id !== user?._id);\n\n setAssignedUsers(newUsers);\n handleOnChangeTask({\n ...task,\n values: {\n ...task.values,\n assignedTo: newUsers.map((_user) => _user?._id),\n },\n });\n };\n\n /**\n * @description function to add new user to the array.\n * @param {array} usersArr\n */\n const onAssignUser = async (usersArr) => {\n setAssignedUsers(usersArr);\n handleOnChangeTask({\n ...task,\n values: {\n ...task.values,\n assignedTo: usersArr.map((user) => user?._id),\n },\n });\n };\n\n /**\n * @description function to handle change status.\n * @param {object} e\n */\n const handleOnChangeStatus = (e) => {\n const { value } = e.target;\n\n setSelectedStatus(value);\n handleOnChangeTask({\n ...task,\n values: {\n ...task.values,\n status: value,\n },\n });\n };\n\n /**\n * @description function to handle save case task.\n * @returns null\n */\n const handleOnSave = async () => {\n if (form && task) {\n const data = {\n taskId: task._id,\n status: selectedStatus,\n };\n\n if (assignedUsers.length === 0 && taskSettings?.assignedTo?.required) {\n return toast.error('Assigned to field is required!');\n }\n\n if (!type && taskSettings?.typeSubtype?.required) {\n return toast.error('Type field is required!');\n }\n\n if (!subType && taskSettings?.typeSubtype?.required) {\n return toast.error('Subtype field is required!');\n }\n\n if (!notes && taskSettings?.notes?.required) {\n return toast.error('Notes field is required!');\n }\n\n if (!dueDate && taskSettings?.times?.required) {\n return toast.error('Due date field is required!');\n }\n\n if (files.length === 0 && taskSettings?.attachments?.required) {\n return toast.error('Attachments field is required!');\n }\n\n if (taskSettings?.typeSubtype?.visible) {\n data.type = type;\n data.subType = subType;\n }\n\n if (taskSettings?.notes?.visible) {\n data.notes = notes;\n }\n\n if (taskSettings?.times?.visible && dueDate) {\n data.dueDateTime = dueDate;\n }\n\n if (taskSettings?.assignedTo?.visible) {\n data.assignedTo = assignedUsers.map((user) => user?._id);\n }\n\n if (taskSettings?.attachments?.visible) {\n data.attachments = files.map((file) => {\n if (file?._id && !file?.hashId) {\n return { _id: file?._id };\n }\n\n return {\n file: file?.hashId || file?._id,\n tags: file?.tags?.map((tag) => tag._id) || [],\n };\n });\n }\n\n try {\n const formResponse = await onUpdateFormTask(authUser.tokenId, form?._id, data);\n\n updateTasks(formResponse.data.tasks);\n toast.success('Updated task successfully!');\n } catch (error) {\n let message = error?.response?.data?.message;\n\n if (error?.response?.data?.error?.details?.length > 0) {\n message = error?.response?.data?.error?.details[0]?.message;\n }\n\n toast.error(message);\n }\n }\n };\n\n /**\n * @description function to handle open file.\n * @param {string} imgUrl\n * @param {array} filesOp\n */\n const handleOpen = (imgUrl, filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter(\n (flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video') || flop.mimetype.includes('audio')\n );\n const selectedFile = filesToOpen.find((flop) => flop.public_url === imgUrl);\n const selectedFileIndex = filesToOpen.indexOf(selectedFile);\n filesToOpen.splice(selectedFileIndex, 1);\n filesToOpen.unshift(selectedFile);\n setFilesSelected(filesToOpen);\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n };\n\n const onDeleteFile = (file) => {\n setFiles([...files.filter((_file) => _file?._id !== file?._id)]);\n };\n\n /**\n * @description useEffect for set data from task.\n */\n useEffect(() => {\n if (task && !filled) {\n const taskData = form?.formType?.tasks?.find((_task) => _task._id === task._id);\n let _users = users.filter((user) => task?.values?.assignedTo?.indexOf(user?._id) !== -1);\n\n setType(task?.values?.type);\n setSubType(task?.values?.subType);\n setNotes(task?.values?.notes);\n setDueDate(task?.values?.dueDateTime || null);\n setSelectedStatus(task?.values?.status);\n setTypes(taskData?.availableTypeSubtype);\n setAvailableStatuses(taskData?.availableStatuses);\n setFilled(true);\n\n if (_users.length === 0 && task.values.assignedTo.length > 0) {\n _users = task.values.assignedTo;\n }\n\n setAssignedUsers(_users);\n\n if (task?.values?.attachments?.length) {\n setFiles(\n task?.values?.attachments?.map((file) => ({\n _id: file._id,\n url: file.public_url,\n name: file.name,\n size: file.size,\n mimetype: file.mimetype,\n public_url: file.public_url,\n preview_url: file.preview_url,\n download_url: file.download_url,\n tags: file?.tags || [],\n archivedDate: file?.archivedDate,\n }))\n );\n } else {\n setFiles([]);\n }\n }\n }, [task, users, form, filled]);\n\n /**\n * @description useEffect for set sub-types from form type.\n */\n useEffect(() => {\n if (type) {\n const taskData = form?.formType?.tasks?.find((_task) => _task._id === task._id);\n const typeData = taskData?.availableTypeSubtype?.find((_type) => _type.type === type);\n setSubTypes(typeData.subTypes);\n\n if (typeData?.subTypes?.indexOf(subType) === -1) {\n setSubType(null);\n }\n }\n }, [type, subType, form, task]);\n\n return (\n \n \n \n \n T{taskKey + 1}\n \n \n \n {task.name}\n \n \n \n \n \n {taskSettings?.typeSubtype?.visible && (\n <>\n \n \n Type {taskSettings?.typeSubtype?.required && *}\n \n ({\n text: _type.type,\n value: _type.type,\n })) || [],\n }}\n value={type}\n onChange={(e) => {\n const { value } = e.target;\n\n setType(value);\n setSubType(null);\n handleOnChangeTask({\n ...task,\n values: {\n ...task.values,\n type: value,\n subType: null,\n },\n });\n }}\n outlined\n allowPlaceHolder={false}\n showDefaultValue\n style={{ width: '100%' }}\n withColors={{\n color: '#2E66FE',\n bg: '#2E66FE1A',\n focus: '#2E66FE1A',\n }}\n />\n \n \n \n Subtype {taskSettings?.typeSubtype?.required && *}\n \n ({\n text: _subType,\n value: _subType,\n })) || [],\n }}\n value={subType || ''}\n onChange={(e) => {\n const { value } = e.target;\n\n setSubType(value);\n handleOnChangeTask({\n ...task,\n values: {\n ...task.values,\n subType: value,\n },\n });\n }}\n outlined\n allowPlaceHolder={false}\n showDefaultValue\n style={{ width: '100%' }}\n withColors={{\n color: '#2E66FE',\n bg: '#2E66FE1A',\n focus: '#2E66FE1A',\n }}\n />\n \n \n )}\n {taskSettings?.times?.visible && (\n \n \n Due Date {taskSettings?.times?.required && *}\n \n {\n setDueDate(date);\n handleOnChangeTask({\n ...task,\n values: {\n ...task.values,\n dueDateTime: date,\n },\n });\n }}\n />\n \n )}\n \n \n }\n IconComponent={KeyboardArrowDownIcon}\n >\n {availableStatuses?.map((avalaible, i) => (\n \n {transformStatus(avalaible.status)?.toUpperCase()}\n \n ))}\n \n \n \n \n Last update {moment(task?.updatedAt).format('MMMM DD, YYYY - hh:mm a')}\n \n \n \n {taskSettings?.assignedTo?.visible && (\n \n \n 0 ? [...assignedUsers, {}] : [{}]}\n defaultUsers={users}\n form={form}\n setAssignedUsers={setAssignedUsers}\n onAssignUser={onAssignUser}\n loadingRemoveUser={false}\n onDeleteUser={onDeleteUser}\n alignX={0}\n alignKey=\"left\"\n textAlign=\"left\"\n flexWrap=\"wrap\"\n required={taskSettings?.assignedTo?.required}\n />\n \n \n )}\n {taskSettings?.notes?.visible && (\n \n \n Notes {taskSettings?.notes?.required && *}{' '}\n \n {\n setNotes(newValue);\n setTimeout(() => {\n handleOnChangeTask({\n ...task,\n values: {\n ...task.values,\n notes: newValue,\n },\n });\n }, 1);\n }}\n />\n \n )}\n {taskSettings?.attachments?.visible && (\n \n \n \n Attachments {taskSettings?.attachments?.required && *}{' '}\n \n setOpenModalUploadFile(true)} style={{ cursor: 'pointer' }}>\n {' '}\n New attachments\n \n \n \n {files.map((file) => (\n onDeleteFile(file)}\n onClickPreview={() => {\n if (file.mimetype.includes('pdf')) {\n const link = document.createElement('a');\n link.href = file.preview_url;\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n return;\n }\n handleOpen(file.public_url, files);\n }}\n archived={!!file.archivedDate}\n />\n ))}\n \n \n )}\n \n \n \n Save\n \n \n \n \n \n ({\n download_url: file.download_url,\n name: file.name,\n mimetype: file.mimetype,\n public_url: file.public_url,\n tags: file?.tags,\n archiveDate: file?.archivedDate,\n })) || [],\n }}\n loadingOpenFiles={loadingOpenFiles}\n setLoadingOpenFiles={setLoadingOpenFiles}\n />\n setOpenModalUploadFile(false)}\n onConfirm={(_, _files) => {\n setFiles((prevFiles) => [...prevFiles, ..._files]);\n setOpenModalUploadFile(false);\n }}\n />\n \n );\n};\n\nCaseDetailTask.propTypes = {\n users: PropTypes.array.isRequired,\n form: PropTypes.object.isRequired,\n task: PropTypes.object.isRequired,\n taskKey: PropTypes.string.isRequired,\n updateTasks: PropTypes.func.isRequired,\n};\n\nexport default CaseDetailTask;\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\n\nimport CaseDetailTask from './CaseDetailTask';\nimport Card from '../../components/Card';\nimport { BoxLeftContainer } from '../../styles/GlobalStyles';\n\n/**\n * CaseTasks\n *\n * List of tasks for case.\n *\n * @param {array} users\n * @param {object} form\n * @param {array} tasks\n * @param {function} updateTasks\n */\nconst CaseTasks = ({ users, form, tasks, updateTasks }) => (\n \n \n {tasks?.length > 0 ? (\n <>\n {tasks.map((task, taskKey) => (\n \n ))}\n \n ) : (\n <>\n No tasks added to this case\n \n )}\n \n \n);\n\nexport default CaseTasks;\n","import {\n Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade,\n ListItemIcon,\n makeStyles,\n MenuItem,\n Modal,\n Typography,\n} from '@material-ui/core';\n\nimport React from 'react';\nimport ArchiveIcon from '@material-ui/icons/Archive';\nimport TransferIcon from '@material-ui/icons/Send';\nimport DuplicateIcon from '@material-ui/icons/FileCopy';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\nimport UnarchiveIcon from '@material-ui/icons/Unarchive';\nimport { toast } from '../../components/Notification';\nimport PopperPortal from '../../components/PopperPortal';\nimport { onArchive, onUnArchive } from '../../services/unarmed';\nimport { axiosCatchError } from '../../utils';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n marginRight: 10,\n color: '#fff',\n height: 36,\n width: 30,\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n button2: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n '&:disabled': {\n border: '1px solid transparent',\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 480,\n outline: 0,\n alignSelf: 'center',\n },\n}));\n\nconst restoreMessage = 'Restoring a case brings it back into view for all users';\nconst ArchiveMessage = 'Archiving a case removes it from view but allows you to restore it at any time';\n\nexport default function HeaderOptions({ formId, archived = false, transferredTo = false, setForm, onTransferClick, onDuplicateClick }) {\n const [open, setOpen] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [modal, setModal] = React.useState(false);\n const classes = useStyles();\n\n const handleArchive = React.useCallback(async () => {\n try {\n setLoading(true);\n const { data } = await onArchive(formId);\n setForm((prevState) => ({\n ...prevState,\n archived: data.archived,\n }));\n setModal(false);\n toast.success('Forms archived successfully');\n } catch (error) {\n axiosCatchError(error);\n }\n setLoading(false);\n }, [formId]);\n\n const handleUnarchive = React.useCallback(async () => {\n try {\n setLoading(true);\n const { data } = await onUnArchive(formId);\n setForm((prevState) => ({\n ...prevState,\n archived: data.archived,\n }));\n setModal(false);\n\n toast.success('Forms Restored successfully');\n } catch (error) {\n axiosCatchError(error);\n }\n setLoading(false);\n }, [formId]);\n\n const options = [\n {\n label: archived ? 'Restore' : 'Archive',\n icon: archived ? : ,\n onClick: () => {\n setOpen(false);\n setModal(true);\n },\n },\n {\n label: 'Transfer',\n icon: ,\n onClick: onTransferClick,\n },\n {\n label: 'Duplicate',\n icon: ,\n onClick: onDuplicateClick,\n }\n ];\n\n return (\n \n \n \n {loading ? (\n \n ) : (\n options.map((option, index) => (\n \n {option.icon}\n \n {option.label}\n \n \n ))\n )}\n \n setModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n \n {archived ? 'Restore' : 'Archive'} case\n {archived ? restoreMessage : ArchiveMessage}\n \n {\n setModal(false);\n }}\n >\n CANCEL\n \n \n {loading ? : archived ? 'RESTORE' : 'ARCHIVE'}\n \n \n \n \n \n \n );\n}\n","import React, { Fragment, useState, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Modal, Fade, Paper, makeStyles, Typography, Box, Button, CircularProgress } from '@material-ui/core';\nimport { toast } from './Notification';\nimport shortid from 'shortid';\n\nimport FormSection from '../pages/FormDashboard/FormSection';\nimport { getQuestionBank } from '../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n boxShadow: theme.shadows[5],\n padding: 64,\n minWidth: 600,\n alignSelf: 'center',\n borderRadius: 4,\n maxHeight: '80vh',\n overflowY: 'scroll',\n maxWidth: 700,\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n}));\n\n/**\n * React component for editing case details in a modal.\n *\n * @component\n * @param {Object} props - The properties passed to the component.\n * @param {string} props.formId - The ID of the form being edited.\n * @param {Object} props.organization - The organization associated with the form.\n * @param {boolean} props.open - Flag indicating whether the modal is open.\n * @param {Object} props.page - The current page being edited.\n * @param {string} props.title - The title of the modal.\n * @param {number} props.pageIndex - The index of the current page.\n * @param {Function} props.onClose - Function to handle modal closure.\n * @param {Function} props.onSubmit - Function to handle form submission.\n */\nexport const ModalEditCaseDetails = ({\n formId,\n organization,\n open,\n page,\n formPages,\n title,\n pageIndex,\n onClose,\n onSubmit,\n}) => {\n /**\n * Material-UI styles for the component.\n * @type {Function}\n */\n const classes = useStyles();\n\n /**\n * State variable to store the available question banks.\n * @type {Array}\n */\n const [questionsBanks, setQuestionsBanks] = useState([]);\n\n /**\n * State variable to store the form values being edited.\n * @type {Array}\n */\n const [formValues, setFormValues] = useState([]);\n\n /**\n * State variable to store image previews.\n * @type {Array}\n */\n const [imagesPreview, setImagesPreview] = useState([]);\n\n /**\n * State variable indicating whether data is being loaded.\n * @type {boolean}\n */\n const [loading, setLoading] = useState(false);\n\n /**\n * Helper function to process and update components with question banks.\n *\n * @param {Array} components - Array of components to process.\n * @returns {Array} - Processed array of components.\n */\n const getComponents = (components) => {\n const questionBankComponents = components.map((component) => {\n if (component.type === 'questionBank') {\n const comps = questionsBanks.find((q) => q.type === component.data.type);\n return {\n ...component,\n components: comps?.components?.map((comp, index) => ({\n ...comp,\n data: {\n ...comp.data,\n questionBankIndex: index,\n },\n })),\n };\n }\n\n return component;\n });\n\n return questionBankComponents;\n };\n\n /**\n * Helper function to get form values based on page, section, and component indices.\n *\n * @param {number} _pageIndex - Index of the current page.\n * @param {number} sectionIndex - Index of the current section.\n * @param {number} componentIndex - Index of the current component.\n * @returns {*} - Form value for the specified indices.\n */\n const getFormValue = (_pageIndex, sectionIndex, componentIndex) => {\n if (formValues.length === 0) {\n return;\n }\n return formValues[_pageIndex]?.sections?.[sectionIndex]?.components[componentIndex];\n };\n\n /**\n * Helper function to update form values based on input data.\n *\n * @param {number} _pageIndex - Index of the current page.\n * @param {number} sectionIndex - Index of the current section.\n * @param {number} componentIndex - Index of the current component.\n * @param {*} value - New value to be set.\n * @param {number} demographicIndex - Index of the demographic data (if applicable).\n */\n const onSaveFormValues = (_pageIndex, sectionIndex, componentIndex, value, dmographicIndex) => {\n if (formValues.length === 0) {\n return;\n }\n const formValuesCopy = Array.from(formValues);\n\n if (typeof demographicIndex === 'number') {\n formValuesCopy[_pageIndex].sections[sectionIndex].components[componentIndex].components[dmographicIndex] = value;\n } else {\n formValuesCopy[_pageIndex].sections[sectionIndex].components[componentIndex] = value;\n }\n setFormValues(formValuesCopy);\n };\n\n /**\n * useEffect hook to fetch form type and question banks on component mount or when formId and organization change.\n */\n useEffect(() => {\n const onGetFormType = async () => {\n setLoading(true);\n try {\n const formatArrayValues = formPages.map((_page, _pageIndex) => ({\n sections: _page.sections.map((section, sectionIndex) => ({\n components: section.components.map((component, componentIndex) => {\n const value =\n pageIndex === _pageIndex ? page.sections[sectionIndex]?.components[componentIndex]?.value : null;\n\n if (component.type === 'questionBank') {\n return value;\n }\n\n if (component.type === 'addressInformation') {\n return {\n street: value?.street || null,\n aptUnit: value?.aptUnit || null,\n state: value?.state?.name || null,\n city: value?.city?.name || null,\n zipCode: value?.zipCode || null,\n };\n }\n\n if (component.type === 'contactInformation') {\n return {\n email: value?.email,\n firstName: value?.firstName,\n lastName: value?.lastName,\n phone: value?.phone,\n fileAnonymously: value?.fileAnonymously,\n workTelephone: value?.workTelephone,\n };\n }\n\n return value;\n }),\n })),\n }));\n\n setFormValues(formatArrayValues);\n setLoading(false);\n } catch (error) {\n toast.error(error.message);\n }\n };\n const onGetQuestionsBanks = async () => {\n try {\n const { data } = await getQuestionBank();\n setQuestionsBanks(data);\n } catch (error) {\n toast.error(error.message);\n }\n };\n if (organization) {\n onGetFormType();\n onGetQuestionsBanks();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formId, organization, pageIndex]);\n\n const pageFormatted = useMemo(\n () => ({\n ...page,\n sections: page.sections.map((section, sectionIndex) => ({\n ...section,\n components: section.components.map((component, componentIndex) => {\n if (component.type === 'demographics') {\n const demographicskeys = Object.keys(component.data);\n const demographicsComps = demographicskeys.map((key) => ({\n type: key,\n data: {\n ...component.data[key],\n questionBankIndex: demographicskeys.indexOf(key),\n isDemographics: true,\n demographicKey: key,\n },\n id: shortid.generate(),\n path: `[${pageIndex}].sections[${sectionIndex}].components[${componentIndex}].components[${demographicskeys.indexOf(\n key\n )}]`,\n }));\n\n const getDemographicsComponentByType = (type) =>\n demographicsComps.find((comp) => comp.type === type) || null;\n\n const demographicsComponentsOrdered = [\n getDemographicsComponentByType('birthdate'),\n getDemographicsComponentByType('gender'),\n getDemographicsComponentByType('raceEthnicity'),\n getDemographicsComponentByType('race'),\n getDemographicsComponentByType('ethnicity'),\n getDemographicsComponentByType('sexualOrientation'),\n ];\n\n return {\n ...component,\n components: demographicsComponentsOrdered.filter((comp) => comp?.data?.visible),\n path: `[${pageIndex}].sections[${sectionIndex}].components[${componentIndex}]`,\n };\n }\n return {\n ...component,\n path: `[${pageIndex}].sections[${sectionIndex}].components[${componentIndex}]`,\n };\n }),\n })),\n }),\n [page, pageIndex]\n );\n\n /**\n * Render the JSX structure for the component.\n */\n return (\n \n \n \n

{title}

\n {loading ? (\n \n \n \n ) : (\n <>\n \n {page?.name}\n {pageFormatted.sections.map((section, sectionIndex) => (\n \n onSaveFormValues(pageIndex, sectionIndex, componentIndex, value, demographicIndex)\n }\n imagesPreview={imagesPreview}\n setImagesPreview={setImagesPreview}\n organizationId={organization?._id}\n getFormValue={(componentIndex) => getFormValue(pageIndex, sectionIndex, componentIndex)}\n />\n ))}\n \n \n \n Cancel\n \n onSubmit(formValues)}\n style={{ marginLeft: 8, textTransform: 'capitalize' }}\n >\n Save\n \n \n \n )}\n
\n
\n
\n );\n};\n\n/**\n * PropTypes to specify the expected types for component props.\n *\n * @type {Object}\n */\nModalEditCaseDetails.propTypes = {\n open: PropTypes.bool,\n formId: PropTypes.string,\n title: PropTypes.string,\n onSubmit: PropTypes.func,\n page: PropTypes.object,\n organization: PropTypes.object,\n formPages: PropTypes.array,\n pageIndex: PropTypes.number,\n onClose: PropTypes.func,\n};\n","import React, { useState, useEffect } from 'react';\nimport { Box, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { useHistory } from 'react-router-dom';\n\nimport useInput from '../../hooks/useInput';\nimport { axiosCatchError, formatPhoneNumber } from '../../utils';\nimport { createContact, createLinkCaseContact, deleteLinkCaseContact } from '../../services/unarmed';\nimport CreateContactForm from '../../components/CreateContactForm';\nimport SearchContacts from '../../components/SearchContacts';\nimport { parseContactPhoneNumber } from '../Contacts/ModalCreateContact';\nimport Card from '../../components/Card';\nimport CasePersonInfo from '../../components/CasePersonInfo';\nimport { BoxContainer } from '../../styles/GlobalStyles';\nimport { toast } from '../../components/Notification';\n\nconst CaseContacts = ({ caseId, defaultContacts, onAddContact, onRemoveContact }) => {\n const [loading, setLoading] = useState(false);\n\n const [contacts, setContacts] = useState([...defaultContacts]);\n const history = useHistory();\n\n const search = useInput('');\n const firstName = useInput('');\n const lastName = useInput('');\n const email = useInput('');\n const phoneNumber = useInput('');\n const type = useInput('');\n const companyName = useInput('');\n\n const onClearFields = () => {\n firstName.setValue('');\n lastName.setValue('');\n phoneNumber.setValue('');\n email.setValue('');\n type.setValue('');\n companyName.setValue('');\n };\n\n const handleOnSubmit = () => {\n const phoneNumberParsed = parseContactPhoneNumber(phoneNumber.value);\n\n if (phoneNumber.value && phoneNumberParsed.length < 10) {\n toast.error('The phone number must have 10 digits.');\n return;\n }\n\n if (email.value === '') {\n toast.error('The email is required.');\n return;\n }\n\n if (type.value === 'Organization' && companyName.value === '') {\n toast.error('The company name is required.');\n return;\n }\n\n const data = {\n ...(firstName.value ? { firstName: firstName.value } : {}),\n ...(lastName.value ? { lastName: lastName.value } : {}),\n ...(phoneNumber.value ? { phoneNumber: phoneNumberParsed } : {}),\n ...(type.value ? { type: type.value } : {}),\n ...(type.value === 'Organization' && companyName.value ? { companyName: companyName.value } : {}),\n email: email.value,\n };\n\n setLoading(true);\n createContact(data)\n .then(async (res) => {\n onClearFields();\n setLoading(false);\n if (res?.data) {\n try {\n await createLinkCaseContact(caseId, res?.data?._id);\n } catch (error) {\n toast.error(error.message);\n }\n toast.success('Contact created successfully!');\n const _contacts = [...contacts, res.data];\n\n setContacts(_contacts);\n }\n })\n .catch((error) => {\n setLoading(false);\n axiosCatchError(error);\n });\n };\n\n useEffect(() => {\n setContacts([...defaultContacts]);\n }, [defaultContacts]);\n\n const handleOnClick = (id) => {\n history.push(`/contacts/${id}`);\n };\n\n const handleOnClickOpenInNewWindow = (id) => {\n window.open(`/contacts/${id}`, '_blank');\n };\n\n return (\n \n \n {contacts.length === 0 && (\n No contacts added to this case\n )}\n \n {contacts.map((contact) => (\n handleOnClick(contact?._id)}\n onClickColumnInNewWindow={() => handleOnClickOpenInNewWindow(contact?._id)}\n onClickDelete={() => {\n deleteLinkCaseContact(caseId, contact?._id).then(() => {\n onRemoveContact();\n toast.success('Contact removed from the case successfully!');\n });\n }}\n />\n ))}\n \n \n \n \n \n \n \n );\n};\n\nCaseContacts.propTypes = {\n defaultContacts: PropTypes.array,\n caseId: PropTypes.number,\n onAddContact: PropTypes.func,\n onRemoveContact: PropTypes.func,\n};\n\nexport default CaseContacts;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Button, CircularProgress, IconButton, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { Link } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\n\nimport Card from '../../components/Card';\nimport { OutLineInput } from './UpdateCase';\nimport useInput from '../../hooks/useInput';\nimport { linkCase, onSearchGeneral, unLinkCase } from '../../services/unarmed';\nimport { axiosCatchError } from '../../utils';\nimport { matchfieldOptions } from '../../utils/options';\n\n/**\n * RelatedCases component allows users to search for and link/unlink cases related to a form.\n *\n * @component\n * @param {Object} props\n * @param {string} props.formId - The ID of the form to which cases are linked.\n * @param {Array} props.related - Array of already linked cases.\n * @returns {React.Element}\n */\nconst RelatedCases = ({ formId, related }) => {\n const search = useInput('');\n const [showResults, setShowResults] = useState(false);\n const [loading, setLoading] = useState(false);\n const [cases, setCases] = useState([]);\n const [linked, setLinked] = useState([...related]);\n const [showMinCharsSearchWarning, setShowMinCharsSearchWarning] = useState(false);\n\n /**\n * Handles search input and fetches cases matching the search text.\n *\n * @param {string} searchText - The text to search for cases.\n */\n const handleOnSearch = (searchText) => {\n if (searchText.length >= 3 && searchText !== '') {\n setShowMinCharsSearchWarning(false);\n setLoading(true);\n onSearchGeneral(searchText, {\n caseNumberOnly: false,\n exclude: [formId, ...linked.map((caseData) => caseData?._id)],\n })\n .then((res) => {\n setLoading(false);\n setShowResults(true);\n setCases(res.data);\n })\n .catch((error) => {\n setLoading(false);\n axiosCatchError(error);\n });\n } else {\n setShowMinCharsSearchWarning(true);\n }\n };\n\n /**\n * Links a case to the form.\n *\n * @param {Object} caseData - The case data to link.\n */\n const handleOnLinkCase = (caseData) => {\n linkCase(formId, caseData?._id)\n .then(() => {\n setLinked([...linked, caseData]);\n toast.success(`Case ${caseData?.code} was linked successfully`);\n setCases((_cases) => _cases.filter((_case) => _case?._id !== caseData?._id));\n })\n .catch((error) => {\n axiosCatchError(error);\n });\n };\n\n /**\n * Unlinks a case from the form.\n *\n * @param {Object} caseData - The case data to unlink.\n */\n const handleUnLinkCase = (caseData) => {\n unLinkCase(formId, caseData?._id)\n .then(() => {\n setLinked(linked.filter((_caseData) => _caseData?._id !== caseData?._id));\n toast.success(`Case ${caseData?.code} was unlinked successfully`);\n })\n .catch((error) => {\n axiosCatchError(error);\n });\n };\n\n return (\n \n \n {\n const text = e.target.value;\n\n if (text === '' && showResults && cases.length === 0) {\n setShowResults(false);\n }\n\n search.setValue(text);\n }}\n error={search.error}\n aria-describedby=\"outlined-weight-helper-text\"\n inputProps={{ 'aria-label': 'weight' }}\n labelWidth={0}\n onKeyPress={(event) => {\n if (event.key === 'Enter') {\n handleOnSearch(search.value);\n }\n }}\n />\n {showMinCharsSearchWarning && (\n \n Enter at least 3 characters to search\n \n )}\n \n \n \n \n {loading && (\n \n \n \n )}\n {search.value !== '' && cases.length === 0 && showResults && !loading ? (\n \n No results found\n \n ) : (\n <>\n {showResults && cases.length > 0 && !loading && (\n \n \n Results\n {\n setShowResults(false);\n setCases([]);\n search.setValue('');\n }}\n >\n Clear\n \n \n\n \n {cases.map((caseData, caseKey) => (\n \n TRACKING NUMBER\n \n \n \n {caseData.code}\n \n {caseData.matchingFields && caseData.matchingFields.length > 0 && (\n <>\n {caseData.matchingFields.map((field, fieldIndex) => {\n const fieldLabel = matchfieldOptions.find((item) => item.beKey === field.key);\n\n return (\n \n {fieldLabel ? fieldLabel?.text : field.key}:\n {field.value}\n \n );\n })}\n \n )}\n \n \n handleOnLinkCase(caseData)}>\n \n \n \n \n \n ))}\n \n \n )}\n \n )}\n \n \n Linked\n \n {linked.length > 0 ? (\n \n {linked.map((caseData, caseKey) => (\n \n \n \n {caseData?.code}\n \n handleUnLinkCase(caseData)}>\n \n \n \n \n ))}\n \n ) : (\n \n No linked cases\n \n )}\n \n \n );\n};\n\nRelatedCases.propTypes = {\n formId: PropTypes.string.isRequired,\n related: PropTypes.arrayOf(\n PropTypes.shape({\n _id: PropTypes.string.isRequired,\n code: PropTypes.string.isRequired,\n })\n ).isRequired,\n};\n\nconst ResultHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-bottom: 8px;\n border-bottom: 1px solid #e2e2e2;\n`;\n\nconst Title = styled.p`\n font-size: 16px;\n font-weight: 500;\n color: #575a66;\n`;\n\nconst Results = styled.div``;\n\nconst ResultItem = styled.div`\n padding-top: ${(props) => `${props.margin}px`};\n padding-bottom: ${(props) => `${props.margin}px`};\n\n ${(props) =>\n props.withBorder &&\n `\n border-bottom: 1px solid #e2e2e2;\n `}\n`;\n\nconst ResultTitle = styled.p`\n color: #a1a1a1;\n font-weight: bold;\n font-size: 16px;\n`;\n\nconst ResultLink = styled.a`\n color: #4b7bff;\n display: inline-block;\n`;\n\nconst ResultBold = styled.span`\n font-weight: 500;\n margin-right: 4px;\n`;\n\nconst ResultValue = styled.span`\n color: #a1a1a1;\n`;\n\nexport default RelatedCases;\n","/* eslint-disable no-unused-expressions */\n/* eslint-disable react/jsx-props-no-spreading */\nimport {\n AppBar,\n Backdrop,\n Box,\n FormControl,\n InputBase,\n makeStyles,\n Modal,\n NativeSelect,\n Tab,\n Tabs,\n Typography,\n withStyles,\n Fade,\n useMediaQuery,\n Tooltip,\n CircularProgress,\n Grid,\n Button,\n} from '@material-ui/core';\nimport React, { useContext, useEffect, useRef, useState, useCallback } from 'react';\nimport moment from 'moment';\nimport styled from 'styled-components';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\nimport { toast } from '../../components/Notification';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport TransferIcon from '@material-ui/icons/Send';\nimport ArchiveIcon from '@material-ui/icons/Archive';\nimport { Waypoint } from 'react-waypoint';\nimport PropTypes from 'prop-types';\n\nimport AssignUser from '../../components/AssignUser';\nimport TabPanel from '../../components/TabPanel';\nimport PersonalInformation from './PersonalInformation';\nimport IncidentDetails from './IncidentDetails';\nimport AditionalDetails from './AditionalDetails';\nimport ImageDownload from '../../components/ImageDownload';\nimport useTrackForm from '../../hooks/useTrackForm';\nimport {\n asignUserToForm,\n deleteAssignedUser,\n editFormComment,\n getActivity,\n getFormAttachments,\n getUsers,\n onUpdateFormType,\n onUpdateStatus,\n updateCaseDetails,\n updateFormComments,\n} from '../../services/unarmed';\nimport { Context } from '../../Context';\nimport UpdateCase from './UpdateCase';\nimport CaseComment from './CaseComment';\nimport formatTxt from '../../utils/formatText';\nimport NewOfficer from './NewOfficer';\nimport SearchOfficer from './SearchOfficer';\nimport Officers from './Officers';\nimport UpgradeTabPopup from '../../components/UpgradeTabPopup';\nimport useOrganization from '../../hooks/useOrganization';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport SelectBox from '../../components/SelectBox';\nimport TransferCase from './TransferCase';\nimport DuplicateCase from './DuplicateCase';\nimport History from './History';\nimport NoteLogs from '../../components/NoteLogs';\nimport Attachments from './Attachments';\nimport FormTypeJson from './FormTypeJson';\nimport {\n axiosCatchError,\n createFormTypePageId,\n getFormColor,\n getFormColorPlaceholder,\n transformStatus,\n} from '../../utils';\nimport CaseTasks from './CaseTasks';\nimport HeaderOptions from './HeaderOptions';\nimport useNearScreen from '../../hooks/userNearScreen';\nimport { ModalEditCaseDetails } from '../../components/ModalEditCaseDetails';\nimport CaseContacts from './CaseContacts';\nimport { useAccordionProvider } from '../../provider/AccordionProvider';\nimport { BoxLoading } from '../../components/LoadingScreen';\nimport Card from '../../components/Card';\nimport { BoxContainer, BoxLeftContainer } from '../../styles/GlobalStyles';\nimport { updateUrlWithParams } from '../../utils/libs';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\nimport RelatedCases from './RelatedCases';\n\nconst useStyles = makeStyles((theme) => ({\n container: {},\n headerContainer: {\n padding: '20px 20px 0',\n background: '#fff',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tag: {\n width: 'fit-content',\n marginLeft: 10,\n borderRadius: 5,\n textTransform: 'capitalize',\n height: '100%',\n },\n appBar: {\n boxShadow: 0,\n '&.MuiPaper-elevation4': {\n boxShadow: 'unset',\n },\n },\n select: {\n minWidth: 250,\n padding: 10,\n background: '#F8F8F9',\n border: 0,\n borderRadius: 5,\n },\n statusSelect: {\n background: '#008858',\n color: '#fff',\n minWidth: 'fit-content',\n padding: 10,\n border: 0,\n borderRadius: 5,\n },\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: 'bold',\n margin: '20px 0',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 480,\n outline: 0,\n alignSelf: 'center',\n },\n duplicatePaper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: '30px 45px',\n maxWidth: 630,\n outline: 0,\n alignSelf: 'center',\n },\n}));\n\nconst BootstrapInput = withStyles((theme) => ({\n root: {\n 'label + &': {\n marginTop: theme.spacing(3),\n },\n '& svg': {\n color: '#fff !important',\n marginRight: 15,\n },\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: theme.palette.background.paper,\n border: '1px solid #008858',\n background: '#008858 !important',\n color: '#fff',\n paddingRight: '35px !important',\n fontSize: 16,\n minWidth: 160,\n padding: '10px 50px 10px 20px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n fontFamily: [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n '& option': {\n color: '#333',\n },\n '&:focus': {\n borderRadius: 4,\n },\n },\n}))(InputBase);\n\nexport const archivedMessage = 'Form is archived';\n\nconst ArchivedInfo = () => (\n \n \n \n \n Archived\n \n \n \n);\n\nconst TransferredInfo = ({ form }) => {\n const previous = form?.referral?.previous;\n const from = previous\n ? `This case was transferred from ${previous.organization?.name} with tracking number: ${previous?.code}.`\n : '';\n\n const to = form?.referrals?.length\n ? (() => {\n const uniqueOrgs = new Map();\n form.referrals.forEach((ref) => {\n const orgName = (ref?.organizationName || ref?.organization.name);\n if (orgName && ref?.code) {\n const existing = uniqueOrgs.get(orgName);\n if (existing) {\n uniqueOrgs.set(orgName, `${existing}, ${ref.code}`);\n } else {\n uniqueOrgs.set(orgName, ref.code);\n }\n }\n });\n\n if (uniqueOrgs.size === 0) return '';\n\n const orgNames = [];\n const trackingCodes = [];\n uniqueOrgs.forEach((codes, orgName) => {\n orgNames.push(orgName);\n trackingCodes.push(codes);\n });\n\n return `This case was transferred to ${orgNames.join(', ')} with tracking code ${trackingCodes.join(', ')}.`;\n })()\n : '';\n const tooltip = (\n \n {from}\n {from && to ?
: null}\n {to}\n
\n );\n\n return (\n \n \n \n \n Transferred\n \n \n \n );\n};\n\nconst tabs = [\n { dataTestId: 'case-details-tab-case-details', label: 'Case Details' },\n { dataTestId: 'case-details-tab-case-updates', label: 'Case Updates' },\n { dataTestId: 'case-details-tab-contacts', label: 'Contacts' },\n { dataTestId: 'case-details-tab-officers', label: 'Officers' },\n { dataTestId: 'case-details-tab-tasks', label: 'Tasks' },\n { dataTestId: 'case-details-tab-notes', label: 'Notes' },\n { dataTestId: 'case-details-tab-attachments', label: 'Attachments' },\n { dataTestId: 'case-details-tab-history', label: 'History' },\n];\n\nTransferredInfo.propTypes = {\n form: PropTypes.object,\n};\n\nconst CaseDetails = () => {\n const location = useLocation();\n const [value, setValue] = useState(location?.state?.tab === 'officer' ? 3 : 0);\n const { id } = useParams();\n const classes = useStyles();\n const { form, loading, refetch, setForm } = useTrackForm(id);\n const [assignedUsers, setAssignedUsers] = useState([{}]);\n const [selectedStatus, setSelectedStatus] = useState(form?.status);\n const { authUser, setActive, myUser } = useContext(Context);\n const [, setLoadingUsers] = useState(false);\n const [users, setUsers] = useState([]);\n const [loadingRemoveUser, setLoadingRemoveUser] = useState(false);\n const [isRequestingData, setIsRequestingData] = useState(false);\n const [formLog, setFormLog] = useState([]);\n const [loadingLog, setLoadingLog] = useState(false);\n const [officers, setOfficers] = useState([]);\n const { i18n } = useTranslation();\n const { organization } = useOrganization();\n const [showUpgradeModal, setShowUpgradeModal] = useState(false);\n const [currentFormType, setCurrentFormType] = useState('');\n const [files, setFiles] = useState([]);\n const [options, setOptions] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const [showDuplicateModal, setShowDuplicateModal] = useState(false);\n const [formTasks, setFormTasks] = useState([]);\n const [lastId, setLastId] = useState('');\n const [hasNextPage, setHasNextPage] = useState(true);\n const [showModalEditDetails, setShowModalEditDetails] = useState(false);\n const [formPage, setFormPage] = useState();\n const [pageIndex, setPageIndex] = useState(0);\n const [caseVersionTab, setCaseVersionTab] = useState(1);\n const [editingLog, setEditingLog] = useState(null);\n const [openDeleteModal, setOpenDeleteModal] = useState(null);\n const [customFieldsValues, setCustomFieldsValues] = useState([]);\n\n const prevPathname = useRef(location.pathname);\n\n useEffect(() => {\n if (prevPathname.current !== location.pathname) {\n prevPathname.current = location.pathname;\n window.location.reload();\n }\n }, [location.pathname]);\n\n const { setAccordions, setAllCollapse } = useAccordionProvider();\n const formTypePages =\n caseVersionTab === 0 && form?.originalPages?.length > 0 ? form?.originalPages : form?.formType?.pages || [];\n const externalRef = useRef();\n const { isNearScreen } = useNearScreen({\n externalRef: loading === 'pending' ? null : externalRef,\n once: false,\n });\n const [loadingC, setLoading] = useState(true);\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }, []);\n const matches = useMediaQuery('(max-width:1440px)');\n const getForms = useCallback(\n async (withBefore = true) => {\n try {\n setLoadingLog(true);\n const query = {\n limit: 15,\n ...(form?._id ? { formId: form._id } : { formCode: id }),\n ...(withBefore ? { before: lastId } : {}),\n };\n\n const res = await getActivity(query);\n\n if (res.length === 0) {\n setLoadingLog(false);\n setHasNextPage(false);\n return;\n }\n\n setFormLog((items) => {\n const newItems = items.length > 0 && withBefore ? [...items, ...res] : [...res];\n\n setLastId(newItems[newItems.length - 1]?._id);\n\n return newItems;\n });\n setLoadingLog(false);\n } catch (error) {\n setLoadingLog(false);\n toast.error(error.message);\n }\n },\n [lastId, id]\n );\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const handleCloseModal = () => {\n setIsModalOpen(false);\n };\n\n const isBlurred = (() => {\n const typeInSeeOnlyTypes = organization?.permissions?.[myUser?.role]?.seeOnlyTypes?.includes(form?.type);\n if (!typeInSeeOnlyTypes) return true;\n\n const typeInSeeOnlyAssigned = organization?.permissions?.[myUser?.role]?.seeOnlyAssigned?.includes(form?.type);\n if (!typeInSeeOnlyAssigned) return false;\n\n return !assignedUsers.some((user) => user._id === myUser?._id);\n })();\n\n useEffect(() => {\n const canUserViewForm = (() => {\n const typeInSeeOnlyTypes = organization?.permissions?.[myUser?.role]?.seeOnlyTypes?.includes(form?.type);\n if (!typeInSeeOnlyTypes) return false;\n\n const typeInSeeOnlyAssigned = organization?.permissions?.[myUser?.role]?.seeOnlyAssigned?.includes(form?.type);\n if (!typeInSeeOnlyAssigned) return true;\n\n return assignedUsers.some((user) => user._id === myUser?._id);\n })();\n\n setIsModalOpen(!canUserViewForm);\n }, [organization, myUser, assignedUsers, form]);\n\n useEffect(() => {\n if (form?.formType && form?.formType.customFields && form?.formType.version === FORM_TYPE_VERSION_2) {\n const pages = [];\n\n form?.formType.customFields.forEach((page) => {\n pages.push({\n sections: [{ components: page?.sections?.[0]?.components?.map((component) => component.value) || [] }],\n });\n });\n\n setCustomFieldsValues(pages);\n }\n }, [form?.formType]);\n\n useEffect(() => {\n if (formTypePages.length > 0) {\n const firstPage = formTypePages[0];\n\n if (firstPage) {\n const firstPageId = createFormTypePageId(firstPage.name, 0);\n\n setAccordions((_accordions) => ({\n ..._accordions,\n [firstPageId]: true,\n }));\n }\n }\n }, [formTypePages, value]);\n\n useEffect(() => {\n if (form) {\n setFormTasks(form?.tasks || []);\n }\n }, [form]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [value]);\n\n useEffect(() => {\n setAllCollapse();\n setActive('/cases');\n }, []);\n\n useEffect(() => {\n if (organization) {\n updateUrlWithParams(\n {\n organization_name: organization?.name,\n tab_name: 'case-details',\n },\n {\n tab_name: 'case-details',\n }\n );\n\n const uniqueTypes = new Set();\n\n if (organization?.caseFormTypes && organization?.formTypes) {\n organization.caseFormTypes.forEach((type) => {\n uniqueTypes.add(Array.isArray(type) ? type[1] : type);\n });\n\n organization.formTypes.forEach((type) => {\n uniqueTypes.add(Array.isArray(type) ? type[1] : type);\n });\n }\n const predefinedTypes = ['COMPLAINT', 'COMPLIMENT', 'RECOMMENDATION', 'REVIEW'];\n\n const selectOptions = Array.from(uniqueTypes).map((formType) => ({\n text: predefinedTypes.includes(formType.toUpperCase())\n ? formType.charAt(0).toUpperCase() + formType.slice(1).toLowerCase()\n : formType,\n value: predefinedTypes.includes(formType.toUpperCase())\n ? formType.charAt(0).toUpperCase() + formType.slice(1).toLowerCase()\n : formType,\n }));\n\n setOptions(selectOptions);\n }\n }, [organization]);\n\n useEffect(() => {\n if (options.length > 0 && form?.typeDisplayText) {\n const matchingOption = options.find((option) => option.text === form?.typeDisplayText);\n\n if (matchingOption) {\n setCurrentFormType(matchingOption.text);\n } else {\n setOptions((prevOptions) => [\n ...prevOptions,\n { text: form?.typeDisplayText, value: form?.typeDisplayText, deleted: true },\n ]);\n setCurrentFormType(form?.typeDisplayText);\n }\n }\n }, [form?.typeDisplayText, options]);\n\n useEffect(() => {\n const onGetUsers = async () => {\n try {\n setLoadingUsers(true);\n const { data } = await getUsers({});\n setUsers(data);\n setLoadingUsers(false);\n } catch (error) {\n setLoadingUsers(false);\n toast.error(error.message);\n }\n };\n\n if (authUser) {\n onGetUsers();\n }\n }, [authUser]);\n\n useEffect(() => {\n if (form?.assigned?.length > 0) {\n setAssignedUsers([...form?.assigned, {}]);\n }\n\n if (form?.status) {\n setSelectedStatus(form?.status);\n setCurrentFormType(form?.typeDisplayText);\n }\n\n if (form?.officers) {\n setOfficers(form?.officers);\n }\n }, [form]);\n\n useEffect(() => {\n const onGetFormAttachments = async () => {\n getFormAttachments(form?._id)\n .then(({ data }) => {\n const caseAttachments = data.filter((attachment) => attachment.source === 'CASE_DETAILS');\n setFiles(caseAttachments);\n })\n .catch((err) => {\n toast.error(err.message);\n });\n };\n if (form?._id) {\n getForms();\n onGetFormAttachments();\n }\n }, [form?._id, authUser, isRequestingData, form, id]);\n\n const onChangeLanguage = (lng) => {\n i18n.changeLanguage(lng);\n };\n\n useEffect(() => {\n console.log('Options Array:', options);\n }, [options]);\n\n const updateFormType = async (e) => {\n const { value: selectValue } = e.target;\n\n if (selectValue === 'REFERRAL') {\n setShowModal(true);\n return;\n }\n\n const normalizedType = selectValue.replace(/ /g, '_').toUpperCase();\n\n try {\n const newOptionSelected = options.find((option) => option.value === selectValue);\n\n if (newOptionSelected && newOptionSelected?.deleted) {\n toast.error('This case type has been removed and can no longer be used.');\n return;\n }\n\n const { data } = await onUpdateFormType(form?._id, normalizedType);\n setForm((prevState) => ({ ...prevState, type: data.type, typeDisplayText: data.typeDisplayText })); // Only update fields change by function responsibility\n setCurrentFormType(selectValue);\n toast.success('Form Type has been updated successfully!');\n } catch (error) {\n toast.error(error?.response?.data?.message);\n }\n };\n\n const onSetupFiles = () => {};\n\n const onDeleteUser = async (user, index) => {\n const usersArr = [...assignedUsers];\n const removeuser = usersArr.splice(index, 1);\n setAssignedUsers([...usersArr]);\n const userData = await {\n unassignUsers: [removeuser[0]._id],\n };\n try {\n setIsRequestingData(true);\n setLoadingRemoveUser(true);\n await deleteAssignedUser(authUser.tokenId, form?._id, userData);\n toast.success(`${removeuser[0].email} was successfully unassigned from the case`);\n setLoadingRemoveUser(false);\n setIsRequestingData(false);\n } catch (error) {\n if (form?.archived) {\n toast.error(archivedMessage);\n }\n axiosCatchError(error);\n setLoadingRemoveUser(false);\n }\n };\n\n useEffect(() => {\n if (options.length > 0 && form?.typeDisplayText) {\n const matchingOption = options.find(\n (option) => option.text.toLowerCase() === form?.typeDisplayText.toLowerCase()\n );\n\n if (matchingOption) {\n setCurrentFormType(matchingOption.text);\n }\n }\n }, [form?.typeDisplayText, options]);\n\n const onAssignUser = async (usersArr, callback) => {\n const asignedUsersData = {\n assignUsers: usersArr?.map((user) => user?._id),\n };\n\n try {\n setIsRequestingData(true);\n await asignUserToForm(authUser.tokenId, form?._id, asignedUsersData);\n\n const lastAssignedUser = usersArr[usersArr.length - 1];\n toast.success(`${lastAssignedUser?.email} was successfully assigned to the case`);\n callback();\n setIsRequestingData(false);\n } catch (error) {\n if (form?.archived) {\n toast.error(archivedMessage);\n }\n axiosCatchError(error);\n }\n };\n\n const onChangeStatus = async (e) => {\n e.persist();\n\n const _value = e.target.value;\n\n try {\n setIsRequestingData(true);\n const { data } = await onUpdateStatus(authUser.tokenId, form?._id, {\n status: _value,\n });\n\n toast.success(\n `${authUser?.email} has updated the status to ${transformStatus(\n form?.availableStatuses?.filter((st) => st.status === _value)[0].status\n )} Successfully`\n );\n setForm((prevState) => ({ ...prevState, ...data }));\n setSelectedStatus(_value);\n setIsRequestingData(false);\n } catch (error) {\n setIsRequestingData(false);\n toast.error(error.response?.data?.message);\n }\n };\n\n const handleChange = (event, newValue) => {\n const tabData = tabs[newValue];\n const tabLabel = tabData.label?.toLowerCase()?.replace(/ /g, '-');\n\n setValue(newValue);\n updateUrlWithParams(\n {\n organization_name: organization.name,\n tab_name: tabLabel,\n },\n {\n tab_name: tabLabel,\n }\n );\n\n if (form?._id && newValue === 7) {\n setLastId('');\n getForms(false);\n }\n };\n\n const handleOnEditCaseDetails = (formValues) => {\n updateCaseDetails(form?._id, {\n pageIndex,\n page: formValues[pageIndex],\n })\n .then((res) => {\n if (res.status === 200) {\n toast.success(\n form?.originalPages?.length === 0\n ? 'Information has been changed and new version history has created.'\n : 'Information has been changed.'\n );\n\n refetch();\n\n setShowModalEditDetails(false);\n }\n })\n .catch((error) => {\n const errorResponse =\n error.response?.data?.error?.details || error.response?.data?.error?.error?.details || null;\n\n if (Array.isArray(errorResponse) && errorResponse?.length > 0) {\n return errorResponse.forEach((res) => {\n if (res.message === '\"value\" must be a string') {\n const section = formPage?.sections[error?.response?.data?.iSection];\n const component = section?.components[error?.response?.data?.iComponent];\n const label = component?.data?.question || 'Field';\n\n return toast.error(`${label} must not be empty`);\n }\n\n toast.error(res.message || 'Something went wrong creating the form');\n });\n }\n\n return toast.error('Something went wrong creating the form');\n });\n };\n\n function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n }\n\n return (\n <>\n \n {!loadingC && (\n \n \n
\n \n You do not have permission to view this case.\n \n \n \n Close\n \n \n
\n
\n \n )}\n setShowUpgradeModal(false)} />\n \n \n \n \n Tracking Number: {form?.code}\n {currentFormType === 'REFERRAL' && !matches && (\n \n \n Referral\n \n \n )}\n {currentFormType !== 'REFERRAL' && (\n \n updateFormType(e)}\n allowPlaceHolder={false}\n withColors={{\n color: getFormColor(currentFormType),\n }}\n />\n \n )}\n {form?.archived && }\n {form?.transferred && }\n \n \n Created by{' '}\n {form?.civilian?.firstName\n ? ` ${formatTxt(form?.civilian?.firstName, 15)} ${formatTxt(form?.civilian?.lastName, 15)} -`\n : 'Not specified -'}{' '}\n {moment(form?.createdAt).format('MMMM DD, YYYY')}\n \n {currentFormType === 'REFERRAL' && matches && (\n \n \n Referral\n \n \n This case was transferred to {form?.referral?.next?.organization?.name} with a new tracking number:{' '}\n {form?.referral?.next?.code}\n \n \n )}\n
\n \n \n {tabs.map((tab, tabKey) => (\n \n ))}\n \n \n \n \n \n \n \n\n \n \n {\n if (!organization?.features?.dashboard?.cases?.status) {\n setShowUpgradeModal(true);\n }\n }}\n >\n }\n IconComponent={KeyboardArrowDownIcon}\n >\n {form?.availableStatuses?.map((avalaible, i) => (\n \n {transformStatus(avalaible.status)?.toUpperCase()}\n \n ))}\n \n \n {myUser?.role === 'admin' && (\n setShowModal(true)}\n onDuplicateClick={() => setShowDuplicateModal(true)}\n />\n )}\n \n \n Last update {moment(form?.updatedAt).format('MMMM DD, YYYY - hh:mm a')}\n \n \n {/* \n \n */}\n\n {/* */}\n \n \n \n \n\n \n {loading ? (\n
Loading
\n ) : (\n \n \n {form?.originalPages?.length > 0 && (\n \n \n \n Version\n \n \n \n setCaseVersionTab(i)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n \n \n \n \n \n \n \n )}\n {form?.formType ? (\n {\n setShowModalEditDetails(true);\n setFormPage(page);\n setPageIndex(_pageIndex);\n }\n : undefined\n }\n />\n ) : (\n <>\n \n \n \n \n )}\n \n \n \n {\n onChangeLanguage('en');\n }}\n />\n {form?.originalPages?.length > 0 && (\n {\n onChangeLanguage('en');\n }}\n />\n )}\n \n \n {files.length > 0 ? (\n <>\n {files?.map((file, i) => (\n \n ))}\n \n ) : (\n \n No files attached\n \n )}\n \n \n \n \n )}\n
\n \n {!organization?.features?.dashboard?.cases?.caseUpdates && }\n \n \n \n \n \n {(!organization?.permissions?.[myUser?.role]?.contacts ||\n !organization?.features?.dashboard?.contacts.enabled) && }\n \n \n \n {!organization ? (\n \n ) : (\n <>\n {(!organization?.permissions?.[myUser?.role]?.officers ||\n !organization?.features?.dashboard?.cases?.officersTab ||\n !organization?.features?.dashboard?.officers.enabled) && }\n \n refetch()}\n setIsRequestingData={setIsRequestingData}\n />\n \n refetch()}\n setIsRequestingData={setIsRequestingData}\n />\n {/* refetch()}\n setIsRequestingData={setIsRequestingData}\n caseArchived={form?.archived}\n /> */}\n \n \n \n )}\n \n \n \n \n \n {!organization?.features?.dashboard?.cases?.notes && }\n \n setEditingLog(item)}\n onDeleteClick={(item) => setOpenDeleteModal(item)}\n onCancelEditingClick={() => setEditingLog(null)}\n editingLog={editingLog}\n />\n {\n if (!canceled) {\n if (editingLog) {\n await editFormComment(form?._id, editingLog._id, comment);\n } else {\n await updateFormComments(form?._id, 'notToken', filesHash, comment);\n }\n }\n\n refetch();\n setEditingLog(null);\n resetValues();\n }}\n editingLog={editingLog}\n />\n \n \n \n {!organization?.features?.dashboard?.cases?.attachments && }\n \n refetch()}\n />\n \n \n \n \n \n \n \n \n
\n {isNearScreen && hasNextPage && lastId && (\n \n \n \n \n \n )}\n \n setShowModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n \n
\n
\n \n setShowDuplicateModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n \n
\n
\n \n {formPage && form && (\n setShowModalEditDetails(false)}\n title={`Edit ${formPage.name}`}\n onSubmit={handleOnEditCaseDetails}\n />\n )}\n \n \n );\n};\n\nexport const TabComp = styled(Tab)`\n text-transform: capitalize !important;\n width: fit-content !important;\n font-size: 16px !important;\n\n .MuiTab-root {\n min-width: unset !important;\n }\n`;\n\nexport default CaseDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@material-ui/core';\n\nimport HTMLContent from './HTMLContent';\nimport Tags from './Tags';\nimport { useGlobalStyles } from '../styles/GlobalStyles';\nimport { PreviewImg } from './Log';\nimport LogIcon from './LogIcon';\nimport { UserInfo } from './NoteLogs';\nimport { Typography } from 'antd';\nimport ArchivedImage from './ArchivedImage';\n\nconst Note = ({ comment, files, user, userInfo, subject = 'case', onClickFile }) => {\n const globalClasses = useGlobalStyles();\n const hasFiles = files.length > 0;\n const hasComment = !!comment;\n const hasBoth = hasFiles && hasComment;\n return (\n <>\n {' '}\n {hasComment && (\n <>\n made a new comment\n \n )}\n {hasBoth && ' and '}\n {hasFiles && (\n <>\n uploaded {files.length} file(s)\n \n )}{' '}\n to the {subject}\n {hasComment && (\n <>\n
\n \n \n )}\n {hasFiles && (\n <>\n \n {files.map((file, index) => {\n const showPreview = !file?.archivedDate;\n return (\n
\n \n \n {showPreview ? (\n \n ) : (\n \n )}\n \n {file.name}\n \n \n
\n );\n })}\n
\n \n )}\n \n );\n};\n\nNote.propTypes = {\n files: PropTypes.array,\n comment: PropTypes.string,\n user: PropTypes.object,\n userInfo: PropTypes.object,\n};\n\nexport default Note;\n","import { Box, CircularProgress, Typography, FormControlLabel } from '@material-ui/core';\nimport { CustomSwitch } from '../formEngine/components/WrapperComponent';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { toast } from './Notification';\nimport PropTypes from 'prop-types';\nimport { getFormNotesLogs, onArchiveNoteForm, onUnArchiveNoteForm, updateNotesSortOrder } from '../services/unarmed';\nimport { downloadImage } from '../utils/libs';\nimport TimeLineItem from '../pages/Activity/TimeLineItem';\nimport CarouselModal from './CarouselModal';\nimport { Context } from '../Context';\nimport Note from './Note';\nimport Card from './Card';\nimport { CustomModalDelete } from './CustomModalDelete';\nimport TimeLineItemNotes from '../pages/Activity/TimeLineItemNotes';\nimport useOrganization from '../hooks/useOrganization';\n\nexport const UserInfo = ({ user, userInfo }) => {\n const email = user?.email || userInfo?.email;\n return email ? {email} : 'A user';\n};\n\nUserInfo.propTypes = {\n user: PropTypes.shape({\n id: PropTypes.number.isRequired,\n email: PropTypes.string,\n name: PropTypes.string.isRequired,\n }).isRequired,\n userInfo: PropTypes.shape({\n email: PropTypes.string.isRequired,\n age: PropTypes.number.isRequired,\n }).isRequired,\n};\n\nexport function NoteLog({\n handleDeleteNote,\n handleRestoreClick,\n _id,\n createdAt,\n files,\n comment,\n user,\n userInfo,\n canEdit,\n canDelete,\n onEditClick,\n editing,\n onCancelEditingClick,\n updatedAt,\n editedByInfo,\n onDownloadImage,\n archivedDate,\n subject = 'case',\n}) {\n const { myUser } = useContext(Context);\n const [open, setOpen] = React.useState(false);\n const [openDelete, setOpenDelete] = useState(false)\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const handleOpen = (filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter((flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video'));\n setFilesSelected({ files: filesToOpen, selectedFileIndex: 0 });\n setLoadingOpenFiles(filesToOpen.map(() => ({ loading: false })));\n };\n\n const handleClickEvents = (fl) => ({\n onDownload: () => downloadImage(fl.download_url, fl.name),\n onClick: () => handleOpen(files),\n });\n\n const renderName = (wholeName = false) => {\n if (user && !user?.photo?.public_url && !wholeName) {\n return `${user?.email[0]?.toUpperCase()} ${user?.email[1]?.toUpperCase()}`;\n }\n if (user && wholeName) {\n return user?.email;\n }\n\n if (!user && userInfo && !wholeName) {\n return `${userInfo?.email[0]?.toUpperCase()} ${userInfo?.email[1]?.toUpperCase()}`;\n }\n if (!user && userInfo && wholeName) {\n return userInfo?.email;\n }\n\n if (!user && !userInfo && !wholeName) {\n return 'DU';\n }\n if (!user && !userInfo && wholeName) {\n return 'Deleted User';\n }\n };\n\n return (\n <>\n onEditClick({ _id, comment })}\n onDeleteClick={() => setOpenDelete(true)}\n editing={editing}\n onCancelEditingClick={onCancelEditingClick}\n updatedAt={updatedAt}\n editedByInfo={editedByInfo}\n >\n \n setOpenDelete(false)}\n fileName={comment}\n onConfirm={handleDeleteNote}\n />\n\n \n \n \n );\n}\n\n// PropTypes for NoteLog\nNoteLog.propTypes = {\n createdAt: PropTypes.instanceOf(Date).isRequired,\n files: PropTypes.arrayOf(PropTypes.string).isRequired,\n comment: PropTypes.string.isRequired,\n user: PropTypes.shape({\n id: PropTypes.number.isRequired,\n email: PropTypes.string,\n name: PropTypes.string.isRequired,\n photo: PropTypes.shape({\n public_url: PropTypes.string,\n }),\n }),\n userInfo: PropTypes.shape({\n email: PropTypes.string.isRequired,\n age: PropTypes.number.isRequired,\n }),\n subject: PropTypes.string,\n};\n\nexport default function NoteLogs({ id, isRequestingData, canEdit, onEditClick, editingLog, onCancelEditingClick }) {\n const { myUser } = useContext(Context);\n const { organization } = useOrganization();\n const [Logs, setLogs] = useState([]);\n const [LogsShow, setLogsShow] = useState([]);\n const [loading, setLoading] = useState(false);\n const [archivedOnly, setArchivedOnly] = useState(false);\n\n // Load sort order from localStorage or fallback to user's backend setting\n const initialSortOrder = localStorage.getItem('formNotesSortOrder') || (myUser?.notesSortOrderDesc?.cases ? 'desc' : 'asc');\n const [sortOrder, setSortOrder] = useState(initialSortOrder);\n\n const sortByCreatedAt = (data, order = 'desc') => {\n return data.data.sort((x, y) => {\n const dateX = new Date(x.createdAt).getTime();\n const dateY = new Date(y.createdAt).getTime();\n\n if (order === 'asc') {\n return dateX - dateY;\n }\n return dateY - dateX;\n });\n };\n\n const getCanDelete = (user) => {\n if(myUser.role === 'admin' && organization?.permissions?.[myUser?.role]?.canDeleteNotesCases !== 0 ){\n return true\n }else if(organization?.permissions?.[myUser?.role]?.canDeleteNotesCases !== 0 && (myUser._id === user._id) ){\n return true\n }else{\n return false\n }\n }\n\n const toggleSortOrder = () => {\n const newSortOrder = sortOrder === 'asc' ? 'desc' : 'asc';\n const updatedSortOrder = newSortOrder === 'desc';\n\n updateNotesSortOrder(myUser?._id, 'cases', updatedSortOrder)\n .then(() => {\n setSortOrder(newSortOrder);\n localStorage.setItem('formNotesSortOrder', newSortOrder); // Persist in localStorage\n })\n .catch((error) => {\n toast.error('Failed to update sort order');\n });\n };\n\n const getNoteLogs = () => {\n setLoading(true);\n\n getFormNotesLogs(id)\n .then((res) => {\n setLogs(sortByCreatedAt(res.data, sortOrder));\n setLoading(false);\n })\n .catch((error) => {\n toast.error(error?.message);\n setLoading(false);\n });\n };\n\n const handleArchiveOnly = () => {\n setArchivedOnly(!archivedOnly)\n }\n\n useEffect(() => {\n if (id) {\n getNoteLogs();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, sortOrder]);\n\n useEffect(() => {\n getNoteLogs();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isRequestingData]);\n\n useEffect(() => {\n if(archivedOnly) {\n const newLogs = Logs.filter(log => log.hasOwnProperty('archivedDate') && log.archivedDate !== null);\n setLogsShow(newLogs)\n }else{\n const newLogsWithoutArchivedDate = Logs.filter(log => !log.hasOwnProperty('archivedDate'));\n setLogsShow(newLogsWithoutArchivedDate)\n }\n\n }, [Logs, archivedOnly])\n\n return (\n \n Notes\n \n \n \n }\n label={sortOrder === 'desc' ? 'Most Recent' : 'Oldest'}\n labelPlacement=\"end\"\n style={{ marginLeft: '500px' }}\n />\n \n \n }\n labelPlacement=\"end\"\n label=\"Archived only\"\n />\n \n \n \n }\n >\n {loading && (\n \n \n \n )}\n {!LogsShow?.length && !loading ? (\n \n No notes added to this case\n \n ) : null}\n {LogsShow?.map(({ _id, createdAt, files, comment, user, userInfo, updatedAt, editedByInfo, form, archivedDate }, i) => (\n {\n await onArchiveNoteForm(form, _id)\n getNoteLogs()\n }}\n handleRestoreClick={async() => {\n await onUnArchiveNoteForm(form, _id)\n getNoteLogs()\n }}\n archivedDate={archivedDate}\n _id={_id}\n createdAt={createdAt}\n files={files}\n comment={comment}\n user={user}\n userInfo={userInfo}\n key={i}\n canEdit={canEdit}\n canDelete={getCanDelete(user) }\n onEditClick={onEditClick}\n editing={editingLog?._id === _id}\n onCancelEditingClick={onCancelEditingClick}\n updatedAt={updatedAt}\n editedByInfo={editedByInfo}\n />\n ))}\n \n );\n}\n\nNoteLogs.propTypes = {\n id: PropTypes.number.isRequired,\n isRequestingData: PropTypes.bool.isRequired,\n};","export const QUESTION_BANK = 'questionBank';\nexport const SECTION = 'section';\nexport const COMPONENT = 'component';\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Typography } from '@material-ui/core';\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport VideoLibraryIcon from '@material-ui/icons/VideoLibrary';\nimport AudiotrackIcon from '@material-ui/icons/Audiotrack';\n\nexport default function LogIcon({ fl, handleClickEvents, index }) {\n if (fl.name.includes('.pdf')) {\n return (\n handleClickEvents.onDownload()}\n >\n
\n \n );\n }\n\n if (fl.mimetype.includes('audio')) {\n return (\n handleClickEvents.onDownload()}\n >\n
\n \n );\n }\n\n if (fl.mimetype.includes('image')) {\n return (\n handleClickEvents.onClick()}\n style={{\n width: 100,\n height: 100,\n objectFit: 'contain',\n marginRight: 10,\n borderRadius: 4,\n cursor: 'pointer',\n }}\n />\n );\n }\n if (fl.mimetype.includes('video')) {\n return (\n handleClickEvents.onClick()}\n key={index}\n height=\"100%\"\n style={{ cursor: 'pointer' }}\n >\n \n \n );\n }\n\n if (!fl.name.includes('.pdf') && !fl.name.includes('.mp4') && !fl.mimetype.includes('image')) {\n return (\n handleClickEvents.onDownload()}\n >\n \n \n );\n }\n\n return File not supported;\n}\n\nLogIcon.propTypes = {\n fl: PropTypes.any.isRequired,\n handleClickEvents: PropTypes.func.isRequired,\n index: PropTypes.number.isRequired,\n};\n","export const matchfieldOptions = [\n {\n value: 'civilian addressLine1',\n text: 'Civilian Address Line 1',\n beKey: 'civilian.addressLine1',\n disabled: false,\n },\n {\n value: 'type',\n text: 'Type',\n beKey: 'type',\n disabled: false,\n },\n {\n value: 'civilian addressLine2',\n text: 'Civilian Address Line 2',\n beKey: 'civilian.addressLine2',\n disabled: false,\n },\n {\n value: 'civilian email',\n text: 'Civilian Email',\n beKey: 'civilian.email',\n disabled: false,\n },\n {\n value: 'civilian firstName',\n text: 'Civilian First Name',\n beKey: 'civilian.firstName',\n disabled: false,\n },\n {\n value: 'civilian lastName',\n text: 'Civilian Last Name',\n beKey: 'civilian.lastName',\n disabled: false,\n },\n {\n value: 'civilian phone',\n text: 'Civilian Phone',\n beKey: 'civilian.phone',\n disabled: false,\n },\n {\n value: 'howDidYouHearAboutUs',\n text: 'How Did You Hear About Us?',\n beKey: 'howDidYouHearAboutUs',\n disabled: false,\n },\n {\n value: 'statement',\n text: 'Statement',\n beKey: 'statement',\n disabled: false,\n },\n {\n value: 'whatBestDescribesYou',\n text: 'What Best Describes You?',\n beKey: 'whatBestDescribesYou',\n disabled: false,\n },\n {\n value: 'caseNumber',\n text: 'Case Number',\n beKey: 'caseNumber',\n disabled: false,\n },\n {\n value: 'internalAffairsCaseNumber',\n text: 'Internal Affairs Case Number',\n beKey: 'internalAffairsCaseNumber',\n disabled: false,\n },\n {\n value: 'code',\n text: 'Tracking Number',\n beKey: 'code',\n disabled: false,\n },\n {\n value: 'civilian.city',\n text: 'Civilian City',\n beKey: 'civilian.city',\n disabled: false,\n },\n {\n value: 'civilian.state',\n text: 'Civilian State',\n beKey: 'civilian.state',\n disabled: false,\n },\n {\n value: 'location.address',\n text: 'Location Address',\n beKey: 'location.address',\n disabled: false,\n },\n {\n value: 'location.city',\n text: 'Location City',\n beKey: 'location.city',\n disabled: false,\n },\n {\n value: 'location.state',\n text: 'Location State',\n beKey: 'location.state',\n disabled: false,\n },\n {\n value: 'employee.firstName',\n text: 'Employee First Name',\n beKey: 'employee.firstName',\n disabled: false,\n },\n {\n value: 'employee.lastName',\n text: 'Employee Last Name',\n beKey: 'employee.lastName',\n disabled: false,\n },\n {\n value: 'employee.id',\n text: 'Employee ID',\n beKey: 'employee.id',\n disabled: false,\n },\n {\n value: 'others.firstName',\n text: 'Others First Name',\n beKey: 'others.firstName',\n disabled: false,\n },\n {\n value: 'others.lastName',\n text: 'Others Last Name',\n beKey: 'others.lastName',\n disabled: false,\n },\n {\n value: 'others.id',\n text: 'Others ID',\n beKey: 'others.id',\n disabled: false,\n },\n {\n value: 'status',\n text: 'Status',\n beKey: 'status',\n disabled: false,\n },\n {\n value: 'source',\n text: 'Source',\n beKey: 'source',\n disabled: false,\n },\n {\n value: 'reporter',\n text: 'Reporter',\n beKey: 'reporter',\n disabled: false,\n },\n {\n value: 'allegations',\n text: 'Allegations',\n beKey: 'allegations',\n disabled: false,\n },\n {\n value: 'dispositions',\n text: 'Dispositions',\n beKey: 'dispositions',\n disabled: false,\n },\n {\n value: 'discipline',\n text: 'Discipline',\n beKey: 'discipline',\n disabled: false,\n },\n {\n value: 'investigator',\n text: 'Investigator',\n beKey: 'investigator',\n disabled: false,\n },\n {\n value: 'subtype',\n text: 'Subtype',\n beKey: 'subtype',\n disabled: false,\n },\n {\n value: 'demographic.race',\n text: 'Demographic Race',\n beKey: 'demographic.race',\n disabled: false,\n },\n {\n value: 'demographic.primaryLanguage',\n text: 'Demographic Primary Language',\n beKey: 'demographic.primaryLanguage',\n disabled: false,\n },\n {\n value: 'links',\n text: 'Links',\n beKey: 'links',\n disabled: false,\n },\n {\n value: 'files.url',\n text: 'Files URL',\n beKey: 'files.url',\n disabled: false,\n },\n {\n value: 'whyYouWantToThank',\n text: 'Why You Want to Thank',\n beKey: 'whyYouWantToThank',\n disabled: false,\n },\n {\n value: 'officersInfo.firstName',\n text: 'Officers Info First Name',\n beKey: 'officersInfo.firstName',\n disabled: false,\n },\n {\n value: 'officersInfo.lastName',\n text: 'Officers Info Last Name',\n beKey: 'officersInfo.lastName',\n disabled: false,\n },\n {\n value: 'officersInfo.badgeNumber',\n text: 'Officers Info Badge Number',\n beKey: 'officersInfo.badgeNumber',\n disabled: false,\n },\n {\n value: 'assigned.firstName',\n text: 'Assigned First Name',\n beKey: 'assigned.firstName',\n disabled: false,\n },\n {\n value: 'assigned.lastName',\n text: 'Assigned Last Name',\n beKey: 'assigned.lastName',\n disabled: false,\n },\n {\n value: 'assigned.email',\n text: 'Assigned Email',\n beKey: 'assigned.email',\n disabled: false,\n },\n {\n value: 'civilian.city.id',\n text: 'Civilian City ID',\n beKey: 'civilian.city.id',\n disabled: false,\n },\n {\n value: 'civilian.city.name',\n text: 'Civilian City Name',\n beKey: 'civilian.city.name',\n disabled: false,\n },\n {\n value: 'civilian.state.id',\n text: 'Civilian State ID',\n beKey: 'civilian.state.id',\n disabled: false,\n },\n {\n value: 'civilian.state.name',\n text: 'Civilian State Name',\n beKey: 'civilian.state.name',\n disabled: false,\n },\n {\n value: 'location.city.id',\n text: 'Location City ID',\n beKey: 'location.city.id',\n disabled: false,\n },\n {\n value: 'location.city.name',\n text: 'Location City Name',\n beKey: 'location.city.name',\n disabled: false,\n },\n {\n value: 'location.state.id',\n text: 'Location State ID',\n beKey: 'location.state.id',\n disabled: false,\n },\n {\n value: 'location.state.name',\n text: 'Location State Name',\n beKey: 'location.state.name',\n disabled: false,\n },\n];\n\nexport const arrayOptions = [\n 'gender',\n 'raceEthnicity',\n 'sexualOrientation',\n 'howDidYouHearAboutUs',\n 'links',\n 'assignedUsers',\n 'assignedOfficers',\n 'allegations',\n 'dispositions',\n 'diciplines',\n];\n\nexport const raceEthnicityOptions = [\n 'Black or African American',\n 'Hispanic or Latinx',\n 'Asian',\n 'Native Hawaiian or Pacific Islander',\n 'American Indian or Alaskan Native',\n 'Middle Eastern or South Asian',\n 'Multiracial',\n 'White',\n 'Not Listed',\n 'Prefer not to answer',\n];\n\nexport const pronounsOptions = [\n 'Feminine: She, her, hers',\n 'Masculine: He, him, his',\n 'Gender Neutral: They, them, their',\n 'Gender Neutral: Ze, zir, zirs',\n 'Gender Neutral: Ze, hir, hirs',\n];\n\nexport const genderOptions = [\n 'Male',\n 'Female',\n 'Trans Male',\n 'Trans Female',\n 'Genderqueer / Gender Non-binary',\n 'Not Listed',\n 'Prefer not to answer',\n];\n\nexport const subtypeOptions = ['Police', 'Housing', 'Employment', 'Other'];\n\nexport const officerStatus = ['Received', 'In Progress', 'Closed'];\nexport const disiplinesOptions = [\n 'Counseled',\n 'Letter of Reprimand',\n 'Suspension',\n 'Demotion',\n 'Dismissal',\n 'Resignation',\n 'No Further Action',\n 'Other',\n];\nexport const dispositionOptions = ['Use of Force', 'Not Sustained', 'Unfounded', 'Improper Conduct', 'Policy Failure'];\nexport const allegationOptions = [\n 'Use of Force',\n 'Abuse of Authority',\n 'Discourtesy',\n 'Offensive Language',\n 'Lack of Service',\n];\n\nexport const ReasonOptions = ['Option 1', 'Option 2', 'Option 3'];\n","import axios from 'axios';\n\nfunction resetToken() {\n return axios.create({\n baseURL: `https://securetoken.googleapis.com/v1/token?key=${process.env.REACT_APP_API_KEY}`,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n });\n}\n\nconst config = {\n baseURL: process.env.REACT_APP_UNARMED_ENDPOINT,\n headers: {\n 'content-type': 'application/json',\n ...(process.env.REACT_APP_TENANT_ID\n ? {\n 'X-Tenant-Id': process.env.REACT_APP_TENANT_ID,\n }\n : {}),\n },\n responseType: 'json',\n};\n\nconst axiosApiInstance = axios.create(config);\n\nconst axiosApiFileInstance = axios.create({\n baseURL: process.env.REACT_APP_UNARMED_ENDPOINT,\n headers: {\n 'content-disposition': 'attachment;filename=report.xls',\n 'content-type': 'application/vnd.ms-excel',\n },\n});\n\naxiosApiInstance.interceptors.request.use(\n async (cfg) => {\n const token = await localStorage.getItem('authToken');\n if (token) {\n cfg.headers.Authorization = `Bearer ${token}`;\n }\n return cfg;\n },\n (error: any) => {\n Promise.reject(error);\n }\n);\n\naxiosApiInstance.interceptors.response.use(\n (response) => response,\n async function (error) {\n const originalRequest = error.config;\n if (!error.response) {\n return Promise.reject('Network Error');\n }\n if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n const refreshToken = localStorage.getItem('refreshToken');\n const { data } = await resetToken().post('', `grant_type=refresh_token&refresh_token=${refreshToken}`);\n originalRequest.headers.Authorization = `Bearer ${data.id_token}`;\n\n localStorage.setItem('authToken', data.id_token);\n localStorage.setItem('refreshToken', data.refresh_token);\n\n return axios(originalRequest);\n }\n return Promise.reject(error);\n }\n);\naxiosApiFileInstance.interceptors.request.use(\n async (cfg) => {\n const token = await localStorage.getItem('authToken');\n if (token) {\n cfg.headers.Authorization = `Bearer ${token}`;\n }\n return cfg;\n },\n (error: any) => {\n Promise.reject(error);\n }\n);\n\naxiosApiFileInstance.interceptors.response.use(\n (response) => response,\n async function (error) {\n const originalRequest = error.config;\n if (!error.response) {\n return Promise.reject('Network Error');\n }\n if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n const refreshToken = localStorage.getItem('refreshToken');\n const { data } = await resetToken().post('', `grant_type=refresh_token&refresh_token=${refreshToken}`);\n originalRequest.headers.Authorization = `Bearer ${data.id_token}`;\n\n localStorage.setItem('authToken', data.id_token);\n localStorage.setItem('refreshToken', data.refresh_token);\n\n return axios(originalRequest);\n }\n return Promise.reject(error);\n }\n);\n\nexport const unarmedWithToken = () => axiosApiInstance;\n\nexport const unarmedWithTokenAndDownloadFile = () => axiosApiFileInstance;\n\nexport const unarmed = (token) => {\n if (token) {\n return axios.create({\n baseURL: process.env.REACT_APP_UNARMED_ENDPOINT,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n }\n\n return axios.create({\n baseURL: process.env.REACT_APP_UNARMED_ENDPOINT,\n });\n};\n\nexport const unarmedFile = () =>\n axios.create({\n baseURL: process.env.REACT_APP_UNARMED_ENDPOINT,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'multipart/form-data',\n ...(process.env.REACT_APP_TENANT_ID\n ? {\n 'X-Tenant-Id': process.env.REACT_APP_TENANT_ID,\n }\n : {}),\n },\n });\n","import { Box } from '@material-ui/core';\nimport React from 'react';\n\nconst ArchivedImage = ({ width = 100, height = 100, text = '' }) => {\n return (\n \n {text ? (\n text\n ) : (\n <>\n Archived\n
\n image\n \n )}\n \n );\n};\n\nexport default ArchivedImage;\n","import React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Backdrop, Modal, Typography, makeStyles, Fade, Button, Box, CircularProgress } from '@material-ui/core';\nimport BackupIcon from '@material-ui/icons/Backup';\nimport styled from 'styled-components';\n\nimport { axiosCatchError, fileUploadAceptedTypes } from '../utils';\nimport Attachment from './Attachment';\nimport { uploadFormImg } from '../services/unarmed';\n\nconst DropZoneContainer = styled.div`\n width: 100%;\n margin-bottom: 16px;\n\n .MuiDropzoneArea-root {\n min-height: unset !important;\n }\n`;\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n boxShadow: theme.shadows[5],\n padding: '30px 50px',\n minWidth: 695,\n alignSelf: 'center',\n borderRadius: 4,\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n cursor: 'pointer',\n width: '100%',\n },\n}));\n\n/**\n * Component for uploading files in a modal.\n * @param {object} props - The component props.\n * @param {boolean} props.open - Determines if the modal is open or closed.\n * @param {function} props.onClose - Callback function to handle the modal close event.\n * @param {string} props.organizationId - The ID of the organization.\n * @param {function} props.onConfirm - Callback function to handle the upload confirmation event.\n * @returns {JSX.Element} - The ModalUploadFile component UI.\n */\nconst ModalUploadFile = ({ open, onClose, organizationId, onConfirm }) => {\n /**\n * Hook to manage the selected files.\n */\n const [files, setFiles] = useState([]);\n\n /**\n * Hook to manage the file tags.\n */\n const [fileTags, setFileTags] = useState([]);\n\n /**\n * Hook to manage the loading state.\n */\n const [loading, setLoading] = useState(false);\n\n /**\n * Hook to track when a file is being dragged over the dropzone\n */\n const [isDragging, setIsDragging] = useState(false);\n\n /**\n * CSS styles for the component.\n */\n const classes = useStyles();\n\n /**\n * Handles the upload of a single file.\n * @param {File} file - The file to upload.\n * @param {number} fileKey - The key/index of the file in the files array.\n * @returns {Promise} - A promise that resolves with the uploaded file information.\n */\n const onUploadFile = (file, fileKey) =>\n new Promise((resolve) => {\n const formData = new FormData();\n\n formData.append('file', file);\n formData.append('organizationId', organizationId);\n\n uploadFormImg(formData).then((fileResponse) => {\n resolve({ file: fileResponse, fileKey, path: file.name });\n });\n });\n\n /**\n * Handles the upload of multiple files.\n * @param {Array} _files - The files to upload.\n * @returns {Promise} - A promise that resolves with the uploaded files information.\n */\n const handleOnUploadFiles = useCallback(\n async (_files) => {\n const requests = [];\n const newFiles = [];\n\n setLoading(true);\n\n _files.forEach((_file, _fileKey) => {\n requests.push(onUploadFile(_file.file, _fileKey));\n });\n\n try {\n const responses = await Promise.all(requests);\n\n responses.forEach(({ file, path }) => {\n const { _id, publicUrl, previewUrl, name, size, hashId, mimetype } = file;\n const fileData = fileTags.find((_file) => path === _file?.path);\n let tags = [];\n\n if (fileData) {\n tags = fileData.tags;\n }\n\n const newFile = {\n _id,\n name,\n size,\n hashId,\n mimetype,\n url: publicUrl,\n public_url: publicUrl,\n preview_url: previewUrl,\n tags,\n };\n\n newFiles.push(newFile);\n });\n } catch (error) {\n axiosCatchError(error);\n }\n\n setLoading(false);\n\n return newFiles;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [fileTags]\n );\n\n /**\n * Handles the click event of the Done button.\n * @param {Event} e - The click event object.\n * @returns {Promise} - A promise that resolves after handling the click event.\n */\n const handleOnClickDone = useCallback(\n async (e) => {\n if (files.length > 0) {\n const newFiles = await handleOnUploadFiles(files);\n\n onConfirm(e, newFiles);\n setFiles([]);\n }\n },\n [files, handleOnUploadFiles, onConfirm]\n );\n\n const handleFileChange = (event) => {\n const selectedFiles = Array.from(event.target.files);\n setFiles((_files) => [\n ..._files,\n ...selectedFiles.map((file) => ({ file, path: file.name, preview: URL.createObjectURL(file) })),\n ]);\n setFileTags((fileTags) =>\n selectedFiles.map((file) => {\n const defaultTags = fileTags.find((fileTag) => fileTag.path === file.name);\n return {\n path: file.name,\n tags: defaultTags ? defaultTags.tags : [],\n };\n })\n );\n };\n\n const handleDrop = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsDragging(false);\n\n if (event.dataTransfer.files && event.dataTransfer.files.length > 0) {\n const droppedFiles = Array.from(event.dataTransfer.files);\n setFiles((_files) => [\n ..._files,\n ...droppedFiles.map((file) => ({ file, path: file.name, preview: URL.createObjectURL(file) })),\n ]);\n setFileTags((fileTags) =>\n droppedFiles.map((file) => {\n const defaultTags = fileTags.find((fileTag) => fileTag.path === file.name);\n return {\n path: file.name,\n tags: defaultTags ? defaultTags.tags : [],\n };\n })\n );\n }\n }, []);\n\n const handleDragOver = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsDragging(true);\n }, []);\n\n const handleDragEnter = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsDragging(false);\n }, []);\n\n return (\n \n \n \n \n Upload file\n \n \n \n \n Drag files here or browse\n \n \n
\n \n
\n {files.map((fileWrapper, index) => {\n const { file, preview } = fileWrapper;\n const fileData = fileTags.find((fileTag) => fileTag.path === file.name);\n\n return (\n {\n if (file.type.includes('image') || file.type.includes('pdf')) {\n window.open(preview, '_blank');\n }\n }}\n onClickDelete={() => {\n setFiles((_files) => _files.filter((_file) => _file.path !== fileWrapper.path));\n setFileTags((_fileTags) => _fileTags.filter((_tag) => _tag.path !== fileWrapper.path));\n }}\n onClickAddTag={(tag) => {\n setFileTags((_files) =>\n _files.map((_file) => {\n if (_file?.path === fileWrapper?.path) {\n return {\n ..._file,\n tags: [...(_file?.tags || []), tag],\n };\n }\n\n return _file;\n })\n );\n }}\n onClickRemoveTag={(tag) => {\n setFileTags((_files) =>\n _files.map((_file) => {\n if (_file?.path === fileWrapper?.path) {\n return {\n ..._file,\n tags: _file?.tags?.filter((_tag) => _tag?._id !== tag?._id),\n };\n }\n\n return _file;\n })\n );\n }}\n />\n );\n })}\n
\n \n {\n setFiles([]);\n onClose();\n }}\n >\n CANCEL\n \n {loading ? (\n \n ) : (\n \n DONE\n \n )}\n \n \n \n \n );\n};\n\nconst Paper = styled.div`\n max-height: 800px;\n max-width: 800px;\n overflow-y: scroll;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nModalUploadFile.propTypes = {\n open: PropTypes.bool.isRequired,\n organizationId: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n};\n\nexport default ModalUploadFile;\n","import { Box, Checkbox, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { setterState, wiredValue } from './File';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function MultipleChoice({\n data,\n getFormValue,\n onSaveFormValues,\n}) {\n const [options, setOptions] = useState([]);\n\n useEffect(() => {\n wiredValue(data.questionBankIndex, getFormValue, setOptions);\n }, [data]);\n\n return (\n \n \n\n {data?.options?.map((option, index) => (\n \n {\n const optionsCopy = Array.from(options);\n if (options.includes(option)) {\n const idx = options.indexOf(option);\n optionsCopy.splice(idx, 1);\n } else {\n optionsCopy.push(option);\n }\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n optionsCopy\n );\n setOptions(optionsCopy);\n }}\n inputProps={{ 'aria-label': 'checkbox with default color' }}\n style={{ padding: 0, marginRight: 5 }}\n />\n {option}\n \n ))}\n\n {data?.showRequired && {data?.requiredMessage ? data?.requiredMessage : 'This field is required'}}\n \n );\n}\n\nexport const LabelError = styled.p`\n color: #f44336;\n margin: 0;\n font-size: 0.75rem;\n margin-top: 3 px;\n text-align: left;\n font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;\n font-weight: 400;\n line-height: 1.66;\n letter-spacing: 0.03333em;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport logo from '../assets/oversignBlack.png';\n\nconst LogoHome = ({ width = 150 }) => {\n const history = useHistory();\n\n return \"logo-oversight\" history.push('/')} />;\n};\n\nconst Image = styled.img`\n max-width: 100%;\n cursor: pointer;\n object-fit: contain;\n align-self: center;\n\n @media screen and (max-width: 689px) {\n width: 120px;\n }\n`;\n\nLogoHome.propTypes = {\n width: PropTypes.number,\n};\n\nexport default LogoHome;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport { Avatar, Box, makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nimport profileImg from '../assets/profile.png';\n\nconst useStyles = makeStyles((theme) => ({\n assignedAvatar: {\n width: 40,\n height: 40,\n border: '1px dashed #585858',\n background: '#F8F8F9',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n },\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n marginRight: theme.spacing(2),\n marginLeft: 0,\n width: '100%',\n },\n searchIcon: {\n padding: theme.spacing(0, 2),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n inputRoot: {\n color: 'inherit',\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 0),\n // vertical padding + font size from searchIcon\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\n transition: theme.transitions.create('width'),\n width: '100%',\n },\n userItem: {\n padding: 10,\n cursor: 'pointer',\n },\n usersContainer: {\n position: 'absolute',\n width: 300,\n top: 80,\n left: 0,\n background: '#fff',\n zIndex: 2,\n },\n backdrop: {\n zIndex: 1,\n position: 'fixed',\n height: '116.1vh',\n width: '100%',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n closeIcon: {\n position: 'absolute',\n top: ' -5px',\n right: ' 4px',\n zIndex: 1,\n cursor: 'pointer',\n transition: 'ease all .3s',\n fontSize: '13px',\n background: '#364F74',\n borderRadius: '50%',\n color: '#fff',\n padding: 3,\n opacity: 0,\n },\n containerAvatar: {\n '&:hover svg': {\n opacity: 1,\n },\n },\n}));\n\nconst UserDropdown = ({ onSelectUser, usersFiltered = [], showUnassigned, onClose }) => {\n const classes = useStyles();\n\n return (\n <>\n
\n \n \n {showUnassigned && (\n onSelectUser('null')}>\n \n \n \n Unassigned\n \n \n \n )}\n {usersFiltered.length > 0 ? (\n <>\n {usersFiltered.map((user, i) => (\n onSelectUser(user, i)}\n >\n \n \n \n {user?.firstName ? `${user?.firstName} ${user?.lastName} ` : `${user?.username || ''}`}\n \n \n {user.email}\n \n \n \n ))}\n \n ) : (\n <>\n {!showUnassigned && (\n \n No users found.\n \n )}\n \n )}\n \n \n \n );\n};\n\nUserDropdown.propTypes = {\n onSelectUser: PropTypes.object,\n usersFiltered: PropTypes.array,\n onClose: PropTypes.func,\n showUnassigned: PropTypes.bool,\n};\n\nexport default UserDropdown;\n","import {\n Avatar,\n Box,\n Button,\n CircularProgress,\n Divider,\n FormControlLabel,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport moment from 'moment';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport PropTypes from 'prop-types';\nimport useOrganization from '../hooks/useOrganization';\nimport useInput from '../hooks/useInput';\nimport { OutLineInput } from '../pages/CaseDetails/UpdateCase';\nimport {\n getCivilianCases,\n getFilterByCase,\n getUsers,\n getUsersSearch,\n updateFilterConfigById,\n} from '../services/unarmed';\nimport DatePickerMUI from './DatePickerMUi';\nimport SelectBox from './SelectBox';\nimport UserDropdown from './UsersDropdown';\nimport { Context } from '../Context';\nimport formatTxt from '../utils/formatText';\n\nimport MultiSelectBox from './MultiSelectBox';\nimport { CustomSwitch } from '../formEngine/components/WrapperComponent';\nimport { axiosCatchError } from '../utils';\n\nexport const activeColors = {\n color: 'rgba(0, 0, 0, 0.87)',\n border: '#408BEC',\n bg: 'transparent',\n focus: 'transparent',\n};\n\nconst onSkipNullFromArray = (array) =>\n array?.filter((item) => {\n if (item) {\n return item;\n }\n\n return null;\n });\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\nconst CaseFilters = ({\n allegation,\n archivedOnly,\n assigned,\n code,\n discipline,\n disposition,\n filterConfigId,\n filtersApplied,\n filtersConfig,\n flaggedOnly,\n formType,\n from,\n investigator,\n name,\n onClearFilters,\n onClick,\n reporter,\n setAllegation,\n setAssigned,\n setDiscipline,\n setDisposition,\n setfiltersConfig,\n setFormType,\n setFrom,\n setIsFiltering,\n setTo,\n sortBy,\n source,\n status,\n subType,\n to,\n transferredOnly,\n email,\n phoneNumber,\n role,\n sortOrder,\n}) => {\n const classes = useStyles();\n const { authUser, myUser } = useContext(Context);\n const [filterCases, setFilterCases] = useState({});\n const [loading, setLoading] = useState(false);\n const [showAdvancedFilter, setShowAdvancedFilers] = useState(false);\n const [open, setOpen] = useState(false);\n const [users, setUsers] = useState([]);\n const [usersFiltered, setUsersFiltered] = useState([]);\n const [options, setOptions] = useState([]);\n const searchBox = useInput('');\n const [filteredCaseCount, setFilteredCaseCount] = useState(0);\n\n useEffect(() => {\n const onGetUsers = async () => {\n const filters = await getFilterByCase();\n\n setFilterCases(filters);\n const selectOptions = filters?.type?.slice(1)?.map((_formType) => ({\n text: _formType.toLowerCase(),\n value: _formType,\n }));\n setOptions(selectOptions);\n const { data } = await getUsers({});\n setUsers(data);\n if (typeof assigned === 'string' && assigned !== 'null') {\n const user = data.find((_user) => _user.email === assigned);\n setAssigned(user);\n }\n setUsersFiltered(data);\n };\n\n if (authUser) {\n onGetUsers();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [authUser]);\n\n const onFilterUsers = () => {\n if (searchBox.value === '') {\n setUsersFiltered(users);\n return;\n }\n\n if (searchBox?.value?.length >= 3) {\n getUsersSearch(100, 'name', 'asc', searchBox.value).then((res) => {\n const _users = res?.data || [];\n\n setUsersFiltered(_users);\n });\n }\n };\n\n const getFilterSubtypeOptions = () => {\n const subTypeOptions = filterCases?.subtype;\n\n if (!subTypeOptions) return [];\n const stypeTypeOptionsKey = Object.keys(subTypeOptions);\n\n const subTypeOptionsArray = [];\n stypeTypeOptionsKey.forEach((key) => {\n const keyOptions = subTypeOptions[key];\n keyOptions.forEach((option) => {\n if (!subTypeOptionsArray.includes(option)) {\n subTypeOptionsArray.push(option);\n }\n });\n });\n\n if (formType && formType !== '0') {\n const formTypeOptions = subTypeOptions[formType] || [];\n\n // if (!formTypeOptions.length) {\n // subType.setValue([]);\n // }\n\n // if (!formTypeOptions.includes(subType.value)) {\n // subType.setValue([]);\n // }\n\n return formTypeOptions?.map((option) => ({\n text: option,\n value: option,\n }));\n }\n\n return subTypeOptionsArray?.map((option) => ({\n text: option,\n value: option,\n }));\n };\n\n const onFilter = async () => {\n if (from === 'Invalid date' || to === 'Invalid date') return;\n\n try {\n setIsFiltering(true);\n setLoading(true);\n\n const filterSaved = {\n from: from ? moment(from).format('YYYY-MM-DD') : null,\n to: to ? moment(to).format('YYYY-MM-DD') : null,\n email,\n name: name.value,\n phoneNumber,\n role,\n sortOrder,\n sortBy,\n flaggedOnly: flaggedOnly.value,\n assignedTo: assigned,\n type: formType,\n status: status.value,\n code: code.value,\n archivedOnly: archivedOnly.value,\n transferredOnly: transferredOnly.value,\n };\n //localStorage.setItem('filters', JSON.stringify(filterSaved));\n await updateFilterConfigById(filterConfigId, filterSaved);\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n axiosCatchError(error);\n }\n };\n\n const onFilterClear = async () => {\n if (from === 'Invalid date' || to === 'Invalid date') return;\n try {\n setIsFiltering(true);\n setLoading(true);\n\n const filterSaved = {\n from: null,\n to: null,\n email: '',\n name: '',\n phoneNumber,\n role,\n sortOrder,\n sortBy,\n flaggedOnly: false,\n assignedTo: '',\n type: '',\n status: '',\n code: '',\n archivedOnly: false,\n transferredOnly: false,\n };\n localStorage.setItem('filters', JSON.stringify(filterSaved));\n await updateFilterConfigById(filterConfigId, filterSaved);\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n axiosCatchError(error);\n }\n };\n\n const onSelectUser = (user) => {\n setAssigned(user);\n setOpen(false);\n };\n\n const onRemoveAssignedUser = () => {\n searchBox.setValue('');\n setAssigned(null);\n };\n\n const doneTypingInterval = 750;\n let interval;\n\n let assignedComponent;\n\n if (assigned !== 'null' && assigned) {\n assignedComponent = (\n \n \n {`${formatTxt(assigned?.firstName, 10)} ${formatTxt(\n assigned?.lastName,\n 7\n )}`}\n \n \n );\n } else if (assigned === 'null') {\n assignedComponent = (\n setOpen(true)}>\n \n Unassigned\n \n \n );\n } else {\n assignedComponent = (\n setOpen(true)}\n labelWidth={0}\n onChange={(e) => {\n if (e.target.value.length <= 70) {\n searchBox.onChange(e);\n }\n }}\n onKeyUp={() => {\n clearTimeout(interval);\n\n interval = setTimeout(() => {\n onFilterUsers();\n }, doneTypingInterval);\n }}\n onKeyDown={() => {\n clearTimeout(interval);\n }}\n />\n );\n }\n\n const onClearFiltersAction = async () => {\n await onClearFilters();\n onFilterClear();\n };\n\n return (\n \n \n \n Type\n setFormType(e.target.value)}\n outlined\n withColors={filtersApplied.type ? activeColors : null}\n />\n \n \n \n Tracking Number\n \n \n \n \n \n Created Date\n \n \n \n \n \n \n \n \n \n Name\n \n \n \n \n {open && (\n {\n setOpen(false);\n searchBox.setValue('');\n setUsersFiltered(users);\n }}\n />\n )}\n \n \n Assigned To\n \n {assignedComponent}\n \n \n \n Status\n \n \n \n {showAdvancedFilter && (\n <>\n \n \n Subtype\n item.value)}\n active={filtersApplied.subtype}\n />\n \n \n Source\n \n \n \n Reporter\n \n \n \n Investigator\n \n \n \n \n Allegation\n \n setAllegation(e.target.value)}\n id=\"alegationMutliSelct\"\n options={onSkipNullFromArray(filterCases?.allegations) || []}\n active={filtersApplied.allegations}\n />\n \n \n \n Disposition\n \n setDisposition(e.target.value)}\n id=\"dispositionMutliSelct\"\n options={onSkipNullFromArray(filterCases?.dispositions) || []}\n active={filtersApplied.dispositions}\n />\n \n \n \n Discipline\n \n setDiscipline(e.target.value)}\n id=\"discliplineMutliSelct\"\n options={onSkipNullFromArray(filterCases?.discipline) || []}\n active={filtersApplied.disciplines}\n />\n \n \n {myUser?.role === 'admin' ? (\n \n \n }\n labelPlacement=\"start\"\n label=\"Archived only\"\n />\n \n \n }\n labelPlacement=\"start\"\n label=\"Transferred only\"\n />\n \n \n }\n labelPlacement=\"start\"\n label=\"Flagged only\"\n />\n \n \n ) : (\n \n \n }\n labelPlacement=\"start\"\n label=\"Flagged only\"\n />\n \n \n )}\n \n )}\n \n \n \n setShowAdvancedFilers(!showAdvancedFilter)}\n >\n Advance Filters\n \n |\n \n Clear All Filters{' '}\n \n \n \n \n \n \n \n \n );\n};\n\nCaseFilters.propTypes = {\n sortBy: PropTypes.string,\n onClick: PropTypes.func,\n formType: PropTypes.string,\n setFormType: PropTypes.func,\n code: PropTypes.string,\n assigned: PropTypes.string,\n status: PropTypes.string,\n name: PropTypes.string,\n setFrom: PropTypes.func,\n setTo: PropTypes.func,\n source: PropTypes.string,\n reporter: PropTypes.string,\n investigator: PropTypes.string,\n setAllegation: PropTypes.func,\n setDisposition: PropTypes.func,\n setDiscipline: PropTypes.func,\n from: PropTypes.string,\n to: PropTypes.string,\n onClearFilters: PropTypes.func,\n setAssigned: PropTypes.func,\n allegation: PropTypes.string,\n disposition: PropTypes.string,\n discipline: PropTypes.string,\n setIsFiltering: PropTypes.func,\n archivedOnly: PropTypes.bool,\n transferredOnly: PropTypes.bool,\n flaggedOnly: PropTypes.bool,\n subType: PropTypes.string,\n filtersConfig: PropTypes.object,\n filtersApplied: PropTypes.bool,\n};\n\nexport default CaseFilters;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\n\nexport const componentsName = {\n demographics: 'Demographics',\n singleChoice: 'Single Choice',\n multipleChoices: 'Multiple Choices',\n dropdown: 'Dropdown',\n yesNo: 'Yes/No',\n shortText: 'Short Text',\n longText: 'Long Text',\n addressInformation: 'Address Information',\n contactInformation: 'Contact Information',\n date: 'Date',\n dateOfBirth: 'Date Of Birth',\n email: 'Email',\n fileUpload: 'File',\n gender: 'Gender',\n hour: 'Hour',\n phone: 'Phone',\n url: 'Url',\n};\n\nconst mapPropsToConfig = (config) => {\n const configWithProps = [];\n config.forEach((item) => {\n if (item.component) {\n const { component, ...props } = item;\n\n configWithProps.push({\n ...props,\n Component: component,\n });\n }\n });\n\n return configWithProps;\n};\n\nexport const CURenderer = ({\n id,\n config,\n version,\n setForm,\n onSubmitForm,\n customFieldsValues,\n setIsRequestingData,\n setPagesValues = () => { },\n validateComponent,\n}) => {\n // const [editComponents, setEditComponents] = useState({});\n\n if (!config) {\n throw new Error('You are calling Renderer with no config.');\n }\n\n const configWithProps = mapPropsToConfig(config);\n const renderComponents = (items) =>\n items.map((item, itemIndex) => {\n const { Component, ...props } = item;\n // if (props?.data?.visible === false) {\n // return;\n // } else {\n return (\n \n );\n // }\n });\n\n return renderComponents(configWithProps);\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Avatar, Button, Box, InputBase, makeStyles, Typography } from '@material-ui/core';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\nimport SearchIcon from '@material-ui/icons/Search';\nimport AddRoundedIcon from '@material-ui/icons/AddRounded';\nimport CloseIcon from '@material-ui/icons/Close';\nimport profileImg from '../assets/profile.png';\nimport ConfirmDialog from './ConfirmDialog';\nimport UpgradeModal from './UpgradeModal';\nimport useOrganization from '../hooks/useOrganization';\nimport { getUsersSearch } from '../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n assignedAvatar: {\n width: 40,\n height: 40,\n border: '1px dashed #585858',\n background: '#F8F8F9',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n },\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n marginRight: theme.spacing(2),\n marginLeft: 0,\n width: '100%',\n },\n searchIcon: {\n padding: theme.spacing(0, 2),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n inputRoot: {\n color: 'inherit',\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 0),\n // vertical padding + font size from searchIcon\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\n transition: theme.transitions.create('width'),\n width: '100%',\n },\n userItem: {\n padding: 10,\n cursor: 'pointer',\n },\n\n usersContainer: {\n position: 'absolute',\n width: 300,\n marginTop: 20,\n background: '#fff',\n zIndex: 4,\n },\n\n backdrop: {\n zIndex: 1,\n position: 'absolute',\n height: '116.1vh',\n width: '100%',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n required: {\n color: 'red',\n fontSize: 16,\n },\n closeIcon: {\n position: 'absolute',\n top: ' -5px',\n right: ' 4px',\n zIndex: 1,\n cursor: 'pointer',\n transition: 'ease all .3s',\n fontSize: '13px',\n background: '#364F74',\n borderRadius: '50%',\n color: '#fff',\n padding: 3,\n opacity: 0,\n },\n\n containerAvatar: {\n '&:hover svg': {\n opacity: 1,\n },\n },\n}));\n\nconst AssignUser = ({\n assignedUsers,\n setAssignedUsers,\n defaultUsers = [],\n onAssignUser,\n onDeleteUser,\n loadingRemoveUser,\n alignX = 200,\n alignKey = 'right',\n addMoreUser = true,\n textAlign = 'right',\n flexWrap = 'nowrap',\n required,\n}) => {\n const classes = useStyles();\n const [showUser, setShowUsers] = useState(false);\n const [visibleUsersCount, setVisibleUsersCount] = useState(20);\n const [currentIndex, setCurrentIndex] = useState(0);\n const [usersFiltered, setUsersFiltered] = useState([...defaultUsers]);\n const [open, setOpen] = useState(false);\n const [selectedUser, setSelectedUser] = useState(null);\n const [showUpgradeModal, setShowUpgradeModal] = useState(false);\n const { organization } = useOrganization();\n const [search, setSearch] = useState('');\n\n useEffect(() => {\n if (assignedUsers.length) {\n const filteredUsers = defaultUsers.filter(Boolean).filter((user) => {\n const isAssigned = assignedUsers.filter(Boolean).find((assignedUser) => assignedUser._id === user._id);\n return !isAssigned;\n });\n\n setUsersFiltered(filteredUsers);\n } else {\n setUsersFiltered(defaultUsers);\n }\n }, [defaultUsers, assignedUsers]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [showUpgradeModal]);\n\n const onConfirm = async () => {\n await onDeleteUser(selectedUser.user, selectedUser.index);\n setOpen(false);\n setSelectedUser(null);\n };\n\n const onClose = () => {\n setOpen(false);\n setSelectedUser(null);\n };\n\n const onOpen = (user, i) => {\n setOpen(true);\n setSelectedUser({ user, index: i });\n };\n\n const handleShowMore = () => {\n setVisibleUsersCount((prev) => prev + 10);\n };\n\n const handleShowUsers = async (index) => {\n try {\n const res = await getUsersSearch(100, 'name', 'asc', undefined);\n\n if (res.data.length > 0) {\n const users = res.data;\n const filteredUsers = users.filter((user) => {\n const isAssigned = assignedUsers.filter(Boolean).find((assignedUser) => assignedUser._id === user._id);\n return !isAssigned;\n });\n\n setUsersFiltered(filteredUsers);\n }\n } catch (error) {\n console.error('Error retrieving users:', error);\n }\n\n if (!organization?.features?.dashboard?.cases?.assignedTo) {\n setShowUpgradeModal(true);\n } else {\n setShowUsers(true);\n setCurrentIndex(index);\n }\n };\n\n const onFilterUsers = useCallback(() => {\n if (search === '') {\n getUsersSearch(100, 'name', 'asc', undefined).then((res) => {\n const users = res?.data || [];\n const filteredUsers = users.filter((user) => {\n const isAssigned = assignedUsers.filter(Boolean).find((assignedUser) => assignedUser._id === user._id);\n return !isAssigned;\n });\n\n setUsersFiltered(filteredUsers);\n });\n return;\n }\n\n if (search.length >= 3) {\n getUsersSearch(100, 'name', 'asc', search).then((res) => {\n const users = res?.data || [];\n const filteredUsers = users.filter((user) => {\n const isAssigned = assignedUsers.filter(Boolean).find((assignedUser) => assignedUser._id === user._id);\n return !isAssigned;\n });\n\n setUsersFiltered(filteredUsers);\n });\n }\n }, [search, assignedUsers]);\n\n const onSelectUser = (user) => {\n const usersArr = [...assignedUsers];\n\n usersArr[currentIndex] = user;\n\n onAssignUser(usersArr, () => {\n if (addMoreUser) {\n setAssignedUsers([...usersArr, {}]);\n } else {\n setAssignedUsers([...usersArr]);\n }\n });\n setShowUsers(false);\n };\n\n const doneTypingInterval = 750;\n let interval;\n\n return (\n \n setShowUpgradeModal(false)} />\n \n Assigned To {required && *}\n \n \n \n {assignedUsers.filter(Boolean).map((user, i) => {\n const userKeys = Object.keys(user);\n if (userKeys.length > 0) {\n return (\n \n handleShowUsers(0)}\n style={{\n marginRight: 10,\n cursor: 'pointer',\n height: 40,\n width: 40,\n }}\n src={user?.photo?.url || user?.profile_img || profileImg}\n />\n onOpen(user, i)} />\n \n );\n }\n\n return (\n handleShowUsers(i)}\n style={{ marginRight: 7 }}\n key={i}\n >\n \n
\n );\n })}\n \n {showUser && (\n <>\n
setShowUsers(false)} />\n \n
\n
\n \n
\n {\n if (e.target.value.length <= 70) {\n setSearch(e.target.value);\n }\n }}\n onKeyUp={() => {\n clearTimeout(interval);\n\n interval = setTimeout(() => {\n onFilterUsers();\n }, doneTypingInterval);\n }}\n onKeyDown={() => {\n clearTimeout(interval);\n }}\n inputProps={{ 'aria-label': 'search' }}\n />\n
\n \n {usersFiltered.length > 0 ? (\n <>\n {usersFiltered.slice(0, visibleUsersCount).map((user, i) => (\n onSelectUser(user, i)}\n >\n \n \n \n {user?.firstName ? `${user?.firstName} ${user?.lastName} ` : `${user?.username || ''}`}\n \n \n {user.email}\n \n \n \n ))}\n\n {visibleUsersCount < usersFiltered.length && (\n \n \n Show More \n \n \n )}\n \n ) : (\n \n No users found.\n \n )}\n
\n \n \n )}\n \n );\n};\n\nexport default AssignUser;\n","import { useState, useEffect } from 'react';\nimport {\n getUserTabs,\n createUserTabs,\n updateUserTabs,\n deleteUserTab,\n updateUserTabName,\n updateDashboard,\n updateViewsById,\n} from '../services/unarmed';\nimport { TYPE_USER_TABS } from '../utils/constants';\n\nexport const useTabsUtil = ({ moduleName }) => {\n const [userTabs, setUserTabs] = useState([]);\n const [nextPosition, setNextPosition] = useState(1);\n const storedTabSelected = localStorage.getItem('tabSelected');\n const isSelected = !storedTabSelected; // Cambia a null\n const initialTabSelected = isSelected ? JSON?.parse(storedTabSelected) : {};\n const [tabSelected, setTabSelected] = useState({ initialTabSelected });\n const [activeTab, setActiveTab] = useState(localStorage.getItem('activeTab') || TYPE_USER_TABS.DASHBOARDS_LIST);\n const [activeTabName, setActiveTabName] = useState(localStorage.getItem('activeTabName') || 'Dashboards');\n const [showReportTable, setShowReportTable] = useState(true);\n const [showDashboardsTable, setShowDashboardsTable] = useState(true);\n const [selectedRow, setSelectedRow] = useState(null);\n\n const onGetUserTabs = async () => {\n try {\n const { data } = await getUserTabs(moduleName);\n setUserTabs(data.tabs);\n\n const validTabs = data.tabs.filter((tab) => {\n const position = parseInt(tab.position, 10);\n if (isNaN(position)) {\n console.warn('Tab con posición inválida o faltante:', tab);\n return false;\n }\n return true;\n });\n\n if (validTabs.length === 0) {\n console.warn('No hay tabs con posiciones válidas');\n setNextPosition(1);\n return;\n }\n\n const sortedTabs = validTabs.sort((a, b) => parseInt(a.position, 10) - parseInt(b.position, 10));\n const lastPosition = parseInt(sortedTabs[sortedTabs.length - 1].position, 10);\n if (moduleName == 'INSIGHT') {\n localStorage.setItem('tabSelected', JSON.stringify(sortedTabs.find((tab) => tab.name === 'Reports')));\n } else {\n localStorage.setItem('tabSelected', JSON.stringify(sortedTabs.find((tab) => tab.name === 'Default')));\n }\n\n if (!isNaN(lastPosition)) {\n setNextPosition(lastPosition + 1);\n } else {\n console.error('La última posición es NaN, algo salió mal al obtener la posición');\n setNextPosition(1);\n }\n setUserTabs(sortedTabs);\n } catch (error) {\n console.error('Error al obtener los tabs:', error);\n }\n };\n\n const handleSaveTab = async (tabName, updatedTabs = userTabs) => {\n if (!updatedTabs || updatedTabs.length === 0 || !tabSelected.id) {\n const userTabsPayload = {\n userTabs: [\n {\n name: tabName || 'Nuevo Tab',\n type: moduleName === 'INSIGHT' ? TYPE_USER_TABS.DASHBOARD : TYPE_USER_TABS.VIEW,\n position: String(nextPosition),\n moduleName,\n },\n ],\n };\n\n try {\n const response = await createUserTabs(userTabsPayload);\n if (response.status === 200) {\n const savedTab = response.data;\n const updatedTabsWithNew = [...updatedTabs, savedTab];\n setUserTabs(updatedTabsWithNew);\n } else {\n console.error('Error al guardar el tab:', response);\n }\n } catch (error) {\n console.error('Error en la API al guardar el tab:', error.message || error);\n }\n return;\n }\n\n const existingTab = updatedTabs?.find((tab) => tab.id === tabSelected.id);\n\n if (existingTab) {\n const updatedTabList = updatedTabs?.map((tab) => (tab.id === tabSelected.id ? { ...tab, name: tabName } : tab));\n\n const updatedTabPayload = {\n userTabs: updatedTabList.map((tab, index) => ({\n id: tab.id,\n name: tab.name,\n type: moduleName === 'INSIGHT' ? TYPE_USER_TABS.DASHBOARD : TYPE_USER_TABS.VIEW,\n position: String(index + 1),\n })),\n moduleName: moduleName,\n };\n\n try {\n const response = await updateUserTabs(updatedTabPayload);\n if (response.status === 200) {\n setUserTabs(updatedTabList);\n } else {\n console.error('Error al actualizar los tabs:', response);\n }\n } catch (error) {\n console.error('Error en la API al actualizar los tabs:', error.message || error);\n }\n }\n };\n\n const updateNameTab = async ({ newName, tabId, dashboardId, viewId }) => {\n try {\n const response = await updateUserTabName(tabId, newName);\n if (dashboardId) {\n const responseDashboard = await updateDashboard(dashboardId, { name: newName });\n } else {\n const responseView = await updateViewsById(viewId, { viewName: newName });\n }\n if (response.status === 200) {\n onGetUserTabs();\n } else {\n console.error('Error al actualizar los tabs:', response);\n }\n } catch (error) {\n console.error('Error en la API al actualizar los tabs:', error.message || error);\n }\n };\n\n const handleCreateOrEditTab = () => {\n const isEditMode = tabSelected.id !== null;\n if (typeof nextPosition !== 'number' || isNaN(nextPosition)) {\n return;\n }\n\n if (isEditMode) {\n handleSaveTab(nextPosition, tabSelected.id);\n } else {\n handleSaveTab(nextPosition); // Crear nuevo tab\n }\n };\n\n const handleTabSelection = (tab) => {\n setTabSelected(tab);\n };\n\n const saveTabPositions = async (updatedTabs, typeTab) => {\n const userTabsPayload = {\n userTabs: updatedTabs?.map((tab, index) => ({\n id: tab.id,\n name: tab.name,\n type: typeTab,\n pinned: tab.pinned,\n position: String(index + 1),\n })),\n moduleName,\n };\n\n try {\n const response = await updateUserTabs(userTabsPayload);\n if (response.status === 200) {\n setUserTabs(updatedTabs);\n } else {\n console.error('Error al actualizar las posiciones de los tabs:', response);\n }\n } catch (error) {\n console.error('Error en la API al actualizar las posiciones:', error.message || error);\n }\n };\n\n const handleTabsReorder = (updatedTabs) => {\n setUserTabs(updatedTabs);\n saveTabPositions(updatedTabs);\n };\n\n const handleTabSelectionAction = (tab) => {\n setTabSelected(tab);\n\n switch (tab.type) {\n case TYPE_USER_TABS.REPORTS:\n setActiveTab(TYPE_USER_TABS.REPORTS);\n setShowReportTable(true);\n break;\n case TYPE_USER_TABS.DASHBOARDS_LIST:\n setActiveTab(TYPE_USER_TABS.DASHBOARDS_LIST);\n setShowDashboardsTable(true);\n break;\n case TYPE_USER_TABS.DASHBOARD:\n setActiveTab(TYPE_USER_TABS.DASHBOARD);\n setActiveTabName(tab.name);\n break;\n case TYPE_USER_TABS.REPORT:\n setActiveTab(TYPE_USER_TABS.REPORT);\n setActiveTabName(tab.name);\n break;\n case TYPE_USER_TABS.ADHOCREPORT:\n setActiveTab(TYPE_USER_TABS.ADHOCREPORT);\n break;\n case TYPE_USER_TABS.MAIN:\n setActiveTab(TYPE_USER_TABS.MAIN);\n break;\n case TYPE_USER_TABS.VIEW:\n setActiveTab(TYPE_USER_TABS.VIEW);\n break;\n default:\n break;\n }\n setSelectedRow(null);\n };\n\n const deleteSelectedTab = async () => {\n const tabToDelete = userTabs.find((tab) => tab.id === tabSelected.id);\n if (!tabToDelete?.deletable) {\n console.warn('This tab cannot be deleted.');\n return;\n }\n\n try {\n const response = await deleteUserTab(tabSelected.id, moduleName);\n setUserTabs(response.data.remainingTabs);\n if (response.status === 200) {\n console.log('Tab deleted successfully:', response);\n } else {\n console.error('Error deleting the tab:', response);\n\n setUserTabs((prevTabs) => [...prevTabs, tabToDelete]);\n }\n } catch (error) {\n console.error('Error in API while deleting the tab:', error.message || error);\n\n setUserTabs((prevTabs) => [...prevTabs, tabToDelete]);\n }\n };\n\n useEffect(() => {\n onGetUserTabs();\n }, [moduleName]);\n\n return {\n updateNameTab,\n activeTabName,\n setActiveTabName,\n tabSelected,\n onGetUserTabs,\n userTabs,\n setUserTabs,\n setTabSelected,\n activeTab,\n handleSaveTab,\n setActiveTab,\n handleTabSelection,\n nextPosition,\n setShowReportTable,\n handleTabsReorder,\n handleTabSelectionAction,\n deleteSelectedTab,\n };\n};\n","/* eslint-disable jsx-a11y/alt-text */\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { Box, IconButton, TextField, Snackbar, Menu, MenuItem } from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport SaveIcon from '@material-ui/icons/Save';\nimport CloseIcon from '@material-ui/icons/Close';\nimport TrashIcon from '../assets/trash.png';\nimport DragIndicatorTwoToneIcon from '@material-ui/icons/DragIndicatorTwoTone';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\nimport { useDrag, useDrop, DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport PropTypes from 'prop-types';\nimport PushPinOutlinedIcon from '../assets/pushOut-pin.png';\nimport { TYPE_USER_TABS } from '../utils/constants';\nimport { createDashboard, createView, createUserTabs, deleteView, createFilterConfig } from '../services/unarmed';\nimport PushPinIcon from '../assets/pin.png';\n\nconst ItemType = 'TAB';\n\nconst DraggableTab = ({\n tabs,\n tab,\n index,\n setTabs,\n tabSelected,\n setTabSelected,\n setActiveTabName,\n setActiveTab,\n moveTab,\n handleTabClick,\n activeTabName,\n updateNameTab,\n handleEditTab,\n togglePinTab,\n deleteTab,\n onTabAction,\n moduleName,\n}) => {\n const [inputValue, setInputValue] = useState(tab.name);\n const [{ isDragging }, drag] = useDrag({\n type: ItemType,\n item: { index },\n canDrag: !['Dashboards', 'Reports', 'Default'].includes(tab.name) || !tab.pinned,\n collect: (monitor) => ({\n isDragging: !!monitor.isDragging(),\n }),\n });\n\n const [, drop] = useDrop({\n accept: ItemType,\n hover: (draggedItem) => {\n if (draggedItem.index !== index) {\n moveTab(draggedItem.index, index);\n draggedItem.index = index;\n }\n },\n });\n\n const handleUpdateNameTab = async () => {\n setTabSelected(tab);\n setActiveTab(tab.type);\n setActiveTabName(inputValue);\n if (moduleName === 'INSIGHT') {\n await updateNameTab({ newName: inputValue, tabId: tab.id, dashboardId: tab.displayObjectId });\n } else {\n await updateNameTab({ newName: inputValue, tabId: tab.id, viewId: tab.displayObjectId });\n }\n };\n\n const handleDeleteTab = async () => {\n setTabs((prevTabs) => prevTabs.filter((tabI) => tabI.id !== tab.id));\n const tabType = moduleName === 'INSIGHT' ? 'DASHBOARDS_LIST' : 'VIEW';\n const indexDashb = tabs.findIndex((tabI) => tabI.type === tabType);\n\n try {\n const response = await deleteTab(tab.id);\n\n if (moduleName !== 'INSIGHT') {\n await deleteView(tab.displayObjectId);\n }\n\n handleMenuClose();\n handleTabClick(indexDashb);\n } catch (error) {\n console.error(\"Error deleting tab:\", error);\n handleMenuClose();\n handleTabClick(indexDashb);\n }\n };\n\n const [anchorEl, setAnchorEl] = useState(null);\n const handleMenuOpen = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n return (\n
drag(drop(node))} style={{ opacity: isDragging ? 0.5 : 1 }}>\n {tab.isEditing ? (\n \n setInputValue(e.target.value)}\n onBlur={handleUpdateNameTab}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n handleUpdateNameTab();\n }\n }}\n style={{ marginRight: '2px', fontSize: '14px', width: '200px' }}\n inputProps={{ style: { fontSize: '14px', padding: '0px' } }}\n />\n \n \n \n \n ) : (\n \n {\n if (index >= 0 && index < tabs.length) {\n handleTabClick(index);\n onTabAction(tab);\n }\n }}\n onDoubleClick={() => {\n if (tab.deletable) {\n handleEditTab(index, tab.name, true);\n }\n }}\n style={{ display: 'flex', alignItems: 'center', padding: '2px', fontSize: '16px', color: 'inherit' }}\n >\n {tab.name}\n {tab.pinned && (\n <>\n \n \n )}\n\n \n \n \n\n {tab.deletable && (\n \n {moduleName === 'INSIGHT' && (\n {\n togglePinTab(index);\n handleMenuClose();\n }}\n style={{ fontSize: '12px' }}\n >\n {tab.pinned ? (\n <>\n \n Unpin\n \n ) : (\n <>\n \n Pin\n \n )}\n \n )}\n \n {moduleName === 'INSIGHT' ? (\n <>\n Close\n \n ) : (\n <>\n \"Delete Delete\n \n )}\n \n \n )}\n \n {/* Subrayado para el tab activo */}\n {activeTabName === tab.name && (\n \n )}\n \n )}\n
\n );\n};\n\n// PropTypes for DraggableTab\nDraggableTab.propTypes = {\n tab: PropTypes.object.isRequired,\n setTabs: PropTypes.func.isRequired,\n tabSelected: PropTypes.object.isRequired,\n index: PropTypes.number.isRequired,\n moveTab: PropTypes.func.isRequired,\n setActiveTabName: PropTypes.func.isRequired,\n setActiveTab: PropTypes.func.isRequired,\n setTabSelected: PropTypes.func.isRequired,\n handleTabClick: PropTypes.func.isRequired,\n activeTabName: PropTypes.string.isRequired,\n handleEditTab: PropTypes.func.isRequired,\n togglePinTab: PropTypes.func.isRequired,\n deleteTab: PropTypes.func.isRequired,\n onTabAction: PropTypes.func.isRequired,\n moduleName: PropTypes.string.isRequired,\n};\n\nconst TabsModules = ({\n tabs,\n setTabs,\n activeTabName,\n saveTab,\n tabSelected,\n updateNameTab,\n onTabSelect,\n setActiveTabName,\n setTabSelected,\n activeTab,\n setActiveTab,\n saveTabPositions,\n onTabAction,\n deleteTab,\n moduleName,\n}) => {\n const [isAddingNewTab, setIsAddingNewTab] = useState(false);\n const [newTabName, setNewTabName] = useState('');\n const [snackbarMessage, setSnackbarMessage] = useState('');\n const [snackbarOpen, setSnackbarOpen] = useState(false);\n const [showScrollButtons, setShowScrollButtons] = useState(false);\n const tabContainerRef = useRef(null);\n const tabWrapperRef = useRef(null);\n\n useEffect(() => {\n if (moduleName === 'INSIGHT') {\n const defaultTab = tabs.find((tab) => tab.name === 'Reports');\n setTabSelected(defaultTab);\n setActiveTabName('Reports');\n setActiveTab(defaultTab?.type);\n } else {\n const defaultTab = tabs.find((tab) => tab.name === 'Default');\n setTabSelected(defaultTab);\n setActiveTabName('Default');\n setActiveTab(defaultTab?.type);\n }\n }, [tabs]);\n\n useEffect(() => {\n const checkOverflow = () => {\n if (tabWrapperRef.current && tabContainerRef.current) {\n const isOverflowing = tabWrapperRef.current.scrollWidth > tabContainerRef.current.clientWidth;\n setShowScrollButtons(isOverflowing);\n }\n };\n\n window.addEventListener('resize', checkOverflow);\n checkOverflow();\n\n return () => {\n window.removeEventListener('resize', checkOverflow);\n };\n }, [tabs]);\n\n const handleTabClick = (index) => {\n setTabSelected(tabs[index]);\n setActiveTabName(tabs[index].name);\n setActiveTab(tabs[index].type);\n onTabSelect(tabs[index]);\n };\n\n const handleEditTab = async (index, newName, isEditing) => {\n const updatedTabs = [...tabs];\n const tab = { ...updatedTabs[index] };\n\n tab.name = newName;\n if (isEditing) {\n tab.isEditing = true;\n } else {\n tab.isEditing = false;\n try {\n await saveTab(tab.id, tab.name);\n setSnackbarMessage('Tab saved successfully.');\n setSnackbarOpen(true);\n } catch (error) {\n setSnackbarMessage('Error saving tab.');\n setSnackbarOpen(true);\n }\n }\n\n updatedTabs[index] = tab;\n setTabs(updatedTabs);\n };\n\n const togglePinTab = (index) => {\n const updatedTabs = [...tabs];\n const tabToToggle = updatedTabs[index];\n\n if (['Reports', 'Dashboards', 'Default'].includes(tabToToggle.name)) {\n return;\n }\n\n tabToToggle.pinned = !tabToToggle.pinned;\n\n const pinnedTabs = updatedTabs.filter((tab) => tab.pinned);\n const unpinnedTabs = updatedTabs.filter(\n (tab) => !tab.pinned && !['Reports', 'Dashboards', 'Default'].includes(tab.name)\n );\n\n setTabs([\n ...updatedTabs.filter((tab) => ['Reports', 'Dashboards', 'Default'].includes(tab.name)),\n ...pinnedTabs,\n ...unpinnedTabs,\n ]);\n saveTabPositions([\n ...updatedTabs.filter((tab) => ['Reports', 'Dashboards', 'Default'].includes(tab.name)),\n ...pinnedTabs,\n ...unpinnedTabs,\n ]);\n };\n\n const handleSaveNewTab = async () => {\n if (!newTabName.trim()) {\n setSnackbarMessage('Error: The new tab name must be a valid string.');\n setSnackbarOpen(true);\n return;\n }\n\n if (tabs.some((tab) => tab.name.toLowerCase() === newTabName.toLowerCase())) {\n setSnackbarMessage('Error: A tab with this name already exists.');\n setSnackbarOpen(true);\n return;\n }\n\n const baseColumnsConfig = {\n CASES: {\n flag: true,\n type: true,\n subtype: false,\n trackingNumber: true,\n caseNumber: false,\n internalAffairsCaseNumber: false,\n createdDate: true,\n name: true,\n assignedTo: true,\n source: false,\n status: true,\n reporter: false,\n investigator: false,\n allegations: false,\n dispositions: false,\n discipline: false,\n },\n ALLEGATIONS: {\n flag: true,\n allegation: true,\n disposition: false,\n discipline: false,\n caseType: true,\n trackingNumber: true,\n createdDate: true,\n uniqueIdentifier: true,\n officerName: true,\n code: false,\n status: true,\n },\n USERS: {\n flag: true,\n firstName: true,\n lastName: true,\n phone: true,\n email: true,\n role: true,\n dateAdded: true,\n },\n OFFICERS: {\n flag: true,\n uniqueIdentifier: true,\n officerName: true,\n createdDate: true,\n },\n CONTACTS: {\n flag: true,\n name: true,\n pronouns: false,\n type: false,\n companyName: true,\n phoneNumber: true,\n email: true,\n module: true,\n createdAt: true,\n }\n };\n\n let type = null;\n let displayObjectType = null;\n let displayObjectId = null;\n\n if (moduleName === 'INSIGHT') {\n const newDashboard = {\n name: newTabName,\n type: 'GLOBAL',\n };\n\n const responseDashboard = await createDashboard(newDashboard);\n type = TYPE_USER_TABS.DASHBOARD;\n displayObjectType = 'DASHBOARD';\n displayObjectId = responseDashboard.data.dashboard.id;\n } else {\n const newFilterConfig = await createFilterConfig({\n name: newTabName,\n type: moduleName,\n });\n const newView = {\n views: [\n {\n viewName: newTabName,\n moduleName,\n filtersConfigId: newFilterConfig?.data?._id,\n columns: baseColumnsConfig[moduleName] || {}\n },\n ],\n };\n const responseView = await createView(newView);\n type = TYPE_USER_TABS.VIEW;\n displayObjectType = 'VIEW';\n displayObjectId = responseView.data.views[0]._id;\n }\n\n const newTab = {\n userTabs: [\n {\n name: newTabName,\n type,\n position: String(tabs.length + 1),\n moduleName,\n displayObjectType,\n displayObjectId,\n },\n ],\n };\n\n const newTabC = await createUserTabs(newTab);\n setTabs([...tabs, newTabC.data.userTabs[0]]);\n setIsAddingNewTab(false);\n setNewTabName('');\n setSnackbarMessage('New tab successfully saved.');\n setSnackbarOpen(true);\n };\n\n const handleAddNewTabClick = () => {\n setIsAddingNewTab(true);\n };\n // Add comment\n const moveTab = useCallback(\n (fromIndex, toIndex) => {\n if (['Reports', 'Dashboards', 'Default'].includes(tabs[fromIndex].name) || tabs[fromIndex].pinned) {\n return;\n }\n\n const updatedTabs = [...tabs];\n const [movedTab] = updatedTabs.splice(fromIndex, 1);\n updatedTabs.splice(toIndex, 0, movedTab);\n\n const fixedTabs = updatedTabs.filter(\n (tab) => ['Reports', 'Dashboards', 'Default'].includes(tab.name) || tab.pinned\n );\n const otherTabs = updatedTabs.filter(\n (tab) => !['Reports', 'Dashboards', 'Default'].includes(tab.name) && !tab.pinned\n );\n\n setTabs([...fixedTabs, ...otherTabs]);\n saveTabPositions([...fixedTabs, ...otherTabs]);\n },\n [tabs, saveTabPositions]\n );\n\n const handleSnackbarClose = () => {\n setSnackbarOpen(false);\n };\n\n const scrollLeft = () => {\n if (tabContainerRef.current) {\n tabContainerRef.current.scrollBy({\n left: -150,\n behavior: 'smooth',\n });\n }\n };\n\n const scrollRight = () => {\n if (tabContainerRef.current) {\n tabContainerRef.current.scrollBy({\n left: 150,\n behavior: 'smooth',\n });\n }\n };\n\n return (\n \n \n \n {showScrollButtons && (\n \n \n \n )}\n\n \n {tabs.map((tab, index) => (\n \n ))}\n\n {isAddingNewTab ? (\n \n setNewTabName(e.target.value)}\n placeholder=\"New Tab\"\n onKeyPress={(e) => {\n if (e.key === 'Enter') handleSaveNewTab();\n }}\n style={{ marginRight: '2px', fontSize: '14px', width: '200px', height: '40px' }}\n inputProps={{ style: { fontSize: '14px', height: '40px', padding: '10px' } }}\n />\n \n \n \n \n ) : (\n <>\n \n \n New\n \n \n )}\n \n\n {showScrollButtons && (\n \n \n \n )}\n \n\n \n \n \n );\n};\n\nTabsModules.propTypes = {\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n pinned: PropTypes.bool,\n isEditing: PropTypes.bool,\n })\n ).isRequired,\n saveTab: PropTypes.func.isRequired,\n setTabs: PropTypes.func.isRequired,\n updateNameTab: PropTypes.func.isRequired,\n onTabSelect: PropTypes.func.isRequired,\n saveTabPositions: PropTypes.func.isRequired,\n onTabAction: PropTypes.func.isRequired,\n deleteTab: PropTypes.func.isRequired,\n};\n\nexport default TabsModules;\n","import { Box, Button, CircularProgress, Divider, makeStyles, Typography, FormControlLabel } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { CustomSwitch } from '../../formEngine/components/WrapperComponent';\nimport { getOfficers, updateFilterConfigById } from '../../services/unarmed';\nimport { OutLineInput } from '../CaseDetails/UpdateCase';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\n/**\n * OfficerFilter component for filtering officers based on criteria.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {Function} props.onClick - Function to handle the cancel button click.\n * @param {Object} props.name - The name filter object.\n * @param {Object} props.badge - The badge filter object.\n * @param {number} props.page - The current page number.\n * @param {number} props.rowsPerPage - The number of rows per page.\n * @param {string} props.sortBy - The field to sort by.\n * @param {string} props.sort - The sort order ('asc' or 'desc').\n * @param {Function} props.setPage - Function to set the current page.\n * @param {Function} props.setIsFiltering - Function to set the filtering state.\n * @param {Function} props.setOfficers - Function to set the officers data.\n * @param {Function} props.onClearFilters - Function to clear all filters.\n * @returns {React.ReactElement} The OfficerFilter component.\n */\nconst OfficerFilter = ({\n onClick,\n name,\n badge,\n page,\n rowsPerPage,\n sortBy,\n sort,\n setPage,\n setIsFiltering,\n setOfficers,\n onClearFilters,\n filtersConfig,\n fetchFiltersConfig,\n filtersApplied,\n flaggedOnly,\n archivedOnly,\n uniqueFieldId,\n setfiltersConfig,\n filterConfigId,\n}) => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n\n const onFilter = async () => {\n try {\n setIsFiltering(true);\n setLoading(true);\n setPage(1);\n const filterSaved = {\n includeTotalCases: true,\n sortBy,\n sortOrder: sort,\n name: name.value,\n flaggedOnly: flaggedOnly.value,\n archivedOnly: archivedOnly.value,\n uniqueFieldId: uniqueFieldId.value,\n };\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n await updateFilterConfigById(filterConfigId, filterSaved);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n console.log(error);\n }\n };\n\n const handleClearAll = async () => {\n onClearFilters();\n const filterSaved = {\n name: '',\n uniqueFieldId: '',\n flaggedOnly: false,\n archivedOnly: false,\n };\n setfiltersConfig(null);\n localStorage.setItem('filters', JSON.stringify(filterSaved));\n await updateFilterConfigById(filterConfigId, filterSaved);\n };\n\n return (\n {\n const keycode = e.keyCode ? e.keyCode : e.which;\n if (parseInt(keycode) === 13) {\n onFilter();\n }\n }}\n >\n \n \n \n Unique Identifier\n \n \n \n\n \n \n Officer Name\n \n \n \n\n \n }\n labelPlacement=\"start\"\n label=\"Flagged only\"\n />\n \n\n \n }\n labelPlacement=\"start\"\n label=\"Archived only\"\n />\n \n \n\n \n \n \n \n Clear All Filters\n \n \n \n \n Cancel\n \n \n \n \n \n );\n};\n\nOfficerFilter.propTypes = {\n onClick: PropTypes.func.isRequired,\n name: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n }).isRequired,\n badge: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n }).isRequired,\n flaggedOnly: PropTypes.bool,\n page: PropTypes.number.isRequired,\n rowsPerPage: PropTypes.number.isRequired,\n sortBy: PropTypes.string.isRequired,\n sort: PropTypes.string.isRequired,\n setPage: PropTypes.func.isRequired,\n setIsFiltering: PropTypes.func.isRequired,\n setOfficers: PropTypes.func.isRequired,\n onClearFilters: PropTypes.func.isRequired,\n filtersConfig: PropTypes.object,\n fetchFiltersConfig: PropTypes.func,\n filtersApplied: PropTypes.object,\n};\n\nexport default OfficerFilter;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n Box,\n Checkbox,\n Tooltip,\n Typography,\n Popover,\n List,\n ListItem,\n Divider,\n TextField,\n InputAdornment,\n} from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport SearchIcon from '@material-ui/icons/Search';\nimport moment from 'moment';\nimport EnhancedTable from '../../components/Table';\nimport { getfiltersConfigById, getViewByIdv, onArchiveOfficers, onUnarchiveOfficers } from '../../services/unarmed';\nimport AddMore from '../../components/AddMore';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport OfficerFilter from './OfficersFilter';\nimport PageButtons from '../../components/PageButtons';\nimport { useHistory } from 'react-router-dom';\nimport uniq from 'lodash.uniq';\n\nexport const ViewTabOfficers = ({\n onOfficersFetched,\n classes,\n badge,\n uniqueFieldId,\n officers,\n handleClick,\n openPopover,\n anchorEl,\n handleClose,\n searchTerm,\n setSearchTerm,\n showColumns,\n handleToggleColumn,\n formatHeadersText,\n visibleColumns,\n hideColumns,\n openFilter,\n setOpenFilter,\n name,\n setPage,\n flaggedOnly,\n archivedOnly,\n page,\n rowsPerPage,\n sort,\n sortBy,\n setIsFiltering,\n selected,\n setOpen,\n fetchFiltersConfig,\n setSort,\n filtersLoaded,\n setFiltersLoaded,\n setSortBy,\n tabSelected,\n setVisibleColumns,\n setOpenDelete,\n onEditMultipleOfficers,\n setOfficers,\n onClearAllFilters,\n renderRow,\n getVisibleColumns,\n setChecked,\n checked,\n loading,\n setSelected,\n handleChangeRowsPerPage,\n setLoading,\n getOfficers,\n isFiltering,\n}) => {\n const history = useHistory();\n\n const [view, setView] = useState();\n const [filtersConfig, setfiltersConfig] = useState({});\n const [filtersApplied, setFiltersApplied] = useState({});\n const [filterCount, setFilterCount] = useState(0);\n\n const handleOnSetFiltersConfig = () => {\n const newFiltersApplied = {};\n if (filtersConfig) {\n const configCopy = { ...filtersConfig };\n\n delete configCopy.sortOrder;\n delete configCopy.sortBy;\n delete configCopy.page;\n delete configCopy.limit;\n delete configCopy.isFiltering;\n Object.keys(configCopy).forEach((key) => {\n const value = configCopy[key];\n let isApplied = false;\n\n if (value === null || !value || value === '0') {\n isApplied = false;\n } else if (Array.isArray(value)) {\n isApplied = value.length > 0;\n } else if (typeof value === 'boolean') {\n isApplied = value === true;\n } else {\n isApplied = true;\n }\n\n newFiltersApplied[key] = isApplied;\n });\n\n const newCount = Object.values(newFiltersApplied).filter((item) => item).length;\n setFilterCount(newCount);\n setFiltersApplied(newFiltersApplied);\n }\n };\n\n const onGetOfficers = async () => {\n try {\n setLoading(true);\n const { data, headers } = await getOfficers({\n includeTotalCases: true,\n page,\n limit: rowsPerPage,\n sort,\n sortBy,\n isFiltering,\n flaggedOnly: flaggedOnly.value,\n archivedOnly: archivedOnly.value,\n name: name.value,\n badge: badge.value,\n uniqueFieldId: uniqueFieldId.value,\n });\n setOfficers({ data, headers });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n console.log(error);\n }\n };\n\n const onGetOfficers1 = async ({\n sortv,\n sortByv,\n isFilteringv,\n flaggedOnlyv,\n namev,\n badgev,\n archivedOnlyv,\n uniqueFieldIdv,\n }) => {\n try {\n setLoading(true);\n const { data, headers } = await getOfficers({\n includeTotalCases: true,\n page,\n limit: rowsPerPage,\n sort: sortv,\n sortBy: sortByv,\n isFiltering: isFilteringv,\n flaggedOnly: flaggedOnlyv,\n archivedOnly: archivedOnlyv,\n name: namev,\n badge: badgev,\n uniqueFieldId: uniqueFieldIdv,\n });\n\n setOfficers({ data, headers });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n console.log(error);\n }\n };\n\n const onClickMerge = () => {\n const selectedOfficerIds = selected.join(',');\n history.push(`/officers/merge?officers_id=${selectedOfficerIds}`);\n };\n\n const onClickArchiveOrUnarchive = async () => {\n if (archivedOnly.value) {\n const response = await onUnarchiveOfficers({\n officerIds: selected,\n });\n\n onGetOfficers1({\n sortv: sort || filtersConfig?.sortOrder,\n sortByv: sortBy || filtersConfig?.sortBy,\n isFilteringv: true,\n flaggedOnlyv: filtersConfig?.flaggedOnly,\n archivedOnlyv: filtersConfig?.archivedOnly,\n namev: filtersConfig?.name,\n badgev: filtersConfig?.badgeNumber,\n uniqueFieldIdv: filtersConfig?.uniqueFieldId,\n });\n } else {\n const response = await onArchiveOfficers({\n officerIds: selected,\n });\n\n onGetOfficers1({\n sortv: sort || filtersConfig?.sortOrder,\n sortByv: sortBy || filtersConfig?.sortBy,\n isFilteringv: true,\n flaggedOnlyv: filtersConfig?.flaggedOnly,\n archivedOnlyv: filtersConfig?.archivedOnly,\n namev: filtersConfig?.name,\n badgev: filtersConfig?.badgeNumber,\n uniqueFieldIdv: filtersConfig?.uniqueFieldId,\n });\n }\n };\n\n useEffect(() => {\n handleOnSetFiltersConfig();\n if (filtersConfig) {\n uniqueFieldId.setValue(filtersConfig?.uniqueFieldId);\n badge.setValue(filtersConfig?.badgeNumber);\n name.setValue(filtersConfig?.name);\n flaggedOnly.setValue(filtersConfig?.flaggedOnly || false);\n archivedOnly.setValue(filtersConfig?.archivedOnly || false);\n setSort(sort || filtersConfig?.sortOrder);\n setSortBy(sortBy || filtersConfig?.sortBy);\n\n setIsFiltering(true);\n setFiltersLoaded(true);\n onGetOfficers1({\n sortv: sort || filtersConfig?.sortOrder,\n sortByv: sortBy || filtersConfig?.sortBy,\n isFilteringv: true,\n flaggedOnlyv: filtersConfig?.flaggedOnly,\n archivedOnlyv: filtersConfig?.archivedOnly,\n namev: filtersConfig?.name,\n badgev: filtersConfig?.badgeNumber,\n uniqueFieldIdv: filtersConfig?.uniqueFieldId,\n });\n } else if (filtersConfig === null) {\n setIsFiltering(false);\n setFiltersLoaded(true);\n onGetOfficers();\n }\n }, [filtersConfig, page, sort, sortBy]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (tabSelected?.displayObjectId && tabSelected?.displayObjectType === TYPE_USER_TABS.VIEW) {\n const responseView = await getViewByIdv(tabSelected?.displayObjectId);\n if (responseView?.data?.view[0]) {\n setView(responseView.data.view[0]);\n setVisibleColumns(responseView.data.view[0].columns);\n }\n }\n };\n\n fetchData();\n }, [tabSelected]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (view) {\n const responsefiltersConfig = await getfiltersConfigById(view?.filtersConfigId);\n setfiltersConfig(responsefiltersConfig?.data?.filterConfig[0]?.config);\n }\n };\n\n fetchData();\n }, [view]);\n\n return (\n <>\n \n \n \n All Officers ({officers?.headers?.['x-pagination-totalitems']})\n \n\n \n \n \n \n \n Show / Hide Columns\n \n \n\n \n\n setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n disableUnderline: true,\n style: {\n fontSize: '12px',\n height: '28px',\n },\n }}\n style={{\n padding: '5px 0',\n backgroundColor: 'transparent',\n fontSize: '12px',\n height: '28px',\n }}\n />\n\n \n\n \n \n Visible\n \n \n\n \n {showColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n\n \n\n \n \n Hidden\n \n \n\n \n {hideColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n \n \n \n\n setOpenDelete(true)}\n disabledDelete={selected.length === 0}\n onClickMerge={onClickMerge}\n onClickArchiveOrUnarchive={onClickArchiveOrUnarchive}\n selectedLength={selected.length}\n onClickFlag={onEditMultipleOfficers}\n disabledFlag={selected.length === 0}\n onClickDownload={() => setOpen(true)}\n disabledDownload={false}\n pageIdentifier=\"officers\"\n downloadButtonText=\"Create Officer\"\n filterButtonDataTestId=\"officers-button-open-filters\"\n deleteButtonDataTestId=\"officers-button-delete-officers\"\n mergeButtonDataTestId=\"officers-button-merge-officers\"\n downloadButtonDataTestId=\"officers-button-create-officer\"\n />\n \n\n {openFilter && (\n setOpenFilter(false)}\n onClearFilters={onClearAllFilters}\n flaggedOnly={flaggedOnly}\n archivedOnly={archivedOnly}\n setfiltersConfig={setfiltersConfig}\n filterConfigId={view?.filtersConfigId}\n />\n )}\n\n \n \n \n \n );\n};\n","import {\n Backdrop,\n Box,\n Checkbox,\n CircularProgress,\n Fade,\n makeStyles,\n Modal,\n TableCell,\n TableRow,\n Typography,\n TextField,\n Button,\n Grid,\n Input,\n InputLabel,\n} from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { toast } from '../../components/Notification';\nimport MaskedInput from 'react-text-mask';\nimport moment from 'moment';\nimport { Context } from '../../Context';\nimport {\n createOfficer,\n deleteOfficer,\n getOfficers,\n editMultipleOfficers,\n updateViewsById,\n} from '../../services/unarmed';\nimport useInput from '../../hooks/useInput';\nimport Flagged from '../../assets/flagged.png';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport useOrganization from '../../hooks/useOrganization';\nimport { logEvent } from '../../services/firebase';\nimport MultiSelectBox from '../../components/MultiSelectBox';\nimport { genderOptions, raceEthnicityOptions } from '../../utils/options';\nimport useFiltersConfig from '../../hooks/useFiltersConfig';\nimport { useTabsUtil } from '../../hooks/useTabs';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport TabsModules from '../../components/TabsModules';\nimport { ViewTabOfficers } from './ViewTabOfficers';\nimport ArrayTooltip from '../../components/ArrayTooltip';\nimport { ModalCreateOrEditOfficer } from './components/modalCreateOrEditOfficer';\n\nexport const TextMaskCustom = (props) => {\n const { inputRef, ...other } = props;\n\n return (\n {\n inputRef(ref ? ref.inputElement : null);\n }}\n mask={['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]}\n style={{ width: '100%' }}\n placeholderChar={'\\u2000'}\n showMask\n guide={false}\n />\n );\n};\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n width: '100%',\n\n '& .makeStyles-root-51': {\n boxShadow: 'unset !important',\n },\n },\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n label: {\n color: '#585858',\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#1F63FF',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n outline: 0,\n },\n}));\n\nconst OfficersList = () => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [loadingDeleteOfficer, setLoadingDeleteOfficer] = useState(false);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [checked, setChecked] = useState(false);\n const [openFilter, setOpenFilter] = useState(false);\n const [isFiltering, setIsFiltering] = useState(false);\n const { authUser, setActive } = useContext(Context);\n const [officers, setOfficers] = useState(null);\n const [sortBy, setSortBy] = useState('badgeNumber');\n const [sort, setSort] = useState('desc');\n const badge = useInput('');\n const uniqueFieldId = useInput('');\n const name = useInput('');\n const { organization } = useOrganization();\n const [open, setOpen] = useState(false);\n const [openDelete, setOpenDelete] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const firstName = useInput('', isSubmitting);\n const lastName = useInput('', isSubmitting);\n const badgeNumber = useInput('', isSubmitting);\n const flaggedOnly = useInput(false, false, false, true);\n const archivedOnly = useInput(false, false, false, true);\n const email = useInput('');\n const phone = useInput('');\n const [loadingCreateOfficer, setLoadingCreateOfficer] = useState(false);\n const isSelected = (name) => selected.indexOf(name) !== -1;\n const history = useHistory();\n\n const [gender, setGender] = useState([]);\n const [race, setRace] = useState([]);\n\n const [stateSubmit, setStateSubmit] = useState(false);\n\n\n const baseColumns = {\n flag: true,\n uniqueFieldId: true,\n officerName: false,\n createdDate: false,\n };\n const [loadingEditOfficers, setLoadingEditOfficers] = useState(false);\n const [view, setView] = useState(null);\n const [visibleColumns, setVisibleColumns] = useState(baseColumns);\n const [anchorEl, setAnchorEl] = useState(null);\n const [searchTerm, setSearchTerm] = useState('');\n\n const filteredColumns = Object.keys(visibleColumns).filter((column) =>\n column.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n const showColumns = filteredColumns.filter((column) => visibleColumns[column]);\n const hideColumns = filteredColumns.filter((column) => !visibleColumns[column]);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const openPopover = Boolean(anchorEl);\n const popoverId = open ? 'column-popover' : undefined;\n\n const {\n filtersConfig,\n filterCount,\n filtersLoaded,\n filtersApplied,\n resetFilterCount,\n setFiltersLoaded,\n fetchFiltersConfig,\n } = useFiltersConfig('officers', ['includeTotalCases']);\n\n useEffect(() => {\n setActive('/officers');\n }, []);\n\n const {\n activeTab,\n setActiveTab,\n tabSelected,\n setTabSelected,\n userTabs,\n updateNameTab,\n setUserTabs,\n handleSaveTab,\n handleTabSelection,\n nextPosition,\n handleTabsReorder,\n handleTabSelectionAction,\n deleteSelectedTab,\n activeTabName,\n setActiveTabName,\n } = useTabsUtil({ moduleName: 'OFFICERS' });\n\n const gotToOfficerProfile = (e, row, handleClick) => {\n const go = handleClick(e, row._id);\n if (go) {\n history.push(`/officer/${row._id}`);\n setActive('/officers');\n logEvent('enter_officer_details');\n }\n };\n\n useEffect(() => {\n if (stateSubmit) {\n window.location.reload();\n }\n }, [stateSubmit]);\n\n const handleToggleColumn = async (viewId, columnName) => {\n try {\n const updatedColumns = {\n ...visibleColumns,\n [columnName]: !visibleColumns[columnName],\n };\n\n const response = await updateViewsById(viewId, { columns: updatedColumns });\n\n if (response && response.status === 200 && response.view) {\n setVisibleColumns(response.view.columns);\n } else {\n console.error('Failed to update columns:', response);\n }\n } catch (error) {\n console.error('Error updating column visibility:', error);\n }\n };\n\n const formatHeadersText = (str) => {\n const result = str.replace(/([A-Z])/g, ' $1');\n\n return result.replace(/^./, (firstChar) => firstChar.toUpperCase()).trim();\n };\n\n const onEditMultipleOfficers = async () => {\n let ids = '';\n const selectedOfficers = officers.data.filter((officer) => selected.includes(officer._id));\n const allAreFlagged = selectedOfficers.every((officer) => officer.flagged);\n\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingEditOfficers(true);\n await editMultipleOfficers(ids);\n\n setOfficers((prevOfficers) => {\n const updatedData = prevOfficers.data.map((officer) => {\n if (selected.includes(officer._id)) {\n return {\n ...officer,\n flagged: !allAreFlagged,\n };\n }\n return officer;\n });\n\n return {\n ...prevOfficers,\n data: updatedData,\n };\n });\n\n setLoadingEditOfficers(false);\n setSelected([]);\n toast.success(allAreFlagged ? 'Successfully unflagged officers' : 'Successfully flagged officers');\n } catch (error) {\n setLoadingEditOfficers(false);\n toast.error(error.message);\n }\n };\n\n const getDefaultOfficers = async () => {\n try {\n setLoading(true);\n const { data, headers } = await getOfficers(\n filtersConfig ? filtersConfig._id : null,\n true,\n page,\n rowsPerPage,\n sort,\n sortBy,\n false\n );\n setOfficers({ data, headers });\n fetchFiltersConfig();\n setLoading(false);\n } catch (error) {\n setLoading(false);\n console.log(error);\n }\n };\n\n const onCreateOfficer = async () => {\n setIsSubmitting(true);\n if (!firstName.value || !lastName.value || !badgeNumber.value) {\n return;\n }\n\n try {\n setLoadingCreateOfficer(true);\n await createOfficer(badgeNumber.value, firstName.value, lastName.value, email.value, phone.value, gender, race);\n\n getDefaultOfficers();\n\n toast.success(`Officer created Successfully`);\n setLoadingCreateOfficer(false);\n badgeNumber.setValue('');\n firstName.setValue('');\n lastName.setValue('');\n badgeNumber.setError('');\n email.setValue('');\n email.setError('');\n phone.setValue('');\n setGender([]);\n setRace([]);\n phone.setError('');\n firstName.setError('');\n lastName.setError('');\n setIsSubmitting(false);\n setOpen(false);\n } catch (error) {\n setLoadingCreateOfficer(false);\n\n toast.error(error.response?.data?.message || error?.response?.data?.error?.details?.[0].message);\n }\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const onClearAllFilters = () => {\n name.setValue(null);\n badge.setValue(null);\n flaggedOnly.setValue(false);\n archivedOnly.setValue(false);\n uniqueFieldId.setValue(null);\n resetFilterCount();\n toast.success('Successfully cleared filters!');\n };\n\n const onDeleteOfficer = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n ids += `ids[]=${id}${index + 1 === selected.length ? '' : '&'}`;\n }\n\n try {\n const response = await deleteOfficer(ids);\n const { deleted, notDeleted } = response.data;\n\n if (deleted.length === 0) {\n toast.error('No officers were deleted. All are assigned to forms.');\n } else {\n toast.success(`${deleted.length} officer(s) deleted successfully.`);\n }\n\n if (notDeleted.length > 0) {\n // Toast WARN\n toast.error(\n `${notDeleted.length} officer(s) could not be deleted. Assigned forms: ${notDeleted\n .map(\n (officer) =>\n `${officer.firstName} ${officer.lastName} (${officer.badgeNumber}) - ${officer.formsCount} forms`\n )\n .join(', ')}.`\n );\n }\n const { data, headers } = await getOfficers({\n page,\n limit: rowsPerPage,\n sort,\n sortBy,\n isFiltering,\n name: name.value,\n uniqueFieldId: badge.value,\n flaggedOnly: flaggedOnly.value,\n archivedOnly: archivedOnly.value,\n });\n setOfficers({ data, headers });\n\n setLoadingDeleteOfficer(false);\n setSelected([]);\n setOpenDelete(false);\n } catch (error) {\n setLoadingDeleteOfficer(false);\n toast.error(error.response?.data?.message || 'Failed to delete officers');\n }\n };\n\n const getVisibleColumns = () =>\n Object.keys(visibleColumns)\n .filter((column) => visibleColumns[column])\n .map((column) => formatHeadersText(column));\n\n const renderRow = (row, index, handleClick) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n\n let firstName =\n row?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'First Name'\n );\n\n let lastName =\n row?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'Last Name'\n );\n\n if ((!firstName?.value || !lastName?.value) && row) {\n const names = row?.customFields?.[0]?.sections?.[0]?.components?.filter(\n (field) => field?.data?.special === true\n );\n\n if (names && names.at(0)) {\n firstName = names[0];\n }\n\n if (names && names.at(1)) {\n lastName = names[1];\n }\n\n if (!names || (!names.at(0) && !names.at(1))) {\n firstName = { value: \"Not\" };\n lastName = { value: \"Specified\" };\n }\n }\n return (\n \n gotToOfficerProfile(e, row, handleClick)}>\n \n \n {visibleColumns?.flag && (\n \n {row?.flagged && \"Flagged\"}\n \n )}\n {visibleColumns.uniqueIdentifier && (\n gotToOfficerProfile(e, row, handleClick)}>\n {row?.uniqueFieldId?.value || 'Not specified'}\n \n )}\n {visibleColumns.officerName && (\n gotToOfficerProfile(e, row, handleClick)}>\n {`${firstName?.value} ${lastName?.value}`}\n \n )}\n {visibleColumns.createdDate && (\n \n {moment(row?.createdAt).format('MMMM DD, YYYY')}\n \n )}\n \n );\n };\n\n return (\n <>\n {organization && }\n \n Officers\n\n { }}\n saveTab={handleSaveTab}\n onTabSelect={handleTabSelection}\n nextPosition={nextPosition}\n saveTabPositions={handleTabsReorder}\n onTabAction={handleTabSelectionAction}\n deleteTab={deleteSelectedTab}\n moduleName=\"OFFICERS\"\n />\n\n {activeTab === TYPE_USER_TABS.MAIN && (\n \n )}\n\n {activeTab === TYPE_USER_TABS.VIEW && (\n \n )}\n\n setOpenDelete(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{ timeout: 500 }}\n >\n \n
\n Are you sure you want to delete?\n This action can’t be undone!\n \n \n \n \n
\n
\n \n\n \n \n \n );\n};\nexport default OfficersList;\n","module.exports = __webpack_public_path__ + \"static/media/profile.782adc2b.png\";","import { Box, makeStyles, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport RestoreIcon from '@material-ui/icons/Restore';\nimport PropTypes from 'prop-types';\n\nimport formatTxt from '../utils/formatText';\nimport { downloadImage } from '../utils/libs';\nimport { bytesToMB } from './Attachment';\nimport ConfirmDialog from './ConfirmDialog';\nimport { archiveCaseAttachment, unarchiveCaseAttachment } from '../services/unarmed';\nimport { toast } from './Notification';\n\nconst useStyles = makeStyles(() => ({\n container: {\n borderBottom: '1px solid #f2f2f2',\n borderRadius: 5,\n width: '100%',\n cursor: 'pointer',\n marginBottom: 8,\n paddingBottom: 8,\n flexDirection: 'column',\n },\n extension: {\n width: 50,\n height: 45,\n padding: 10,\n borderRadius: 5,\n },\n actionsContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n '& > *': {\n marginLeft: '10px',\n },\n },\n}));\n\nconst getRandomWord = () => {\n const words = ['APPLE', 'LEMON', 'CLOUD', 'STAR', 'WAVE', 'STONE', 'PLANT', 'RIVER', 'SUN', 'LEAF'];\n return words[Math.floor(Math.random() * words.length)];\n};\n\nconst ImageDownload = ({\n index,\n name,\n size = 0,\n urlImg,\n extension,\n onClick,\n onDownload = null,\n id,\n onPreviewImage = null,\n version = 'original',\n children,\n deletable = true,\n entityId,\n onDeleteFile,\n restorable = true,\n onRestoreFile,\n downloadable = true,\n}) => {\n const sizeInMb = bytesToMB(size);\n const [openDeleteAttachment, setOpenDeleteAttachment] = useState(false);\n const [openRestoreAttachment, setOpenRestoreAttachment] = useState(false);\n const [randomWord, setRandomWord] = useState(getRandomWord());\n const [loading, setLoading] = useState(false);\n\n const classes = useStyles();\n const renderBg = () => {\n if (index === 0) {\n return '#FEB5351A';\n }\n if (index === 1) {\n return '#FF42421A';\n }\n if (index === 2) {\n return '#00C9B21A';\n }\n return '#2962FF1F';\n };\n const renderColor = () => {\n if (index === 0) {\n return '#FEB535';\n }\n if (index === 1) {\n return '#FF4242';\n }\n if (index === 2) {\n return '#00C9B2';\n }\n return '#4B7BFF';\n };\n\n return (\n \n \n \n \n .{extension}\n \n \n \n {formatTxt(name, 40)}\n \n {size ? (\n \n {sizeInMb} MB\n \n ) : null}\n \n \n \n {typeof onClick === 'function' ? (\n \n \n \n ) : (\n \n {\n setLoading(true);\n try {\n if (onDeleteFile) {\n await onDeleteFile(entityId, id);\n }\n toast.success('File succesfully deleted');\n } catch (error) {\n toast.error(`Error deleting file: ${error?.response?.data?.message || error?.message || error}`);\n } finally {\n setLoading(false);\n }\n setOpenDeleteAttachment(false);\n }}\n title={`Are you sure you want to delete \"${name}\"?`}\n description={`Attachments will be archived for 30 days before being permanently deleted`}\n onClose={() => {\n setOpenDeleteAttachment(false);\n }}\n loading={loading}\n reconfirmValue={randomWord}\n />\n {\n setLoading(true);\n try {\n if (onRestoreFile) {\n await onRestoreFile(entityId, id);\n }\n toast.success('File succesfully restored');\n } catch (error) {\n toast.error(`Error restoring file: ${error?.response?.data?.message || error?.message || error}`);\n } finally {\n setLoading(false);\n }\n setOpenRestoreAttachment(false);\n }}\n title={`Are you sure you want to restore \"${name}\"?`}\n description={`The attachment will show again in your main attachments list`}\n onClose={() => {\n setOpenRestoreAttachment(false);\n }}\n loading={loading}\n />\n {downloadable ? (\n (onDownload ? onDownload() : downloadImage(urlImg, name))}\n style={{ cursor: 'pointer' }}\n >\n \n \n ) : null}\n {deletable ? (\n {\n setRandomWord(getRandomWord());\n setOpenDeleteAttachment(true);\n }}\n style={{ cursor: 'pointer' }}\n >\n \n \n ) : null}\n {restorable ? (\n setOpenRestoreAttachment(true)} style={{ cursor: 'pointer' }}>\n \n \n ) : null}\n \n )}\n \n \n {children}\n \n );\n};\n\nImageDownload.propTypes = {\n children: PropTypes.node,\n index: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n size: PropTypes.number,\n urlImg: PropTypes.string.isRequired,\n extension: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n id: PropTypes.string.isRequired,\n version: PropTypes.string,\n onPreviewImage: PropTypes.func,\n deletable: PropTypes.bool,\n entityId: PropTypes.string,\n onDeleteFile: PropTypes.func,\n};\n\nexport default ImageDownload;\n","/* eslint-disable no-nested-ternary */\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Link } from 'react-router-dom';\n\nimport { Context } from '../Context';\nimport { downloadImage } from '../utils/libs';\nimport LogIcon from './LogIcon';\nimport TimeLineItem from '../pages/Activity/TimeLineItem';\nimport HTMLContent from './HTMLContent';\nimport CaseTaskUpdateItem from '../pages/Activity/CaseTaskUpdateItem';\nimport Tags from './Tags';\nimport CarouselModal from './CarouselModal';\nimport Tag from './Tag';\nimport { getAboutUsValue } from '../pages/CaseDetails/AditionalDetails';\nimport ArchivedImage from './ArchivedImage';\n\nconst getStatusTitle = (status) => {\n if (status) {\n return status;\n }\n};\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n imgModal: {\n objectFit: 'contain',\n maxWidth: 600,\n maxHeight: 400,\n },\n link: {\n display: 'flex',\n position: 'absolute',\n top: 10,\n right: 80,\n cursor: 'pointer',\n padding: 13,\n zIndex: 999999,\n borderRadius: '50%',\n background: '#494949',\n },\n emphasis: {\n color: '#4b7bff',\n textTransform: 'capitalize',\n fontWeight: '600',\n },\n}));\n\nconst UserInfo = ({ user }) => (user ? {user?.email} : 'A user');\n\nUserInfo.propTypes = {\n user: PropTypes.shape({\n email: PropTypes.string.isRequired,\n }),\n};\n\nconst stripHTML = (str) => {\n if (!str) return '';\n const plainText = str.replace(/<\\/?[^>]+(>|$)/g, '');\n return plainText.length\n};\n\nexport const LogCaseChange = ({ change }) => {\n let newValue = 'not defined';\n let oldValue = 'not defined';\n\n if (Array.isArray(change.newValue)) {\n if (change.newValue[0]) {\n if (Array.isArray(change.newValue[0])) {\n if (typeof change.newValue[0][0] === 'object' && !Array.isArray(change.newValue[0][0])) {\n if (change.newValue[0][0] !== null) {\n newValue =\n change.newValue[0]?.map((element, index) => {\n if (element === null) {\n return newValue;\n }\n const keys = Object.keys(element);\n\n return (\n
\n Officer #{index + 1}:\n {keys.map((key) => (\n
\n {key}: {element[key]}\n
\n ))}\n
\n );\n }) || newValue;\n\n oldValue =\n change.oldValue[0]?.map((element, index) => {\n //Is a plain object\n const keys = Object.keys(element);\n\n return (\n
\n Officer #{index + 1}:\n {keys.map((key) => (\n
\n {key}: {element[key]}\n
\n ))}\n
\n );\n }) || oldValue;\n\n return (\n <>\n from {oldValue} to {newValue}\n \n );\n }\n } else {\n if (change.fieldName.includes('How did you hear about us?')) {\n newValue = change.newValue[0].map((value) => getAboutUsValue(value)).join(', ');\n } else {\n newValue = change.newValue[0].join(', ');\n }\n }\n } else if (typeof change.newValue[0] === 'object') {\n const keys = Object.keys(change.newValue[0]);\n\n newValue = (\n
\n {keys.map((key) => (\n
\n {key}: {change.newValue[0][key]}\n
\n ))}\n
\n );\n } else {\n newValue = change.newValue?.join(', ') || newValue;\n }\n }\n } else if (change.newValue && typeof change.newValue === 'object') {\n\n const keys = Object.keys(change.newValue);\n\n newValue = (\n
\n {keys.map((key) => (\n
\n {key}: {change.newValue[key]}\n
\n ))}\n
\n );\n } else {\n newValue = change.newValue || newValue;\n }\n\n if (Array.isArray(change.oldValue)) {\n if (change.oldValue[0]) {\n if (Array.isArray(change.oldValue[0])) {\n if (change.fieldName.includes('How did you hear about us?')) {\n oldValue = change.oldValue[0].map((value) => getAboutUsValue(value)).join(', ');\n } else {\n oldValue = change.oldValue[0].join(', ');\n }\n } else if (typeof change.oldValue[0] === 'object') {\n const keys = Object.keys(change.oldValue[0]);\n\n oldValue = (\n
\n {keys.map((key) => (\n
\n {key}: {change.oldValue[0][key]}\n
\n ))}\n
\n );\n } else {\n oldValue = change.oldValue.join(', ');\n }\n }\n } else if (change.oldValue && typeof change.oldValue === 'object') {\n const keys = Object.keys(change.oldValue);\n\n oldValue = (\n
\n {keys.map((key) => (\n
\n {key}: {change.oldValue[key]}\n
\n ))}\n
\n );\n } else if (typeof change.newValue === 'boolean' || typeof change.oldValue === 'boolean') {\n newValue = change.newValue === true ? 'Yes' : change.newValue === false ? 'No' : 'not defined';\n oldValue = change.oldValue === true ? 'Yes' : change.oldValue === false ? 'No' : 'not defined';\n } else {\n oldValue = change.oldValue ?? oldValue;\n }\n\n return (\n <>\n from {oldValue} to {newValue}\n \n );\n\n return null;\n};\n\nLogCaseChange.propTypes = {\n change: PropTypes.object.isRequired,\n};\n\nconst Log = ({ _id, unread, data, type, createdAt, updatedAt, editedByInfo }) => {\n const classes = useStyles();\n const {\n assignments,\n changes,\n files,\n comment,\n officers,\n user,\n form,\n officer,\n newOrganization,\n newForm,\n oldOrganization,\n oldComment,\n newComment,\n } = data;\n const { organization } = useContext(Context);\n\n const [open, setOpen] = React.useState(false);\n\n const [filesSelected, setFilesSelected] = React.useState({ files: [], selectedFileIndex: 0 });\n const [loadingOpenFiles, setLoadingOpenFiles] = React.useState([]);\n\n const stripHTML = (str) => {\n if (!str) return '';\n return str.replace(/<\\/?[^>]+(>|$)/g, '');\n };\n\n const convertValueToHTML = (value) => {\n if (Array.isArray(value)) {\n if (value.length) {\n return {value.join(', ')};\n } else {\n return 'an empty value';\n }\n }\n if (typeof value === 'boolean') {\n return {value ? 'Yes' : 'No'};\n }\n if (value === undefined || value === null || value === '') {\n return 'an empty value';\n }\n return {value};\n };\n\n const handleOpen = (filesOp) => {\n setOpen(true);\n const filesToOpen = filesOp.filter((flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video'));\n setFilesSelected({ files: filesToOpen, selectedFileIndex: 0 });\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n };\n\n const handleClickEvents = (fl) => ({\n onDownload: () => downloadImage(fl.download_url, fl.name),\n onClick: () => handleOpen(files),\n });\n\n const renderText = () => {\n if (type === 'CASE_DELETE') {\n return (\n \n deleted case\n \n );\n }\n\n if (type === 'CASE_CONTACT_ASSIGNED') {\n return (\n \n has assigned contact{' '}\n \n {data?.contact?.email}\n \n \n );\n }\n\n if (type === 'CASE_CONTACT_REMOVE') {\n return (\n \n has removed contact{' '}\n {data?.contact?.email}\n \n );\n }\n\n if (type === 'CASE_EDIT_DATA') {\n return (\n \n edited case detail:{' '}\n {form?.code}\n
\n {data?.changes?.length > 0 ? (\n <>\n {data?.changes\n // ?.filter((change) => change?.newValue)\n ?.map((change) => (\n
\n \n changed {change?.fieldName} \n \n
\n ))}\n \n ) : (\n <>Without changes\n )}\n
\n );\n }\n\n if (type === 'CASE_REFERRAL_DESTINATION') {\n return (\n \n This case was transferred from organization{' '}\n {oldOrganization?.name} to organization{' '}\n {organization?.name} with a new tracking number:{' '}\n {form?.code}\n \n );\n }\n if (type === 'CASE_REFERRAL_ORIGIN') {\n return (\n \n transfer case{' '}\n {form?.code} to organization{' '}\n {newOrganization?.name} with a new tracking\n number: {newForm?.code}\n \n );\n }\n\n if (type === 'CASE_ATTACHMENT_TAGS_ADDED') {\n return (\n \n has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n to attachment: {data?.file?.name}\n \n );\n }\n\n if (type === 'CASE_ATTACHMENT_TAGS_DELETED') {\n return (\n \n has removed {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n from attachment: {data?.file?.name}\n \n );\n }\n\n if (type === 'CASE_TASK_ATTACHMENT_TAGS_ADDED') {\n return (\n \n has added {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n task attachment: {data?.file?.name}\n \n );\n }\n\n if (type === 'CASE_TASK_ATTACHMENT_TAGS_DELETED') {\n return (\n \n has removed {data?.tags?.length > 1 ? 'tags' : 'tag'}{' '}\n {data?.tags?.map((tag) => (\n \n ))}{' '}\n from task attachment: {data?.file?.name}\n \n );\n }\n\n if (\n type === 'CASE_TASK_UPDATED' ||\n type === 'CASE_TASK_ASSIGNMENT_ADD' ||\n type === 'CASE_TASK_ASSIGNMENT_REMOVE' ||\n type === 'CASE_TASK_ATTACHMENT_ADDED' ||\n type === 'CASE_TASK_ATTACHMENT_DELETED'\n ) {\n return ;\n }\n\n if (type === 'CASE_NOTE_UNARCHIVED') {\n return (\n \n has unarchived the note{' '}\n {stripHTML(data?.comment?.comment)} on the case with tracking\n number{' '}\n {data?.form?.code}\n \n );\n }\n\n if (type === 'CASE_ARCHIVE_NOTE') {\n return (\n \n has archived the note{' '}\n {stripHTML(data?.comment?.comment)} on the case with tracking\n number{' '}\n {data?.form?.code}\n\n \n );\n }\n\n if (type === 'CASE_VIEW') {\n return (\n \n viewed case:{' '}\n {form?.code}\n \n );\n }\n\n if (type === 'CASE_VIEW') {\n return (\n \n viewed case:{' '}\n {form?.code}\n \n );\n }\n\n if (type === 'CASE_ARCHIVED') {\n return (\n \n archived case:{' '}\n {form?.code}\n \n );\n }\n if (type === 'CASE_UNARCHIVED') {\n return (\n \n restored case:{' '}\n {form?.code}\n \n );\n }\n\n if (type === 'CASE_COMMENT_OR_ATTACHMENT') {\n const hasFiles = files.length > 0;\n const hasComment = !!comment;\n const hasBoth = hasFiles && hasComment;\n return (\n <>\n {' '}\n {hasComment && (\n <>\n made a new comment\n \n )}\n {hasBoth && ' and '}\n {hasFiles && (\n <>\n uploaded {files.length} file(s)\n \n )}{' '}\n to the case\n {hasComment && (\n <>\n \n \n )}\n {hasFiles && (\n <>\n \n {files.map((file, index) => {\n const showPreview = !file?.archivedDate;\n return (\n <>\n \n \n {showPreview ? (\n \n ) : (\n \n )}\n \n {file.name}\n \n \n \n );\n })}\n \n \n )}\n \n );\n }\n\n if (type === 'CASE_COMMENT_EDIT') {\n return (\n <>\n edited a comment in the case\n
\n
\n {' before:'}\n \n {' after:'}\n \n \n );\n }\n if (type === 'CASE_ASSIGNMENT_ADD') {\n return (\n <>\n has assigned the case to{' '}\n \n {assignments?.[0]?.firstName} {assignments?.[0]?.lastName}\n {' '}\n \n );\n }\n if (type === 'CASE_OFFICER_ADD') {\n return (\n <>\n has added Officer{' '}\n \n {officers?.[0]?.firstName} {officers?.[0]?.lastName}\n {' '}\n with Badge Number: {officers?.[0]?.badgeNumber}\n \n );\n }\n if (type === 'CASE_OFFICER_REMOVE') {\n return (\n <>\n has removed Officer{' '}\n \n {officers?.[0]?.firstName} {officers?.[0]?.lastName}\n {' '}\n with Badge Number: {officers?.[0]?.badgeNumber}\n \n );\n }\n if (type === 'IMPORT_CASE') {\n return (\n <>\n imported this case{' '}\n \n );\n }\n if (type === 'CASE_ALLEGATION_ROW_ADD') {\n return (\n <>\n has added a new Allegation row to Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n );\n }\n if (type === 'CASE_ALLEGATION_ROW_DELETE') {\n return (\n <>\n has removed an Allegation row to Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n );\n }\n if (type === 'CASE_ALLEGATION_ROW_UPDATE') {\n return changes?.map((change, index) => {\n if (change?.fieldName === 'allegation') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue} to\n Allegation for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n ) : (\n <>\n has changed the Allegation from{' '}\n {change.oldValue} to{' '}\n {change.newValue}\n for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n )}\n \n );\n }\n if (change?.fieldName === 'description') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added a Description for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n \n ) : (\n <>\n has changed the Description for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n {' from:'}\n \n {' to:'}\n \n \n )}\n \n );\n }\n if (change?.fieldName === 'disposition') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue} to\n Disposition for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n ) : (\n <>\n has changed the Disposition from{' '}\n {change.oldValue} to{' '}\n {change.newValue} for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n )}\n \n );\n }\n if (change?.fieldName === 'discipline') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue} to\n Discipline for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n ) : (\n <>\n has changed the Discipline from{' '}\n {change.oldValue} to{' '}\n {change.newValue}\n to Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n )}\n \n );\n }\n if (change?.fieldName === 'reason') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue} to\n Reason for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n ) : (\n <>\n has changed the Reason from{' '}\n {change.oldValue} to{' '}\n {change.newValue} to Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n )}\n \n );\n }\n\n if (change?.fieldName === 'status') {\n return (\n \n {!change?.oldValue ? (\n <>\n has added {change.newValue} in\n Status to Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n ) : (\n <>\n has changed the Allegation's Status from{' '}\n {change.oldValue} to{' '}\n {change.newValue} for Officer{' '}\n \n {officer?.firstName} {officer?.lastName}\n {' '}\n with Badge Number: {officer?.badgeNumber}\n \n )}\n \n );\n }\n\n return null;\n });\n }\n if (type === 'CASE_UPDATE') {\n return changes?.map((change, index) => {\n if (change?.fieldName === 'status') {\n return (\n \n has changed the case status from{' '}\n {getStatusTitle(changes[0]?.oldValue)} to{' '}\n {getStatusTitle(changes[0]?.newValue)}\n \n );\n }\n\n if (change?.fieldName === 'type') {\n return (\n \n has changed the case type{' '}\n {getStatusTitle(changes[0]?.oldValue)} to{' '}\n {getStatusTitle(changes[0]?.newValue)}\n \n );\n }\n\n if (change?.fieldName === 'caseNumber') {\n return (\n \n <>\n has changed the case number\n {change.oldValue ? (\n <>\n {' from '}\n {convertValueToHTML(change.oldValue)}\n \n ) : null}{' '}\n to {convertValueToHTML(change.newValue)}\n \n \n );\n }\n if (change?.fieldName === 'internalAffairsCaseNumber') {\n change.fieldName = 'Internal Affairs Case Number';\n }\n if (change?.fieldName.length > 0) {\n return (\n \n {!change?.oldValue || change?.oldValue?.length === 0 ? (\n <>\n has added {convertValueToHTML(change.newValue)} to{' '}\n {change?.fieldName}{' '}\n \n ) : (\n <>\n has changed the{' '}\n {change?.fieldName} from{' '}\n {convertValueToHTML(change.oldValue)} to {convertValueToHTML(change.newValue)}\n \n )}\n \n );\n }\n\n return null;\n });\n }\n if (type === 'CASE_ASSIGNMENT_REMOVE') {\n return (\n <>\n has removed{' '}\n \n {assignments?.[0]?.firstName} {assignments?.[0]?.lastName}\n {' '}\n from the case\n \n );\n }\n\n if (type === 'CASE_LINKED') {\n return (\n <>\n The case with tracking number{' '}\n \n {data?.form?.code}\n {' '}\n has been linked to the case with tracking number{' '}\n \n {data?.otherForm?.code}\n \n .\n \n );\n }\n\n if (type === 'CASE_UNLINKED') {\n return (\n <>\n The case with tracking number{' '}\n \n {data?.form?.code}\n {' '}\n has been unlinked from the case with tracking number\n \n {data?.otherForm?.code}\n \n .\n \n );\n }\n\n if (type === 'CASE_ATTACHMENT_ARCHIVED') {\n return (\n <>\n has archived the file{' '}\n {data?.file?.name} on the case with tracking\n number{' '}\n \n {data?.form?.code}\n \n .\n \n );\n }\n\n if (type === 'CASE_ATTACHMENT_UNARCHIVED') {\n return (\n <>\n has unarchived the file{' '}\n {data?.file?.name} on the case with tracking\n number{' '}\n \n {data?.form?.code}\n \n .\n \n );\n }\n\n return null;\n };\n\n return (\n <>\n \n {renderText()}\n \n \n \n );\n};\n\nLog.propTypes = {\n _id: PropTypes.string.isRequired,\n unread: PropTypes.bool.isRequired,\n data: PropTypes.shape({\n file: PropTypes.object,\n assignments: PropTypes.array,\n changes: PropTypes.array,\n files: PropTypes.array,\n comment: PropTypes.string,\n allegationRow: PropTypes.string,\n officers: PropTypes.array,\n user: PropTypes.string,\n form: PropTypes.string,\n officer: PropTypes.string,\n oldForm: PropTypes.string,\n newOrganization: PropTypes.string,\n newForm: PropTypes.string,\n oldOrganization: PropTypes.string,\n oldComment: PropTypes.string,\n newComment: PropTypes.string,\n tags: PropTypes.array,\n contact: PropTypes.object,\n }).isRequired,\n type: PropTypes.string.isRequired,\n createdAt: PropTypes.instanceOf(Date).isRequired,\n updatedAt: PropTypes.instanceOf(Date).isRequired,\n editedByInfo: PropTypes.string,\n};\n\nexport const PreviewImg = styled.div`\n height: 100px;\n position: relative;\n overflow: hidden;\n margin-right: 10px;\n\n & div:hover {\n opacity: 1;\n }\n`;\n\nexport default Log;\n","import React, { createContext, useState, useContext, useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Context for managing accordion state.\n * @type {React.Context}\n */\nconst AccordionContext = createContext();\n\n/**\n * Provider component for managing accordion state.\n * @param {Object} props - The component props.\n * @param {ReactNode} props.children - Child components to render within the provider.\n * @returns {JSX.Element} A React component.\n */\nconst AccordionProvider = ({ children }) => {\n /**\n * State to manage accordion state.\n * @type {Object}\n */\n const [accordions, setAccordions] = useState({});\n\n const setAllCollapse = useCallback(() => {\n const keys = Object.keys(accordions);\n const _accordions = { ...accordions };\n\n keys.forEach((key) => {\n _accordions[key] = false;\n });\n\n setAccordions(_accordions);\n }, [accordions]);\n\n /**\n * Memoized value to optimize performance.\n * @type {Object}\n */\n const value = useMemo(\n () => ({\n accordions,\n setAccordions,\n setAllCollapse,\n }),\n [accordions, setAllCollapse]\n );\n\n return {children};\n};\n\n// Prop type definitions\nAccordionProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\n/**\n * Custom hook for accessing accordion state and actions.\n * @returns {Object} Accordions state and setAccordions function.\n */\nexport const useAccordionProvider = () => {\n /**\n * Context to access accordion state and actions.\n * @type {React.Context}\n */\n const { accordions, setAccordions, setAllCollapse } = useContext(AccordionContext);\n\n return { accordions, setAccordions, setAllCollapse };\n};\n\nexport default AccordionProvider;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useRef, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { useAccordionProvider } from '../provider/AccordionProvider';\n\nconst Container = styled.div`\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n border: ${props => props.variant === \"default\" ? 'none' : '1px solid #C9D7FF'};\n border-bottom: ${props => props.variant === \"default\" ? '1px solid #e2e2e2' : '1px solid #C9D7FF'};\n`;\n\nconst Header = styled.div`\n cursor: pointer;\n transition: all 0.25s ease;\n background-color: #fff;\n\n &:hover {\n background-color: ${\n props => (props.variant === \"default\") ?\n 'rgba(0, 0, 0, .1)'\n :\n (!props.isOpen) ?\n '#F3F7FB' :\n '#fff'\n };\n }\n`;\n\nconst Content = styled.div`\n width: 100%;\n background-color: #fff;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n transition: height 0.3s ease-in-out;\n z-index: 1;\n height: ${props => props.isOpen ? `${props.contentHeight}px` : '0'};\n padding: 0px 24px;\n`;\n\n/**\n * AccordionWrap component.\n * @param {Object} props - Component props.\n * @param {string} props.name - Unique identifier for the accordion.\n * @param {React.ReactElement} props.header - Header element of the accordion.\n * @param {React.ReactElement} props.children - Child elements of the accordion.\n * @returns {React.ReactElement} AccordionWrap component.\n */\nconst AccordionWrap = ({ dataTestId, id, header, variant = \"default\", children }) => {\n const { accordions, setAccordions } = useAccordionProvider();\n const contentRef = useRef(null);\n const [contentHeight, setContentHeight] = useState(0);\n\n /**\n * Update content height when children change.\n */\n useEffect(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight);\n }\n }, [children]);\n\n return (\n \n {\n setAccordions((_accordions) => ({\n ..._accordions,\n [id]: !accordions[id],\n }));\n }}\n variant={variant}\n isOpen={accordions[id]}\n data-testid={dataTestId}\n >\n {header}\n \n \n {children}\n \n \n );\n};\n\n// Define prop types for AccordionWrap component\nAccordionWrap.propTypes = {\n dataTestId: PropTypes.string,\n id: PropTypes.string,\n header: PropTypes.element,\n children: PropTypes.element,\n};\n\nexport default AccordionWrap;\n","import { Grid, LinearProgress, Box } from '@material-ui/core';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Skeleton } from 'antd';\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\nimport VideoLibraryIcon from '@material-ui/icons/VideoLibrary';\nimport ClearIcon from '@material-ui/icons/Delete';\n\nimport Tags from './Tags';\nimport ArchivedImage from './ArchivedImage';\n\nexport function bytesToMB(bytes) {\n return (bytes / (1024 * 1024)).toFixed(2);\n}\n\nconst Attachment = ({\n loading,\n fileId,\n defaultTags,\n name,\n size,\n url,\n mimetype,\n withAddBtn = true,\n canRemoveTag = false,\n rightCreateTag = -235,\n positionCreateTag = 'top',\n sizeCreateTag = 'large',\n onClickDelete,\n onClickPreview,\n onClickAddTag,\n onClickRemoveTag,\n columnImageSize = 2,\n columnTextSize = 10,\n archived,\n}) => {\n const sizeInMb = bytesToMB(size);\n\n return (\n \n \n \n \n \n \n {loading ? (\n \n ) : (\n <>\n {archived ? (\n \n \n \n ) : null}\n {!archived && mimetype.includes('video') && (\n \n \n \n )}\n {!archived && mimetype.includes('pdf') && (\n \n \n \n )}\n {!archived && mimetype.includes('image') && }\n \n )}\n \n \n \n {loading ? (\n \n ) : (\n \n {name}\n {sizeInMb > 0 && {sizeInMb} mb}\n \n \n )}\n \n \n \n {onClickDelete && (\n \n \n \n \n \n )}\n \n \n );\n};\n\nAttachment.propTypes = {\n loading: PropTypes.bool,\n fileId: PropTypes.number,\n defaultTags: PropTypes.arrayOf(PropTypes.string).isRequired,\n name: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n url: PropTypes.string.isRequired,\n mimetype: PropTypes.string.isRequired,\n withAddBtn: PropTypes.bool,\n canRemoveTag: PropTypes.bool,\n sizeCreateTag: PropTypes.string.isRequired,\n rightCreateTag: PropTypes.number,\n positionCreateTag: PropTypes.string.isRequired,\n onClickPreview: PropTypes.func.isRequired,\n onClickDelete: PropTypes.func.isRequired,\n onClickAddTag: PropTypes.func.isRequired,\n onClickRemoveTag: PropTypes.func.isRequired,\n columnImageSize: PropTypes.number,\n columnTextSize: PropTypes.number,\n};\n\nconst Container = styled.div`\n margin-bottom: 16px;\n padding-bottom: 16px;\n border-bottom: 1px solid rgba(217, 217, 217, 1);\n`;\n\nconst Image = styled.img`\n width: 71px;\n height: 66px;\n border-radius: 4px;\n object-fit: contain;\n cursor: pointer;\n`;\n\nconst WrapIcon = styled.div`\n width: 71px;\n height: 66px;\n border-radius: 2px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n`;\n\nconst Name = styled.p`\n font-size: 14px;\n width: 300px;\n color: #000000de;\n margin-bottom: 3px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n text-align: left;\n`;\n\nconst Size = styled.p`\n font-size: 12px;\n color: #000000ad;\n text-align: left;\n`;\n\nexport default Attachment;\n","/* eslint-disable no-nested-ternary */\nimport { Avatar, Box, Button, CircularProgress, Typography, makeStyles } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\nimport VideoLibraryIcon from '@material-ui/icons/VideoLibrary';\nimport AudiotrackIcon from '@material-ui/icons/Audiotrack';\nimport { toast } from '../../components/Notification';\nimport { Editor } from '@tinymce/tinymce-react';\nimport PropTypes from 'prop-types';\n\nimport useOrganization from '../../hooks/useOrganization';\nimport useInput from '../../hooks/useInput';\nimport { Context } from '../../Context';\nimport CircularProgressWithLabel from '../../components/CircularProgressWithLabel';\nimport { TINYMCE_DEFAULT_CONFIG, TINYMCE_SCRIPT_SRC } from '../../config/config';\nimport ModalUploadFile from '../../components/ModalUploadFile';\nimport Tags from '../../components/Tags';\nimport { BoxContainer } from '../../styles/GlobalStyles';\n\nconst useStyles = makeStyles((theme) => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n margin: '24px 0',\n },\n containerTitle: {\n padding: '10px 20px',\n borderBottom: '1px solid #e2e2e2',\n },\n resaltText: {\n color: '#4b7bff',\n fontWeight: 600,\n fontSize: 14,\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n button: {\n background: ' #4b7bff',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#F9FAFF',\n border: '2px solid #000',\n boxShadow: theme.shadows[5],\n padding: 20,\n },\n editingContent: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'end',\n margin: '24px 0px 8px 24px',\n },\n editingMessage: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '8px',\n border: '1px solid #FEB535',\n background: '#FFE4B4',\n width: '106px',\n height: '32px',\n marginRight: '15px',\n fontFamily: 'Roboto',\n fontSize: '15px',\n fontStyle: 'normal',\n fontWeight: 500,\n lineHeight: '26px',\n letterSpacing: '0.46px',\n textTransform: 'uppercase',\n },\n}));\n\nconst CaseComment = ({\n callBack,\n organizationId,\n containerStyles = {\n background: '#fff',\n borderRadius: 5,\n boxShadow: '0 3px 6px #00000005',\n marginLeft: '20px',\n },\n setIsRequestingData = () => {},\n editingLog,\n}) => {\n const classes = useStyles();\n const { authUser } = useContext(Context);\n const comment = useInput('');\n const [loading, setLoading] = useState(false);\n const { organization } = useOrganization();\n const [open, setOpen] = React.useState(false);\n const [loadingPercentage, setLoadingPercentage] = useState(0);\n const [files, setFiles] = useState([]);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const onDeleteFile = (fileOrIndex) => {\n if (typeof fileOrIndex === 'number') {\n setFiles(prevFiles => prevFiles.filter((_, index) => index !== fileOrIndex));\n } else {\n setFiles(prevFiles => prevFiles.filter((_file) => _file?._id !== fileOrIndex?._id));\n }\n };\n\n const resetValues = () => {\n setFiles([]);\n comment.setValue('');\n };\n\n const onSubmit = async (e) => {\n e.preventDefault();\n\n if (!editingLog && !comment.value && files.length === 0) {\n toast.error('Please Add a file(s) or a comment');\n return;\n }\n\n try {\n const filesData = files.map((file) => ({\n file: file.hashId,\n tags: file?.tags?.map((tag) => tag?._id) || [],\n }));\n\n const canceled = e?.nativeEvent?.submitter?.name === 'cancelbutton';\n if (canceled) {\n await callBack(null, null, resetValues, canceled);\n } else {\n setLoading(true);\n await callBack(filesData, comment.value, resetValues, canceled);\n setIsRequestingData((prevState) => !prevState);\n }\n } catch (error) {\n toast.error(\n error?.response?.data?.error?.details[0].message ||\n error?.response?.data?.message ||\n 'An error occurred while sending note'\n );\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n comment.onChange({ target: { value: editingLog?.comment || '' } });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editingLog?.comment]);\n\n return (\n \n {editingLog && (\n \n Editing\n \n )}\n
\n \n \n Add Notes\n \n \n \n \n {authUser?.email[0].toUpperCase()}\n {authUser?.email[1].toUpperCase()}\n \n \n {\n comment.onChange({ target: { value: newValue } });\n }}\n />\n \n \n {!editingLog && (\n \n {files.map((image, i) => {\n if (image.loading) {\n return (\n \n \n {loadingPercentage > 0 && loadingPercentage < 100 && (\n \n )}\n \n \n );\n }\n return (\n
\n \n {image?.mimetype?.includes('video') && (\n \n \n \n )}\n\n {image?.mimetype?.includes('audio') && (\n \n \n \n )}\n\n {image.url.includes('.pdf') && (\n \n \n \n )}\n\n {image?.mimetype?.split('/')[0] === 'image' && (\n \n )}\n\n {!image?.mimetype?.includes('image') &&\n !image?.mimetype?.includes('audio') &&\n !image?.mimetype?.includes('video') && (\n \n \n \n )}\n \n onDeleteFile(image)}\n />\n \n \n \n
\n );\n })}\n
\n )}\n \n \n {!editingLog && organization?.features?.general?.attachments && (\n <>\n \n \n {' '}\n Attachments\n \n \n )}\n \n \n {editingLog && (\n \n Cancel\n \n )}\n \n {loading ? : editingLog ? 'Save' : 'Send update'}\n \n \n \n
\n {\n setFiles(_files);\n setOpen(false);\n }}\n onClose={() => setOpen(false)}\n organizationId={organizationId}\n />\n
\n );\n};\n\nCaseComment.propTypes = {\n organizationId: PropTypes.string.isRequired,\n callBack: PropTypes.func.isRequired,\n containerStyles: PropTypes.shape({\n background: PropTypes.string,\n borderRadius: PropTypes.number,\n boxShadow: PropTypes.string,\n marginLeft: PropTypes.string,\n }),\n setIsRequestingData: PropTypes.func,\n editingLog: PropTypes.bool,\n};\n\nexport const BackDrop = styled.div`\n background: rgba(0, 0, 0, 0.4);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0;\n top: 0;\n opacity: 0;\n display: flex;\n align-content: center;\n justify-content: center;\n transition: all 0.3s ease;\n`;\n\nexport const PreviewImg = styled.div`\n width: 100px;\n height: 100px;\n position: relative;\n\n overflow: hidden;\n margin-right: 16px;\n & div:hover {\n opacity: 1;\n }\n`;\n\nexport default CaseComment;\n","module.exports = \"data:image/png;base64,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\"","/* eslint-disable no-useless-escape */\nimport moment from 'moment';\nimport { toast } from '../components/Notification';\n\nexport function formatPhoneNumber(string, fullString) {\n const cleaned = `${string}`.replace(/\\D/g, '');\n const match = cleaned.match(/^(1|)?(\\d{3})(\\d{3})(\\d{4})$/);\n if (match) {\n const intlCode = match[1] ? '+1 ' : '';\n return [intlCode, '(', match[2], ') ', match[3], '-', match[4]].join('');\n }\n\n if (Array.isArray(string)) {\n return string.join(', ');\n }\n\n if (fullString && fullString.match(/(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2})\\:(\\d{2})\\:(\\d{2})/)) {\n return moment(fullString).format('MM/DD/YYYY');\n }\n\n return string;\n}\n\nexport const validateIsoDate = (date) => {\n if (date.match(/(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2})\\:(\\d{2})\\:(\\d{2})/)) {\n return true;\n }\n return false;\n};\n\nconst isDate = (date) => new Date(date) !== 'Invalid Date' && !Number.isNaN(new Date(date));\n\nexport const checkValueType = (value, type) => {\n // eslint-disable-next-line no-restricted-globals\n if (type === 'longText') {\n return value;\n }\n\n if (type === 'shortText') {\n return value;\n }\n if (type === 'date' || (type === 'demographics' && isDate(value))) {\n return moment(value).format('MM-DD-YYYY');\n }\n if (typeof value === 'boolean') {\n return value === true ? 'Yes' : 'No';\n }\n\n return formatPhoneNumber(value);\n};\n\nexport const transformStatus = (status) => status;\n\nexport const formatCubeJsTableColumns = (title, key) => {\n let column = `${title} `;\n const currentKey = key.split('.');\n const lengthKey = currentKey[currentKey.length - 1];\n if (lengthKey === 'day') {\n column += `by Day`;\n } else if (lengthKey === 'hour') {\n column += `by Hour`;\n } else if (lengthKey === 'minute') {\n column += 'by Minute';\n } else if (lengthKey === 'week') {\n column += 'by Week';\n } else if (lengthKey === 'month') {\n column += 'by Month';\n } else if (lengthKey === 'year') {\n column += 'by Year';\n }\n return column;\n};\n\nexport const getFormColor = (formType) => {\n switch (formType) {\n case 'COMPLAINT':\n return 'rgb(255, 66, 66)';\n case 'COMPLIMENT':\n return '#00b27c';\n // case 'AUDIT':\n // return '#E89800';\n default:\n return '#2E66FE';\n }\n};\n\nexport const getFormColorPlaceholder = (formType) => {\n switch (formType) {\n case 'COMPLAINT':\n return 'rgba(255, 66, 66, 0.1)';\n case 'COMPLIMENT':\n return '#e5f6f1';\n // case 'AUDIT':\n // return '#E89800';\n default:\n return '#2E66FE1A';\n }\n};\n\nexport const fileUploadAceptedTypes = [\n 'image/*',\n 'video/*',\n 'application/pdf',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'audio/*',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.ms-excel',\n];\n\nexport const handleOpenPopupFiles = (imgUrl, filesOp, setOpenPopupFiles, setFilesSelected, setLoadingOpenFiles) => {\n setOpenPopupFiles(true);\n\n const filesToOpen = filesOp.filter(\n (flop) => flop.mimetype.includes('image') || flop.mimetype.includes('video') || flop.mimetype.includes('audio')\n );\n const selectedFile = filesToOpen.find((flop) => flop.url === imgUrl);\n\n const selectedFileIndex = filesToOpen.indexOf(selectedFile);\n\n setFilesSelected({ files: filesToOpen, selectedFileIndex });\n setLoadingOpenFiles(\n filesToOpen.map(() => ({\n loading: false,\n }))\n );\n};\n\nexport const sortByCreatedAt = (data) =>\n data.sort((x, y) => new Date(y.createdAt).getTime() - new Date(x.createdAt).getTime());\n\nexport const axiosCatchError = (error) => {\n const message = error?.response?.data?.error?.details[0]?.message || error?.response?.data?.message;\n\n toast.error(message);\n};\n\nexport const containsHTML = (str) => {\n const pattern = /<([a-z][a-z0-9]*)\\b[^>]*>(.*?)<\\/\\1>|<([a-z][a-z0-9]*)\\b[^\\/]*\\/>/gi;\n return pattern.test(str);\n};\n\nexport const sortOrderForms = (forms) =>\n forms?.sort((x, y) => {\n // First, sort by the order property\n if (x.order !== y.order) {\n return x.order - y.order;\n }\n // If the order property is the same, sort alphabetically by some other property (e.g., name)\n return x.name.localeCompare(y.name);\n });\n\nexport const getDocumentTitle = (orgName) => {\n let moduleName = '';\n\n if (window.location.pathname === '/') {\n moduleName = 'Dashboard';\n } else {\n const pathNameParts = window.location.pathname.split('/');\n const pathName = pathNameParts.length > 0 ? pathNameParts[1] : '';\n\n if (pathName !== '') {\n moduleName = pathName[0].toUpperCase() + pathName.slice(1);\n }\n }\n\n const pageTitle = moduleName !== '' ? `${orgName} | ${moduleName}` : orgName;\n\n return pageTitle;\n};\n\nexport const createFormTypePageId = (pageName, pageIndex) => {\n const pageId = `${pageName.toLowerCase().replace(/ /g, '-')}-${pageIndex}`;\n\n return pageId;\n};\n","import { useContext, useEffect, useState } from 'react';\n\nimport { Context } from '../Context';\nimport { getMe } from '../services/unarmed';\n\nconst useMe = () => {\n const { authUser, removeAuthToLogin } = useContext(Context);\n const [me, setMe] = useState(null);\n\n useEffect(() => {\n const onGetMe = async () => {\n try {\n const { data } = await getMe(authUser.tokenId);\n\n setMe(data);\n } catch (error) {\n if (error?.response?.data?.message === 'Expired token') {\n removeAuthToLogin('Your password has expired. Please reset your password.');\n } else {\n removeAuthToLogin('');\n }\n }\n };\n\n if (authUser && authUser.tokenId) {\n onGetMe();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [authUser]);\n\n return { me, setMe };\n};\n\nexport default useMe;\n","import { useState, useEffect, useCallback } from 'react';\nimport useMe from './useMe';\nimport {\n getAllegationsFiltersConfig,\n getContactsFiltersConfig,\n getfiltersConfigById,\n getFormsFiltersConfig,\n getOfficersFiltersConfig,\n getUsersFiltersConfig,\n} from '../services/unarmed';\n\nconst useFiltersConfig = (type, excludeCount = [], filterConfigId) => {\n const [filtersConfig, setFiltersConfig] = useState();\n const [filtersLoaded, setFiltersLoaded] = useState(false);\n const [filterCount, setFilterCount] = useState(0);\n const [filtersApplied, setFiltersApplied] = useState({});\n\n const { me } = useMe();\n\n const handleOnSetFiltersConfig = useCallback(\n ({ data }) => {\n if (me) {\n const filterConfig = data.find((item) => item.user?._id === me._id);\n const newFiltersApplied = {};\n\n if (filterConfig) {\n const configCopy = { ...filterConfig.config };\n\n delete configCopy.sortOrder;\n delete configCopy.sortBy;\n delete configCopy.page;\n delete configCopy.limit;\n\n Object.keys(configCopy).forEach((key) => {\n if (excludeCount.indexOf(key) !== -1) {\n delete configCopy[key];\n } else {\n const value = configCopy[key];\n let isApplied = false;\n\n isApplied = value !== null;\n\n if (typeof value === 'boolean') {\n isApplied = value === true;\n }\n\n newFiltersApplied[key] = isApplied;\n }\n });\n\n const newCount = Object.values(newFiltersApplied).filter((item) => item).length;\n\n setFilterCount(newCount);\n setFiltersConfig(filterConfig);\n setFiltersApplied(newFiltersApplied);\n } else {\n setFiltersConfig(null);\n }\n }\n },\n [me]\n );\n\n const handleOnFetchFiltersConfig = useCallback(() => {\n if (filterConfigId) {\n getfiltersConfigById(filterConfigId).then(handleOnSetFiltersConfig);\n }\n }, [filterConfigId, handleOnSetFiltersConfig]);\n\n const resetFilterCount = () => setFilterCount(0);\n\n useEffect(() => {\n if (me) {\n handleOnFetchFiltersConfig();\n }\n }, [type, me, filterConfigId]);\n\n return {\n filtersConfig,\n filterCount,\n filtersApplied,\n filtersLoaded,\n resetFilterCount,\n setFiltersLoaded,\n fetchFiltersConfig: handleOnFetchFiltersConfig,\n };\n};\n\nexport default useFiltersConfig;\n","import React, { useState } from 'react';\nimport { Box, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst ArrayTooltip = ({ items }) => {\n const [onHover, setOnHover] = useState(false);\n\n const remainingItems = items?.slice(1);\n\n return (\n \n setOnHover(true)}\n onMouseLeave={() => setOnHover(false)}\n >\n {items[0] || ``}\n\n {items.length > 1 && (\n \n (+{items.length - 1})\n \n )}\n \n\n {items.length > 1 && (\n \n {remainingItems.map((item, index) => (\n \n {item}\n \n ))}\n \n )}\n \n );\n};\n\nconst TooltipContainer = styled.div`\n position: absolute;\n left: 0;\n top: 30px;\n width: 200px;\n background-color: #fff;\n border-radius: 8px;\n z-index: 99;\n padding: 8px;\n display: flex;\n flex-direction: column;\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2),\n 0px 1px 1px 0px rgba(0, 0, 0, 0.14),\n 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\n visibility: ${(props) => (props.visible ? 'visible' : 'hidden')};\n`;\n\nArrayTooltip.propTypes = {\n items: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n\nexport default ArrayTooltip;\n","import React from 'react';\nimport { Box, makeStyles, Typography, Button } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport upArrow from '../assets/upArrow.png';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #2E66FE',\n textTransform: 'capitalize',\n color: '#fff',\n padding: '10px 14px',\n borderRadius: '4px',\n '&:hover': {\n background: '#2E66FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n fontSize: 14,\n fontWeight: '500',\n cursor: 'pointer',\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n\n circle: {\n width: 76,\n height: 76,\n borderRadius: '50%',\n border: '3px solid #FEB535',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginBottom: 25,\n flexDirection: 'column',\n },\n}));\n\n/**\n * Component to display an upgrade popup.\n * @param {Object} props - Component props.\n * @param {string} [props.title='Upgrade Required!'] - Title of the upgrade popup.\n * @param {string} [props.text] - Additional text to display in the popup.\n * @param {string} [props.buttonText] - Additional button text to display in the popup.\n * @param {string} [props.withText] - Boolean value to display text.\n * @returns {JSX.Element} UpgradeTabPopup component.\n */\nconst UpgradeTabPopup = ({\n title = 'Upgrade Required!',\n text,\n buttonText = 'UPGRADE',\n withText = true,\n icon,\n useAnchor = true,\n disabledButtton,\n onClickButton,\n}) => {\n const classes = useStyles();\n // eslint-disable-next-line no-unused-vars\n // const [showUpgrade, setShowUpgrade] = useState(true);\n\n return (\n \n \n {icon ? (\n <>\n {icon}\n \n ) : (\n \n \"arrow-up\"\n \n \n )}\n \n {title}\n \n {withText && (\n \n {!text ? (\n <>\n This feature is not included in your current Sivil subscription. Please upgrade your account to access\n additional tools. Contact us at hello@sivilco.com.\n \n ) : (\n <>{text}\n )}\n \n )}\n {useAnchor ? (\n \n {buttonText}\n \n ) : (\n \n )}\n \n \n );\n};\n\n// PropTypes validation for UpgradeTabPopup\nUpgradeTabPopup.propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n buttonText: PropTypes.string,\n withText: PropTypes.bool,\n icon: PropTypes.node,\n useAnchor: PropTypes.bool,\n disabledButtton: PropTypes.bool,\n onClickButton: PropTypes.func,\n};\n\nexport default UpgradeTabPopup;\n","import { useEffect, useState, useRef } from 'react';\n\nexport default function useNearScreen({\n distance = '100px',\n externalRef,\n once = true,\n} = {}) {\n const [isNearScreen, setShow] = useState(false);\n const fromRef = useRef();\n\n useEffect(() => {\n let observer;\n\n const element = externalRef ? externalRef.current : fromRef.current;\n\n const onChange = (entries, observer) => {\n const el = entries[0];\n if (el.isIntersecting) {\n setShow(true);\n once && observer.disconnect();\n } else {\n !once && setShow(false);\n }\n };\n\n Promise.resolve(\n typeof IntersectionObserver !== 'undefined'\n ? IntersectionObserver\n : import('intersection-observer')\n ).then(() => {\n observer = new IntersectionObserver(onChange, {\n rootMargin: distance,\n });\n\n if (element) observer.observe(element);\n });\n\n return () => observer && observer.disconnect();\n });\n\n return { isNearScreen, fromRef };\n}\n","import { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport PhoneInput from 'react-phone-input-2';\nimport 'react-phone-input-2/lib/material.css';\n\nconst InputPhone = ({\n value,\n onChange,\n label = 'Phone Number',\n error,\n showDropdown = false,\n disabled,\n country,\n hasError,\n}) => (\n \n {label && (\n \n {label}\n \n )}\n onChange(phone)}\n inputStyle={{\n padding: '4px 14px 8.5px 5px',\n border: 0,\n borderRadius: 0,\n outline: 0,\n borderBottom: hasError\n ? '2px solid #f44336'\n : '1px solid rgba(0, 0, 0, 0.42)',\n width: '100%',\n fontSize: '1rem',\n background: 'transparent',\n }}\n buttonStyle={{ display: showDropdown ? 'block' : 'none' }}\n />\n {error && (\n \n This field is required\n \n )}\n \n);\n\nexport default InputPhone;\n","import React from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { Box, Grid, makeStyles, Typography } from '@material-ui/core';\nimport AccordionWrap from '../../components/AccordionWrap';\n\nexport const getAboutUsValue = (value) => {\n if (!value) {\n return;\n }\n const aboutUsMapArray = [\n { value: 'WEBSITE', text: 'Website' },\n { value: 'SEARCH_ENGINE', text: 'Search Engine (e.g. Google)' },\n { value: 'SOCIAL_MEDIA', text: 'Social Media (e.g. Facebook)' },\n { value: 'EMAIL', text: 'Email' },\n { value: 'RADIO', text: 'Radio' },\n { value: 'TV', text: 'TV' },\n { value: 'NEWSPAPER', text: 'Newspaper' },\n { value: 'WORD_OF_MOUTH', text: 'Word of Mouth' },\n { value: 'OTHER', text: 'Other' },\n ];\n\n const arrayValue = aboutUsMapArray.filter((about) => about.value === value);\n return arrayValue[0]?.text;\n};\n\nconst useStyles = makeStyles((theme) => ({\n formSection: {\n fontSize: 14,\n color: '#3B70FE',\n fontWeight: '500',\n margin: '20px 0',\n },\n label: {\n fontSize: 12,\n color: '#585858',\n },\n}));\n\nconst AditionalDetails = ({ form }) => {\n const classes = useStyles();\n\n return (\n \n \n \n Additional Information\n \n \n }\n >\n \n \n \n \n How do you hear about us?\n \n \n {form?.howDidYouHearAboutUs?.map((how, i) => (\n \n {getAboutUsValue(how)}\n {form?.howDidYouHearAboutUs?.length > 1 && form?.howDidYouHearAboutUs?.length !== i + 1 && ','}{' '}\n \n )) || 'Not specified'}\n \n \n \n \n What best describes you?\n \n {form?.whatBestDescribesYou || 'Not specified'}\n \n \n Demographics\n \n \n \n Date of Birth\n \n \n {form?.demographic?.birthdate\n ? moment(form?.demographic?.birthdate).format('MM/DD/YYYY')\n : 'Not specified'}\n \n \n \n \n Gender\n \n \n {form?.demographic?.gender.map((gd, i) => (\n \n {gd}\n {form?.demographic?.gender?.length > 1 && form?.demographic?.gender?.length !== i + 1 && ','}{' '}\n \n ))}\n {form?.demographic?.gender.length === 0 && Not specified}\n \n \n \n \n Race/Ethnicity\n \n {form?.demographic?.raceEthnicity.map((rc, i) => (\n \n {rc}\n {form?.demographic?.raceEthnicity?.length > 1 &&\n form?.demographic?.raceEthnicity?.length !== i + 1 &&\n ','}{' '}\n \n ))}\n {form?.demographic?.raceEthnicity.length === 0 && Not specified}\n \n \n \n Sexual Orientatioin\n \n {form?.demographic?.sexualOrientation.map((so, i) => (\n \n {so}\n {form?.demographic?.sexualOrientation?.length > 1 &&\n form?.demographic?.sexualOrientation?.length !== i + 1 &&\n ','}{' '}\n \n ))}\n {form?.demographic?.sexualOrientation.length === 0 && Not specified}\n \n \n \n Is English your primary language?\n \n \n {form?.demographic?.primaryLanguage || 'Not specified'}\n \n \n \n \n \n \n );\n};\n\nAditionalDetails.propTypes = {\n form: PropTypes.object,\n};\n\nexport default AditionalDetails;\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Modal, Fade, Paper, makeStyles, Typography, Box } from '@material-ui/core';\nimport { toast } from '../../components/Notification';\n\nimport useInput from '../../hooks/useInput';\nimport { createContact } from '../../services/unarmed';\nimport ContactForm from './ContactForm';\n\n/**\n * Material-UI styling hook.\n */\nconst useStyles = makeStyles((theme) => ({\n paper: {\n boxShadow: theme.shadows[5],\n padding: 64,\n minWidth: 600,\n alignSelf: 'center',\n borderRadius: 4,\n maxHeight: '80vh',\n overflowY: 'scroll',\n maxWidth: 700,\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n}));\n\n/**\n * Parses the provided phone number by removing spaces, parentheses, and dashes.\n *\n * @param {string} phoneNumber - The phone number to parse.\n * @returns {string} The parsed phone number.\n */\nexport const parseContactPhoneNumber = (phoneNumber) =>\n phoneNumber?.replace(' ', '')?.replace('(', '')?.replace(')', '')?.replace('-', '');\n\n/**\n * Modal for creating a new contact.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {boolean} props.open - Whether the modal is open.\n * @param {Function} props.onClose - Function to handle modal closure.\n * @param {Function} props.onUpdate - Function to handle updates after contact creation.\n */\nconst ModalCreateContact = ({ open, onClose, onUpdate }) => {\n const classes = useStyles();\n\n const [loading, setLoading] = useState(false);\n\n const firstName = useInput('');\n const lastName = useInput('');\n const phoneNumber = useInput('');\n const email = useInput('');\n const gender = useInput([]);\n const raceEthnicity = useInput([]);\n const type = useInput('');\n const companyName = useInput('');\n\n /**\n * Clears input fields.\n */\n const onClearFields = () => {\n firstName.setValue('');\n lastName.setValue('');\n phoneNumber.setValue('');\n email.setValue('');\n gender.setValue([]);\n type.setValue('');\n raceEthnicity.setValue([]);\n };\n\n const handleOnClose = () => {\n onClose();\n onClearFields();\n };\n\n /**\n * Handles the save action for creating a new contact.\n */\n const handleOnSave = useCallback(() => {\n const phoneNumberParsed = parseContactPhoneNumber(phoneNumber.value);\n\n if (email && email.value === '') {\n toast.error('The email is required.');\n return;\n }\n\n if (phoneNumber.value && phoneNumberParsed.length < 10) {\n toast.error('The phone number must have 10 digits.');\n return;\n }\n\n if (type.value === 'Organization' && companyName.value === '') {\n toast.error('The company name is required.');\n return;\n }\n\n const data = {\n ...(firstName.value ? { firstName: firstName.value } : {}),\n ...(lastName.value ? { lastName: lastName.value } : {}),\n ...(phoneNumber.value ? { phoneNumber: phoneNumberParsed } : {}),\n ...(type.value ? { type: type.value } : {}),\n ...(type.value === 'Organization' && companyName.value ? { companyName: companyName.value } : {}),\n email: email.value,\n demographic: {\n gender: gender.value,\n raceEthnicity: raceEthnicity.value,\n },\n };\n\n setLoading(true);\n createContact(data)\n .then(() => {\n onClose();\n onUpdate();\n onClearFields();\n setLoading(false);\n toast.success('Contact created successfully!');\n })\n .catch((error) => {\n setLoading(false);\n\n const message = error?.response?.data?.error?.details[0]?.message || error?.response?.data?.message;\n\n toast.error(message);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [email, phoneNumber, type, companyName, firstName, lastName, gender, raceEthnicity]);\n\n return (\n \n \n \n \n

New Contact

\n Creation of new contacts\n
\n \n
\n
\n
\n );\n};\n\nModalCreateContact.propTypes = {\n open: PropTypes.bool,\n onClose: PropTypes.func,\n onUpdate: PropTypes.func,\n};\n\nexport default ModalCreateContact;\n","import { Avatar, Badge, Box, Divider, Typography, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport moment from 'moment';\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nconst useStyles = makeStyles(() => ({\n largeIcon: {\n fontSize: 49,\n },\n editingContent: {\n position: 'absolute',\n top: '12px',\n right: '12px',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n editingMessage: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '8px',\n border: '1px solid #FEB535',\n background: '#FFE4B4',\n width: '106px',\n height: '32px',\n marginRight: '15px',\n fontFamily: 'Roboto',\n fontSize: '15px',\n fontStyle: 'normal',\n fontWeight: 500,\n lineHeight: '26px',\n letterSpacing: '0.46px',\n textTransform: 'uppercase',\n },\n editButton: {\n color: '#848484',\n cursor: 'pointer',\n fontSize: '24px',\n display: 'none',\n },\n deleteButton: {\n color: '#848484',\n cursor: 'pointer',\n fontSize: '24px',\n display: 'none',\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n position: 'absolute',\n top: '12px',\n right: '12px',\n },\n timelineItem: {\n fontSize: 14,\n position: 'relative',\n '&:hover': {\n '& $editButton': {\n display: 'block',\n },\n '& $deleteButton': {\n display: 'block',\n },\n },\n },\n}));\n\nconst TimeLineItem = ({\n createdAt,\n avatar,\n profileImg,\n useDefaultImage = false,\n children,\n unread,\n canEdit,\n canDelete,\n onEditClick,\n onDeleteClick,\n editing,\n onCancelEditingClick,\n updatedAt,\n editedByInfo,\n}) => {\n const classes = useStyles();\n const currentTime = moment();\n\n const getDate = (date) => `${moment(date).format('MM/DD/YYYY')} at ${moment(date).format('hh:mm A')}`;\n\n const getTooltipDate = (date) => {\n if (moment(date).format('MM-DD-YYYY') === currentTime.format('MM-DD-YYYY')) {\n return `${moment(date).fromNow()}`;\n }\n const days = currentTime.endOf('day').diff(moment(date).endOf('day'), 'days');\n return `${days} Day${days === 1 ? '' : 's'} ago`;\n };\n\n const getEditedTooltipDate = (date) => {\n let ago;\n if (moment(date).format('MM-DD-YYYY') === currentTime.format('MM-DD-YYYY')) {\n ago = `${moment(date).fromNow()}`;\n } else {\n const days = currentTime.endOf('day').diff(moment(date).endOf('day'), 'days');\n ago = `${days} Day${days === 1 ? '' : 's'} ago`;\n }\n return `Edited ${ago}`;\n };\n\n return (\n \n {editing && (\n \n Editing\n \n X\n \n \n )}\n \n {canEdit && !editing && }\n {canDelete && !editing && }\n \n \n {unread && }\n {useDefaultImage ? (\n \n ) : (\n \n {avatar}\n \n )}\n \n \n {children}\n \n \n {getDate(createdAt)}\n \n {updatedAt && editedByInfo ? (\n \n (Edited on {getDate(updatedAt)})\n \n ) : null}\n \n\n \n \n \n );\n};\n\nexport default TimeLineItem;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAAXnVPIAAAAwklEQVQ4EWNgoBAwouvPLW79Dxf7z3Bwcl+1A5yPhcGERYwkIRoYAHQ20A8f/zP8f/ifkeECSc6BKc4taj2QU9TaAOPjo4kKRJCBDIwM9jCDJvdWw/URCIP/+jnFLfsZGP7rwzSj0yzoAsj8/4xA8J+BERgWjHArkRUA2XhdANR8AZQOQDSaPvxcUgKRGd0ocIAB/Qx0tYaZlbPiqeP7dqCrQeZjhgE4tME+FgA63QBZMTY23jDApgFdjGID0A0kmQ8AG5U2YNNDqE8AAAAASUVORK5CYII=\"","/* eslint-disable no-prototype-builtins */\n/* eslint-disable no-nested-ternary */\nimport React, { Fragment, useEffect, useState } from 'react';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { Box, IconButton, makeStyles, Tooltip, Typography } from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport PropTypes from 'prop-types';\n\nimport MenuTable from '../../components/MenuTable';\nimport { onTranslate } from '../../services/unarmed';\nimport { formatPhoneNumber, checkValueType, createFormTypePageId } from '../../utils';\nimport formatTxt from '../../utils/formatText';\nimport { getAboutUsValue } from './AditionalDetails';\nimport AccordionWrap from '../../components/AccordionWrap';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3B70FE',\n fontWeight: '500',\n margin: '20px 0',\n },\n label: {\n fontSize: 12,\n color: '#585858',\n },\n title: {\n width: '100%',\n fontWeight: '500',\n fontSize: '16',\n },\n subTitle: {\n width: '100%',\n fontWeight: '400',\n fontSize: '15',\n },\n}));\n\nexport const getTypeText = (type) => {\n switch (type) {\n case 'basicInformation':\n return 'Basic Information';\n case 'demographics':\n return 'Demographics';\n case 'incidentExternalLinks':\n return 'Incident External Links';\n case 'statement':\n return 'Statement';\n case 'uploadDocument':\n return 'Attachments';\n case 'policeOrEmployee':\n return 'Name of Police Officer (if Known)';\n case 'witnesses':\n return 'Name of Witness(es) or Others Involved';\n case 'isEnglishPrimaryLanguage':\n return 'Is English your primary language?';\n case 'whyYouWantToThank':\n return 'Why would you like to thank this employee?';\n case 'howDidYouHearAboutUs':\n return 'How did you hear about us?';\n case 'whatBestDescribesYou':\n return 'What best describes you?';\n case 'firstName':\n return 'First Name';\n case 'email':\n return 'Email';\n case 'fileAnonymously':\n return 'Anonymously';\n case 'lastName':\n return 'Last Name';\n case 'street':\n return 'Street';\n case 'aptUnit':\n return 'Apt Unit#';\n case 'state':\n return 'State';\n case 'city':\n return 'City';\n case 'zipCode':\n return 'Zip Code';\n case 'phone':\n return 'Home/Cell Telephone';\n case 'relationship':\n return 'Relationship';\n case 'badgeNumber':\n return 'Badge Number';\n case 'officerDescription':\n return 'Officer Description';\n case 'dateOfBirth':\n return 'Date Of Birth';\n case 'gender':\n return 'Gender';\n case 'raceEthnicity':\n return 'Race/Ethnicity';\n case 'race':\n return 'Race';\n case 'ethnicity':\n return 'Ethnicity';\n case 'sexualOrientation':\n return 'Sexual Orientation';\n case 'birthdate':\n return 'Birthday';\n case 'workTelephone':\n return 'Work Telephone';\n default:\n return 'Not support';\n }\n};\n\nexport const getDemographicsLabel = (index) => {\n if (index === 0) {\n return 'dateOfBirth';\n }\n if (index === 1) {\n return 'gender';\n }\n if (index === 2) {\n return 'raceEthnicity';\n }\n if (index === 3) {\n return 'race';\n }\n if (index === 4) {\n return 'ethnicity';\n }\n\n return 'sexual';\n};\n\nconst localeLan = ['English'];\n\nexport default function FormTypeJson({ formType, onSetupFiles, external, onClickEditPage }) {\n const classes = useStyles();\n const [textToTranslate, setTextToTranslate] = useState([]);\n\n function getFormTypeTranslateTexts() {\n if (formType) {\n const textTranslate = [];\n formType.pages.forEach((page) => {\n page.sections.forEach((section) => {\n section.components.forEach((component, index) => {\n if (component.type === 'longText' || component.data.type === 'statement') {\n textTranslate[index] = {\n text: '',\n translateState: '',\n options: localeLan,\n };\n }\n });\n });\n });\n setTextToTranslate(textTranslate);\n }\n }\n useEffect(() => {\n getFormTypeTranslateTexts();\n }, [formType]);\n\n const onSelect = (index, valueToTranslate, value) => {\n if (value === 'Show Original') {\n getFormTypeTranslateTexts();\n return;\n }\n onTranslate(valueToTranslate).then(({ translations }) => {\n const translation = Array.from(textToTranslate);\n translation[index] = {\n text: translations?.[0],\n translateState: value,\n options: ['Show Original'],\n };\n setTextToTranslate(translation);\n });\n };\n\n const getParentLabel = (component, text = null) => (\n \n \n {component?.data?.question ||\n getTypeText(text || (component.type === 'questionBank' ? component.data.type : component.type))}{' '}\n \n \n );\n\n const renderTranslate = (componentIndex, componentValue) => (\n onSelect(componentIndex, componentValue, value)}\n >\n \n \n {textToTranslate?.[componentIndex]?.translateState === 'Show Original' ||\n !textToTranslate?.[componentIndex]?.translateState\n ? 'Translate To'\n : textToTranslate?.[componentIndex]?.translateState}\n \n\n \n \n \n );\n\n const renderContent = () =>\n formType?.pages.map((page, pageIndex) => {\n const pageId = createFormTypePageId(page.name, pageIndex);\n\n return (\n \n \n \n {page.name}\n \n {onClickEditPage && (\n {\n e.stopPropagation();\n if (onClickEditPage) {\n onClickEditPage(page, pageIndex);\n }\n }}\n >\n \n \n )}\n \n }\n >\n \n {page.sections.map((section, sectionIndex) => (\n \n \n \n {section.name === 'Section Name' ? ' ' : section.name}\n \n \n {external?.cityBySivil && sectionIndex === 0 && (\n \n \n City\n \n \n {external?.cityBySivil?.organization?.city || 'N/A'}\n \n \n Department\n \n \n {external?.cityBySivil?.department?.name || 'N/A'}\n \n \n Location\n \n \n {external?.cityBySivil?.place?.name || 'N/A'}\n \n \n )}\n \n {section.components.map((component, componentIndex) => {\n if (component.type === 'title') {\n return (\n \n {component?.data?.text}\n \n );\n }\n if (component.type === 'subtitle') {\n return (\n \n {component?.data?.text}\n \n );\n }\n if (component.value === null) {\n return (\n \n {getParentLabel(component)}\n \n Not Specified\n \n \n );\n }\n if (Array.isArray(component.value)) {\n if (\n component.value &&\n Array.isArray(component?.value[0]) &&\n component?.value[0]?.every((file) => file?.hasOwnProperty('url'))\n ) {\n return (\n <>\n {component?.value[0]?.map((file, fileIndex) => (\n \n {getParentLabel(component)}\n \n \n File - {fileIndex + 1}\n \n\n \n {formatTxt(file?.name, 14) || 'Not Specified'}\n \n \n \n ))}\n \n );\n }\n\n if (!component.value[0] && component.value?.length === 1) {\n return (\n \n {getParentLabel(component)}\n \n \n Not Specified\n \n \n \n );\n }\n\n return component.value.map((objKey, objIndex) => {\n if (Array.isArray(objKey)) {\n if (objKey[0]?.hasOwnProperty('firstName')) {\n return objKey.map((obKey, objIndex2) => {\n const keysObj = Object.keys(obKey);\n\n return (\n \n {getParentLabel(component)}\n {keysObj.map((key, idx) => (\n \n \n {getTypeText(key)}\n \n \n \n {formatPhoneNumber(obKey[key]) || 'Not Specified'}\n \n \n \n ))}\n \n );\n });\n }\n\n if (objKey?.[objIndex]?.hasOwnProperty('download_url')) {\n return objKey.map((obKey, objIndex2) => (\n \n {getParentLabel(component)}\n \n \n File - {objIndex2 + 1}\n \n\n \n {formatTxt(obKey?.name, 14) || 'Not Specified'}\n \n \n \n ));\n }\n return (\n <>\n {getParentLabel(\n component,\n component?.data?.type === 'demographics' && getDemographicsLabel(objIndex)\n )}\n \n {component.data.type === 'howDidYouHearAboutUs' ? (\n \n \n {objKey.map((key) => getAboutUsValue(key)).join(', ') || 'Not Specified'}\n \n \n ) : (\n \n {objKey.join(', ') || 'Not Specified'}\n \n )}\n \n \n );\n }\n\n if (!objKey) {\n return (\n <>\n {getParentLabel(\n component,\n component?.data?.type === 'demographics' && getDemographicsLabel(objIndex)\n )}\n \n \n Not Specified\n \n \n \n );\n }\n\n if (component.type === 'fileUpload') {\n onSetupFiles(component.value);\n return (\n <>\n {objIndex === 0 && getParentLabel(component)}\n \n \n File-{objIndex + 1}\n \n \n {formatTxt(objKey?.name, 14)}\n \n \n \n );\n }\n\n if (component.type === 'multipleChoices' || component.type === 'dropdown') {\n return (\n <>\n {objIndex === 0 && getParentLabel(component)}\n \n \n \n {(objIndex === 0 && component.value.join(', ')) || ''}\n \n \n \n \n );\n }\n\n if (typeof objKey === 'object') {\n const objKeysFromArray = Object.keys(objKey);\n\n return (\n <>\n {getParentLabel(component)}\n {objKeysFromArray.map((keyFromArray, indexFromArray) => {\n // Hide fileAnonymously if its null\n if (keyFromArray === 'fileAnonymously' && objKey[keyFromArray] === null) {\n return null;\n }\n\n let textValue = objKey[keyFromArray]\n ? formatTxt(objKey[keyFromArray], 25)\n : 'Not specified';\n\n if (keyFromArray?.toLowerCase()?.includes('phone')) {\n textValue = objKey[keyFromArray]\n ? formatPhoneNumber(objKey[keyFromArray])\n : 'Not specified';\n }\n\n if (keyFromArray === 'fileAnonymously') {\n textValue = objKey[keyFromArray] ? 'Yes' : 'No';\n }\n\n return (\n \n \n {getTypeText(keyFromArray)}\n \n \n {textValue}\n \n \n );\n })}\n \n );\n }\n\n return (\n <>\n {component?.data?.type === 'statement' ? (\n \n {getParentLabel(component, component?.data?.type === 'demographics' && 'dateOfBirth')}\n {renderTranslate(componentIndex, objKey)}\n \n ) : (\n getParentLabel(component, component?.data?.type === 'demographics' && 'dateOfBirth')\n )}\n \n {component?.data?.type === 'statement' ? (\n \n {textToTranslate?.[componentIndex]?.text\n ? textToTranslate?.[componentIndex]?.text\n : checkValueType(objKey, component?.data?.type) || 'Not Specified'}\n \n ) : (\n \n {component?.data?.type === 'isEnglishPrimaryLanguage' ? (\n \n {formatTxt(objKey !== 'yes' ? `No, ${objKey}` : 'Yes') || 'Not Specified'}\n \n ) : (\n \n {formatTxt(checkValueType(objKey, component?.data?.type)) || 'Not Specified'}\n \n )}\n \n )}\n \n \n );\n });\n }\n if (typeof component.value === 'object') {\n const objectData = component.data;\n const objKeys = Object.keys(component.value).filter((key) => {\n if (key === 'fileAnonymously') {\n return objectData.showFileAnonymously;\n }\n return objectData[key]?.visible;\n });\n\n return (\n \n {getParentLabel(component)}\n {objKeys.map((objKey, objIndex) => (\n \n \n {objectData[objKey]?.question ||\n objectData[objKey]?.text ||\n getTypeText(objKey) ||\n objKey}\n \n {objKey === 'fileAnonymously' ? (\n \n {component.value[objKey] === true ? 'Yes' : 'No' || 'Not Specified'}\n \n ) : objKey === 'city' || objKey === 'state' ? (\n \n {formatPhoneNumber(formatTxt(component.value[objKey]?.name, 18)) || 'Not Specified'}\n \n ) : (\n \n \n {formatPhoneNumber(formatTxt(component.value[objKey]?.name, 18)) ||\n formatPhoneNumber(\n formatTxt(component.value[objKey], 18),\n component.value[objKey]\n ) ||\n 'Not Specified'}\n \n \n )}\n \n ))}\n \n );\n }\n\n return (\n <>\n {component?.type === 'longText' ? (\n \n {getParentLabel(component)}\n {renderTranslate(componentIndex, component?.value)}\n \n ) : (\n getParentLabel(component)\n )}\n \n {component?.type === 'longText' ? (\n \n {textToTranslate?.[componentIndex]?.text\n ? textToTranslate?.[componentIndex]?.text\n : checkValueType(component?.value, component?.type) || 'Not Specified'}\n \n ) : (\n \n \n {checkValueType(component?.value, component?.type) || 'Not Specified'}\n \n \n )}\n \n \n );\n })}\n \n \n ))}\n \n \n \n );\n });\n return <>{renderContent()} ;\n}\n\nFormTypeJson.propTypes = {\n formType: PropTypes.object,\n onSetupFiles: PropTypes.func,\n external: PropTypes.object,\n onClickEditPage: PropTypes.func,\n};\n","import React from 'react';\n\nimport { Badge, Button } from '@material-ui/core';\nimport FilterListIcon from '@material-ui/icons/FilterList';\n\nconst FilterButton = ({ count, dataTestId, onClick, openFilter, marginRight, marginLeft }) => (\n
\n \n \n \n \n \n
\n);\n\nexport default FilterButton;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { Button, Divider, Typography, Box } from '@material-ui/core';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport PropTypes from 'prop-types';\n\nimport Tag from './Tag';\nimport { useTags } from '../hooks/useTags';\nimport Card from './Card';\nimport { CustomSwitch } from '../formEngine/components/WrapperComponent';\n\n/**\n * Component for displaying and managing tags filters.\n * @component\n * @param {function} onSubmitFilters - Function to call when filters are submitted.\n */\nconst TagsFilters = ({ onSubmitFilters, maintainAlwaysOpen = true, archivedOnly, setArchivedOnly }) => {\n const [open, setOpen] = useState(false);\n const [showErrorMessage, setShowErrorMessage] = useState(false);\n const [search, setSearch] = useState('');\n const [tagsRecently, onChangeSearch, loading] = useTags(false);\n const [selectedTags, setSelectedTags] = useState([]);\n const [searching, setSearching] = useState(false);\n const [searchedText, setSearchedText] = useState('');\n\n /**\n * Handle submission of filters.\n * @function\n */\n const handleOnSubmit = useCallback(() => {\n onSubmitFilters(selectedTags.map((tag) => tag?._id));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedTags]);\n\n const doneTypingInterval = 750;\n let interval;\n\n const tagsRecentlyFiltered = tagsRecently.filter(\n (_tag) => !selectedTags.find((selectedTag) => selectedTag?._id === _tag?._id)\n );\n\n useEffect(() => {\n handleOnSubmit();\n }, [selectedTags, handleOnSubmit]);\n\n return (\n
\n {!maintainAlwaysOpen && (\n \n setOpen(!open)}>\n \n \n \n )}\n {(open || maintainAlwaysOpen) && (\n \n \n \n Tags\n \n {\n const { value } = target;\n\n setSearch(value);\n }}\n onKeyUp={() => {\n clearTimeout(interval);\n\n interval = setTimeout(() => {\n onChangeSearch(search);\n setSearchedText(search);\n if (search !== '') {\n setSearching(true);\n } else {\n setSearching(false);\n }\n }, doneTypingInterval);\n }}\n onKeyDown={() => {\n clearTimeout(interval);\n }}\n />\n {searching && !loading && (\n <>\n \n \n Search result\n \n {searching && tagsRecently.length === 0 ? (\n \n No tags with the name \"{searchedText}\" were found\n \n ) : (\n <>\n {searching && selectedTags.length > 0 && tagsRecentlyFiltered.length === 0 && (\n \n All the tags found were selected\n \n )}\n \n )}\n \n {tagsRecentlyFiltered.map((tag) => (\n {\n setSelectedTags((_tags) => [..._tags, tag]);\n }}\n />\n ))}\n \n \n )}\n {selectedTags.length > 0 && (\n <>\n \n \n Selected {selectedTags.length === 1 ? 'tag' : 'tags'}\n \n \n {selectedTags.map((tag) => (\n {\n setSelectedTags((_tags) => _tags.filter((_tag) => _tag?._id !== tag?._id));\n }}\n />\n ))}\n \n \n )}\n {showErrorMessage && (\n \n Please select at least one tag to filter the attachments\n \n )}\n \n \n \n Archived Only{' '}\n {\n setArchivedOnly(e.target.checked);\n onSubmitFilters(\n selectedTags.map((tag) => tag?._id),\n e.target.checked\n );\n }}\n />\n \n \n \n \n {\n onSubmitFilters([]);\n setSelectedTags([]);\n setSearch('');\n onChangeSearch('');\n setArchivedOnly(false);\n setSearching(false);\n setShowErrorMessage(false);\n }}\n >\n Clear Filters\n \n \n {!maintainAlwaysOpen && (\n {\n setOpen(false);\n onSubmitFilters([]);\n setShowErrorMessage(false);\n }}\n style={{ textTransform: 'none' }}\n autoCapitalize=\"none\"\n >\n Cancel\n \n )}\n \n \n \n \n )}\n
\n );\n};\n\nTagsFilters.propTypes = {\n maintainAlwaysOpen: PropTypes.bool,\n onSubmitFilters: PropTypes.func.isRequired,\n};\n\nconst ContainerButton = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-bottom: 16px;\n`;\n\nconst ButtonFilter = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 47px;\n height: 47px;\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.25s ease;\n\n ${(props) =>\n props.open\n ? `\n background-color: #fff;\n border: 1px solid #2e66fe;\n `\n : `\n background-color: #2e66fe;\n `}\n`;\n\nconst ButtonLink = styled.button`\n color: #2e66fe;\n font-size: 14px;\n font-weight: 500;\n border: 0;\n background-color: transparent;\n cursor: pointer;\n`;\n\nconst Input = styled.input`\n font-family: Roboto;\n font-size: 16px;\n color: rgba(87, 90, 102, 1);\n background-color: #f8f8f9;\n margin-bottom: 8px;\n border: 0;\n width: 100%;\n padding: 16px;\n\n &:focus-visible,\n &:focus,\n &:active {\n border: 0;\n }\n`;\n\nconst TextRecently = styled.p`\n font-family: Roboto;\n font-size: 16px;\n font-weight: 400;\n line-height: 24px;\n letter-spacing: 0em;\n text-align: left;\n margin-bottom: 4px;\n color: rgba(136, 141, 160, 1);\n`;\n\nexport default TagsFilters;\n","import { Box, CircularProgress, Typography, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nimport LogoHome from './LogoHome';\n\nconst useStyles = makeStyles(() => ({\n content: {\n height: '116.1vh',\n width: 'calc(100vw + 14%)',\n background: '#F9FAFD',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n logoOrganization: {\n width: 300,\n maxHeight: '100px',\n objectFit: 'contain',\n padding: 10,\n alignSelf: 'center',\n },\n}));\n\nconst LoadingScreen = () => {\n const classes = useStyles();\n\n return (\n \n \n \n );\n};\n\nexport const BoxLoading = () => (\n \n \n \n Loading...\n \n \n);\n\nexport default LoadingScreen;\n","/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable no-nested-ternary */\nimport { Box, makeStyles, Tabs, FormControlLabel, Switch, CircularProgress, withStyles } from '@material-ui/core';\nimport React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport FilterNoneIcon from '@material-ui/icons/FilterNone';\nimport { blue } from '@material-ui/core/colors';\nimport { useDrag } from 'react-dnd';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport { COMPONENT } from '../utils/constants';\nimport TabPanel from '../../components/TabPanel';\nimport { TabComp } from '../../pages/CaseDetails/CaseDetails';\nimport { useDataReportLinkProvider } from '../../provider/DataReportLinkProvider';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n borderRadius: 5,\n border: '1px solid #2E66FE33',\n },\n header: {\n background: '#fff',\n borderRadius: '5px 5px 0 0',\n borderBottom: '1px solid #2E66FE1A',\n },\n body: {\n background: '#F9FAFD80',\n borderRadius: 5,\n },\n button: {\n background: '#1F63FF',\n textTransform: 'capitalize',\n cursor: 'pointer',\n minWidth: 36,\n boxShadow: 'unset',\n color: '#fff',\n padding: '6px 16px',\n '&:hover': {\n background: '#1F63FF',\n boxShadow: 'unset',\n },\n },\n dndContainer: {\n display: 'flex',\n alignItems: 'center',\n transition: 'ease all .3s',\n },\n}));\n\nexport function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n}\n\nexport const CustomSwitch = withStyles({\n switchBase: {\n '&$checked': {\n color: blue.A700,\n },\n '&$checked + $track': {\n backgroundColor: blue.A700,\n },\n },\n checked: {},\n track: {},\n})(Switch);\n\n/**\n * WrapperComponent - A component that wraps other components and provides various rendering and functionality options.\n * @param {Object} props - The props object containing various configuration options.\n * @param {ReactNode} props.children - The child components to be wrapped.\n * @param {Object|null} props.renderSettings - The settings for rendering.\n * @param {Function} props.renderPreview - The function to render preview. Defaults to a function returning 'Preview'.\n * @param {boolean} props.includeRequired - Flag indicating whether required fields should be included.\n * @param {Object} props.required - The required field object containing value and onChange function.\n * @param {string} props.id - The id of the component.\n * @param {Function} props.onDeleteComponent - Function to handle deletion of the component.\n * @param {string} props.path - The path of the component.\n * @param {boolean} props.loading - Flag indicating whether component is in loading state.\n * @param {boolean} props.isQuestionBankComponent - Flag indicating whether the component is a question bank.\n * @param {boolean} props.containsQuestionBanks - Flag indicating whether the component contains question banks.\n * @param {boolean} props.duplicateComponent - Flag indicating whether the component is a duplicate.\n * @param {number} props.componentIndex - The index of the component.\n * @param {boolean} props.allowDnD - Flag indicating whether drag and drop is allowed.\n * @param {boolean} props.visible - Flag indicating whether the component is visible.\n * @param {boolean} props.isStaticComponent - Flag indicating whether the component is static.\n * @param {boolean} props.dataSaved - Flag indicating whether the data is saved.\n * @param {Function} props.refActionModal - Reference function for action modal.\n * @param {Function} props.setModal - Function to set modal.\n * @param {boolean} props.isDemographicComponent - Flag indicating whether the component is demographic.\n * @param {Function} props.onBlur - Function to handle blur event.\n * @param {boolean} props.shouldRenderToggle - Flag indicating whether toggle should be rendered.\n * @param {boolean} props.allowMoveComponents - Flag indicating whether moving components is allowed.\n * @param {boolean} props.withDataReportLinkSettings - Flag indicating whether data report link settings are enabled.\n * @param {Object} props.uniqueFieldId - The unique field id object containing value and onChange function.\n */\nexport default function WrapperComponent({\n special = { value: '', onChange: () => {} },\n customFieldModule = false,\n children,\n renderSettings = null,\n renderPreview = () => 'Preview',\n includeRequired = true,\n required = { value: '', onChange: () => {} },\n id,\n componentId,\n onDeleteComponent,\n path,\n loading,\n isQuestionBankComponent,\n containsQuestionBanks,\n duplicateComponent,\n componentIndex,\n allowDnD = true,\n visible,\n isStaticComponent,\n dataSaved,\n refActionModal,\n setModal,\n isDemographicComponent,\n onBlur = () => {},\n shouldRenderToggle,\n allowMoveComponents = true,\n withDataReportLinkSettings,\n uniqueFieldId = { value: false, onChange: () => {} },\n}) {\n const classes = useStyles();\n const [value, setValue] = useState(\n dataSaved && !isQuestionBankComponent ? (typeof renderSettings === 'function' ? 2 : 1) : 0\n );\n const ref = useRef(null);\n const [isHover, setIsHover] = useState(false);\n\n const { setComponentsChanged } = useDataReportLinkProvider();\n\n const deleteFromDataReportLink = () => {\n setComponentsChanged((components) => ({\n ...components,\n [componentId]: undefined,\n }));\n };\n\n const [{ isDragging }, drag] = useDrag({\n item: { type: COMPONENT, id, path, isCustomComponent: allowMoveComponents },\n type: COMPONENT,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const opacity = isDragging ? 0 : 1;\n if (!isQuestionBankComponent && allowDnD) {\n drag(ref);\n }\n const handleChange = (event, newValue) => {\n setValue(newValue);\n };\n\n return (\n setIsHover(true)}\n onMouseLeave={() => {\n if (!isDragging) {\n onBlur();\n setIsHover(false);\n }\n }}\n >\n {!isQuestionBankComponent && !isDemographicComponent && (\n \n )}\n \n \n \n \n {containsQuestionBanks && !isQuestionBankComponent && (\n <>\n {withDataReportLinkSettings ? (\n \n \n \n \n ) : (\n \n )}\n \n )}\n {isQuestionBankComponent && (\n \n {!allowDnD && }\n \n \n )}\n {!containsQuestionBanks && !isQuestionBankComponent && (\n \n \n {typeof renderSettings === 'function' && }\n \n \n )}\n \n \n {containsQuestionBanks && !isQuestionBankComponent && !isDemographicComponent && !special.value && (\n {\n setModal(true);\n refActionModal.current = {\n nameAction: 'question',\n actionPress: () => {\n deleteFromDataReportLink();\n onDeleteComponent();\n },\n };\n }}\n />\n )}\n {!containsQuestionBanks && !isQuestionBankComponent && !isDemographicComponent && !special.value && (\n <>\n duplicateComponent(parseInt(path), componentIndex)}\n htmlColor=\"#6D7385\"\n style={{\n cursor: 'pointer',\n }}\n fontSize=\"small\"\n />\n {\n setModal(true);\n refActionModal.current = {\n nameAction: 'question',\n actionPress: () => {\n deleteFromDataReportLink();\n onDeleteComponent();\n },\n };\n }}\n />\n \n )}\n {isStaticComponent && }\n {shouldRenderToggle && }\n \n \n \n {containsQuestionBanks && !isQuestionBankComponent && (\n <>\n {withDataReportLinkSettings ? (\n <>\n \n {children}\n \n {typeof renderSettings === 'function' && (\n \n {renderSettings()}\n \n )}\n \n ) : (\n children\n )}\n \n )}\n {isQuestionBankComponent && (\n <>\n {!allowDnD && (\n \n {children}\n \n {includeRequired || customFieldModule ? (\n \n }\n labelPlacement=\"start\"\n label={`Required ${customFieldModule ? 'Field' : 'Question'}`}\n />\n ) : (\n \n )}\n {loading && }\n \n \n )}\n \n {renderPreview()}\n \n \n )}\n {!containsQuestionBanks && !isQuestionBankComponent && (\n <>\n \n {children}\n \n {includeRequired || customFieldModule ? (\n \n }\n labelPlacement=\"start\"\n label={`Required ${customFieldModule ? 'Field' : 'Question'}`}\n />\n ) : (\n \n )}\n {loading && }\n \n \n {typeof renderSettings === 'function' && (\n \n {renderSettings()}\n \n )}\n \n {renderPreview()}\n \n \n )}\n \n \n \n
\n );\n}\n\nWrapperComponent.propTypes = {\n children: PropTypes.node.isRequired,\n renderSettings: PropTypes.object,\n renderPreview: PropTypes.func,\n includeRequired: PropTypes.bool,\n required: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func,\n }),\n id: PropTypes.string.isRequired,\n componentId: PropTypes.string.isRequired,\n onDeleteComponent: PropTypes.func.isRequired,\n path: PropTypes.string.isRequired,\n loading: PropTypes.bool.isRequired,\n isQuestionBankComponent: PropTypes.bool.isRequired,\n containsQuestionBanks: PropTypes.bool.isRequired,\n duplicateComponent: PropTypes.bool.isRequired,\n componentIndex: PropTypes.number.isRequired,\n allowDnD: PropTypes.bool,\n visible: PropTypes.bool.isRequired,\n isStaticComponent: PropTypes.bool.isRequired,\n dataSaved: PropTypes.bool.isRequired,\n refActionModal: PropTypes.func.isRequired,\n setModal: PropTypes.func.isRequired,\n isDemographicComponent: PropTypes.bool.isRequired,\n onBlur: PropTypes.func,\n shouldRenderToggle: PropTypes.bool,\n allowMoveComponents: PropTypes.bool,\n withDataReportLinkSettings: PropTypes.bool,\n uniqueFieldId: PropTypes.shape({\n value: PropTypes.bool,\n onChange: PropTypes.func,\n }),\n};\n","import React from 'react';\nimport 'date-fns';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { KeyboardDateTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport CalendarTodayIcon from '@material-ui/icons/CalendarToday';\n\nfunction DateTimePickerMUI({\n date,\n setdate,\n label,\n disableFuture,\n minDate,\n dateToCompare,\n type = 'start',\n propPadding = 10,\n disabled,\n}) {\n const onChangeStartDate = (dt) => {\n const d1 = new Date(dt);\n const d2 = new Date(dateToCompare);\n if (d1.getTime() > d2.getTime() && dateToCompare) {\n return;\n }\n setdate(dt);\n };\n\n const onChangeEnd = (dt) => {\n const d1 = new Date(dt);\n const d2 = new Date(dateToCompare);\n if (d1.getTime() < d2.getTime() && dateToCompare) {\n return;\n }\n setdate(dt);\n };\n\n return (\n \n }\n KeyboardButtonProps={{\n 'aria-label': 'change date',\n style: { padding: propPadding },\n }}\n format=\"yyyy/MM/dd hh:mm a\"\n />\n \n );\n}\n\nexport default DateTimePickerMUI;\n","import { unarmedWithToken } from './axios';\n\nexport async function getStatesOfCountry() {\n try {\n const { data } = await unarmedWithToken().get(`/states`);\n return data;\n } catch (error) {\n console.log('error', error);\n }\n}\nexport async function getCitiesOfState(stateIsoCode) {\n try {\n const { data } = await unarmedWithToken()\n .get(`/states/${stateIsoCode}/cities\n `);\n return data;\n } catch (error) {\n console.log('error', error);\n }\n}\n","import React, { useState, createContext, useEffect, useCallback } from 'react';\nimport { toast } from './components/Notification';\nimport { unarmedWithToken } from './services/axios';\nimport { signOut } from './services/firebase';\nimport { getMe, getOrganizationsByState } from './services/unarmed';\nimport firebase from 'firebase';\n\nexport const Context = createContext();\n\nexport function getOrg(location) {\n const org = location.href.split('.')[0].split('//')[1];\n if (org.includes('localhost')) {\n return process.env.REACT_APP_SUBDOMAIN || 'dashboard-dev';\n }\n\n return org;\n}\n\nconst Provider = ({ children }) => {\n const [isAuth, setIsAuth] = useState(false);\n const [authUser, setAuthUser] = useState(null);\n const [me, setMe] = useState(null);\n const [active, setActive] = useState(window.location.pathname);\n const [organization, setOrganization] = useState(null);\n const [requireRefresh, setRequireRefresh] = useState(false);\n const [loadingOrg, setLoadingOrg] = useState('idle');\n const [signUpUser, setSignUpUser] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const onGetMe = useCallback(async () => {\n try {\n if (authUser?.tokenId) {\n const { data } = await getMe(authUser.tokenId);\n\n firebase.analytics().setUserProperties({ role: data.role });\n\n setMe(data);\n setLoading(false);\n }\n } catch (error) {\n if (\n error.response.data.message === 'Expired token' ||\n error.response.data.message === 'Authentication required'\n ) {\n setLoading(false);\n signOut();\n setIsAuth(false);\n setAuthUser(null);\n toast.error(\n error.response.data.message === 'Expired token'\n ? 'Your password has expired. Please reset your password.'\n : 'This user is not allowed to be authenticated'\n );\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n }\n }\n }, [authUser?.tokenId]);\n\n useEffect(() => {\n if (authUser && authUser.tokenId) {\n // GetMe everytime token changes\n setLoading(true);\n onGetMe();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [authUser?.tokenId]);\n\n useEffect(() => {\n const { location } = window;\n\n setLoadingOrg('pending');\n getOrganizationsByState(getOrg(location))\n .then((res) => {\n setOrganization(res.data);\n setLoadingOrg('resolved');\n })\n .catch((err) => {\n console.log(err);\n setLoadingOrg('rejected');\n });\n }, []);\n\n useEffect(() => {\n if (me && organization) {\n if (me?.organizationId !== organization?.id) {\n toast.error('You are not allowed to access this organization');\n signOut();\n setIsAuth(false);\n setAuthUser(null);\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n }\n }\n }, [me, organization]);\n\n const value = {\n isAuth,\n authUser,\n active,\n setActive,\n requireRefresh,\n setIsAuth,\n signUpUser,\n setSignUpUser,\n setRequireRefresh,\n activateAuth: (user) => {\n setAuthUser(user);\n },\n setAuthUser,\n removeAuthToLogin: (message = 'Please Re-authenticate to add a MFA') => {\n signOut();\n setIsAuth(false);\n setAuthUser(null);\n if (message) {\n toast.error(message);\n }\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n },\n removeAuth: async () => {\n await unarmedWithToken().post('/activity/logout');\n await signOut();\n setIsAuth(false);\n setAuthUser(null);\n // history.push('/login');\n setActive('/');\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n },\n loadingOrg,\n setLoadingOrg,\n myUser: me,\n setMyuser: setMe,\n organization,\n setOrganization,\n onGetMe,\n };\n\n return {children};\n};\n\nexport default {\n Provider,\n Consumer: Context.Consumer,\n};\n","import { Box, Typography, makeStyles } from '@material-ui/core';\nimport React, { useContext } from 'react';\nimport { Context } from '../Context';\nimport PropTypes from 'prop-types';\nimport DashButton from './DashButton';\nimport FilterButton from './FilterButton';\nimport useOrganization from '../hooks/useOrganization';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nconst useStyles = makeStyles(() => ({\n title: {\n marginTop: 50,\n },\n}));\n\nconst PageButtons = ({\n archivedOnly,\n text = '',\n length = 0,\n openFilter,\n setOpenFilter,\n onClickDelete,\n disabledDelete,\n onClickMerge,\n onClickArchiveOrUnarchive,\n selectedLength,\n downloadButtonText = 'Download',\n onClickFlag,\n disabledFlag,\n onClickDownload,\n disabledDownload,\n filterButtonDataTestId,\n deleteButtonDataTestId,\n mergeButtonDataTestId,\n downloadButtonDataTestId,\n pageIdentifier,\n filterCount = 0,\n}) => {\n const classes = useStyles();\n const { myUser } = useContext(Context);\n const { organization } = useOrganization();\n\n return (\n \n {text !== '' && (\n \n {text} ({length})\n \n )}\n \n setOpenFilter(!openFilter)}\n marginRight=\"10px\"\n />\n \n Flag\n \n \n Delete\n \n {pageIdentifier === 'officers' && organization?.permissions?.[myUser?.role]?.mergeOfficers ? (\n <>\n 4 ? 'Only 4 officers can be merged at a time.' : ''} arrow>\n \n 4 || selectedLength < 2}\n marginRight=\"10px\"\n >\n Merge\n \n \n \n \n ) : <>}\n {pageIdentifier === 'officers' && (\n <>\n \n \n {archivedOnly.value ? 'Unarchive' : 'Archive'}\n \n \n \n )}\n \n {downloadButtonText}\n \n \n \n );\n};\n\nPageButtons.propTypes = {\n text: PropTypes.string,\n length: PropTypes.number,\n openFilter: PropTypes.bool,\n setOpenFilter: PropTypes.func,\n onClickDelete: PropTypes.func,\n disabledDelete: PropTypes.bool,\n onClickFlag: PropTypes.func,\n disabledFlag: PropTypes.bool,\n onClickDownload: PropTypes.func,\n disabledDownload: PropTypes.bool,\n downloadButtonText: PropTypes.string,\n downloadButtonDataTestId: PropTypes.string,\n filterButtonDataTestId: PropTypes.string,\n deleteButtonDataTestId: PropTypes.string,\n filterCount: PropTypes.number,\n};\n\nexport default PageButtons;\n","import { Avatar, Badge, Box, Divider, Typography, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport moment from 'moment';\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport RestoreIcon from '@material-ui/icons/Restore';\nconst useStyles = makeStyles(() => ({\n largeIcon: {\n fontSize: 49,\n },\n editingContent: {\n position: 'absolute',\n top: '12px',\n right: '12px',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n editingMessage: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '8px',\n border: '1px solid #FEB535',\n background: '#FFE4B4',\n width: '106px',\n height: '32px',\n marginRight: '15px',\n fontFamily: 'Roboto',\n fontSize: '15px',\n fontStyle: 'normal',\n fontWeight: 500,\n lineHeight: '26px',\n letterSpacing: '0.46px',\n textTransform: 'uppercase',\n },\n editButton: {\n color: '#848484',\n cursor: 'pointer',\n fontSize: '24px',\n display: 'none',\n },\n deleteButton: {\n color: '#848484',\n cursor: 'pointer',\n fontSize: '24px',\n display: 'none',\n },\n iconContainer: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n position: 'absolute',\n top: '12px',\n right: '12px',\n },\n timelineItem: {\n fontSize: 14,\n position: 'relative',\n '&:hover': {\n '& $editButton': {\n display: 'block',\n },\n '& $deleteButton': {\n display: 'block',\n },\n },\n },\n}));\nconst TimeLineItemNotes = ({\n archivedDate,\n onRestoreClick,\n createdAt,\n avatar,\n profileImg,\n useDefaultImage = false,\n children,\n unread,\n canEdit,\n canDelete,\n onEditClick,\n onDeleteClick,\n editing,\n onCancelEditingClick,\n updatedAt,\n editedByInfo,\n}) => {\n const classes = useStyles();\n const currentTime = moment();\n const getDate = (date) => `${moment(date).format('MM/DD/YYYY')} at ${moment(date).format('hh:mm A')}`;\n const getTooltipDate = (date) => {\n if (moment(date).format('MM-DD-YYYY') === currentTime.format('MM-DD-YYYY')) {\n return `${moment(date).fromNow()}`;\n }\n const days = currentTime.endOf('day').diff(moment(date).endOf('day'), 'days');\n return `${days} Day${days === 1 ? '' : 's'} ago`;\n };\n const getEditedTooltipDate = (date) => {\n let ago;\n if (moment(date).format('MM-DD-YYYY') === currentTime.format('MM-DD-YYYY')) {\n ago = `${moment(date).fromNow()}`;\n } else {\n const days = currentTime.endOf('day').diff(moment(date).endOf('day'), 'days');\n ago = `${days} Day${days === 1 ? '' : 's'} ago`;\n }\n return `Edited ${ago}`;\n };\n return (\n \n {editing && (\n \n Editing\n \n X\n \n \n )}\n {archivedDate ? (\n \n ) : (\n \n {canEdit && !editing && }\n {canDelete && !editing && }\n )\n }\n\n \n {unread && }\n {useDefaultImage ? (\n \n ) : (\n \n {avatar}\n \n )}\n \n \n {children}\n \n \n {getDate(createdAt)}\n \n {updatedAt && editedByInfo ? (\n \n (Edited on {getDate(updatedAt)})\n \n ) : null}\n \n \n \n \n );\n};\nexport default TimeLineItemNotes;\n","const useCheckAppVersion = (setRequireRefresh) => {\n const onCheckAppVersion = (appVr) => {\n const appVersion = localStorage.getItem('app-dashboard-version');\n if (appVersion) {\n if (appVersion !== appVr) {\n setRequireRefresh(true);\n localStorage.setItem('app-dashboard-version', appVr);\n }\n } else {\n localStorage.setItem('app-dashboard-version', appVr);\n }\n };\n\n return {\n onCheckAppVersion,\n };\n};\n\nexport default useCheckAppVersion;\n","import { useContext, useState, useEffect } from 'react';\n\nimport { Context } from '../Context';\nimport { getOrganizationsByState } from '../services/unarmed';\nimport useCheckAppVersion from './useCheckAppVersion';\n\nfunction getOrg(location) {\n const org = location.href.split('.')[0].split('//')[1];\n if (org.includes('localhost')) {\n return process.env.REACT_APP_SUBDOMAIN || 'dashboard-dev';\n }\n\n return org;\n}\n\nconst useOrganization = () => {\n const [organization, setorganization] = useState(null);\n const { setRequireRefresh } = useContext(Context);\n const { onCheckAppVersion } = useCheckAppVersion(setRequireRefresh);\n const [refetch, setRefetch] = useState(false);\n const { location } = window;\n\n useEffect(() => {\n getOrganizationsByState(getOrg(location))\n .then((res) => {\n setorganization(res.data);\n onCheckAppVersion(res.headers['x-dashboard-version']);\n })\n .catch((err) => console.log(err));\n }, [refetch]);\n\n const getOrganizationCallback = () =>\n getOrganizationsByState(getOrg(location))\n .then(({ data }) => data)\n .catch((err) => console.log(err));\n\n return {\n organization,\n getOrganizationCallback,\n setRefetch,\n };\n};\n\nexport default useOrganization;\n","export const TINYMCE_SCRIPT_SRC = `${process.env.PUBLIC_URL}/tinymce/tinymce.min.js`;\nexport const TINYMCE_DEFAULT_CONFIG = {\n menubar: false,\n plugins: 'lists link autolink searchreplace paste contextmenu',\n toolbar:\n 'undo redo | bold italic underline strikethrough | link unlink | alignleft aligncenter alignright | bullist numlist',\n paste_as_text: true,\n link_default_protocol: 'https',\n link_assume_external_targets: 'https',\n link_target_list: false,\n link_default_target: '_blank',\n toolbar_mode: 'sliding',\n branding: false,\n elementpath: false,\n contextmenu: false,\n content_style:\n 'div, p, li, span, a { font-size: 14px; } .mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { font-size:14px }',\n};\n\nexport const FILE_TAGS = [\n { text: 'Police Enforcer', color: 'red' },\n { text: 'Photo', color: 'blue' },\n];\n\nexport const FORM_TYPE_VERSION_2 = 2;\n","import React from 'react';\nimport { IconButton } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport EditIcon from '@material-ui/icons/Edit';\nimport styled from 'styled-components';\nimport { useAccordionProvider } from '../provider/AccordionProvider';\n\nimport AccordionWrap from './AccordionWrap';\n\nconst StyledBox = styled.div``;\n\nconst HeaderBox = styled.div`\n padding-left: 24px;\n padding-right: 24px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: ${props => props.isOpen ? '1px solid #e2e2e2' : 'none'};\n`;\n\nconst StyledTypography = styled.div`\n font-weight: 500;\n font-size: 16px;\n color: #575A66;\n padding: 11px 0px;\n`;\n\nconst ContentBox = styled.div`\n padding-top: ${props => props.variant === \"default\" ? '16px' : '0px'};\n padding-bottom: 32px;\n`;\n\nconst ItemBox = styled.div`\n margin-bottom: 8px;\n`;\n\nconst Name = styled.div`\n color: #2E66FE;\n font-weight: 500;\n font-size: 16px;\n margin-bottom: 8px;\n`;\n\nconst Value = styled.div`\n font-size: 18px;\n color: #575A66;\n font-weight: 400;\n`;\n\n/**\n * Component for rendering a section with the option to edit its contents.\n * @param {Object} props - The component props.\n * @param {string} props.name - The name of the section.\n * @param {boolean} props.edit - Boolean flag indicating whether the section is in edit mode.\n * @param {function} props.onClickEditPage - Function to handle click event for editing the section.\n * @param {Array} props.data - Array of data objects to display.\n * @param {ReactNode} props.children - Child components to render within the section.\n * @returns {JSX.Element} A React component.\n */\nconst CaseUpdateSection = ({ dataTestId, id, name, edit, onClickEditPage, variant = \"default\", data, children }) => {\n const { accordions } = useAccordionProvider();\n\n return (\n \n \n \n {name}\n \n {onClickEditPage && (\n {\n e.stopPropagation();\n if (onClickEditPage) {\n onClickEditPage(name);\n }\n }}\n size=\"small\"\n >\n \n \n )}\n \n }\n >\n \n {edit ? (\n children\n ) : (\n <>\n {data.map((item, itemKey) => (\n \n {item.name}\n {item.value || 'Not specified'}\n \n ))}\n \n )}\n \n \n \n );\n};\n\nCaseUpdateSection.propTypes = {\n dataTestId: PropTypes.string,\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n edit: PropTypes.bool.isRequired,\n onClickEditPage: PropTypes.func,\n variant: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n })\n ).isRequired,\n children: PropTypes.node,\n};\n\nexport default CaseUpdateSection;\n","module.exports = __webpack_public_path__ + \"static/media/oversignBlack.5ff71df0.png\";","import {\n Box,\n Button,\n ClickAwayListener,\n Grow,\n ListItemIcon,\n makeStyles,\n MenuItem,\n MenuList,\n Paper,\n Popper,\n} from '@material-ui/core';\nimport React, { useState } from 'react';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n paper: {\n marginRight: theme.spacing(2),\n },\n}));\n\nconst MenuTable = ({\n options = [],\n allowChildren = false,\n buttonPadding = true,\n children,\n onSelect,\n}) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const anchorRef = React.useRef(null);\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen);\n };\n\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n setOpen(false);\n }\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return;\n }\n\n setOpen(false);\n };\n return (\n \n \n {allowChildren ? children : }\n \n \n {({ TransitionProps, placement }) => (\n \n \n \n \n {options.map((option, index) => {\n if (typeof option === 'string') {\n return (\n {\n handleToggle();\n setTimeout(() => {\n onSelect(option);\n }, 500);\n }}\n >\n {option}\n \n );\n }\n\n return (\n option.onClick(setOpen)}\n >\n \n \n \n {option.text}\n \n );\n })}\n \n \n \n \n )}\n \n \n );\n};\n\nexport default MenuTable;\n","import { useContext, useEffect, useState, useCallback } from 'react';\nimport { toast } from '../components/Notification';\n\nimport { Context } from '../Context';\nimport { getFormInfo } from '../services/unarmed';\n\nconst useTrackForm = (trackingNumber) => {\n const [form, setForm] = useState(null);\n const { authUser } = useContext(Context);\n const [loading, setLoading] = useState(false);\n\n const onTrackForm = useCallback(async () => {\n if (!trackingNumber || typeof trackingNumber !== 'string' || trackingNumber.trim() === '') {\n setForm(null);\n return;\n }\n\n try {\n setLoading(true);\n let res = null;\n\n if (authUser) {\n res = await getFormInfo(trackingNumber, authUser.tokenId);\n } else {\n res = await getFormInfo(trackingNumber);\n }\n setForm(res.data);\n setLoading(false);\n } catch (error) {\n toast.error(error?.response?.data?.message ? error.response.data.message : error);\n setForm(null);\n setLoading(false);\n }\n }, [authUser, trackingNumber]);\n\n useEffect(() => {\n if (trackingNumber) {\n onTrackForm();\n }\n }, [trackingNumber, authUser, onTrackForm]);\n\n return {\n loading,\n setForm,\n form,\n refetch: onTrackForm,\n };\n};\n\nexport default useTrackForm;\n","import React, { createContext, useState, useContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst DataReportLinkContext = createContext();\n\nconst DataReportLinkProvider = ({ children }) => {\n const [componentsChanged, setComponentsChanged] = useState({});\n\n const value = useMemo(\n () => ({\n componentsChanged,\n setComponentsChanged,\n }),\n [componentsChanged]\n );\n\n return {children};\n};\n\nDataReportLinkProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport const useDataReportLinkProvider = () => {\n const { componentsChanged, setComponentsChanged } = useContext(DataReportLinkContext);\n\n return { componentsChanged, setComponentsChanged };\n};\n\nexport default DataReportLinkProvider;\n","import React, { useState } from 'react';\nimport { Button, Modal, Box, Typography } from '@material-ui/core';\n\nexport const CustomModalDelete = ({ open, handleClose, fileName, onConfirm }) => {\n const stripHTML = (str) => {\n if (!str) return '';\n const plainText = str.replace(/<\\/?[^>]+(>|$)/g, '');\n return plainText.length > 500 ? `${plainText.slice(0, 500)}...` : plainText;\n };\n\n return (\n \n \n \n Are you sure you want to delete {fileName ? `\"${stripHTML(fileName)}\"` : 'this note'}?\n \n Notes will be archived for 30 days before being permanently deleted\n \n \n Cancel\n \n {\n onConfirm();\n handleClose();\n }}\n >\n Confirm\n \n \n \n \n );\n};\n","module.exports = __webpack_public_path__ + \"static/media/Microsoft_logo.svg.ccd12056.png\";","import { Button, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n btn: {\n '&:disabled': {\n background: '#1f63ff61 !important',\n color: '#fff !important',\n },\n },\n}));\n\nconst DashButton = ({\n variant = 'contained',\n onClick,\n children,\n disabled,\n marginRight,\n marginLeft,\n marginTop,\n outline = false,\n style,\n dataTestId,\n}) => {\n const classes = useStyles();\n return (\n \n {children}\n \n );\n};\n\nDashButton.propTypes = {\n dataTestId: PropTypes.string,\n variant: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n disabled: PropTypes.bool,\n marginRight: PropTypes.number,\n marginLeft: PropTypes.number,\n marginTop: PropTypes.number,\n outline: PropTypes.bool,\n style: PropTypes.object,\n};\n\nexport default DashButton;\n","module.exports = __webpack_public_path__ + \"static/media/oversignWhite.bd359bdf.png\";","module.exports = __webpack_public_path__ + \"static/media/officer.758a6720.png\";","const formatTxt = (str, n) => {\n if (!str) {\n return '';\n }\n if (str.length > n) {\n return `${str.slice(0, n)}...`;\n }\n return str;\n};\n\nexport default formatTxt;\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from '@material-ui/core';\n\nimport { cuGetConfig } from './CaseUpdateConfig';\nimport CaseUpdateSection from '../../../components/CaseUpdateSection';\nimport { FORM_TYPE_VERSION_2 } from '../../../config/config';\n// import { updateForm } from '../../../services/unarmed';\n// import WrapperSave from './WrapperSave';\n\nimport { CURenderer, componentsName } from './CaseUpdateRenderer';\n\nexport default function UpdateRenderer({\n components,\n version,\n id,\n variant = \"default\",\n customFieldsValues,\n setCustomFieldsValues,\n setIsRequestingData,\n setForm,\n // onValueChange\n}) {\n const config = useMemo(\n () =>\n cuGetConfig({\n componentsFromServer: version !== FORM_TYPE_VERSION_2 ? components : [],\n }),\n [components, version, customFieldsValues]\n );\n\n if (version === FORM_TYPE_VERSION_2) {\n return (\n <>\n {components?.map((page, pageIndex) => {\n if (typeof page.active === 'boolean' && page.active === false) return null;\n\n if (typeof page.active === 'boolean' && page.active === false) return null;\n\n if (page?.sections?.[0]?.components?.length === 0) return null;\n\n const pageName = page?.name?.toLowerCase().replace(/ /g, '-');\n const itemId = `custom-section-${pageIndex}-${pageName}-${id}`;\n\n return (\n \n ({\n name: component?.data?.question || componentsName[component.type],\n value: component.value,\n }))}\n >\n onSubmitForm(_id, pageIndex, values)}\n setPagesValues={(values) => {\n const _pagesValues = [...customFieldsValues];\n\n _pagesValues[pageIndex] = {\n sections: [{ components: values }],\n };\n\n setCustomFieldsValues(_pagesValues);\n // onValueChange(_pagesValues);\n }}\n config={cuGetConfig({\n componentsFromServer: page?.sections?.[0]?.components || [],\n })}\n setIsRequestingData={setIsRequestingData}\n customFieldsValues={customFieldsValues?.[pageIndex]?.sections[0]?.components || []}\n />\n \n \n );\n })}\n \n );\n }\n\n if (version !== FORM_TYPE_VERSION_2 && components?.length === 0) return null;\n\n return (\n \n field.value)}\n setForm={setForm}\n />\n \n );\n}\n\nUpdateRenderer.propTypes = {\n id: PropTypes.number,\n version: PropTypes.number,\n setForm: PropTypes.func,\n components: PropTypes.array,\n customFieldsValues: PropTypes.array,\n setCustomFieldsValues: PropTypes.func,\n setIsRequestingData: PropTypes.func,\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABkUlEQVRoge2WTytEURiHf+8dQxEhPgAJZaWZSyQl+TuSjyAboSg+iSz4DMJiZu7lGygzS74DW5Zmzs9GlDTMuec6C++zvPe85zlP3VsHUBQlNRjl91gOd9N0SFobM8ovEBIDEAm4LivVOA1PKgG8zo/QyC2AnvdHz5LBtCxXHly7Atcb8maql0aK+Dw8AHSxjiJLuT7XPqcBrOayrNXOAQx/83qQQXDJ87FWl06nAeYxOIZgvsGSWdPecerS6SyAUXgggp2f1olwi1G478rr5CdmPLlImghAyy9H6gLZkMJdOak7cQBLuVEGwS2A7iZHX4SclrXqfRJ/ok+IN1O9lEwJzR8eADopUmQ83p/kDNYBrOayrL9eQDiUwD9Ak71iPNRmu4F1gHnKnAAyZzv/gXDGsOfMdtwqgHF4JOC2rfQrAmwymji0nG0OlieWKIwAZGyEDTAi2JDVSqmZIed3IROFbPQ+KFScOp3fhf4aDfCNBvhGA3yjAb7RAN9ogG80wDca4BsN8I0G+EYDFEVR/jdvFw5wGk3Sg+4AAAAASUVORK5CYII=\"","import React, { useState } from 'react';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Paper from '@material-ui/core/Paper';\nimport { CircularProgress, TextField } from '@material-ui/core';\n\nexport default function ConfirmDialog({ open, onConfirm, title, description, onClose, loading, reconfirmValue }) {\n const [confirmValue, setConfirmValue] = useState('');\n const [error, setError] = useState(false);\n\n const onConfirmClick = () => {\n if (reconfirmValue) {\n if (confirmValue === reconfirmValue) {\n setError(false);\n onConfirm();\n } else {\n setError(true);\n }\n } else {\n setError(false);\n onConfirm();\n }\n };\n return (\n \n \n {title}\n \n \n {description}\n {reconfirmValue && (\n {\n //To maintain cursor position after changing value to uppercase\n const input = e.target;\n const cursorPosition = input.selectionStart;\n setConfirmValue(e.target.value.toUpperCase());\n //Reset cursor position to the same position after changing value to uppercase\n setTimeout(() => {\n input.setSelectionRange(cursorPosition, cursorPosition);\n }, 0);\n }}\n />\n )}\n \n \n \n \n \n \n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Button, CircularProgress, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n margin: '20px 0',\n },\n containerTitle: {\n padding: '10px 20px',\n borderBottom: '1px solid #e2e2e2',\n },\n resaltText: {\n color: '#4b7bff',\n fontWeight: 600,\n fontSize: 13,\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n button: {\n background: ' #4b7bff',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n}));\n\n/**\n * Wrapper Component for Save Operation\n * @param {object} props - Component props\n * @param {JSX.Element} props.children - Child components\n * @param {object} props.styles - Custom styles object\n * @param {Function} props.onSave - Function to handle save operation\n * @returns {JSX.Element} WrapperSave component\n */\nexport default function WrapperSave({ children, styles, padding = '20px', onSave }) {\n const [loading, setLoading] = useState(false);\n const classes = useStyles();\n\n /**\n * Handles custom save operation\n */\n const onSaveCustom = async () => {\n try {\n setLoading(true);\n await onSave();\n setLoading(false);\n } catch (error) {\n setLoading(false);\n }\n };\n\n return (\n \n {children}\n \n \n \n \n );\n}\n\nWrapperSave.propTypes = {\n children: PropTypes.node.isRequired,\n styles: PropTypes.object,\n onSave: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n label: {\n fontSize: 14,\n color: '#000000DE',\n fontWeight: '500',\n },\n description: {\n fontSize: 14,\n color: '#000000DE',\n marginBottom: 15,\n },\n}));\n\nexport default function PreviewLabel({ question, required, description, showRequired = true }) {\n const classes = useStyles();\n return (\n <>\n \n {question}\n {required && *}\n \n {description && (\n {description}\n )}\n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Checkbox, Input, ListItemText, MenuItem, Select, Typography, Box, FormControl, FormHelperText } from '@material-ui/core';\nimport { toast } from '../../../../components/Notification';\nimport useInput from '../../../../hooks/useInput';\nimport { updateForm } from '../../../../services/unarmed';\nimport WrapperSave from '../WrapperSave';\nimport PreviewLabel from './PreviewLabel';\nimport { FORM_TYPE_VERSION_2 } from '../../../../config/config';\n\n/**\n * Custom Component for Dropdown\n * @param {object} props - Component props\n * @param {object} props.data - Component data\n * @param {string} props.version - Form version\n * @param {Function} props.setPagesValues - Function to update page values\n * @param {number} props.componentIndex - Component index\n * @param {string} props.id - Component ID\n * @param {string|string[]} props.value - Component value\n * @param {string[]} props.customFieldsValues - Custom field values\n * @param {Function} props.setForm - Function to set form state\n * @param {Function} props.setIsRequestingData - Function to set requesting data state\n * @returns {JSX.Element} CUDropdown component\n */\nexport default function CUDropdown({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n // value,\n customFieldsValues,\n setForm,\n setIsRequestingData,\n onSubmitForm,\n withSave = true,\n validateComponent\n}) {\n const value = customFieldsValues[componentIndex];\n const [dropdownArray, setDropdownArray] = useState(Array.isArray(value) ? value : []);\n const dropdownString = useInput(Array.isArray(value) ? '' : value, validateComponent);\n const [error, setError] = useState(false);\n\n /**\n * Handles save operation\n */\n const onSave = async () => {\n setIsRequestingData(true);\n try {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = data?.multipleChoice ? dropdownArray : dropdownString.value;\n const json = {\n customFields: arrValue,\n };\n const res = version === FORM_TYPE_VERSION_2 ? await onSubmitForm(id, json) : await updateForm(id, json);\n setForm((prevState) => ({ ...prevState, ...res.data }));\n toast.success('Case Updates have been updated');\n setIsRequestingData(false);\n } catch (error) {\n toast.error(error.message);\n setIsRequestingData(false);\n }\n };\n\n useEffect(() => {\n if (version === FORM_TYPE_VERSION_2) {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = data?.multipleChoice ? dropdownArray : dropdownString.value;\n\n setPagesValues(arrValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data?.multipleChoice, dropdownArray, dropdownString.value]);\n\n useEffect(() => {\n if (validateComponent) {\n if (data?.multipleChoice) {\n if (dropdownArray.length === 0 && data.required) {\n setError(true)\n return;\n }\n if (dropdownArray.length > 0) {\n setError(false)\n return;\n }\n } else if (data?.options) {\n if (!data?.options.includes(dropdownString.value) && data.required) {\n setError(true)\n return;\n }\n if (data?.options.includes(dropdownString.value)) {\n setError(false)\n return;\n }\n }\n }\n }, [validateComponent, dropdownArray, dropdownString])\n\n const render = (\n <>\n \n \n }\n onChange={(e) => {\n if (data?.multipleChoice) {\n setDropdownArray(e.target.value);\n } else {\n dropdownString.onChange(e);\n }\n }}\n renderValue={(selected) => {\n if (!selected || (selected && selected.length === 0)) {\n return Select an Option;\n }\n\n if (typeof data.options[0] === 'object') {\n const selectedOptions = selected.map((_option) => data.options.find((option) => option.value === _option));\n return selectedOptions.map((sOption) => sOption.label).join(', ');\n }\n\n if (Array.isArray(selected)) {\n return selected.join(', ');\n }\n\n return selected;\n }}\n style={{ width: '100%' }}\n >\n \n Select an Option\n \n {data?.options?.map((option, i) => (\n \n \n \n \n ))}\n \n {error && {'This field is required'}}\n \n \n );\n\n if (version === FORM_TYPE_VERSION_2 && !withSave)\n return (\n \n {render}\n \n );\n\n return (\n \n {render}\n \n );\n}\n\nCUDropdown.propTypes = {\n data: PropTypes.object.isRequired,\n version: PropTypes.number.isRequired,\n setPagesValues: PropTypes.func.isRequired,\n componentIndex: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired,\n // value: PropTypes.oneOfType([PropTypes.string, PropTypes.array]).isRequired,\n customFieldsValues: PropTypes.array.isRequired,\n setForm: PropTypes.func.isRequired,\n // setIsRequestingData: PropTypes.func.isRequired,\n withSave: PropTypes.bool,\n // onSubmitForm: PropTypes.func.isRequired,\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { TextField, Box } from '@material-ui/core';\nimport { toast } from '../../../../components/Notification';\nimport useInput from '../../../../hooks/useInput';\nimport { updateForm } from '../../../../services/unarmed';\nimport WrapperSave from '../WrapperSave';\nimport PreviewLabel from './PreviewLabel';\nimport { FORM_TYPE_VERSION_2 } from '../../../../config/config';\n\n/**\n * Custom Component for Long Text\n * @param {object} props - Component props\n * @param {object} props.data - Component data\n * @param {string} props.version - Form version\n * @param {Function} props.setPagesValues - Function to update page values\n * @param {number} props.componentIndex - Component index\n * @param {string} props.id - Component ID\n * @param {string} props.value - Component value\n * @param {string[]} props.customFieldsValues - Custom field values\n * @param {Function} props.setForm - Function to set form state\n * @param {Function} props.setIsRequestingData - Function to set requesting data state\n * @returns {JSX.Element} CULongText component\n */\nexport default function CULongText({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n // value,\n customFieldsValues,\n setForm,\n setIsRequestingData,\n onSubmitForm,\n withSave = true,\n validateComponent\n}) {\n const value = customFieldsValues[componentIndex];\n const longText = useInput(value || '', validateComponent);\n const [helperText, setHelperText] = useState('');\n const [error, setError] = useState(false);\n\n /**\n * Handles save operation\n */\n const onSave = async () => {\n setIsRequestingData(true);\n try {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = longText.value;\n const json = {\n customFields: arrValue,\n };\n const res = version === FORM_TYPE_VERSION_2 ? await onSubmitForm(id, json) : await updateForm(id, json);\n setForm((prevState) => ({ ...prevState, ...res.data }));\n toast.success('Case Updates have been updated');\n setIsRequestingData(false);\n } catch (error) {\n toast.error(error.message);\n setIsRequestingData(false);\n }\n };\n\n useEffect(() => {\n if (version === FORM_TYPE_VERSION_2) {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = longText.value;\n\n setPagesValues(arrValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [longText.value]);\n\n\n useEffect(() => {\n if (longText.value.length >= data?.maxCharacters) {\n setHelperText(`Max ${data.maxCharacters} characters`)\n return;\n }\n\n if (validateComponent) {\n if ((longText.value === '' || !longText.value) && data.required) {\n setError(true)\n setHelperText('This field is required')\n return;\n }\n\n }\n\n setError(false)\n setHelperText('')\n }, [longText.value, validateComponent])\n\n\n const render = (\n <>\n \n \n \n );\n\n if (version === FORM_TYPE_VERSION_2 && !withSave)\n return (\n \n {render}\n \n );\n\n return (\n \n {render}\n \n );\n}\n\nCULongText.propTypes = {\n data: PropTypes.object.isRequired,\n version: PropTypes.number.isRequired,\n setPagesValues: PropTypes.func.isRequired,\n componentIndex: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired,\n // value: PropTypes.string.isRequired,\n customFieldsValues: PropTypes.array.isRequired,\n setForm: PropTypes.func.isRequired,\n // setIsRequestingData: PropTypes.func.isRequired,\n withSave: PropTypes.bool,\n // onSubmitForm: PropTypes.func.isRequired,\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Checkbox, Typography, FormHelperText } from '@material-ui/core';\nimport { toast } from '../../../../components/Notification';\nimport { updateForm } from '../../../../services/unarmed';\nimport WrapperSave from '../WrapperSave';\nimport PreviewLabel from './PreviewLabel';\nimport { FORM_TYPE_VERSION_2 } from '../../../../config/config';\nimport { LabelError } from '../../../FormDashboard/components/MultipleChoice';\n\n/**\n * Custom Component for Multiple Choice\n * @param {object} props - Component props\n * @param {object} props.data - Component data\n * @param {string} props.version - Form version\n * @param {Function} props.setPagesValues - Function to update page values\n * @param {number} props.componentIndex - Component index\n * @param {string} props.id - Component ID\n * @param {string[]} props.value - Component value\n * @param {string[]} props.customFieldsValues - Custom field values\n * @param {Function} props.setForm - Function to set form state\n * @param {Function} props.setIsRequestingData - Function to set requesting data state\n * @returns {JSX.Element} CUMultipleChoice component\n */\nexport default function CUMultipleChoice({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n // value,\n customFieldsValues,\n setForm,\n setIsRequestingData,\n onSubmitForm,\n withSave = true,\n validateComponent\n}) {\n const value = customFieldsValues[componentIndex];\n const [options, setOptions] = useState(value || []);\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n\n /**\n * Handles save operation\n */\n const onSave = async () => {\n setIsRequestingData(true);\n try {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = options;\n const json = {\n customFields: arrValue,\n };\n const res = version === FORM_TYPE_VERSION_2 ? await onSubmitForm(id, json) : await updateForm(id, json);\n setForm((prevState) => ({ ...prevState, ...res.data }));\n toast.success('Case Updates have been updated');\n setIsRequestingData(false);\n } catch (error) {\n toast.error(error.message);\n setIsRequestingData(false);\n }\n };\n\n useEffect(() => {\n if (version === FORM_TYPE_VERSION_2) {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = options;\n\n setPagesValues(arrValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options]);\n\n useEffect(() => {\n if (validateComponent) {\n if (options.length === 0 && data?.required) {\n setError(true)\n setHelperText('This field is required')\n } else {\n setError(false)\n setHelperText('')\n }\n }\n }, [validateComponent, options])\n\n const render = (\n <>\n \n {data?.options?.map((option, index) => (\n \n {\n const optionsCopy = Array.from(options);\n if (options.includes(option)) {\n const idx = options.indexOf(option);\n optionsCopy.splice(idx, 1);\n } else {\n optionsCopy.push(option);\n }\n setOptions(optionsCopy);\n }}\n inputProps={{ 'aria-label': 'checkbox with default color' }}\n style={{ padding: 0, marginRight: 5 }}\n />\n {option}\n \n ))}\n {error && data.required && {helperText}}\n \n );\n\n if (version === FORM_TYPE_VERSION_2 && !withSave)\n return (\n \n {render}\n \n );\n\n return (\n \n {render}\n \n );\n}\n\nCUMultipleChoice.propTypes = {\n data: PropTypes.object.isRequired,\n version: PropTypes.number.isRequired,\n setPagesValues: PropTypes.func.isRequired,\n componentIndex: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired,\n // value: PropTypes.array.isRequired,\n customFieldsValues: PropTypes.array.isRequired,\n setForm: PropTypes.func.isRequired,\n // setIsRequestingData: PropTypes.func.isRequired,\n withSave: PropTypes.bool,\n // onSubmitForm: PropTypes.func.isRequired,\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { TextField, Box } from '@material-ui/core';\nimport { toast } from '../../../../components/Notification';\nimport useInput from '../../../../hooks/useInput';\nimport { updateForm } from '../../../../services/unarmed';\nimport WrapperSave from '../WrapperSave';\nimport PreviewLabel from './PreviewLabel';\nimport { FORM_TYPE_VERSION_2 } from '../../../../config/config';\n\n/**\n * Custom Component for Short Text\n * @param {object} props - Component props\n * @param {object} props.data - Component data\n * @param {string} props.version - Form version\n * @param {Function} props.setPagesValues - Function to update page values\n * @param {number} props.componentIndex - Component index\n * @param {string} props.id - Component ID\n * @param {string} props.value - Component value\n * @param {string[]} props.customFieldsValues - Custom field values\n * @param {Function} props.setForm - Function to set form state\n * @param {Function} props.setIsRequestingData - Function to set requesting data state\n * @returns {JSX.Element} CUShortText component\n */\nexport default function CUShortText({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n // value,\n customFieldsValues,\n setForm,\n setIsRequestingData,\n onSubmitForm,\n withSave = true,\n validateComponent,\n}) {\n const value = customFieldsValues[componentIndex];\n const shortText = useInput(value || '', validateComponent);\n const [helperText, setHelperText] = useState('');\n const [error, setError] = useState(false);\n\n // const [formState, setFormState] = useState({\n // showRequired: false\n // });\n\n /**\n * Handles save operation\n */\n const onSave = async () => {\n setIsRequestingData(true);\n try {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = shortText.value;\n const json = {\n customFields: arrValue,\n };\n const res = version === FORM_TYPE_VERSION_2 ? await onSubmitForm(id, json) : await updateForm(id, json);\n setForm((prevState) => ({ ...prevState, ...res.data }));\n toast.success('Case Updates have been updated');\n setIsRequestingData(false);\n } catch (error) {\n toast.error(error.message);\n setIsRequestingData(false);\n }\n };\n\n useEffect(() => {\n if (version === FORM_TYPE_VERSION_2) {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = shortText.value;\n\n setPagesValues(arrValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [shortText.value]);\n\n useEffect(() => {\n\n if (shortText.value.length >= data?.maxCharacters) {\n setHelperText(`Max ${data.maxCharacters} characters`)\n return;\n }\n\n if (validateComponent) {\n if ((shortText.value === '' || !shortText.value) && data.required) {\n setError(true)\n setHelperText('This field is required')\n return;\n }\n }\n\n setError(false)\n setHelperText('')\n }, [shortText.value, validateComponent])\n\n\n const render = (\n <>\n \n \n \n );\n\n if (version === FORM_TYPE_VERSION_2 && !withSave)\n return (\n \n {render}\n \n );\n\n return (\n \n {render}\n \n );\n}\n\nCUShortText.propTypes = {\n data: PropTypes.object.isRequired,\n version: PropTypes.number.isRequired,\n setPagesValues: PropTypes.func.isRequired,\n componentIndex: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired,\n // value: PropTypes.string.isRequired,\n customFieldsValues: PropTypes.array.isRequired,\n setForm: PropTypes.func.isRequired,\n // setIsRequestingData: PropTypes.func.isRequired,\n withSave: PropTypes.bool,\n // onSubmitForm: PropTypes.func.isRequired,\n};\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, FormControlLabel, Radio, RadioGroup, FormControl, FormHelperText } from '@material-ui/core';\nimport { toast } from '../../../../components/Notification';\nimport useInput from '../../../../hooks/useInput';\nimport { updateForm } from '../../../../services/unarmed';\nimport WrapperSave from '../WrapperSave';\nimport PreviewLabel from './PreviewLabel';\nimport { FORM_TYPE_VERSION_2 } from '../../../../config/config';\n\n/**\n * Component for Single Choice input\n * @param {object} props - Component props\n * @param {object} props.data - Data object for single choice\n * @param {string} props.version - Version of the form\n * @param {Function} props.setPagesValues - Function to update page values\n * @param {number} props.componentIndex - Index of the component\n * @param {string} props.id - ID of the component\n * @param {string} props.value - Current value\n * @param {array} props.customFieldsValues - Array of custom field values\n * @param {Function} props.setForm - Function to set form data\n * @param {Function} props.setIsRequestingData - Function to set data request status\n * @returns {JSX.Element} Single choice component\n */\nexport default function CUSingleChoice({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n // value,\n customFieldsValues,\n setForm,\n setIsRequestingData,\n onSubmitForm,\n withSave = true,\n validateComponent\n}) {\n const value = customFieldsValues[componentIndex];\n const singleChoice = useInput(value || null, validateComponent);\n\n /**\n * Handles save operation\n */\n const onSave = async () => {\n setIsRequestingData(true);\n try {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = singleChoice.value;\n const json = {\n customFields: arrValue,\n };\n const res = version === FORM_TYPE_VERSION_2 ? await onSubmitForm(id, json) : await updateForm(id, json);\n setForm((prevState) => ({ ...prevState, ...res.data }));\n toast.success('Case Updates have been updated');\n setIsRequestingData(false);\n } catch (error) {\n toast.error(error.message);\n setIsRequestingData(false);\n }\n };\n\n useEffect(() => {\n if (version === FORM_TYPE_VERSION_2) {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = singleChoice.value;\n\n setPagesValues(arrValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [singleChoice.value]);\n\n const render = (\n <>\n \n \n \n {data?.options?.map((option, index) => (\n \n \n }\n label={option}\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n ))}\n \n {singleChoice?.error && data.required && {'This field is required'}}\n \n \n );\n\n if (version === FORM_TYPE_VERSION_2 && !withSave)\n return (\n \n {render}\n \n );\n\n return (\n \n {render}\n \n );\n}\n\nCUSingleChoice.propTypes = {\n data: PropTypes.object.isRequired,\n version: PropTypes.number.isRequired,\n setPagesValues: PropTypes.func.isRequired,\n componentIndex: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired,\n // value: PropTypes.string.isRequired,\n customFieldsValues: PropTypes.array.isRequired,\n setForm: PropTypes.func.isRequired,\n // setIsRequestingData: PropTypes.func.isRequired,\n withSave: PropTypes.bool,\n // onSubmitForm: PropTypes.func.isRequired,\n};\n","/* eslint-disable no-nested-ternary */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, FormControlLabel, Radio, RadioGroup, FormControl, FormHelperText } from '@material-ui/core';\nimport { toast } from '../../../../components/Notification';\nimport useInput from '../../../../hooks/useInput';\nimport { updateForm } from '../../../../services/unarmed';\nimport WrapperSave from '../WrapperSave';\nimport PreviewLabel from './PreviewLabel';\nimport { FORM_TYPE_VERSION_2 } from '../../../../config/config';\n\n/**\n * Custom Component for Yes/No selection\n * @param {object} props - Component props\n * @param {object} props.data - Component data\n * @param {string} props.version - Form version\n * @param {Function} props.setPagesValues - Function to update page values\n * @param {number} props.componentIndex - Component index\n * @param {string} props.id - Component ID\n * @param {boolean} props.value - Component value\n * @param {string[]} props.customFieldsValues - Custom field values\n * @param {Function} props.setForm - Function to set form state\n * @param {Function} props.setIsRequestingData - Function to set requesting data state\n * @returns {JSX.Element} CUYesNo component\n */\nexport default function CUYesNo({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n // value,\n customFieldsValues,\n setForm,\n setIsRequestingData,\n onSubmitForm,\n withSave = true,\n validateComponent\n}) {\n const value = customFieldsValues[componentIndex];\n const yesNo = useInput(value === true ? 'yes' : value === false ? 'no' : '', validateComponent);\n\n /**\n * Handles save operation\n */\n const onSave = async () => {\n setIsRequestingData(true);\n try {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = yesNo.value === 'yes';\n const json = {\n customFields: arrValue,\n };\n const res = version === FORM_TYPE_VERSION_2 ? await onSubmitForm(id, json) : await updateForm(id, json);\n toast.success('Case Updates have been updated');\n setIsRequestingData(false);\n setForm((prevState) => ({ ...prevState, ...res.data }));\n } catch (error) {\n toast.error(error.message);\n setIsRequestingData(false);\n }\n };\n\n useEffect(() => {\n if (version === FORM_TYPE_VERSION_2) {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = yesNo.value === 'yes';\n\n setPagesValues(arrValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [yesNo.value]);\n\n const render = (\n <>\n \n \n \n \n \n }\n label=\"Yes\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n \n \n }\n label=\"No\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n \n {yesNo?.error && data.required && {'This field is required'}}\n \n \n );\n\n if (version === FORM_TYPE_VERSION_2 && !withSave)\n return (\n \n {render}\n \n );\n\n return (\n \n {render}\n \n );\n}\n\nCUYesNo.propTypes = {\n data: PropTypes.object.isRequired,\n version: PropTypes.number.isRequired,\n setPagesValues: PropTypes.func.isRequired,\n componentIndex: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired,\n // value: PropTypes.bool.isRequired,\n customFieldsValues: PropTypes.array.isRequired,\n setForm: PropTypes.func.isRequired,\n // setIsRequestingData: PropTypes.func.isRequired,\n withSave: PropTypes.bool,\n // onSubmitForm: PropTypes.func.isRequired,\n};\n","import { Typography, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n Title: {\n paddingTop: 15,\n fontWeight: 600,\n fontSize: 14,\n },\n}));\n\nexport default function CUTitle({ data }) {\n const classes = useStyles();\n\n return {data.text};\n}\n","import { Typography, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n subTitle: {\n paddingBottom: 10,\n fontSize: 14,\n },\n}));\n\nexport default function CUSubtitle({ data }) {\n const classes = useStyles();\n\n return {data.text};\n}\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { TextField, Box } from '@material-ui/core';\nimport { toast } from '../../../../components/Notification';\nimport useInput from '../../../../hooks/useInput';\nimport { updateForm } from '../../../../services/unarmed';\nimport WrapperSave from '../WrapperSave';\nimport PreviewLabel from './PreviewLabel';\nimport { FORM_TYPE_VERSION_2 } from '../../../../config/config';\nimport DatePickerMUI from '../../../../components/DatePickerMUi';\n\n/**\n * Custom Component for Short Text\n * @param {object} props - Component props\n * @param {object} props.data - Component data\n * @param {string} props.version - Form version\n * @param {Function} props.setPagesValues - Function to update page values\n * @param {number} props.componentIndex - Component index\n * @param {string} props.id - Component ID\n * @param {string} props.value - Component value\n * @param {string[]} props.customFieldsValues - Custom field values\n * @param {Function} props.setForm - Function to set form state\n * @param {Function} props.setIsRequestingData - Function to set requesting data state\n * @returns {JSX.Element} CUDate component\n */\nexport default function CUDate({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n // value,\n customFieldsValues,\n setForm,\n setIsRequestingData,\n onSubmitForm,\n withSave = true,\n validateComponent\n}) {\n const value = customFieldsValues[componentIndex];\n const [date, setDate] = useState(value || null);\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n\n useEffect(() => {\n if (version === FORM_TYPE_VERSION_2) {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = date;\n\n setPagesValues(arrValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [date]);\n\n useEffect(() => {\n if (validateComponent) {\n if (!date && data?.required) {\n setError(true)\n setHelperText('This field is required')\n } else {\n setError(false)\n setHelperText('')\n }\n }\n }, [validateComponent, date])\n\n\n const render = (\n <>\n \n (\n \n )}\n error={error}\n helperText={helperText}\n />\n \n );\n\n if (version === FORM_TYPE_VERSION_2 && !withSave)\n return (\n \n {render}\n \n );\n\n return {render};\n}\n\nCUDate.propTypes = {\n data: PropTypes.object.isRequired,\n version: PropTypes.number.isRequired,\n setPagesValues: PropTypes.func.isRequired,\n componentIndex: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired,\n // value: PropTypes.string.isRequired,\n customFieldsValues: PropTypes.array.isRequired,\n setForm: PropTypes.func.isRequired,\n // setIsRequestingData: PropTypes.func.isRequired,\n withSave: PropTypes.bool,\n // onSubmitForm: PropTypes.func.isRequired,\n};\n","import { Box } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport PreviewLabel from './PreviewLabel';\nimport { LabelError } from '../../../FormDashboard/components/MultipleChoice';\nimport InputPhone from '../../../FormDashboard/components/InputPhone';\nimport useInput from '../../../../hooks/useInput';\n\nexport default function CUPhone({\n data,\n version,\n setPagesValues,\n componentIndex,\n id,\n customFieldsValues,\n validateComponent\n}) {\n\n const value = customFieldsValues[componentIndex];\n const phoneText = useInput(value || '', validateComponent);\n const [error, setError] = useState(false);\n\n\n useEffect(() => {\n const arrValue = Array.from(customFieldsValues);\n arrValue[componentIndex] = phoneText.value;\n\n setPagesValues(arrValue);\n }, [phoneText.value]);\n\n useEffect(() => {\n if (validateComponent) {\n if ((!phoneText.value || phoneText.value === '') && data?.required) {\n setError(true)\n } else {\n setError(false)\n }\n }\n }, [phoneText.value, validateComponent])\n\n return (\n \n \n \n {\n const event = {\n target: { value: phone }\n }\n phoneText.onChange(event)\n }}\n hasError={error}\n />\n \n {error && {'This field is required'}}\n \n );\n}","import React from 'react';\nimport CUDropdown from './Components/CUDropdown';\nimport CULongText from './Components/CULongText';\nimport CUMultipleChoice from './Components/CUMultipleChoices';\nimport CUShortText from './Components/CUShortText';\nimport CUSingleChoice from './Components/CUSingleChoice';\nimport CUYesNo from './Components/CUYesNo';\nimport CUTitle from './Components/CUTitle';\nimport CUSubtitle from './Components/CUSubtitle';\nimport CUDate from './Components/CUDate';\nimport CUPhone from './Components/CUPhone'\n\nconst onAddPropsToComponent = ({ Component, componentEnhanced, imagesPreview }) => {\n componentEnhanced.component = Component;\n componentEnhanced.imagesPreview = imagesPreview;\n};\n\nexport const cuGetConfig = ({ componentsFromServer = [] }) =>\n componentsFromServer.map((component) => {\n const componentEnhanced = { ...component };\n switch (component.type) {\n case 'title':\n onAddPropsToComponent({ componentEnhanced, Component: CUTitle });\n break;\n case 'subtitle':\n onAddPropsToComponent({ componentEnhanced, Component: CUSubtitle });\n break;\n case 'singleChoice':\n onAddPropsToComponent({ componentEnhanced, Component: CUSingleChoice });\n break;\n case 'multipleChoices':\n onAddPropsToComponent({\n componentEnhanced,\n Component: CUMultipleChoice,\n });\n break;\n case 'dropdown':\n onAddPropsToComponent({ componentEnhanced, Component: CUDropdown });\n break;\n\n case 'date':\n onAddPropsToComponent({ componentEnhanced, Component: CUDate });\n break;\n\n case 'shortText':\n onAddPropsToComponent({ componentEnhanced, Component: CUShortText });\n break;\n case 'longText':\n onAddPropsToComponent({ componentEnhanced, Component: CULongText });\n break;\n\n case 'yesNo':\n onAddPropsToComponent({ componentEnhanced, Component: CUYesNo });\n break;\n\n case 'phone':\n onAddPropsToComponent({ componentEnhanced, Component: CUPhone });\n break;\n\n default:\n return
Unsupported Component
;\n }\n\n return componentEnhanced;\n });\n","const constants = {\n EIS: {\n RISK_LEVEL: {\n HIGH: 'HIGH',\n MEDIUM: 'MEDIUM',\n LOW: 'LOW',\n NONE: 'NONE',\n },\n },\n NOTIFICATIONS: {\n DAYS: ['5', '30', '60', '90', '120', '150', '180', '210', '240', '270', '300', '330', '360'],\n },\n AVAILABLE_STATUSES: ['RECEIVED', 'IN PROGRESS', 'CLOSED'],\n};\n\nmodule.exports = constants;\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable no-prototype-builtins */\nimport { Box, Button, CircularProgress, Grid, makeStyles, Typography } from '@material-ui/core';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { toast } from '../../components/Notification';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport MultiSelectBox from '../../components/MultiSelectBox';\nimport useInput from '../../hooks/useInput';\nimport { updateForm } from '../../services/unarmed';\nimport { subtypeOptions } from '../../utils/options';\nimport UpdateRenderer from './UpdateCaseComponents/UpdateRenderer';\nimport CaseUpdateSection from '../../components/CaseUpdateSection';\nimport { FORM_TYPE_VERSION_2 } from '../../config/config';\nimport Card from '../../components/Card';\nimport { useAccordionProvider } from '../../provider/AccordionProvider';\nimport { BoxContainer } from '../../styles/GlobalStyles';\n\nexport const sourceOptions = ['Online', 'In-Person', 'Email', 'Phone', 'Other'];\nexport const ReporterOptions = ['Civilian', 'Civilian Oversight', 'Internal Affairs', 'Other'];\nexport const AllegationOptions = [\n 'Use of Force',\n 'Abuse of Authority',\n 'Discourtesy',\n 'Offensive Language',\n 'Lack of Service',\n];\nexport const DispositionOptions = ['Sustained', 'Not Sustained', 'Unfounded', 'Improper Conduct', 'Policy Failure'];\n\nexport const DisciplineOptions = [\n 'Counseled',\n 'Letter of Reprimand',\n 'Suspension',\n 'Demotion',\n 'Dismissal',\n 'Resignation',\n 'No Further Action',\n 'Other',\n];\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n margin: '20px 0',\n },\n containerTitle: {\n padding: '10px 20px',\n borderBottom: '1px solid #e2e2e2',\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n button: {\n background: ' #4b7bff',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n}));\n\nconst UpdateCase = ({\n id,\n status,\n setIsRequestingData,\n form,\n setForm,\n formType,\n customFieldsValues,\n setCustomFieldsValues,\n}) => {\n const classes = useStyles();\n const internalAffairs = useInput(form?.internalAffairsCaseNumber || '');\n const caseNumber = useInput(\n formType?.caseUpdates?.caseNumber?.hasOwnProperty('automate') ? form?.caseNumber : form?.caseNumber || form?.code\n );\n const source = useInput(form?.source || []);\n const subType = useInput(form?.subtype || []);\n const reporter = useInput(form?.reporter || []);\n const investigator = useInput(form?.investigator || []);\n const [allegation, setAllegation] = useState(form?.allegations || []);\n const [disposition, setDisposition] = useState(form?.dispositions || []);\n const [discipline, setDiscipline] = useState(form?.discipline || []);\n const [loading, setLoading] = useState(false);\n const [loadingState, setLoadingState] = useState(null);\n // const [editStandard, setEditStandard] = useState(false);\n const [contents, setContents] = useState([]);\n const { accordions, setAccordions } = useAccordionProvider();\n\n // Check if any of the caseUpdates fields are visible\n const checkStandardVisible = () => {\n const keys = Object.keys(formType?.caseUpdates);\n\n for (const key of keys) {\n if (formType?.caseUpdates?.[key]?.visible) {\n return true;\n }\n }\n\n return false;\n };\n\n // Check if any of the caseUpdates fields are visible excluding caseNumber and internallAffairs\n const checkCaseUpdatesVisible = () => {\n const keys = Object.keys(formType?.caseUpdates);\n\n for (const key of keys) {\n // if (['caseNumber', 'internalAffairs'].includes(key)) {\n // continue;\n // }\n\n if (formType?.caseUpdates?.[key]?.visible) {\n return true;\n }\n }\n\n return false;\n };\n\n const standardVisible = useMemo(() => checkStandardVisible(), [formType]);\n const standardCaseUpdatesVisible = useMemo(() => checkCaseUpdatesVisible(), [formType]);\n\n useEffect(() => {\n if (formType && formType.version === FORM_TYPE_VERSION_2) {\n const newContents = formType?.customFields.map((page, pageIndex) => {\n const pageName = page?.name?.toLowerCase().replace(/ /g, '-');\n const itemId = `custom-section-${pageIndex}-${pageName}-${id}`;\n\n return {\n active: page.active,\n name: page.name,\n value: itemId,\n components: page?.sections[0]?.components?.length || 0,\n };\n });\n\n if (standardVisible) {\n const allContents = [\n {\n name: 'Standard',\n value: 'standard',\n active: form?.formType?.caseUpdates?.active,\n },\n ...newContents,\n ];\n setContents(allContents);\n\n const initialAccordions = allContents.reduce(\n (acc, content) => ({\n ...acc,\n [content.value]: content.value === 'standard',\n }),\n {}\n );\n\n setAccordions(initialAccordions);\n } else if (newContents.length > 0) {\n setContents(newContents);\n\n const initialAccordions = newContents.reduce(\n (acc, content) => ({\n ...acc,\n [content.value]: content.value === newContents[0].value,\n }),\n {}\n );\n\n setAccordions(initialAccordions);\n }\n }\n }, []);\n\n useEffect(() => {\n console.log({ accordions, contents });\n }, [accordions]);\n\n // eslint-disable-next-line no-shadow\n const onSaveFormUpdate = async ({ requestData, setLoadingState }) => {\n try {\n setLoading(true);\n setLoadingState();\n console.log('AQUI: onSaveFormUpdate', requestData);\n const { data } = await updateForm(id, requestData);\n toast.success('The form has been updated successfully');\n caseNumber.setValue(data.caseNumber);\n setForm({\n ...form,\n caseNumber: data.caseNumber,\n source: data.source,\n reporter: data.reporter,\n allegations: data.allegations,\n discipline: data.discipline,\n dispositions: data.dispositions,\n investigator: data.investigator,\n internalAffairsCaseNumber: data.internalAffairsCaseNumber,\n subtype: data.subtype,\n });\n } catch (error) {\n toast.error(error?.response?.data?.message);\n toast.error(error?.response?.data?.error?.details[0]?.message);\n } finally {\n setLoading(false);\n setLoadingState('');\n setIsRequestingData(false);\n }\n };\n const onUpdateForm = async (e) => {\n e.preventDefault();\n\n const requestData = {\n status,\n caseNumber: caseNumber.value,\n customFields: customFieldsValues,\n ...(internalAffairs.value !== '' ? { internalAffairsCaseNumber: internalAffairs.value } : {}),\n ...(formType?.caseUpdates?.source?.visible && source.value && source.value !== '0' && { source: source.value }),\n ...(formType?.caseUpdates?.subtype?.visible &&\n subType.value &&\n subType.value !== '0' && { subtype: subType.value }),\n ...(formType?.caseUpdates?.reporter?.visible &&\n reporter.value &&\n reporter.value !== '0' && { reporter: reporter.value }),\n ...(formType?.caseUpdates?.investigator?.visible &&\n investigator.value &&\n investigator.value !== '0' && { investigator: investigator.value }),\n ...(formType?.caseUpdates?.allegations?.visible && allegation?.length && { allegations: allegation }),\n ...(formType?.caseUpdates?.dispositions?.visible && disposition?.length && { dispositions: disposition }),\n ...(formType?.caseUpdates?.disciplines?.visible && discipline?.length && { discipline }),\n };\n onSaveFormUpdate({\n requestData,\n setLoadingState: () => setLoadingState('updateForm'),\n });\n };\n\n return (\n \n \n {standardVisible && (formType?.caseUpdates?.active || formType?.caseUpdates?.active === undefined) && (\n \n \n \n \n {formType?.caseUpdates?.caseNumber?.visible && (\n \n \n Case Number\n \n \n {caseNumber.error}\n \n )}\n {formType?.caseUpdates?.internalAffairs?.visible && (\n \n \n Internal Affairs Case Number\n \n \n {internalAffairs.error}\n \n )}\n \n {standardCaseUpdatesVisible && (\n \n \n
\n \n {formType?.caseUpdates?.subtype?.visible && (\n \n \n Subtype\n \n \n \n )}\n {formType?.caseUpdates?.source?.visible && (\n \n \n Source\n \n \n \n )}\n {formType?.caseUpdates?.reporter?.visible && (\n \n \n Reporter\n \n \n \n )}\n {formType?.caseUpdates?.investigator?.visible && (\n \n \n Investigator\n \n \n \n )}\n {formType?.caseUpdates?.allegations?.visible && (\n \n \n Allegation\n \n setAllegation(e.target.value)}\n id=\"alegationMutliSelct\"\n options={formType?.caseUpdates?.allegations?.values || AllegationOptions}\n />\n \n )}\n {formType?.caseUpdates?.dispositions?.visible && (\n \n \n Disposition\n \n setDisposition(e.target.value)}\n id=\"alegationMutliSelct\"\n options={formType?.caseUpdates?.dispositions?.values || DispositionOptions}\n />\n \n )}\n {formType?.caseUpdates?.disciplines?.visible && (\n \n \n Discipline\n \n setDiscipline(e.target.value)}\n id=\"alegationMutliSelct\"\n defaultValue={false}\n options={formType?.caseUpdates?.disciplines?.values || DisciplineOptions}\n />\n \n )}\n \n
\n
\n
\n )}\n
\n \n \n )}\n \n \n \n \n {loading && loadingState === 'updateForm' ? : 'Save'}\n \n }\n >\n \n {contents.map((content, contentKey) => {\n if (content?.components === 0) return null;\n\n if (!content.active) return null;\n\n return (\n {\n setAccordions((prevAccordions) => ({\n ...prevAccordions, // Preserve existing accordion states\n [content.value]: !prevAccordions[content.value],\n }));\n }}\n key={contentKey}\n active={accordions[content.value]}\n >\n {content.name}\n \n );\n })}\n \n \n \n \n );\n};\n\nconst StyledList = styled.ul`\n list-style: inside;\n`;\n\nexport const OutLineInput = styled('input')`\n background-color: #f8f8f9;\n height: 40px;\n font-size: 14px !important;\n width: 100%;\n padding: 10px;\n border-radius: 5px;\n border: 0;\n font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;\n outline: 0;\n &::placeholder {\n color: #00000061;\n }\n ${(props) =>\n props.bordered &&\n `\n border: 1px solid ${props.active ? '#408BEC' : 'rgba(0, 0, 0, 0.23)'};\n background: transparent;\n `}\n ${(props) =>\n props.error &&\n `\n border: 1px solid red !important;\n `}\n`;\n\nconst ContentText = styled.li`\n font-size: 16px;\n color: #575a66;\n font-weight: 500;\n margin-bottom: 8px;\n cursor: pointer;\n\n ${(props) =>\n props.active &&\n `\n color: #2E66FE;\n `}\n`;\n\nUpdateCase.propTypes = {\n id: PropTypes.string,\n status: PropTypes.bool,\n setIsRequestingData: PropTypes.func,\n form: PropTypes.object,\n setForm: PropTypes.func,\n formType: PropTypes.object,\n customFieldsValues: PropTypes.array,\n setCustomFieldsValues: PropTypes.func,\n};\n\nexport default UpdateCase;\n","/* eslint-disable no-useless-catch */\nimport { unarmed, unarmedFile, unarmedWithToken, unarmedWithTokenAndDownloadFile } from './axios';\n\nexport const uploadOrganizationImg = async (img, token, id) => {\n try {\n const { data } = await unarmedWithToken(token).put(`/organizations/${id}/image`, img);\n return data.public_url;\n } catch (error) {\n console.log(error);\n }\n};\n\nexport const getOrganizationsByState = async (subdomain) => {\n try {\n const { data, headers } = await unarmed().get(`/organizations/subdomain/${subdomain}`);\n return { headers, data: data[0] };\n } catch (error) {\n console.log(error);\n }\n};\n\nexport const getFilterByCase = async () => {\n try {\n const { data } = await unarmedWithToken().get(`/forms/filters`);\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const getUsage = async (idOrga) => {\n try {\n const { data } = await unarmedWithToken().get(`/organizations/${idOrga}/usage`);\n return data;\n } catch (error) {\n console.log(error);\n }\n};\n\nexport const resendUserInvitation = async (id) => {\n try {\n const { data } = await unarmedWithToken().post(`/invitations/${id}/resend`);\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const getAvailableFormType = (orgId, extra = '') =>\n unarmedWithToken().get(`/form-types/available?organizationId=${orgId}${extra}`);\n\nconst getOptionsEndpoint = (option, formTypeId) => {\n switch (option) {\n case 'Cases':\n return `/forms/import/options?formTypeId=${formTypeId}`;\n\n case 'Officers':\n return '/officers/import/options';\n\n case 'Users':\n return '/users/import/options';\n\n default:\n throw new Error(`Unsupported option on type ${option}`);\n }\n};\n\nexport const getImportOptions = async (option, formTypeId) => {\n try {\n const { data } = await unarmedWithToken().get(getOptionsEndpoint(option, formTypeId));\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const createOrganization = (organization, token) => unarmedWithToken(token).post('/organizations', organization);\n\nexport const getFormInfo = (id, token) => {\n if (token) {\n return unarmedWithToken(token).get(`/forms/${id}`);\n }\n\n return unarmed().get(`/forms/${id}`);\n};\n\nexport const getCivilianCases = ({\n token,\n page,\n limit,\n sortBy,\n sort,\n isFiltering,\n type,\n from,\n to,\n code,\n status,\n name,\n assignedTo,\n source = [],\n reporter = [],\n investigator = [],\n allegation = [],\n disposition = [],\n discipline = [],\n badgeNumber,\n uniqueFieldId,\n archivedOnly,\n transferredOnly,\n flaggedOnly,\n subType = [],\n contact,\n filtersConfigId,\n}) => {\n const params = new URLSearchParams({\n page,\n limit,\n sortBy,\n sortOrder: sort,\n });\n\n if (isFiltering) {\n if (type && type !== '0') {\n params.append('type', type);\n }\n\n subType.forEach((item) => {\n if (item.value === 'Not Set') {\n params.append('subtype[]', 'null');\n } else {\n params.append('subtype[]', item);\n }\n });\n\n if (from) params.append('from', from);\n if (to) params.append('to', to);\n if (code) params.append('code', code);\n if (name) params.append('name', name);\n if (status && status !== '0') {\n params.append('status', status);\n }\n if (assignedTo) {\n params.append('assignedTo', assignedTo);\n }\n\n source.forEach((item) => {\n if (item.value === 'Not Set') {\n params.append('source[]', 'null');\n } else {\n params.append('source[]', item);\n }\n });\n\n reporter.forEach((item) => {\n if (item.value === 'Not Set') {\n params.append('reporter[]', 'null');\n } else {\n params.append('reporter[]', item);\n }\n });\n\n investigator.forEach((item) => {\n if (item.value === 'Not Set') {\n params.append('investigator[]', 'null');\n } else {\n params.append('investigator[]', item);\n }\n });\n\n allegation.forEach((item) => {\n if (item.value === 'Not Set') {\n params.append('allegations[]', 'null');\n } else {\n params.append('allegations[]', item);\n }\n });\n\n disposition.forEach((item) => {\n if (item.value === 'Not Set') {\n params.append('dispositions[]', 'null');\n } else {\n params.append('dispositions[]', item);\n }\n });\n\n discipline.forEach((item) => {\n if (item.value === 'Not Set') {\n params.append('disciplines[]', 'null');\n } else {\n params.append('disciplines[]', item);\n }\n });\n\n if (uniqueFieldId) {\n params.append('uniqueFieldIdValue', uniqueFieldId?.value);\n params.append('uniqueFieldIdQuestion', uniqueFieldId?.data?.question);\n params.append('uniqueFieldIdType', uniqueFieldId?.type);\n }\n if (badgeNumber) params.append('badgeNumber', badgeNumber);\n if (archivedOnly) params.append('archivedOnly', archivedOnly);\n if (transferredOnly) params.append('transferredOnly', transferredOnly);\n if (flaggedOnly) params.append('flaggedOnly', flaggedOnly);\n }\n\n if (contact) {\n params.append('contacts[]', contact);\n }\n\n if (filtersConfigId) {\n params.append('filtersConfigId', filtersConfigId);\n }\n\n const URL = `/forms?${params.toString()}`;\n\n return unarmedWithToken(token).get(URL);\n};\n\nexport const getMe = (token) => unarmedWithToken(token).get('/me');\n\nexport const getUsers = ({\n page = null,\n limit = null,\n sortBy = null,\n sort = null,\n from = null,\n to = null,\n name = null,\n role = null,\n email = null,\n phone = null,\n flaggedOnly = null,\n isFiltering = null,\n}) => {\n if (!page || !limit) {\n return unarmedWithToken().get(`/users`);\n }\n\n const URL = `/users?page=${page}&limit=${limit}&sortBy=${sortBy}&sortOrder=${sort}`;\n\n const config = {};\n\n if (isFiltering) {\n if (from) {\n config.startDate = from;\n }\n if (to) {\n config.endDate = to;\n }\n\n if (email) {\n config.email = email;\n }\n if (role && role !== '0') {\n config.role = role;\n }\n\n if (phone) {\n config.phoneNumber = phone;\n }\n\n if (name) {\n config.name = name;\n }\n\n if (flaggedOnly) {\n config.flaggedOnly = flaggedOnly;\n }\n }\n return unarmedWithToken().get(URL, {\n params: { ...config },\n });\n};\n\nexport const getUsersSearch = (limit, sortBy, sort, value) =>\n unarmedWithToken().get('/users/search', {\n params: {\n limit,\n sortBy,\n value,\n sortOrder: sort,\n },\n });\n\nexport const getUsersInvitations = (\n page,\n limit,\n sortBy,\n sort,\n from,\n to,\n name,\n role,\n email,\n phone,\n isFiltering,\n flaggedOnly = false\n) => {\n const URL = `/invitations?page=${page}&limit=${limit}&sortBy=${sortBy === 'phoneNumber' ? 'phone' : sortBy\n }&sortOrder=${sort}`;\n\n const config = {};\n\n if (isFiltering) {\n if (from) {\n config.startDate = from;\n }\n if (to) {\n config.endDate = to;\n }\n\n if (email) {\n config.email = email;\n }\n if (role && role !== '0') {\n config.type = role;\n }\n if (phone) {\n config.phone = phone;\n }\n\n if (name) {\n config.name = name;\n }\n\n if (flaggedOnly) {\n config.flaggedOnly = flaggedOnly;\n }\n }\n return unarmedWithToken().get(URL, {\n params: { ...config },\n });\n};\n\nexport const getAllegations = ({\n page = 1,\n limit = 10,\n from,\n to,\n sort = 'asc',\n sortBy = 'createdAt',\n isFiltering,\n uniqueFieldId,\n officerName,\n status,\n disposition,\n allegation,\n discipline,\n trackingNumber,\n flaggedOnly = false,\n type,\n}) => {\n const URL = `/allegations?page=${page}&limit=${limit}&sortBy=${sortBy}&sortOrder=${sort}`;\n const config = {};\n if (isFiltering) {\n if (from) {\n config.startDate = from;\n }\n if (to) {\n config.endDate = to;\n }\n if (uniqueFieldId) {\n config.uniqueFieldId = uniqueFieldId;\n }\n if (trackingNumber) {\n config.code = trackingNumber;\n }\n if (officerName) {\n config.name = officerName;\n }\n\n if (status && status !== '0') {\n config.status = status;\n }\n if (type && type !== '0') {\n config.type = type;\n }\n if (allegation && allegation !== '0') {\n config.allegation = allegation;\n }\n if (disposition && disposition !== '0') {\n config.disposition = disposition;\n }\n if (discipline && discipline !== '0') {\n config.discipline = discipline;\n }\n\n if (flaggedOnly) {\n config.flaggedOnly = flaggedOnly;\n }\n }\n /* if (filterConfigId) {\n config.filtersConfigId = filterConfigId;\n } */\n\n return unarmedWithToken().get(URL, {\n params: { ...config },\n });\n};\n\nexport const getOfficers = ({\n includeTotalCases,\n page,\n limit,\n sort = 'desc',\n sortBy = 'badgeNumber',\n isFiltering,\n flaggedOnly = false,\n archivedOnly = false,\n name,\n badge,\n uniqueFieldId,\n}) => {\n const config = {};\n\n if (isFiltering) {\n if (name) {\n config.name = `${name}`;\n }\n\n if (badge) {\n config.badgeNumber = badge;\n }\n\n if (uniqueFieldId) {\n config.uniqueFieldId = uniqueFieldId;\n }\n\n if (flaggedOnly) {\n config.flaggedOnly = flaggedOnly;\n }\n\n if (archivedOnly) {\n config.archivedOnly = archivedOnly;\n }\n }\n if (includeTotalCases) {\n return unarmedWithToken().get(\n `/officers?page=${page}&limit=${limit}&includeTotalCases=true&sortBy=${sortBy}&sortOrder=${sort}`,\n { params: { ...config } }\n );\n }\n return unarmedWithToken().get(`/officers?page=${page}&limit=${limit}&sortBy=${sortBy}&sortOrder=${sort}`, {\n params: { ...config },\n });\n};\n\nexport const getOfficersByIds = ({ ids }) => {\n return unarmedWithToken().get(`/officers?ids=${ids}`);\n};\n\nexport const onUpdateStatus = (token, id, data) => unarmedWithToken(token).put(`/forms/${id}`, data);\n\nexport const onUpdateFormTask = (token, id, data) => unarmedWithToken(token).put(`/forms/${id}/task`, data);\n\nexport const onUpdateFaqs = (data) => unarmedWithToken().put(`/faq`, data);\nexport const onGetFaqs = (organizationId) => unarmedWithToken().get(`/faq?organizationId=${organizationId}`);\n\nexport const asignUserToForm = (token, id, data) => unarmedWithToken(token).put(`/forms/${id}`, data);\n\nexport const deleteAssignedUser = (token, id, data) => unarmedWithToken(token).put(`/forms/${id}`, data);\n\nexport const getFormsRange = (token, ids) => unarmedWithToken(token).get(`/forms?${ids}`);\n\nexport const getAllegationRange = (token, ids) => unarmedWithToken(token).get(`/allegations?${ids}`);\n\nexport const getFormLog = (token, id, page, limit) =>\n unarmedWithToken(token).get(`/forms/${id}/log?limit=${limit}&page=${page}`);\n\nexport const updateForm = (id, data) => unarmedWithToken().put(`/forms/${id}`, data);\n\nexport const onUpdateFormType = (id, type) =>\n unarmedWithToken().put(`/forms/${id}`, {\n type,\n });\n\nexport const onTransferCase = (id, data) => unarmedWithToken().put(`/forms/${id}/transfer`, data);\nexport const onDuplicateCase = (id, data) => unarmedWithToken().post(`/forms/${id}/duplicate`, data);\nexport const onArchiveOfficers = (data) => unarmedWithToken().post(`/officers/archive`, data);\nexport const onUnarchiveOfficers = (data) => unarmedWithToken().post(`/officers/unarchive`, data);\n\nexport const updateFormComments = (id, token, files, comment) => {\n if (comment) {\n return unarmedWithToken().put(`/forms/${id}/comment`, {\n comment,\n files,\n });\n }\n return unarmedWithToken().put(`/forms/${id}/comment`, {\n files,\n });\n};\n\nexport const editFormComment = (id, commentId, comment) =>\n unarmedWithToken().put(`/forms/${id}/comment/${commentId}`, {\n comment,\n });\n\nexport const createOfficer = ({ customFields, photo }) =>\n unarmedWithToken().post('/officers', {\n ...(customFields && { customFields }),\n ...(photo && { photo }),\n });\n\nexport const updateOfficer = (id, data) => unarmedWithToken().put(`/officers/${id}`, data);\n\nexport const onSearchOfficer = (text) => unarmedWithToken().get(`/officers?text=${text}`);\n\nexport const addRowOfficer = (idForm, officerId) =>\n unarmedWithToken().put(`/forms/${idForm}`, { allegationRow: { officerId } });\n\nexport const assignOfficer = (id, officerId) =>\n unarmedWithToken().put(`/forms/${id}`, {\n assignOfficers: [officerId],\n });\nexport const unassingOfficer = (id, officerId) =>\n unarmedWithToken().put(`/forms/${id}`, {\n unassignOfficers: [officerId],\n });\n\nexport const updateOfficerRow = (id, rowData) => unarmedWithToken().put(`/forms/${id}`, { allegationRow: rowData });\n\nexport const updateOfficerCustomFields = (id, rowData) =>\n unarmedWithToken().put(`/forms/${id}`, { officerCustomFields: rowData });\n\nexport const deleteAnAllegationRow = (id, rowData) =>\n unarmedWithToken().put(`/forms/${id}`, { allegationRow: rowData });\n\nexport const uploadFormImg = async (img, setLoaderPercentage = () => { }) => {\n const { data } = await unarmedFile().post('/files', img, {\n onUploadProgress: (progressEvent) => {\n setLoaderPercentage(Math.round((progressEvent.loaded * 100) / progressEvent.total));\n },\n });\n\n return {\n _id: data._id,\n url: data.url,\n name: data.name,\n size: data.size,\n hashId: data.hashid,\n publicUrl: data.public_url,\n previewUrl: data.preview_url,\n mimetype: data.mimetype,\n };\n};\n\nexport const onSearchGeneral = (text, params) =>\n unarmedWithToken().get(`/search?text=${text}`, {\n params,\n });\nexport const mergeOfficer = (data) => unarmedWithToken().post('/officers/merge', data);\nexport const countItemsOfficers = (data) => unarmedWithToken().post('/officers/count', data);\nexport const getForms = () => unarmedWithToken().get(`/forms/count`);\nexport const getRoles = () => unarmedWithToken().get(`/roles`);\nexport const updateProfile = (data) => unarmedWithToken().put(`/me`, data);\nexport const deleteUser = (ids) => unarmedWithToken().delete(`/users?${ids}`);\nexport const deleteOfficer = (ids) => unarmedWithToken().delete(`/officers?${ids}`);\nexport const deleteForm = (ids) => unarmedWithToken().delete(`/forms?${ids}`);\n\nexport const createUserInvitation = (data) => unarmedWithToken().post('/invitations', data);\n\nexport const getSingleUser = (id) => unarmedWithToken().get(`/users/${id}`);\nexport const getInvitationUser = (id) => unarmedWithToken().get(`/invitations/${id}`);\n\nexport const getInvitiation = (query) => unarmed().get(`/invitation${query}`);\n\nexport const signupInvtion = (data, isWithSocial, token) => {\n if (isWithSocial) {\n return unarmed(token).post('/signup/invitation', data);\n }\n return unarmed().post('/signup/invitation', data);\n};\n\nexport const deleteInvitationUser = (id) => unarmedWithToken().delete(`/invitations?${id}`);\n\nexport const getOfficer = async (id) => {\n try {\n const { data } = await unarmedWithToken().get(`/officers/${id}`);\n return data;\n } catch (error) {\n console.log(error);\n }\n};\n\nexport const getOfficerStatus = (id) => unarmedWithToken().get(`/officers/${id}/stats`);\n\nexport const onUpdateOrganization = async (id, data) => {\n try {\n const res = unarmedWithToken().put(`/organizations/${id}`, data);\n return res;\n } catch (error) {\n throw error;\n }\n};\n\nconst getImportEndpoint = (option) => {\n switch (option) {\n case 'Cases':\n return '/forms/import';\n\n case 'Officers':\n return '/officers/import';\n\n case 'Users':\n return '/users/import';\n\n default:\n throw new Error(`Unsupported option on type ${option}`);\n }\n};\n\nexport const onImport = async (forms, module) => {\n try {\n const { data } = await unarmedWithToken().post(getImportEndpoint(module), forms);\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const getActivity = async ({ userId, formCode, formId, module, limit, endDate, before, startDate, project }) => {\n const URL = `/activity`;\n const config = {};\n\n if (limit) {\n config.limit = limit;\n }\n\n if (before) {\n config.before = before;\n }\n\n if (formCode) {\n config.formCode = formCode;\n }\n\n if (formId) {\n config.formId = formId;\n }\n\n if (userId) {\n config.userId = userId;\n }\n\n if (module && module !== '0') {\n config.module = module;\n }\n\n if (endDate) {\n config.endDate = endDate;\n }\n\n if (startDate) {\n config.startDate = startDate;\n }\n\n if (project) {\n config.project = project;\n }\n\n const { data } = await unarmedWithToken().get(URL, {\n params: { ...config },\n });\n\n return data;\n};\n\nexport const onTranslate = async (text, target) => {\n try {\n const { data } = await unarmedWithToken().post('/translate', target ? { text, target } : { text });\n\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const onChangeAttachments = async (id, value) => {\n try {\n const { data } = await unarmedWithToken().put(`/organizations/${id}`, {\n features: {\n general: {\n attachments: value,\n },\n },\n });\n\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const onGetActivityToExport = async ({ userId, formCode, module, limit, endDate, before, startDate }) => {\n const URL = `/activity/export`;\n const config = {};\n if (limit) {\n config.limit = limit;\n }\n if (before) {\n config.before = before;\n }\n\n if (formCode) {\n config.formCode = formCode;\n }\n // if (isFiltering) {\n if (userId) {\n config.userId = userId;\n }\n if (module && module !== '0') {\n config.module = module;\n }\n\n if (endDate) {\n config.endDate = endDate;\n }\n if (startDate) {\n config.startDate = startDate;\n }\n\n try {\n const { data } = await unarmedWithTokenAndDownloadFile().get(URL, {\n params: { ...config },\n });\n\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const onUpdateOfficerProfile = async (id, profileData) => {\n try {\n const { data } = await unarmedWithToken().put(\n `/officers/${id}\n `,\n profileData\n );\n return data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const getOrganizations = (limit) => {\n const URL = `/organizations`;\n const config = {};\n if (limit) {\n config.limit = limit;\n }\n\n return unarmedWithToken().get(URL, {\n params: { ...config },\n });\n};\n\nexport const getOrganizationsTransfer = (params = {}) => {\n const URL = `/organizations/transfer`;\n return unarmedWithToken().get(URL, {\n params,\n });\n};\n\nexport const getQuestionBank = () => unarmedWithToken().get(`/questions`);\n\nexport const createReport = async (reqData) => unarmedWithToken().post('/adhoc-reports', reqData);\nexport const duplicateReport = async (reqData) => unarmedWithToken().post('/adhoc-reports/duplicates', reqData);\n\nexport const getReports = (page, limit, sort, sortBy) =>\n unarmedWithToken().get(`/adhoc-reports?page=${page}&limit=${limit}&sortBy=${sortBy}&sortOrder=${sort}`);\n\nexport const getReportsbyid = (id) => unarmedWithToken().get(`/adhoc-reports/${id}`);\n\nexport const deleteReport = (ids) => unarmedWithToken().delete(`/adhoc-reports?${ids}`);\nexport const deleteReportbyId = (id) => unarmedWithToken().delete(`/adhoc-reports/${id}`);\n\nexport const getFormNotesLogs = (id) => unarmedWithToken().get(`/forms/${id}/notes`);\nexport const getFormTypes = (page, limit, sort, sortBy) =>\n unarmedWithToken().get(`/form-types?page=${page}&limit=${limit}&sortBy=${sortBy}&sortOrder=${sort}`);\n\nexport const getFormAttachments = (id, source) => {\n const URL = `/forms/${id}/attachments`;\n const config = {};\n if (source) {\n config.source = source;\n }\n return unarmedWithToken().get(URL, {\n params: { ...config },\n });\n};\nexport const getFormAttachmentsDownload = (id) =>\n unarmedWithToken().get(`/forms/${id}/attachments?download=true`, {\n responseType: 'arraybuffer',\n });\n\nexport const updateFormTypes = (id, data) => unarmedWithToken().put(`/form-types/${id}`, data);\n\nexport const createFormTypes = (data) => unarmedWithToken().post(`/form-types`, data);\n\nexport const createFormType = (form) => unarmedWithToken().post('/forms', form);\n\nexport const deleteFormTypes = (ids) => unarmedWithToken().delete(`/form-types?${ids}`);\n\nexport const onSaveFormType = (json, id) => unarmedWithToken().put(`/form-types/${id}`, json);\n\nexport const getFormType = (id) => unarmedWithToken().get(`/form-types/${id}`);\n\nexport const getAvailableForms = (orgId) => unarmed().get(`/form-types/available?organizationId=${orgId}`);\n\nexport const changeUserpasswordFromProfile = (data) => unarmedWithToken().put('/me/password', data);\n\nexport const getPasswordReset = (email, subdomain) =>\n unarmed().get(`/password/reset`, {\n params: { email, subdomain },\n });\n\nexport const onPasswordReset = (data) => unarmed().post('/password/reset', data);\n\nexport const onArchive = (id) => unarmedWithToken().post(`/forms/${id}/archive`, {});\n\nexport const onUnArchive = (id) => unarmedWithToken().post(`/forms/${id}/unarchive`, {});\n\nexport const onArchiveNoteForm = (formId, commentId) =>\n unarmedWithToken().put(`/forms/${formId}/comment/${commentId}/archive`);\n\nexport const onUnArchiveNoteForm = (formId, commentId) =>\n unarmedWithToken().put(`/forms/${formId}/comment/${commentId}/unarchive`);\n\nexport const onArchiveNoteContact = (contactId, commentId) =>\n unarmedWithToken().put(`/contacts/${contactId}/comment/${commentId}/archive`);\n\nexport const onUnArchiveNoteContact = (contactId, commentId) =>\n unarmedWithToken().put(`/contacts/${contactId}/comment/${commentId}/unarchive`);\n\nexport const onArchiveNoteProject = (projectId, commentId) =>\n unarmedWithToken().put(`/projects/${projectId}/notes/${commentId}/archive`);\n\nexport const onUnArchiveNoteProject = (projectId, commentId) =>\n unarmedWithToken().put(`/projects/${projectId}/notes/${commentId}/unarchive`);\n\nexport const onArchiveNoteOfficer = (officerId, commentId) =>\n unarmedWithToken().put(`/officers/${officerId}/comment/${commentId}/archive`);\n\nexport const onUnArchiveNoteOfficer = (officerId, commentId) =>\n unarmedWithToken().put(`/officers/${officerId}/comment/${commentId}/unarchive`);\n\nexport const onGetProjects = (page, limit, sortBy, sort, contact) => {\n let query = '';\n if (page) {\n query += `?page=${page}`;\n }\n if (limit) {\n query += `&limit=${limit}`;\n }\n if (sortBy) {\n query += `&sortBy=${sortBy}`;\n }\n if (sort) {\n query += `&sortOrder=${sort}`;\n }\n if (contact) {\n query += `&contacts[]=${contact}`;\n }\n return unarmedWithToken().get(`/projects${query}`);\n};\n\nexport const onGetCustomFieldsModule = (moduleName) => unarmedWithToken().get(`/custom-field-module/${moduleName}`);\n\nexport const updateCustomFieldsModule = (data) => unarmedWithToken().put('/custom-field-module', data);\n\nexport const onCreateProject = (data) => unarmedWithToken().post(`/projects`, data);\n\nexport const onArchiveProject = (ids) => unarmedWithToken().delete(`/projects?${ids}`);\n\nexport const getProjectInfo = (id) => unarmedWithToken().get(`/projects/${id}`);\n\nexport const getModuleCustomFields = (name) => unarmedWithToken().get(`/custom-field-module/${name}`);\n\nexport const assignUserToProject = (id, data) => unarmedWithToken().post(`/projects/${id}/assigned-users`, data);\n\nexport const updateProject = (id, data) => unarmedWithToken().put(`/projects/${id}`, data);\n\nexport const onSearchTemplate = (template) => unarmedWithToken().get(`/project-templates-search?name=${template}`);\n\nexport const createProjectTemplate = (template) => unarmedWithToken().post('/project-templates', template);\n\nexport const createProjectNote = (id, note) => unarmedWithToken().post(`/projects/${id}/notes`, note);\n\nexport const addProjectAttachments = (id, attachments) =>\n unarmedWithToken().post(`/projects/${id}/attachments`, attachments);\n\nexport const addRecommendation = (projectId) => unarmedWithToken().post(`/projects/${projectId}/recommendations`);\n\nexport const getProjectHistory = (projectId) => unarmedWithToken().get(`/activity?project=${projectId}`);\n\nexport const deleteAction = (projectId, actionId) =>\n unarmedWithToken().delete(`/projects/${projectId}/actions/${actionId}`);\n\nexport const updateAction = (id, actionId, data) => unarmedWithToken().put(`/projects/${id}/actions/${actionId}`, data);\n\nexport const updateRecommendation = (projectId, recommendationId, data) =>\n unarmedWithToken().put(`/projects/${projectId}/recommendations/${recommendationId}`, data);\nexport const deleteRecommendation = (projectId, recommendationId) =>\n unarmedWithToken().delete(`/projects/${projectId}/recommendations/${recommendationId}`);\n\nexport const getProjectFileAttachments = (projectId) =>\n unarmedWithToken().get(`/projects/${projectId}/attachments?download=true&base=true&actions=true¬es=true`, {\n responseType: 'arraybuffer',\n });\n\nexport const addAction = (id, actionId, data) =>\n unarmedWithToken().put(`/projects/${id}/actions/${actionId}/attachments`, data);\n\nexport const getProjectFileAttachmentsToShow = (projectId) =>\n unarmedWithToken().get(`/projects/${projectId}/attachments?base=true&actions=true¬es=true`);\n\nexport const getNotificationCount = () => unarmedWithToken().get(`/notifications-count`);\n\nexport const getOfficerOptions = () => unarmedWithToken().get(`/officers/options`);\n\nexport const getFormOptionsType = () => unarmedWithToken().get(`/forms/options`);\n\nexport const getNotification = ({ limit, before }) => {\n const URL = `/notifications`;\n const config = {};\n\n if (limit) {\n config.limit = limit;\n }\n if (before) {\n config.before = before;\n }\n return unarmedWithToken().get(URL, {\n params: { ...config },\n });\n};\n\nexport const updateProjectActions = (id, data) => {\n return unarmedWithToken().put(`/projects/${id}/actions`, data);\n};\n\nexport const addOfficerComments = (id, data) => unarmedWithToken().post(`/officers/${id}/comment`, data);\n\nexport const getOfficerLogs = (id, type, limit, before) => {\n const config = {};\n if (limit) {\n config.limit = limit;\n }\n if (before) {\n config.before = before;\n }\n\n return unarmedWithToken().get(`/officers/${id}/${type}`, {\n params: { ...config },\n });\n};\n\nexport const getOfficerActivity = (id, limit, before) => {\n const config = {};\n if (limit) {\n config.limit = limit;\n }\n if (before) {\n config.before = before;\n }\n\n return unarmedWithToken().get(`/officers/${id}/activity`, {\n params: { ...config },\n });\n};\n\nexport const getOfficerAttachments = (id) => unarmedWithToken().get(`/officers/${id}/attachments`);\n\nexport const getOfficerFileAttachments = (id) =>\n unarmedWithToken().get(`/officers/${id}/attachments?download=true`, {\n responseType: 'arraybuffer',\n });\n\nexport const saveOfficerAttachments = (id, data) => unarmedWithToken().post(`/officers/${id}/attachments`, data);\n\nexport const getFormTypeOptions = (id) => unarmedWithToken().get(`/form-types/${id}/options/autopopulate`);\n\nexport const getCaseNumberPreview = (data) => unarmedWithToken().post(`/form-types/autopopulate-preview`, data);\n\nexport const updateAttachmentTags = (formID, id, data) =>\n unarmedWithToken().put(`/forms/${formID}/attachments/${id}/tags`, data);\n\nexport const updateContactAttachmentTags = (contactId, id, data) =>\n unarmedWithToken().put(`/contacts/${contactId}/attachments/${id}/tags`, data);\n\nexport const updateOfficersAttachmentTags = (officerID, id, data) =>\n unarmedWithToken().put(`/officers/${officerID}/attachments/${id}/tags`, data);\n\nexport const updateProjectsAttachmentTags = (projectID, id, data) =>\n unarmedWithToken().put(`/projects/${projectID}/attachments/${id}/tags`, data);\n\nexport const fetchTags = (params) => unarmedWithToken().get(`/tags/attachments`, { params });\n\nexport const createTag = (data) => unarmedWithToken().post('/tags/attachments', data);\n\n/**\n * Update case details by sending a request to the server.\n *\n * @param {string} formId - The ID of the form associated with the case details.\n * @param {Object} details - The updated case details, including pageIndex and page.\n * @returns {Promise} - A Promise that resolves with the server response.\n */\nexport const updateCaseDetails = (formId, data) => unarmedWithToken().put(`/forms/${formId}/data`, data);\n\n/**\n * Retrieves a list of contacts from the server.\n *\n * @param {Object} params - Optional parameters for customizing the request.\n * @returns {Promise} A Promise that resolves with the response data containing the list of contacts.\n */\nexport const fetchContacts = (params) => unarmedWithToken().get('/contacts', { params });\n\n/**\n * Creates a new contact on the server.\n *\n * @param {Object} data - The data representing the new contact to be created.\n * @returns {Promise} A Promise that resolves with the response data containing details of the created contact.\n */\nexport const createContact = (data) => unarmedWithToken().post('/contacts', data);\n\n/**\n * Updates an existing contact on the server.\n *\n * @param {string} id - The unique identifier of the contact to be updated.\n * @param {Object} data - The data representing the updated contact information.\n * @returns {Promise} A Promise that resolves with the response data containing details of the updated contact.\n */\nexport const updateContact = (id, data) => unarmedWithToken().put(`/contacts/${id}`, data);\n\n/**\n * Deletes one or more contacts from the server.\n *\n * @param {string} ids - Query parameter containing the IDs of the contacts to be deleted.\n * @returns {Promise} A Promise that resolves with the response data indicating the success of the deletion.\n */\nexport const deleteContacts = (ids) => unarmedWithToken().delete(`/contacts?${ids}`);\n\n/**\n * Retrieves details of a specific contact from the server.\n *\n * @param {string} id - The unique identifier of the contact to be retrieved.\n * @returns {Promise} A Promise that resolves with the response data containing details of the specified contact.\n */\nexport const fetchContact = (id) => unarmedWithToken().get(`/contacts/${id}`);\n\nexport const fetchContactCases = (id) => unarmedWithToken().get(`/forms?contacts[]=${id}`);\n\nexport const fetchContactProjects = (id) => unarmedWithToken().get(`/projects?contacts[]=${id}`);\n\nexport const fetchContactStats = (id) => unarmedWithToken().get(`/contacts/${id}/stats`);\n\nexport const fetchContactNotes = (id) => unarmedWithToken().get(`/contacts/${id}/notes`);\n\nexport const createContactComment = (id, data) => unarmedWithToken().post(`/contacts/${id}/comment`, data);\n\nexport const editContactComment = (id, commentId, data) =>\n unarmedWithToken().put(`/contacts/${id}/comment/${commentId}`, data);\n\nexport const fetchContactAttachments = (id) => unarmedWithToken().get(`/contacts/${id}/attachments`);\n\nexport const fetchContactHistory = (contactId) => unarmedWithToken().get(`/activity?contact=${contactId}`);\n\nexport const createLinkProjectContact = (projectId, contactId) =>\n unarmedWithToken().post(`/projects/${projectId}/contacts/${contactId}`);\n\nexport const deleteLinkProjectContact = (projectId, contactId) =>\n unarmedWithToken().delete(`/projects/${projectId}/contacts/${contactId}`);\n\nexport const createLinkCaseContact = (caseId, contactId) =>\n unarmedWithToken().post(`/forms/${caseId}/contacts/${contactId}`);\n\nexport const deleteLinkCaseContact = (caseId, contactId) =>\n unarmedWithToken().delete(`/forms/${caseId}/contacts/${contactId}`);\n\n// Cube Buckets\n\nexport const fetchCubeBuckets = (params) =>\n unarmedWithToken().get('/cube-buckets', {\n params,\n });\n\nexport const fetchCubeBucketsDate = (params) =>\n unarmedWithToken().get('/cube-buckets?type=date&from=formtypes', {\n params,\n });\n\nexport const createCubeBucket = (data) => unarmedWithToken().post('/cube-buckets', data);\n\nexport const updateFormTypesOrder = (ids) => unarmedWithToken().put('/form-types/order', ids);\n\nexport const reloadOrganizationCubes = (orgId) => unarmedWithToken().post(`/organizations/${orgId}/reload-cubejs`);\n\nexport const changeUserRole = (userId, role) => unarmedWithToken().put(`/users/${userId}/role`, { role });\n\nexport const userGetNotificationConfig = () => unarmedWithToken().get('/users/notifications/config');\n\nexport const userSaveNotificationConfig = (data) => unarmedWithToken().put('/users/notifications/config', data);\n\nexport const linkCase = (caseId, relatedCaseId) =>\n unarmedWithToken().put(`/forms/${caseId}/link`, { form: relatedCaseId });\n\nexport const unLinkCase = (caseId, relatedCaseId) =>\n unarmedWithToken().put(`/forms/${caseId}/unlink`, { form: relatedCaseId });\n\nexport const getUserTabs = (moduleName) => unarmedWithToken().get(`/user-tabs?moduleName=${moduleName}`);\n\nexport const createUserTabs = (data) => unarmedWithToken().post('/user-tabs', data);\n\nexport const updateUserTabs = (id, data) => unarmedWithToken().put('/user-tabs', id, data);\nexport const updateUserTabName = (id, name) => unarmedWithToken().put(`/user-tabs/${id}`, { name });\nexport const deleteUserTab = (tabId, moduleName) => unarmedWithToken().post(`/user-tabs/${tabId}`, { moduleName });\n\nexport const addReportInToDashboard = (data) => unarmedWithToken().post('dashboard-report', data);\n\nexport const updateDashboardReportSize = (id, data) =>\n unarmedWithToken().put(`/dashboard-report/${id}`, { size: data });\n\nexport const createDashboard = async (data) => unarmedWithToken().post('/dashboard', data);\n\nexport const createView = async (data) => unarmedWithToken().post('/views', data);\nexport const getViews = async () => unarmedWithToken().get('/views');\nexport const getViewByIdv = async (id) => unarmedWithToken().get(`/views/${id}`);\nexport const updateViewsById = async (id, data) => {\n try {\n const response = await unarmedWithToken().put(`/views/${id}`, data);\n return response.data;\n } catch (error) {\n console.error('Error updating view:', error.response?.data || error.message);\n throw error;\n }\n};\n\nexport const deleteView = async (id) => unarmedWithToken().delete(`/views/delete/${id}`);\n\nexport const getDashboards = (page, limit, sort, sortBy) =>\n unarmedWithToken().get(`/dashboard?page=${page}&limit=${limit}&sortBy=${sortBy}&sortOrder=${sort}`);\n\nexport const getDashboardsExplore = () => unarmedWithToken().get(`/dashboard`);\n\nexport const getReportsExplore = (page) => unarmedWithToken().get(`/adhoc-reports?page=${page}`);\n\nexport const getDashboardReports = (id) => unarmedWithToken().get(`/dashboard/${id}`);\n\nexport const getDashboardbyId = (id) => unarmedWithToken().get(`/dashboard/${id}`);\nexport const updateDashboard = (id, data) => unarmedWithToken().put(`/dashboard/${id}`, data);\nexport const deleteDashboard = (ids) => unarmedWithToken().post(`/dashboard/delete`, ids);\nexport const addDashboardReport = (id) => unarmedWithToken().post(`dashboard-report`, id);\nexport const deleteDashboardReport = (ids) => unarmedWithToken().post(`/dashboard-report/delete`, ids);\n\nexport const updateNotesSortOrder = async (userId, module, updatedSortOrder) => {\n try {\n const response = await unarmedWithToken().put(`/users/${userId}/notes-sort-order`, {\n module,\n updatedSortOrder,\n });\n return response.data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const archiveCaseAttachment = (caseId, attachmentId) =>\n unarmedWithToken().put(`/forms/${caseId}/attachments/${attachmentId}/archive`);\n\nexport const unarchiveCaseAttachment = (caseId, attachmentId) =>\n unarmedWithToken().put(`/forms/${caseId}/attachments/${attachmentId}/unarchive`);\n\nexport const archiveProjectAttachment = (projectId, attachmentId) =>\n unarmedWithToken().put(`/projects/${projectId}/attachments/${attachmentId}/archive`);\n\nexport const unarchiveProjectAttachment = (projectId, attachmentId) =>\n unarmedWithToken().put(`/projects/${projectId}/attachments/${attachmentId}/unarchive`);\n\nexport const archiveContactAttachment = (contactId, attachmentId) =>\n unarmedWithToken().put(`/contacts/${contactId}/attachments/${attachmentId}/archive`);\n\nexport const unarchiveContactAttachment = (contactId, attachmentId) =>\n unarmedWithToken().put(`/contacts/${contactId}/attachments/${attachmentId}/unarchive`);\n\nexport const archiveOfficerAttachment = (officerId, attachmentId) =>\n unarmedWithToken().put(`/officers/${officerId}/attachments/${attachmentId}/archive`);\n\nexport const unarchiveOfficerAttachment = (officerId, attachmentId) =>\n unarmedWithToken().put(`/officers/${officerId}/attachments/${attachmentId}/unarchive`);\n\nexport const getfiltersConfigById = (id) => unarmedWithToken().get(`/filter-config/${id}`);\nexport const updateFilterConfigById = (id, data) => unarmedWithToken().put(`/filter-config/${id}`, data);\nexport const createFilterConfig = (data) => unarmedWithToken().post('/filter-config', data);\nexport const getFormsFiltersConfig = () => unarmedWithToken().get('/forms/filters-config');\n\nexport const getUsersFiltersConfig = () => unarmedWithToken().get('/users/filters-config');\n\nexport const getOfficersFiltersConfig = () => unarmedWithToken().get('/officers/filters-config');\n\nexport const getAllegationsFiltersConfig = () => unarmedWithToken().get('/allegations/filters-config');\n\nexport const getContactsFiltersConfig = () => unarmedWithToken().get('/contacts/filters-config');\n\nexport const scheduleAdHocReports = async (reportId, emailConfiguration) =>\n unarmedWithToken().post('/adhoc-reports/schedule', {\n reportId,\n emailConfiguration,\n });\n\nexport const uploadReportImage = async (formData, id) => {\n try {\n const response = await unarmedWithToken().put(`/adhoc-reports/${id}/image`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n return response.data.reportImage;\n } catch (error) {\n console.error('Error uploading image:', error);\n }\n};\n\nexport const getViewById = (id) => unarmedWithToken().get(`/views/${id}`);\n\nexport const editMultipleOfficers = (ids) => unarmedWithToken().put(`/officers?${ids}`);\nexport const editMultipleUsers = (ids) => unarmedWithToken().put(`/users?${ids}`);\nexport const editMultipleForms = (ids) => unarmedWithToken().put(`/forms?${ids}`);\nexport const editMultipleContacts = (ids) => unarmedWithToken().put(`/contacts?${ids}`);\nexport const editMultipleAllegations = (ids) => unarmedWithToken().put(`/allegations`, { allegationIds: ids });\n\nexport const createNewPermission = (data) => unarmedWithToken().post('/permissions', data);\nexport const deletePermission = (data) => unarmedWithToken().post('/permissions/delete', data);\n","export const TYPE_USER_TABS = {\n REPORT: 'REPORT',\n REPORTS: 'REPORTS',\n DASHBOARDS_LIST: 'DASHBOARDS_LIST',\n DASHBOARD: 'DASHBOARD',\n VIEW: 'VIEW',\n MAIN: 'MAIN'\n};\n\nexport const DISPLAY_OBJECT_TYPES = {\n REPORT: 'REPORT',\n DASHBOARD: 'DASHBOARD',\n VIEW: 'VIEW',\n}","import React, { useState, useEffect } from 'react';\nimport { Typography } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\n\nimport TimeLineItem from './TimeLineItem';\nimport HTMLContent from '../../components/HTMLContent';\n\nconst UserInfo = ({ user }) => (user.email ? {user?.email} : 'A user');\nconst HighLight = ({ children }) => {children} ;\n\nconst ChangeItem = ({ item, change, user, withCaseLink }) => {\n const [fieldName, setFieldName] = useState('');\n const [oldValue, setOldValue] = useState('');\n const [newValue, setNewValue] = useState('');\n\n useEffect(() => {\n if (change) {\n setFieldName(change.fieldName);\n setOldValue(change.oldValue);\n setNewValue(change.newValue);\n }\n }, [change]);\n\n const caseTaskText = (\n <>\n in task \n {item?.data?.task?.name}\n {withCaseLink && (\n <>\n in case \n \n {item?.data?.form?.code}\n \n \n )}\n \n );\n\n const content = (\n \n {fieldName === 'dueDateTime' && (\n <>\n {!oldValue ? (\n <>\n \n has added Due Date \n {moment(newValue).format('YYYY-MM-DD')}\n {caseTaskText}\n \n ) : (\n <>\n \n has changed Due Date from \n {moment(oldValue).format('YYYY-MM-DD')}\n to \n {moment(newValue).format('YYYY-MM-DD')}\n {caseTaskText}\n \n )}\n \n )}\n {fieldName === 'notes' && (\n <>\n {!oldValue ? (\n <>\n \n has added a note \n {caseTaskText}\n \n \n ) : (\n <>\n \n has changed a note \n {caseTaskText}\n
\n from: \n
\n \n
\n to: \n
\n \n \n )}\n \n )}\n {fieldName === 'status' && (\n <>\n {!oldValue ? (\n <>\n \n has added Status \n {newValue}\n {caseTaskText}\n \n ) : (\n <>\n \n has changed Status from \n {oldValue}\n to \n {newValue}\n {caseTaskText}\n \n )}\n \n )}\n {fieldName === 'type' && (\n <>\n \n has changed Type from \n {oldValue}\n to \n {newValue}\n {caseTaskText}\n \n )}\n {fieldName === 'subType' && (\n <>\n \n has changed Subtype from \n {oldValue}\n to \n {newValue}\n {caseTaskText}\n \n )}\n {!change && (\n <>\n {item?.type === 'CASE_TASK_UPDATED' && (\n <>\n \n updated task: \n {item?.data?.task?.name} \n {item?.data?.form && (\n <>\n in case \n \n {item?.data?.form?.code}\n \n \n )}\n \n )}\n {item?.type === 'CASE_TASK_ASSIGNMENT_ADD' && (\n <>\n \n has assigned new user: \n \n {item?.data?.assignedUser?.firstName} {item?.data?.assignedUser?.lastName}\n \n {caseTaskText}\n \n )}\n {item?.type === 'CASE_TASK_ASSIGNMENT_REMOVE' && (\n <>\n \n has unassigned new user: \n \n {item?.data?.assignedUser?.firstName} {item?.data?.assignedUser?.lastName}\n \n {caseTaskText}\n \n )}\n {item?.type === 'CASE_TASK_ATTACHMENT_ADDED' && (\n <>\n \n has added attachment(s) \n {caseTaskText}\n \n )}\n {item?.type === 'CASE_TASK_ATTACHMENT_DELETED' && (\n <>\n \n has removed attachment(s) \n {caseTaskText}\n \n )}\n \n )}\n
\n );\n\n return content;\n};\n\nconst CaseTaskUpdateItem = ({ item, user, withTimeLine, withCaseLink }) => {\n if (withTimeLine) {\n return (\n \n {!item?.data?.changes || item?.data?.changes?.length === 0 ? (\n \n ) : (\n <>\n {item?.data?.changes?.map((change, changeIndex) => (\n \n ))}\n \n )}\n \n );\n }\n\n return (\n <>\n {!item?.data?.changes || item?.data?.changes?.length === 0 ? (\n \n ) : (\n <>\n {item?.data?.changes?.map((change, changeIndex) => (\n \n ))}\n \n )}\n \n );\n};\n\nexport default CaseTaskUpdateItem;\n","import { useState, useCallback, useEffect } from 'react';\n\nimport { fetchTags } from '../services/unarmed';\n\nexport const useTags = (allowSearchEmpty = true) => {\n const [search, setSearch] = useState(undefined);\n const [tagsRecently, setTagsRecently] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const onGetTagsRecently = useCallback(() => {\n const params = {\n sortOrder: 'asc',\n sortBy: search ? 'name' : 'count',\n limit: 20,\n page: 1,\n ...(search ? { search } : {}),\n };\n const makeCall = search ? true : allowSearchEmpty;\n\n if (makeCall) {\n setLoading(true);\n fetchTags(params).then((res) => {\n setTagsRecently(res.data);\n setLoading(false);\n });\n }\n }, [search, allowSearchEmpty]);\n\n useEffect(() => {\n onGetTagsRecently();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [search]);\n\n return [tagsRecently, setSearch, loading];\n};\n","/**\n * @file Provides a TagsProvider component that manages the state of tagsChanged.\n * @module TagsProvider\n * @requires React\n * @requires createContext\n * @requires useState\n * @requires useContext\n * @requires useMemo\n * @requires PropTypes\n */\n\nimport React, { createContext, useState, useContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * @namespace TagsContext\n * @type {object}\n * @desc A context object to hold the state of tagsChanged.\n * @default { tagsChanged: [], setTagsChanged: function() }\n */\nconst TagsContext = createContext();\n\n/**\n * @function TagsProvider\n * @param {object} props - The component props.\n * @param {React.ReactNode} props.children - The children components.\n * @desc A provider component that wraps the children components and provides the state of tagsChanged.\n * @returns {React.ReactNode} The renderable children components.\n */\nconst TagsProvider = ({ children }) => {\n const [tagsChanged, setTagsChanged] = useState([]);\n\n /**\n * @constant {object} value - The value object that holds the state of tagsChanged.\n * @desc The value object is memoized to optimize performance.\n * @default { tagsChanged: [], setTagsChanged: function() }\n */\n const value = useMemo(\n () => ({\n tagsChanged,\n setTagsChanged,\n }),\n [tagsChanged]\n );\n\n return {children};\n};\n\nTagsProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\n/**\n * @function useTagsProvider\n * @desc A custom hook to consume the state of tagsChanged.\n * @returns {object} An object containing the current state of tagsChanged and a function to update it.\n */\nexport const useTagsProvider = () => {\n const { tagsChanged, setTagsChanged } = useContext(TagsContext);\n\n return { tagsChanged, setTagsChanged };\n};\n\nexport default TagsProvider;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAxklEQVQ4je2TMQ5BQRRFz3yzGY1YhEphJSIiolJJFBagsACFUqGxDxEb0P2SHyKuwhsmk09CovOSl9zcd+fkTfEgKcFUcBAUJT1L864EUAAeWAMXsz3QALyDSvomBZwEqxJ/KVDqexsOgWrk1QTzJFu3bPB3DkaBvhHow97G6yGY22AgaJvuCzqmu4Ke6YUge3zB3QFX4+2BY6TPkc5MX53lg/F1/QE/AmSR/0o/ypcAxjyPaBz5k7erCJqC/MUZx50LWuHdDbXhc9ywyKvTAAAAAElFTkSuQmCC\"","import { Box, CircularProgress, Typography } from '@material-ui/core';\nimport React from 'react';\n\nfunction CircularProgressWithLabel(props) {\n return (\n \n \n \n {`${props.value}%`}\n \n \n );\n}\n\nexport default CircularProgressWithLabel;\n","import React, { useEffect, useState } from 'react';\nimport {\n Avatar,\n Backdrop,\n Box,\n Button,\n CircularProgress,\n Fade,\n Input,\n InputLabel,\n makeStyles,\n Modal,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport MultiSelectBox from '../../../components/MultiSelectBox';\nimport { genderOptions, raceEthnicityOptions } from '../../../utils/options';\nimport MaskedInput from 'react-text-mask';\nimport { ImageContainer } from '../../../styles/GlobalStyles';\nimport { DropzoneArea } from 'material-ui-dropzone';\nimport { toast } from '../../../components/Notification';\nimport useOrganization from '../../../hooks/useOrganization';\nimport { createOfficer, getModuleCustomFields, updateOfficer, uploadFormImg } from '../../../services/unarmed';\nimport { axiosCatchError } from '../../../utils';\nimport { CURenderer } from '../../CaseDetails/UpdateCaseComponents/CaseUpdateRenderer';\nimport useTrackForm from '../../../hooks/useTrackForm';\nimport { cuGetConfig } from '../../CaseDetails/UpdateCaseComponents/CaseUpdateConfig';\n\nconst showGlobalToast = (() => {\n let toastTimeout;\n\n return (message, type = 'success') => {\n clearTimeout(toastTimeout);\n\n localStorage.setItem('toast_message', message);\n localStorage.setItem('toast_type', type);\n localStorage.setItem('toast_timestamp', new Date().getTime().toString());\n\n toastTimeout = setTimeout(() => {\n const savedMessage = localStorage.getItem('toast_message');\n const savedType = localStorage.getItem('toast_type');\n\n if (savedMessage) {\n if (savedType === 'success') {\n toast.success(savedMessage);\n } else if (savedType === 'error') {\n toast.error(savedMessage);\n }\n\n localStorage.removeItem('toast_message');\n localStorage.removeItem('toast_type');\n localStorage.removeItem('toast_timestamp');\n }\n }, 300);\n };\n})();\n\nconst useCheckPendingToast = () => {\n useEffect(() => {\n const message = localStorage.getItem('toast_message');\n const type = localStorage.getItem('toast_type');\n const timestamp = localStorage.getItem('toast_timestamp');\n\n if (message && timestamp) {\n const now = new Date().getTime();\n const toastTime = parseInt(timestamp, 10);\n\n if (now - toastTime < 5000) {\n if (type === 'success') {\n toast.success(message);\n } else if (type === 'error') {\n toast.error(message);\n }\n }\n\n localStorage.removeItem('toast_message');\n localStorage.removeItem('toast_type');\n localStorage.removeItem('toast_timestamp');\n }\n }, []);\n};\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n backgroundColor: '#fff',\n width: '100%',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n outline: 0,\n borderRadius: 5,\n height: '80%',\n overflowY: 'auto',\n },\n label: {\n color: '#585858',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n boxInput: {\n marginBottom: 10,\n },\n image: {\n width: 120,\n height: 120,\n },\n}));\n\nexport const TextMaskCustom = (props) => {\n const { inputRef, ...other } = props;\n\n return (\n {\n inputRef(ref ? ref.inputElement : null);\n }}\n mask={['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]}\n style={{ width: '100%' }}\n placeholderChar={'\\u2000'}\n showMask\n guide={false}\n />\n );\n};\n\nexport const ModalCreateOrEditOfficer = ({ officer, open, setOpen, stateSubmit, setStateSubmit }) => {\n const classes = useStyles();\n const [avatar, setAvatar] = useState('');\n const [hashFile, setHashFile] = useState('');\n const [customFields, setCustomFields] = useState([]);\n const [customFieldsValues, setCustomFieldsValues] = useState([]);\n const [originalCustomFieldsValues, setOriginalCustomFieldsValues] = useState([]);\n const { form, loading, refetch, setForm } = useTrackForm(1);\n const [loadingPicture, setLoadingPicture] = useState(false);\n const { organization } = useOrganization();\n const [validateComponent, setValidateComponent] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n useCheckPendingToast();\n\n const uploadOnLoad = async (fl) => {\n const imgData = new FormData();\n\n imgData.append('file', fl);\n imgData.append('organizationId', organization?._id);\n\n setLoadingPicture(true);\n\n try {\n const img = await uploadFormImg(imgData);\n setAvatar(img.publicUrl);\n setHashFile(img.hashId);\n setLoadingPicture(false);\n } catch (error) {\n axiosCatchError(error);\n setLoadingPicture(false);\n }\n };\n\n const getValues = (customFieldsProps) => {\n let results = [];\n\n customFieldsProps.forEach((field) => {\n field.sections.forEach((section) => {\n section.components.forEach((component) => {\n results.push(component.hasOwnProperty('value') ? component.value : null);\n });\n });\n });\n\n return results;\n };\n\n const clearCustomFields = (customFieldValuesObj) => {\n return customFieldValuesObj.map((field) => ({\n ...field,\n sections: field.sections.map((section) => ({\n ...section,\n components: section.components.map(() => null),\n })),\n }));\n };\n\n const clearFormData = () => {\n setHashFile('');\n const clearCustomFieldsValues = clearCustomFields(customFieldsValues);\n setCustomFieldsValues(clearCustomFieldsValues);\n setAvatar('');\n };\n\n useEffect(() => {\n if (officer?._id) {\n setAvatar(officer?.photo?.public_url);\n setCustomFields([{ sections: officer?.customFields[0]?.sections }]);\n const values = getValues(officer.customFields);\n const customFieldsValuesObj = [{ sections: [{ components: values }] }];\n setCustomFieldsValues(customFieldsValuesObj);\n setOriginalCustomFieldsValues(JSON.parse(JSON.stringify(customFieldsValuesObj)));\n } else {\n let isCancelled = false;\n\n const fetchCustomFields = async () => {\n try {\n const { data } = await getModuleCustomFields('officers');\n if (!isCancelled) {\n setCustomFields([{ sections: data[0].sections }]);\n }\n } catch (error) {\n console.error('Error fetching custom fields:', error);\n }\n };\n\n fetchCustomFields();\n\n return () => {\n isCancelled = true;\n };\n }\n }, [officer]);\n\n const handleSubmit = async () => {\n if (isSubmitting) return;\n\n setIsSubmitting(true);\n setValidateComponent(true);\n\n try {\n const data = {\n photo: hashFile,\n customFields: customFieldsValues,\n };\n\n if (officer?._id) {\n try {\n const response = await updateOfficer(officer._id, data);\n\n if (response && response.status >= 200 && response.status < 300) {\n showGlobalToast('Officer updated successfully');\n\n clearFormData();\n setStateSubmit(!stateSubmit);\n setOpen(false);\n } else {\n showGlobalToast('Something went wrong updating the officer', 'error');\n }\n } catch (error) {\n if (error?.response?.data?.message) {\n showGlobalToast(error.response.data.message, 'error');\n } else {\n showGlobalToast('Something went wrong updating the officer', 'error');\n }\n }\n } else {\n try {\n const response = await createOfficer({ customFields: customFieldsValues, photo: hashFile });\n\n if (response && response.status >= 200 && response.status < 300) {\n showGlobalToast('Officer created successfully');\n\n clearFormData();\n setStateSubmit(!stateSubmit);\n setOpen(false);\n } else {\n showGlobalToast('Something went wrong creating the officer', 'error');\n }\n } catch (error) {\n if (error?.response?.data?.message) {\n showGlobalToast(error.response.data.message, 'error');\n } else {\n showGlobalToast('Something went wrong creating the officer', 'error');\n }\n }\n }\n } catch (error) {\n showGlobalToast('Something went wrong', 'error');\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const handleCancel = () => {\n if (isSubmitting) return;\n\n if (originalCustomFieldsValues.length > 0) {\n setCustomFieldsValues(JSON.parse(JSON.stringify(originalCustomFieldsValues)));\n }\n\n setOpen(false);\n };\n\n return (\n {\n if (!isSubmitting) {\n handleCancel();\n }\n }}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n style: { background: 'rgba(0, 0, 0, 0.3)' },\n }}\n >\n \n
\n {officer?._id ? 'Edit Officer' : 'Create Officer'}\n \n \n \n {\n if (files[0].size > 1000000) {\n toast.error(\n 'The file is too large, please upload to a file repository and share the link on incident External links section.'\n );\n }\n }}\n onChange={(fl) => {\n if (fl.length > 0) {\n uploadOnLoad(fl[fl.length - 1]);\n }\n }}\n clearOnUnmount\n filesLimit={1}\n showPreviewsInDropzone={false}\n />\n \n \n {customFields.length > 0 && (\n <>\n {\n const _pagesValues = [...customFieldsValues];\n\n _pagesValues[0] = {\n sections: [{ components: values }],\n };\n\n setCustomFieldsValues(_pagesValues);\n }}\n config={cuGetConfig({\n componentsFromServer: customFields[0]?.sections?.[0]?.components || [],\n })}\n validateComponent={validateComponent}\n customFieldsValues={customFieldsValues?.[0]?.sections[0]?.components || []}\n />\n \n )}\n \n !isSubmitting && handleCancel()}\n variant=\"outlined\"\n data-testid=\"new-contact-button-cancel\"\n disabled={isSubmitting}\n >\n Cancel\n \n {loading || isSubmitting ? (\n \n ) : (\n \n Save\n \n )}\n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { Grid, Box, Divider, Typography, CircularProgress, makeStyles, IconButton } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\n\n/**\n * Custom CSS styles for the SearchResults component.\n */\nconst useStyles = makeStyles(() => ({\n title: {\n fontSize: 16,\n color: 'rgba(87, 90, 102, 1)',\n fontWeight: 'bold',\n },\n itemColumn: {\n fontSize: 12,\n color: 'rgba(87, 90, 102, 1)',\n },\n itemValue: {\n fontSize: 14,\n color: '#000',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n}));\n\n/**\n * Component for displaying search results with customizable columns and actions.\n * @param {object} props - The props for the component.\n * @param {Array} props.data - The array of data representing search results.\n * @param {Array} props.defaultData - The array of default data.\n * @param {Array} props.columns - The array of column configurations.\n * @param {boolean} props.loading - Indicates if data is currently being loaded.\n * @param {Function} props.onClickAdd - The function to call when an item is clicked to add.\n * @param {boolean} props.searched - Indicates if a search has been performed.\n * @param {string} [props.noResultsText='No records found yet'] - The text to display when no results are found.\n * @returns {JSX.Element} - A JSX element representing the SearchResults component.\n */\nconst SearchResults = ({\n data,\n defaultData,\n columns,\n loading,\n onClickAdd,\n searched,\n noResultsText = 'No records found yet',\n}) => {\n const classes = useStyles();\n\n return (\n \n {data.length > 0 ? (\n \n \n Results\n \n \n \n \n \n {columns.map((column, columnKey) => (\n \n {column.name}\n \n ))}\n \n \n \n {data.map((item) => {\n const alreadyAdded = defaultData.find((defaultItem) => defaultItem?._id === item?._id);\n\n return (\n \n \n {columns.map((column, columnKey) => {\n return (\n \n {column.type === 'object' ? (\n column.renderValue ? (\n \n {column.renderValue(item?.[column.key]?.[column.key2]) || 'Not specified'}\n \n ) : (\n \n {item?.[column.key] || 'Not specified'}\n \n )\n ) : column.type === 'customField' ? (\n column.renderValue ? (\n \n {column.renderValue(\n item?.customFields?.[0]?.sections?.[0]?.components?.find(\n (item1) => item1?.data?.question === column.key\n )?.value\n ) || 'Not specified'}\n \n ) : (\n \n {item?.customFields?.[column.key] || 'Not specified'}\n \n )\n ) : column.renderValue ? (\n \n {column.renderValue(item[column.key]) || 'Not specified'}\n \n ) : (\n {item[column.key] || 'Not specified'}\n )}\n \n );\n })}\n \n \n {loading === item?._id ? (\n \n ) : (\n onClickAdd(item)}>\n \n \n )}\n \n \n \n \n );\n })}\n \n \n ) : null}\n {data.length === 0 && searched && (\n \n \n \n {noResultsText}\n \n \n )}\n \n );\n};\n\nSearchResults.propTypes = {\n /** The array of column configurations. */\n columns: PropTypes.array,\n /** The array of data representing search results. */\n data: PropTypes.array,\n /** The array of default data. */\n defaultData: PropTypes.array,\n /** Indicates if data is currently being loaded. */\n loading: PropTypes.object,\n /** The function to call when an item is clicked to add. */\n onClickAdd: PropTypes.func,\n /** Indicates if a search has been performed. */\n searched: PropTypes.bool,\n /** The text to display when no results are found. */\n noResultsText: PropTypes.string,\n};\n\nexport default SearchResults;\n","import React, { useState, useEffect } from 'react';\nimport { Box, Typography, Grid, Button, CircularProgress, makeStyles, Input } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nimport { OutLineInput } from '../pages/CaseDetails/UpdateCase';\nimport { TextMaskCustom } from '../pages/Officers/OfficersTable';\nimport { validateEmail } from '../utils/validateForm';\nimport SelectBox from './SelectBox';\nimport Card from './Card';\n\nconst useStyles = makeStyles(() => ({\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n containerTitle: {\n borderBottom: '1px solid #e2e2e2',\n },\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n}));\n\nconst CreateContactForm = ({\n dataTestId,\n firstName,\n lastName,\n type,\n companyName,\n email,\n phoneNumber,\n loading,\n onSubmit,\n}) => {\n const [validEmail, setValidEmail] = useState(true);\n\n const classes = useStyles();\n\n const onValidateEmail = () => {\n if (email && email.value !== '') {\n setValidEmail(validateEmail(email.value));\n }\n };\n\n useEffect(() => {\n onValidateEmail();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [email?.value]);\n\n return (\n \n \n \n \n \n First name\n \n \n \n \n \n \n \n Last name\n \n \n \n \n \n \n \n Email *\n \n \n {!validEmail && (\n \n The email is not valid\n \n )}\n \n \n \n \n \n Phone number\n \n \n \n \n \n \n \n Type\n \n \n \n \n {type.value === 'Organization' && (\n \n \n \n Company Name *\n \n \n \n \n )}\n \n \n {loading ? (\n \n ) : (\n \n Create Contact\n \n )}\n \n \n \n \n );\n};\n\nCreateContactForm.propTypes = {\n dataTestId: PropTypes.string,\n type: PropTypes.string.isRequired,\n companyName: PropTypes.string.isRequired,\n firstName: PropTypes.object.isRequired,\n lastName: PropTypes.object.isRequired,\n email: PropTypes.object.isRequired,\n phoneNumber: PropTypes.object.isRequired,\n loading: PropTypes.bool,\n onSubmit: PropTypes.func,\n};\n\nexport default CreateContactForm;\n","import React, { useState, useEffect } from 'react';\nimport { Box, Grid, Button, Typography, makeStyles, CircularProgress } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { toast } from './Notification';\nimport SearchIcon from '@material-ui/icons/Search';\n\nimport { OutLineInput } from '../pages/CaseDetails/UpdateCase';\nimport { fetchContacts } from '../services/unarmed';\nimport { axiosCatchError, formatPhoneNumber } from '../utils';\nimport Card from './Card';\nimport SearchResults from './SearchResults';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n}));\n\nconst SearchContacts = ({ search, linkFunc, linkId, defaultContacts, onAddedContact }) => {\n const [contacts, setContacts] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loadingSearch, setLoadingSearch] = useState(false);\n const [searched, setSearched] = useState(false);\n\n const classes = useStyles();\n\n const handleOnClickAddContact = (newContact) => {\n setLoading(newContact?._id);\n linkFunc(linkId, newContact?._id)\n .then((res) => {\n setLoading(false);\n setContacts([...contacts.filter((contact) => contact?._id !== newContact?._id)]);\n toast.success('Contact added successfully!');\n onAddedContact(newContact);\n })\n .catch((error) => {\n setLoading(false);\n axiosCatchError(error);\n });\n };\n\n const handleOnSearch = (e) => {\n e.preventDefault();\n\n if (search.value !== '') {\n const params = {\n searchValue: search.value,\n };\n\n setLoadingSearch(true);\n fetchContacts(params)\n .then((res) => {\n setContacts(res.data);\n setLoadingSearch(false);\n setSearched(true);\n })\n .catch((error) => {\n axiosCatchError(error);\n setLoadingSearch(false);\n setSearched(true);\n });\n }\n };\n\n const handleOnClear = () => {\n search.setValue('');\n setContacts([]);\n };\n\n useEffect(() => {\n if (search.value === '' && searched) {\n setSearched(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [search.value]);\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n {loadingSearch ? : 'Search'}\n \n \n \n Clear\n \n \n \n \n formatPhoneNumber(value),\n xs: 3,\n },\n {\n name: 'Email',\n key: 'email',\n xs: 4,\n },\n ]}\n data={contacts}\n loading={loading}\n defaultData={defaultContacts}\n onClickAdd={(item) => handleOnClickAddContact(item)}\n searched={search.value !== '' && searched}\n noResultsText=\"No contacts found yet\"\n />\n \n
\n
\n );\n};\n\nSearchContacts.propTypes = {\n search: PropTypes.object.isRequired,\n defaultContacts: PropTypes.array,\n linkFunc: PropTypes.func,\n linkId: PropTypes.number,\n onAddedContact: PropTypes.func,\n};\n\nexport default SearchContacts;\n","import { Box, FormControl, FormHelperText, Grid, InputLabel, MenuItem, Select, TextField } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport useInput from '../../../hooks/useInput';\nimport { getCitiesOfState, getStatesOfCountry } from '../../../services/countryStateService';\nimport { checkValues } from '../../../utils/validateForm';\n\nimport PreviewLabel from './PreviewLabel';\n\nconst values = {\n street: null,\n aptUnit: null,\n state: null,\n city: null,\n zipCode: null,\n};\n\nexport default function AddressInfo({ data, onSaveFormValues, getFormValue }) {\n const city = useInput('');\n const state = useInput(\n typeof data.questionBankIndex === 'number'\n ? getFormValue()?.[data.questionBankIndex] || ''\n : getFormValue()?.state || ''\n );\n const [states, setStates] = useState([]);\n const [cities, setCities] = useState([]);\n\n const defaultValues = getFormValue();\n\n useEffect(() => {\n getStatesOfCountry().then((res) => setStates(res));\n }, []);\n\n useEffect(() => {\n if (state.value) {\n const isoCodeState = states.find((st) => st.name === state.value);\n\n getCitiesOfState(isoCodeState?.isoCode).then((res) => setCities(res));\n }\n }, [state.value, states]);\n\n useEffect(() => {\n if (defaultValues?.state) {\n state.setValue(defaultValues?.state);\n }\n }, [defaultValues?.state]);\n\n return (\n \n \n \n {data?.street?.visible && (\n \n \n {data?.street?.text}\n {data?.street?.required && *}{' '}\n \n }\n variant=\"standard\"\n style={{ width: '100%' }}\n value={\n typeof data.questionBankIndex === 'number'\n ? getFormValue()?.[data.questionBankIndex] || ''\n : getFormValue()?.street || ''\n }\n onChange={(e) => {\n onSaveFormValues({\n ...checkValues(getFormValue(), values),\n street: e.target.value || null,\n });\n }}\n error={data?.street?.showRequired}\n helperText={data?.street?.showRequired && 'This field is required'}\n />\n \n )}\n {data?.aptUnit?.visible && (\n \n \n {data?.aptUnit?.text}\n {data?.aptUnit?.required && *}{' '}\n \n }\n variant=\"standard\"\n style={{ width: '100%' }}\n value={\n typeof data.questionBankIndex === 'number'\n ? getFormValue()?.[data.questionBankIndex] || ''\n : getFormValue()?.aptUnit || ''\n }\n onChange={(e) => {\n onSaveFormValues({\n ...checkValues(getFormValue(), values),\n aptUnit: e.target.value || null,\n });\n }}\n error={data?.aptUnit?.showRequired}\n helperText={data?.aptUnit?.showRequired && 'This field is required'}\n />\n \n )}\n {data?.state?.visible && (\n \n \n \n {' '}\n {data?.state?.text}\n {data?.state?.required && *}{' '}\n \n {\n state.onChange(e);\n city.setValue('');\n onSaveFormValues({\n ...checkValues(getFormValue(), values),\n state: e.target.value || null,\n city: null,\n });\n }}\n >\n {states.map((st, i) => (\n \n {st.name}\n \n ))}\n \n {data?.state?.showRequired && This field is required}\n \n \n )}\n {data?.city?.visible && (\n \n \n \n {' '}\n {data?.city?.text}\n {data?.city?.required && *}{' '}\n \n {\n city.onChange(e);\n\n onSaveFormValues({\n ...checkValues(getFormValue(), values),\n city: e.target.value || null,\n });\n }}\n >\n {cities.map((cy, i) => (\n \n {cy.name}\n \n ))}\n \n {data?.city?.showRequired && This field is required}\n \n \n )}\n {data?.zipCode?.visible && (\n \n \n {data?.zipCode?.text}\n {data?.zipCode?.required && *}{' '}\n \n }\n inputProps={{ maxLength: 5 }}\n variant=\"standard\"\n style={{ width: '100%' }}\n value={\n typeof data.questionBankIndex === 'number'\n ? getFormValue()?.[data.questionBankIndex] || ''\n : getFormValue()?.zipCode || ''\n }\n onChange={(e) => {\n if (e.target.value && !/^[0-9\\b]+$/.test(e.target.value)) {\n return;\n }\n onSaveFormValues({\n ...checkValues(getFormValue(), values),\n zipCode: e.target.value || null,\n });\n }}\n error={data?.zipCode?.showRequired}\n helperText={data?.zipCode?.showRequired && 'This field is required'}\n />\n \n )}\n \n \n );\n}\n","import {\n Box,\n FormControlLabel,\n Grid,\n Radio,\n RadioGroup,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React from 'react';\nimport InputPhone from './InputPhone';\nimport { checkValues } from '../../../utils/validateForm';\n\nimport { LabelError } from './MultipleChoice';\nimport PreviewLabel from './PreviewLabel';\n\nconst values = {\n email: null,\n firstName: null,\n lastName: null,\n phone: null,\n fileAnonymously: null,\n workTelephone: null,\n};\n\nexport default function ContactInfo({ data, getFormValue, onSaveFormValues }) {\n const getValue = () => {\n if (typeof data.questionBankIndex === 'number') {\n }\n if (\n getFormValue()?.fileAnonymously ||\n getFormValue()?.[0]?.fileAnonymously\n ) {\n return 'yes';\n }\n if (\n getFormValue()?.fileAnonymously === false ||\n getFormValue()?.[0]?.fileAnonymously === false\n ) {\n return 'no';\n }\n\n return null;\n };\n\n return (\n \n \n \n {data?.showFileAnonymously?.visible && (\n \n \n Do you want to file anonymously?{' '}\n {data?.showFileAnonymously?.required ? * : ''}\n \n {\n onSaveFormValues(\n typeof data?.questionBankIndex === 'number'\n ? [\n {\n ...checkValues(getFormValue()[0], values),\n fileAnonymously: e.target.value === 'yes',\n },\n ]\n : {\n ...checkValues(getFormValue(), values),\n fileAnonymously: e.target.value === 'yes',\n }\n );\n }}\n >\n \n \n }\n label=\"Yes\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n \n \n }\n label=\"No\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n \n {data?.showFileAnonymously.showRequired && (\n This field is required\n )}\n \n )}\n {data?.firstName?.visible && (\n \n \n {data?.firstName?.text}\n {data?.firstName?.required && (\n *\n )}{' '}\n \n }\n variant=\"standard\"\n style={{ width: '100%' }}\n placeholder={data?.firstName?.text}\n value={\n typeof data?.questionBankIndex === 'number'\n ? getFormValue()?.[0]?.firstName || ''\n : getFormValue()?.firstName || ''\n }\n onChange={(e) => {\n onSaveFormValues(\n typeof data?.questionBankIndex === 'number'\n ? [\n {\n ...checkValues(getFormValue()[0], values),\n firstName: e.target.value || null,\n },\n ]\n : {\n ...checkValues(getFormValue(), values),\n firstName: e.target.value || null,\n }\n );\n }}\n error={data?.firstName?.showRequired}\n helperText={\n data?.firstName?.showRequired && 'This field is required'\n }\n />\n \n )}\n {data?.lastName?.visible && (\n \n \n {data?.lastName?.text}\n {data?.lastName?.required && (\n *\n )}{' '}\n \n }\n variant=\"standard\"\n style={{ width: '100%' }}\n placeholder={data?.lastName?.text}\n value={\n typeof data?.questionBankIndex === 'number'\n ? getFormValue()?.[0]?.lastName || ''\n : getFormValue()?.lastName || ''\n }\n onChange={(e) => {\n onSaveFormValues(\n typeof data?.questionBankIndex === 'number'\n ? [\n {\n ...checkValues(getFormValue()[0], values),\n lastName: e.target.value || null,\n },\n ]\n : {\n ...checkValues(getFormValue(), values),\n lastName: e.target.value || null,\n }\n );\n }}\n error={data?.lastName?.showRequired}\n helperText={\n data?.lastName?.showRequired && 'This field is required'\n }\n />\n \n )}\n {data?.email?.visible && (\n \n \n {data?.email?.text}\n {data?.email?.required && (\n *\n )}\n {!data?.email?.required && getValue() === 'no' && (\n *\n )}{' '}\n \n }\n variant=\"standard\"\n style={{ width: '100%' }}\n placeholder={data?.email?.text}\n value={\n typeof data?.questionBankIndex === 'number'\n ? getFormValue()?.[0]?.email || ''\n : getFormValue()?.email || ''\n }\n onChange={(e) => {\n onSaveFormValues(\n typeof data?.questionBankIndex === 'number'\n ? [\n {\n ...checkValues(getFormValue()[0], values),\n email: e.target.value || null,\n },\n ]\n : {\n ...checkValues(getFormValue(), values),\n email: e.target.value || null,\n }\n );\n }}\n error={data?.email?.showRequired}\n helperText={data?.email?.showRequired && 'This field is required'}\n />\n \n )}\n {data?.phone?.visible && (\n \n \n {data?.phone?.text}\n {data?.phone?.required && (\n *\n )}{' '}\n \n }\n value={\n typeof data?.questionBankIndex === 'number'\n ? getFormValue()?.[0]?.phone || ''\n : getFormValue()?.phone || ''\n }\n onChange={(phone) => {\n onSaveFormValues(\n typeof data?.questionBankIndex === 'number'\n ? [\n {\n ...checkValues(getFormValue()[0], values),\n phone: phone || null,\n },\n ]\n : {\n ...checkValues(getFormValue(), values),\n phone: phone || null,\n }\n );\n }}\n hasError={data?.phone?.showRequired}\n />\n {data?.phone?.showRequired && (\n This field is required\n )}\n \n )}\n {data?.workTelephone?.visible && (\n \n \n {data?.workTelephone?.text}\n {data?.workTelephone?.required && (\n *\n )}{' '}\n \n }\n value={\n typeof data?.questionBankIndex === 'number'\n ? getFormValue()?.[0]?.workTelephone || ''\n : getFormValue()?.workTelephone || ''\n }\n onChange={(workTelephone) => {\n onSaveFormValues(\n typeof data?.questionBankIndex === 'number'\n ? [\n {\n ...checkValues(getFormValue()[0], values),\n workTelephone: workTelephone || null,\n },\n ]\n : {\n ...checkValues(getFormValue(), values),\n workTelephone: workTelephone || null,\n }\n );\n }}\n hasError={data?.workTelephone?.showRequired}\n />\n {data?.workTelephone?.showRequired && (\n This field is required\n )}\n \n )}\n \n \n );\n}\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport 'date-fns';\nimport DateFnsUtils from '@date-io/date-fns';\nimport {\n KeyboardDatePicker,\n MuiPickersUtilsProvider,\n} from '@material-ui/pickers';\nimport CalendarTodayIcon from '@material-ui/icons/CalendarToday';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function Date({ data, onSaveFormValues, getFormValue }) {\n const getStateValue = () => {\n if (data?.isDemographics) {\n return getFormValue()?.[data?.demographicKey] || null;\n }\n if (typeof data.questionBankIndex === 'number') {\n return getFormValue()?.[data.questionBankIndex] || null;\n }\n return getFormValue() || null;\n };\n\n return (\n \n \n \n {\n if (typeof data.questionBankIndex === 'number') {\n if (data.isDemographics) {\n const obj = { ...(getFormValue() || {}) };\n obj[data.demographicKey] = date;\n onSaveFormValues(obj, data.questionBankIndex);\n } else {\n onSaveFormValues([date] || [null]);\n }\n } else {\n onSaveFormValues(date || null);\n }\n // if (data.hasOwnProperty('questionBankIndex')) {\n // const value = [];\n // value[data.questionBankIndex] = date;\n\n // onSaveFormValues(value);\n // return;\n // }\n // onSaveFormValues(date);\n }}\n id=\"date-picker-dialog\"\n format=\"MM/dd/yyyy\"\n icon={}\n KeyboardButtonProps={{\n 'aria-label': 'change date',\n }}\n error={data?.showRequired}\n helperText={data?.showRequired && 'This field is required'}\n />\n \n \n );\n}\n","import React, { Fragment } from 'react';\n\nconst mapPropsToConfig = (config) => {\n const configWithProps = [];\n config.forEach((item) => {\n if (item.component) {\n const { component, ...props } = item;\n\n configWithProps.push({\n ...props,\n Component: component,\n });\n }\n });\n\n return configWithProps;\n};\n\nexport const Renderer = ({\n config,\n onSaveFormValues,\n getFormValue,\n isQuestionBankRender = false,\n organizationId,\n withFileUpload,\n sectionIndex,\n}) => {\n if (!config) {\n throw new Error('You are calling Renderer with no config.');\n }\n\n const configWithProps = mapPropsToConfig(config);\n const renderComponents = (items) =>\n items.map((item, itemIndex) => {\n const { Component, ...props } = item;\n\n return (\n \n {isQuestionBankRender ? (\n onSaveFormValues(value)}\n getFormValue={() => getFormValue(itemIndex)}\n subIndex={itemIndex}\n componentIndex={itemIndex}\n organizationId={organizationId}\n withFileUpload={withFileUpload}\n />\n ) : (\n onSaveFormValues(itemIndex, value)}\n componentIndex={itemIndex}\n getFormValue={() => getFormValue(itemIndex)}\n organizationId={organizationId}\n withFileUpload={withFileUpload}\n />\n )}\n \n );\n });\n\n return renderComponents(configWithProps);\n};\n","import { Box } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { getConfig } from '../config/FormConfig';\nimport { Renderer } from '../config/FormRenderer';\n\nexport default function Demographics({ components, onSaveFormValues, getFormValue, organizationId }) {\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: components,\n }),\n [components]\n );\n\n return (\n \n \n \n );\n}\n","import {\n Box,\n Checkbox,\n FormControl,\n FormHelperText,\n Input,\n ListItemText,\n MenuItem,\n Select,\n Typography,\n} from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport useInput from '../../../hooks/useInput';\n\nimport PreviewLabel from './PreviewLabel';\n\nexport default function Dropdown({ data, getFormValue, onSaveFormValues, subIndex }) {\n const [dropdownArray, setDropdownArray] = useState([]);\n const dropdownString = useInput('');\n\n const getStateValue = () => {\n if (data?.isDemographics) {\n return getFormValue()?.[data?.demographicKey] || '';\n }\n if (typeof data.questionBankIndex === 'number') {\n return getFormValue()?.[data.questionBankIndex] || '';\n }\n return getFormValue() || '';\n };\n useEffect(() => {\n if (getFormValue()?.[data.questionBankIndex]?.length > 0) {\n if (typeof subIndex === 'number') {\n setDropdownArray(getFormValue()[subIndex]);\n } else {\n setDropdownArray(getFormValue());\n }\n }\n }, [data]);\n return (\n \n \n \n {data?.multipleChoice === true ? (\n }\n renderValue={(selected) => {\n if (selected.length === 0) {\n return Select an Option;\n }\n if (typeof data.options[0] === 'object') {\n const selectedOptions = selected.map((sted) => data.options.find((option) => option.value === sted));\n return selectedOptions.map((sOption) => sOption.label).join(', ');\n }\n\n return selected.join(', ');\n }}\n onChange={(e) => {\n if (typeof subIndex === 'number') {\n if (data.isDemographics) {\n const obj = { ...(getFormValue() || {}) };\n obj[data.demographicKey] = e.target.value;\n onSaveFormValues(obj, data.questionBankIndex);\n } else {\n const subArrayValue = [...getFormValue()];\n subArrayValue[subIndex] = e.target.value;\n onSaveFormValues(subArrayValue);\n }\n } else {\n onSaveFormValues(e.target.value);\n }\n setDropdownArray(e.target.value);\n }}\n style={{ width: '100%' }}\n >\n \n Select an Option\n \n {data?.options?.map((option, i) => {\n if (typeof option === 'string') {\n return (\n \n -1} />\n \n \n );\n }\n\n return (\n \n -1} />\n \n \n );\n })}\n \n ) : (\n {\n dropdownString.onChange(e);\n if (typeof data.questionBankIndex === 'number') {\n if (data.isDemographics) {\n const obj = { ...(getFormValue() || {}) };\n obj[data.demographicKey] = e.target.value;\n onSaveFormValues(obj, data.questionBankIndex);\n } else {\n onSaveFormValues([e.target.value]);\n }\n } else {\n onSaveFormValues(e.target.value);\n }\n }}\n renderValue={(selected) => {\n if (!selected) {\n return Select an Option;\n }\n return selected;\n }}\n displayEmpty\n style={{ width: '100%' }}\n >\n \n Select an Option\n \n {data?.options?.map((option, i) => {\n if (typeof option === 'string') {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n );\n })}\n \n )}\n {data?.showRequired && {data?.requiredMessage ? data?.requiredMessage : 'This field is required'}}\n \n \n );\n}\n","import { Box, TextField } from '@material-ui/core';\nimport React from 'react';\nimport { setterState } from './File';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function Email({ data, onSaveFormValues, getFormValue }) {\n return (\n \n \n {\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n e.target.value || null\n );\n }}\n error={data?.showRequired}\n helperText={data?.showRequired ? (data?.requiredMessage || 'This field is required') : ''}\n />\n \n );\n}\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport DateFnsUtils from '@date-io/date-fns';\nimport moment from 'moment';\nimport {\n KeyboardTimePicker,\n MuiPickersUtilsProvider,\n} from '@material-ui/pickers';\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function Hour({ data, onSaveFormValues, getFormValue }) {\n return (\n \n \n \n {\n if (data.hasOwnProperty('questionBankIndex')) {\n const value = [];\n if (moment(date).format('hh:mm A') === 'Invalid date') {\n value[data.questionBankIndex] = null;\n } else {\n value[data.questionBankIndex] = moment(date).format('hh:mm A');\n }\n\n onSaveFormValues(value);\n return;\n }\n\n if (moment(date).format('hh:mm A') === 'Invalid date') {\n onSaveFormValues(null);\n return;\n }\n onSaveFormValues(moment(date).format('hh:mm A'));\n }}\n keyboardIcon={}\n error={data?.showRequired}\n helperText={data?.showRequired && 'This field is required'}\n />\n \n \n );\n}\n","import { Box, TextField } from '@material-ui/core';\nimport React from 'react';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function LongText({ data, onSaveFormValues, getFormValue }) {\n return (\n \n \n {\n if (data.hasOwnProperty('questionBankIndex')) {\n const value = [];\n value[data.questionBankIndex] = e.target.value || null;\n\n onSaveFormValues(value);\n return;\n }\n onSaveFormValues(e.target.value || null);\n }}\n inputProps={{ maxLength: data?.maxCharacters }}\n multiline\n rows={4}\n error={data?.showRequired}\n helperText={data?.showRequired && data?.requiredMessage ? data?.requiredMessage : 'This field is required'}\n />\n \n );\n}\n","import { Box } from '@material-ui/core';\nimport React from 'react';\nimport InputPhone from './InputPhone';\nimport { setterState } from './File';\nimport { LabelError } from './MultipleChoice';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function Phone({ data, onSaveFormValues, getFormValue }) {\n return (\n \n \n \n {\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n phone || null\n );\n }}\n hasError={data?.showRequired}\n />\n \n {data?.showRequired && {data?.requiredMessage ? data?.requiredMessage : 'This field is required'}}\n \n );\n}\n","import {\n Box,\n Grid,\n makeStyles,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport CloseIcon from '@material-ui/icons/Close';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\n\nimport PreviewLabel from './PreviewLabel';\nimport { wiredValue } from './File';\n\nimport { LabelError } from './MultipleChoice';\nimport useInput from '../../../hooks/useInput';\n\nconst urlExpression = /https?:\\/\\/[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)/;\n\nconst onChangeItem = (e, index, setItems, items, setter, isQuestionBank) => {\n const { value } = e.target;\n const itemsCopy = Array.from(items);\n itemsCopy[index] = value || null;\n\n if (isQuestionBank) {\n setter([itemsCopy]);\n } else {\n setter(itemsCopy);\n }\n\n setItems(itemsCopy);\n};\n\nexport const onAddItems = (items, setItems, data, setter) => {\n if (typeof setter === 'function') {\n setter([...items, data]);\n }\n setItems([...items, data]);\n};\n\nexport const onDeleteItem = (items, setItems, item, setter) => {\n const itemsCopy = [...items];\n itemsCopy.splice(item, 1);\n if (typeof setter === 'function') {\n setter(itemsCopy);\n }\n setItems(itemsCopy);\n};\n\nconst validateURl = (value) => {\n if (value.match(urlExpression)) {\n return '';\n }\n return 'Please enter a valid url, must have http or https at the beginning';\n};\n\nconst useStyles = makeStyles(() => ({\n textField: {\n width: '100%',\n marginBottom: 10,\n },\n deleteIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n\n deleteItemsicon: {\n position: 'absolute',\n right: 0,\n top: 0,\n bottom: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n}));\n\nexport default function Url({ data, onSaveFormValues, getFormValue }) {\n const [externalLinks, setExternalLinks] = useState(['']);\n const externalLink = useInput('');\n const classes = useStyles();\n\n useEffect(() => {\n if (getFormValue()?.length > 0) {\n wiredValue(\n data?.questionBankIndex,\n getFormValue,\n data?.multiple ? setExternalLinks : externalLink.setValue\n );\n }\n }, []);\n\n return (\n \n \n {data?.multiple ? (\n externalLinks?.map((link, i) => (\n \n \n {\n onChangeItem(\n e,\n i,\n setExternalLinks,\n externalLinks,\n onSaveFormValues,\n typeof data?.questionBankIndex === 'number'\n );\n }}\n className={classes.textField}\n error={link?.length > 0 && validateURl(link)}\n autoComplete=\"off\"\n helperText={link?.length > 0 && validateURl(link)}\n />\n \n\n {i > 0 && (\n onDeleteItem(externalLinks, setExternalLinks, i)}\n />\n )}\n \n ))\n ) : (\n \n {\n externalLink.onChange(e);\n onSaveFormValues(e.target.value || null);\n }}\n className={classes.textField}\n error={\n externalLink.value?.length > 0 && validateURl(externalLink.value)\n }\n autoComplete=\"off\"\n helperText={\n externalLink.value?.length > 0 && validateURl(externalLink.value)\n }\n />\n \n )}\n {data?.multiple && (\n \n onAddItems(externalLinks, setExternalLinks, '')}\n />{' '}\n onAddItems(externalLinks, setExternalLinks, '')}\n >\n Add another link\n \n \n )}\n {data?.showRequired && {data?.requiredMessage ? data?.requiredMessage : 'This field is required'}}\n \n );\n}\n","import {\n Box,\n Grid,\n makeStyles,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React, { Fragment, useEffect, useState } from 'react';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { onAddItems, onDeleteItem } from './Url';\nimport PreviewLabel from './PreviewLabel';\nimport InputPhone from './InputPhone';\nimport { setterState, wiredValue } from './File';\n\nconst useStyles = makeStyles(() => ({\n textField: {\n width: '100%',\n marginBottom: 10,\n },\n deleteIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n\n deleteItemsicon: {\n position: 'absolute',\n right: -20,\n top: 0,\n bottom: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n}));\n\nexport const onChangeItem = (e, index, items, setItems, prop, setter) => {\n const itemsCopy = Array.from(items);\n itemsCopy[index][prop] =\n typeof e === 'object' ? e.target.value || null : e || null;\n if (typeof setter === 'function') {\n setter(itemsCopy);\n }\n setItems(itemsCopy);\n};\n\nexport default function Witnesses({ data, onSaveFormValues, getFormValue }) {\n const classes = useStyles();\n const [witnesess, setWitnesses] = useState([\n {\n firstName: null,\n lastName: null,\n email: null,\n phone: null,\n relationship: null,\n },\n ]);\n\n useEffect(() => {\n wiredValue(data.questionBankIndex, getFormValue, setWitnesses);\n }, [data]);\n\n return (\n \n \n \n {witnesess.map((witness, i) => (\n \n \n \n onChangeItem(\n e,\n i,\n witnesess,\n setWitnesses,\n 'firstName',\n (dt) =>\n setterState(data.questionBankIndex, onSaveFormValues, dt)\n )\n }\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n \n \n onChangeItem(\n e,\n i,\n witnesess,\n setWitnesses,\n 'lastName',\n (dt) =>\n setterState(data.questionBankIndex, onSaveFormValues, dt)\n )\n }\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n \n \n onChangeItem(e, i, witnesess, setWitnesses, 'email', (dt) =>\n setterState(data.questionBankIndex, onSaveFormValues, dt)\n )\n }\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n \n \n \n onChangeItem(\n phone,\n i,\n witnesess,\n setWitnesses,\n 'phone',\n (dt) =>\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n dt || null\n )\n )\n }\n />\n \n \n \n \n \n onChangeItem(\n e,\n i,\n witnesess,\n setWitnesses,\n 'relationship',\n (dt) =>\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n dt\n )\n )\n }\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n \n\n {i > 0 && (\n onDeleteItem(witnesess, setWitnesses, i)}\n />\n )}\n \n ))}\n \n \n onAddItems(witnesess, setWitnesses, '')}\n />{' '}\n \n onAddItems(witnesess, setWitnesses, {\n firstName: null,\n lastName: null,\n email: null,\n phone: null,\n relationship: null,\n })\n }\n >\n Add another Witness\n \n \n \n );\n}\n","import {\n Box,\n Grid,\n makeStyles,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React, { Fragment, useEffect, useState } from 'react';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { onAddItems, onDeleteItem } from './Url';\nimport PreviewLabel from './PreviewLabel';\nimport { onChangeItem } from './Witnesses';\nimport { setterState, wiredValue } from './File';\n\nconst useStyles = makeStyles(() => ({\n textField: {\n width: '100%',\n marginBottom: 10,\n },\n deleteIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n\n deleteItemsicon: {\n position: 'absolute',\n right: -20,\n top: 160,\n bottom: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n}));\n\nexport default function Police({ data, onSaveFormValues, getFormValue }) {\n const classes = useStyles();\n const [polices, setPolices] = useState([\n {\n firstName: null,\n lastName: null,\n badgeNumber: null,\n officerDescription: null,\n },\n ]);\n\n useEffect(() => {\n wiredValue(data.questionBankIndex, getFormValue, setPolices);\n }, [data]);\n\n return (\n \n \n \n {polices.map((police, i) => (\n \n \n {\n onChangeItem(e, i, polices, setPolices, 'firstName', (dt) =>\n setterState(data.questionBankIndex, onSaveFormValues, dt)\n );\n }}\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n \n \n onChangeItem(e, i, polices, setPolices, 'lastName', (dt) =>\n setterState(data.questionBankIndex, onSaveFormValues, dt)\n )\n }\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n \n \n onChangeItem(e, i, polices, setPolices, 'badgeNumber', (dt) =>\n setterState(data.questionBankIndex, onSaveFormValues, dt)\n )\n }\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n \n \n onChangeItem(\n e,\n i,\n polices,\n setPolices,\n 'officerDescription',\n (dt) =>\n setterState(data.questionBankIndex, onSaveFormValues, dt)\n )\n }\n inputProps={{ maxLength: 1000 }}\n className={classes.textField}\n autoComplete=\"off\"\n />\n \n\n {i > 0 && (\n onDeleteItem(polices, setPolices, i)}\n />\n )}\n \n ))}\n \n \n onAddItems(polices, setPolices, '')}\n />{' '}\n \n onAddItems(polices, setPolices, {\n firstName: null,\n lastName: null,\n badgeNumber: null,\n officerDescription: null,\n })\n }\n >\n Add another Officer\n \n \n \n );\n}\n","import {\n Box,\n FormControlLabel,\n Radio,\n RadioGroup,\n TextField,\n} from '@material-ui/core';\nimport React from 'react';\n\nimport PreviewLabel from './PreviewLabel';\nimport { setterState } from './File';\nimport useInput from '../../../hooks/useInput';\n\nexport default function PrimaryLanguage({\n data,\n onSaveFormValues,\n getFormValue,\n}) {\n const primaryLanguage = useInput('');\n const languageInput = useInput('');\n\n return (\n \n \n {\n primaryLanguage.onChange(e);\n setterState(data.questionBankIndex, onSaveFormValues, e.target.value);\n }}\n >\n \n \n }\n label=\"Yes\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n \n \n }\n label=\"No\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n {!getFormValue()?.[data.questionBankIndex] ||\n (getFormValue()?.[data.questionBankIndex] !== 'yes' && (\n {\n languageInput.onChange(e);\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n e.target.value || null\n );\n }}\n autoComplete=\"off\"\n />\n ))}\n \n \n );\n}\n","import { Box } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { getConfig } from '../config/FormConfig';\nimport { Renderer } from '../config/FormRenderer';\n\nexport default function QuestionBank({\n components,\n onSaveFormValues,\n getFormValue,\n organizationId,\n imagesPreview,\n withFileUpload,\n}) {\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: components,\n imagesPreview,\n }),\n [components]\n );\n\n return (\n \n \n \n );\n}\n","import { Box, TextField } from '@material-ui/core';\nimport React from 'react';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function ShortText({ data, onSaveFormValues, getFormValue }) {\n return (\n \n \n {\n if (data.hasOwnProperty('questionBankIndex')) {\n const value = [];\n value[data.questionBankIndex] = e.target.value || null;\n\n onSaveFormValues(value);\n return;\n }\n onSaveFormValues(e.target.value || null);\n }}\n inputProps={{ maxLength: data?.maxCharacters }}\n error={data?.showRequired}\n helperText={data?.showRequired ? (data?.requiredMessage || 'This field is required') : ''}\n />\n \n );\n}\n","import {\n Box,\n FormControl,\n FormControlLabel,\n FormHelperText,\n Radio,\n RadioGroup,\n} from '@material-ui/core';\nimport React from 'react';\nimport { setterState } from './File';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function SingleChoice({ data, onSaveFormValues, getFormValue }) {\n return (\n \n \n \n {\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n e.target.value\n );\n }}\n >\n {data?.options?.map((option, index) => (\n \n \n }\n label={option}\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n ))}\n \n {data?.showRequired && (\n {data?.requiredMessage ? data?.requiredMessage : 'This field is required'}\n )}\n \n \n );\n}\n","import { Typography, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n subTitle: {\n paddingTop: 5,\n paddingBottom: 10,\n fontSize: 16\n }\n}));\n\nexport default function Subtitle({ data }) {\n \n const classes = useStyles()\n\n return {data.text};\n}\n","import { Typography, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n Title: {\n paddingTop: 15,\n paddingBottom: 5,\n fontWeight: 600,\n fontSize: 20\n }\n}));\n\nexport default function Title({ data }) {\n \n const classes = useStyles()\n\n return {data.text};\n}\n","import {\n Box,\n Checkbox,\n FormControl,\n FormControlLabel,\n FormHelperText,\n Radio,\n RadioGroup,\n} from '@material-ui/core';\nimport React from 'react';\nimport { setterState } from './File';\nimport PreviewLabel from './PreviewLabel';\n\nexport default function YesNo({ data, onSaveFormValues, getFormValue }) {\n const setValue = () => {\n if (typeof getFormValue() === 'boolean') {\n if (getFormValue() === true) {\n return 'yes';\n }\n return 'no';\n }\n return '';\n };\n return (\n \n \n \n {\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n e.target.value === 'yes'\n );\n }}\n >\n {data?.checkbox ? (\n \n {\n setterState(\n data.questionBankIndex,\n onSaveFormValues,\n e.target.checked\n );\n }}\n inputProps={{ 'aria-label': 'checkbox with default color' }}\n style={{ padding: 0, marginRight: 5 }}\n />\n }\n label=\"Yes\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n ) : (\n <>\n \n \n }\n label=\"Yes\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n \n \n }\n label=\"No\"\n style={{ color: '#747474', marginLeft: 0 }}\n />\n \n \n )}\n \n {data?.showRequired && (\n {data?.requiredMessage ? data?.requiredMessage : 'This field is required'}\n )}\n \n \n );\n}\n","import React from 'react';\nimport AddressInfo from '../components/AddressInfo';\nimport ContactInfo from '../components/ContactInfo';\nimport Date from '../components/Date';\nimport Demographics from '../components/Demographics';\nimport Dropdown from '../components/Dropdown';\nimport Email from '../components/Email';\nimport File from '../components/File';\nimport Hour from '../components/Hour';\nimport LongText from '../components/LongText';\nimport MultipleChoice from '../components/MultipleChoice';\nimport Phone from '../components/Phone';\nimport Police from '../components/Police';\nimport PrimaryLanguage from '../components/PrimaryLanguage';\nimport QuestionBank from '../components/QuestionBank';\nimport ShortText from '../components/ShortText';\nimport SingleChoice from '../components/SingleChoice';\nimport Subtitle from '../components/Subtitle';\nimport Title from '../components/Title';\nimport Url from '../components/Url';\nimport Witnesses from '../components/Witnesses';\nimport YesNo from '../components/YesNo';\n\nconst onAddPropsToComponent = ({ Component, componentEnhanced, imagesPreview }) => {\n componentEnhanced.component = Component;\n componentEnhanced.imagesPreview = imagesPreview;\n};\n\nexport const getConfig = ({ componentsFromServer = [], imagesPreview }) =>\n componentsFromServer.map((component) => {\n const componentEnhanced = { ...component };\n switch (component.type) {\n case 'questionBank':\n onAddPropsToComponent({\n componentEnhanced,\n Component: QuestionBank,\n imagesPreview,\n });\n break;\n case 'demographics':\n onAddPropsToComponent({\n componentEnhanced,\n Component: Demographics,\n });\n break;\n case 'title':\n onAddPropsToComponent({ componentEnhanced, Component: Title });\n break;\n case 'subtitle':\n onAddPropsToComponent({ componentEnhanced, Component: Subtitle });\n break;\n case 'singleChoice':\n onAddPropsToComponent({ componentEnhanced, Component: SingleChoice });\n break;\n case 'multipleChoices':\n onAddPropsToComponent({ componentEnhanced, Component: MultipleChoice });\n break;\n case 'dropdown':\n onAddPropsToComponent({ componentEnhanced, Component: Dropdown });\n break;\n case 'gender':\n onAddPropsToComponent({ componentEnhanced, Component: Dropdown });\n break;\n case 'raceEthnicity':\n onAddPropsToComponent({ componentEnhanced, Component: Dropdown });\n break;\n case 'race':\n onAddPropsToComponent({ componentEnhanced, Component: Dropdown });\n break;\n case 'ethnicity':\n onAddPropsToComponent({ componentEnhanced, Component: Dropdown });\n break;\n case 'sexualOrientation':\n onAddPropsToComponent({ componentEnhanced, Component: Dropdown });\n break;\n case 'birthdate':\n onAddPropsToComponent({ componentEnhanced, Component: Date });\n break;\n\n case 'shortText':\n onAddPropsToComponent({ componentEnhanced, Component: ShortText });\n break;\n case 'longText':\n onAddPropsToComponent({ componentEnhanced, Component: LongText });\n break;\n case 'fileUpload':\n onAddPropsToComponent({\n componentEnhanced,\n Component: File,\n imagesPreview,\n });\n break;\n case 'url':\n onAddPropsToComponent({ componentEnhanced, Component: Url });\n break;\n case 'contactInformation':\n onAddPropsToComponent({ componentEnhanced, Component: ContactInfo });\n break;\n case 'addressInformation':\n onAddPropsToComponent({\n componentEnhanced,\n Component: AddressInfo,\n });\n break;\n case 'date':\n onAddPropsToComponent({ componentEnhanced, Component: Date });\n break;\n case 'hour':\n onAddPropsToComponent({ componentEnhanced, Component: Hour });\n break;\n case 'phone':\n onAddPropsToComponent({ componentEnhanced, Component: Phone });\n break;\n case 'email':\n onAddPropsToComponent({ componentEnhanced, Component: Email });\n break;\n\n case 'yesNo':\n onAddPropsToComponent({ componentEnhanced, Component: YesNo });\n break;\n\n case 'policeOfficersOrEmployees':\n onAddPropsToComponent({ componentEnhanced, Component: Police });\n break;\n case 'witnesses':\n onAddPropsToComponent({ componentEnhanced, Component: Witnesses });\n break;\n case 'primaryLanguage':\n onAddPropsToComponent({\n componentEnhanced,\n Component: PrimaryLanguage,\n });\n break;\n\n default:\n return
Unsupported Component
;\n }\n\n return componentEnhanced;\n });\n","import { Typography, makeStyles } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getConfig } from './config/FormConfig';\nimport { Renderer } from './config/FormRenderer';\n\nconst useStyles = makeStyles(() => ({\n sectionTitle: {\n padding: 22,\n textAlign: 'center',\n fontSize: 16,\n },\n sectionWithoutTitle: {\n padding: 15,\n textAlign: 'center',\n fontSize: 16\n },\n}));\n\nexport default function FormSection({\n name,\n components,\n getComponents,\n onSaveFormValues,\n getFormValue,\n organizationId,\n imagesPreview,\n setImagesPreview,\n withFileUpload = true,\n pageIndex,\n sectionIndex,\n}) {\n const classes = useStyles();\n const config = useMemo(\n () =>\n getConfig({\n componentsFromServer: getComponents(components),\n imagesPreview: { pageIndex, sectionIndex, imagesPreview, setImagesPreview },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [components, getComponents]\n );\n\n return (\n
\n {name && name !== '' && {name !== 'Section Name' ? name : ''}}\n \n
\n );\n}\n\nFormSection.propTypes = {\n name: PropTypes.string.isRequired,\n pageIndex: PropTypes.number,\n sectionIndex: PropTypes.number,\n components: PropTypes.arrayOf(PropTypes.string).isRequired,\n getComponents: PropTypes.func.isRequired,\n onSaveFormValues: PropTypes.func.isRequired,\n getFormValue: PropTypes.func.isRequired,\n organizationId: PropTypes.number.isRequired,\n imagesPreview: PropTypes.arrayOf(PropTypes.string).isRequired,\n setImagesPreview: PropTypes.func.isRequired,\n withFileUpload: PropTypes.bool,\n};\n","import { Box, Button, InputBase, createTheme, makeStyles, withStyles } from '@material-ui/core';\nimport styled, { createGlobalStyle } from 'styled-components';\n\nconst GlobalStyles = createGlobalStyle`\n html {\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n }\n\n *, *:before, *:after {\n box-sizing: inherit\n }\n\n body {\n background: white;\n height: 100vh;\n margin: 0 auto;\n overscroll-behavior: none;\n width: 100%;\n font-family: \"Roboto\";\n -webkit-font-smoothing: antialiased;\n }\n\n ul, li, h1, h2, h3, p, button {\n margin: 0;\n }\n\n\n button {\n background: #ffffff00;\n border: 0;\n outline: 0;\n }\n\n ul {\n list-style: none;\n padding: 0;\n }\n \n a { \n text-decoration: none;\n color: #393939\n }\n\n .react-tel-input .form-control:focus {\n box-shadow: unset !important;\n }\n .react-tel-input :disabled {\n border-bottom: 1px dotted rgba(0, 0, 0, 0.42) !important;\n }\n\n\n .MuiStepIcon-root.MuiStepIcon-active {\n color: #fff !important;\n .MuiStepIcon-text {\n fill: #000;\n }\n }\n .MuiStepIcon-root.MuiStepIcon-completed {\n color: #4B7BFF !important;\n }\n\n ${'' /* .MuiRadio-root {\n color: #4B7BFF !important;\n } */}\n .MuiStepLabel-label {\n color: #fff !important;\n }\n\n .MuiFilledInput-input {\n padding: 0 10px\n }\n\n .MuiFilledInput-underline.Mui-disabled:before {\n border: 0 !important;\n }\n\n\n .import-dropzone {\n background-color: #FFFFFF !important;\n border: 1px dashed #364F7431 !important;\n height: 150px !important;\n min-height: 150px !important;\n border-radius: 4px !important;\n .MuiDropzoneArea-textContainer {\n display: flex;\n font-size: 18px;\n align-items: center;\n justify-content: center;\n flex-direction:column-reverse !important;\n\n height: 100%;\n .MuiTypography-h5 {\n font-size: 14px !important;\n }\n }\n }\n\n .default-dropzone-class {\n border: unset !important;\n border-color: #DADFE9 !important;\n background-color: #F9FAFF !important;\n outline: 0 !important;\n }\n\n .primary-dropzone-class {\n border-width: 1px dashed #364F7431 !important;\n background-color: #F9FAFD !important;\n height: 150px !important;\n min-height: 150px !important;\n }\n\n .primary-dropzone-class .MuiDropzoneArea-text {\n font-size: 12px !important;\n font-weight: 500 !important;\n }\n\n .MuiDropzoneArea-root {\n margin-bottom: 20px;\n height: 115px;\n \n .MuiDropzoneArea-textContainer {\n display: flex;\n font-size: 18px;\n align-items: center;\n justify-content: center;\n flex-direction:column;\n height: 100%;\n }\n }\n\n \n .MuiTabs-indicator {\n background-color: #4b7bff !important;\n }\n\n .Mui-selected {\n color: #4b7bff !important;\n }\n\n .MuiTab-wrapper {\n width: 100%;\n display: inline-flex;\n align-items: center;\n flex-direction: column;\n }\n \n\n .MuiTab-root {\n min-width: unset !important;\n margin-right: 20px !important;\n }\n\n .MuiTableRow-root.Mui-selected, .MuiTableRow-root.Mui-selected:hover{\n background: rgb(234, 236, 247) !important;\n }\n\n .MuiOutlinedInput-adornedEnd {\n padding-right: 0;\n background-color: #fff;\n }\n .MuiSelect-select.MuiSelect-select {\n text-transform: capitalize;\n }\n\n .MuiNativeSelect-select.MuiNativeSelect-select {\n text-transform: capitalize;\n }\n\n .MuiListItem-root.Mui-selected, .MuiListItem-root.Mui-selected:hover {\n background-color: rgba(255,255,255, 0.23) !important; \n }\n\n .MuiFormControlLabel-label {\n font-size: 14px !important;\n }\n\n .MuiLinearProgress-root {\n height: 7px;\n overflow: hidden;\n position: relative;\n background: #70707027 !important;\n border-radius: 100px;\n \n & .MuiLinearProgress-barColorPrimary {\n background-color: #2E66FE !important;\n }\n & .MuiLinearProgress-barColorSecondary {\n background-color: #01BEA8 !important;\n }\n }\n\n .MuiChip-colorPrimary {\n background-color: #2E66FE !important;\n }\n\n .MuiTableCell-root.MuiTableCell-root {\n padding: 9px 16px \n }\n\n .react-code-input {\n display: flex !important;\n width: 90% !important;\n justify-content: space-between;\n margin: 15px auto 10px;\n \n }\n\n #logo-brand-img {\n object-fit: contain;\n height: 60px;\n width: 160px;\n align-self: center;\n }\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n \n input[type=number] {\n -moz-appearance: textfield;\n }\n\n .MuiSelect-select:focus {\n background-color: transparent !important;\n }\n\n .dropZone {\n flex: 0 0 auto;\n height: 60px;\n transition: 200ms all;\n}\n\n\n.dropZone.horizontalDrag {\n width: 40px;\n height: auto;\n}\n\n.dropZone:not(.horizontalDrag).isLast {\n flex: 1 1 auto;\n}\n\n.dropZone.active,\n.trashDropZone.active {\n background: #d6e1ff;\n transition: 100ms all;\n}\n .ant-table-thead > tr > th {\n background: #fff\n }\n\n .MuiBadge-colorSecondary {\n background-color: #E69E9E !important;\n }\n\n .sivil-recaptcha iframe,\n .sivil-recaptcha div {\n width: 100% !important;\n height: 100px;\n }\n\n .DatePickerMUI-active .MuiFormHelperText-contained,\n .DatePickerMUI .MuiFormHelperText-contained {\n margin-left: 0px !important;\n margin-right: 0px !important;\n }\n\n .DatePickerMUI-active .MuiFilledInput-root,\n .DatePickerMUI .MuiFilledInput-root {\n background-color: #fff !important;\n }\n\n .DatePickerMUI-active .MuiOutlinedInput-notchedOutline {\n border-color: #408BEC !important;\n }\n\n .custom-dropzone-area {\n padding: 24px;\n height: 200px !important;\n min-height: auto !important;\n background-color: #4762FA08 !important;\n border: 1px dashed #364F7431 !important;\n }\n\n .custom-dropzone-area .MuiTypography-root .MuiDropzoneArea-text .MuiTypography-h5 {\n font-size: 1rem !important;\n }\n\n .Custom-CarouselModal {\n overflow: visible !important;\n }\n\n .Custom-CarouselModal .Custom-CarouselModal-Btns:nth-child(2) {\n right: -100px !important;\n }\n\n .Custom-CarouselModal .Custom-CarouselModal-Btns:nth-child(3) {\n left: -100px !important;\n }\n\n .CustomSelectTablePagination option {\n text-align: center;\n margin: 0px;\n padding: 0px;\n display: inline-block;\n }\n\n span.MuiFormLabel-asterisk.MuiInputLabel-asterisk {\n color: red !important;\n }\n\n .InputFilledPhoneNumber {\n border: 0;\n }\n\n .InputFilledPhoneNumber::before {\n border: 0;\n display: none;\n }\n\n .InputFilledPhoneNumber::after {\n border: 0;\n display: none;\n }\n\n .InputFilledPhoneNumber input {\n background-color: #f8f8f9;\n height: 16px;\n font-size: 14px !important;\n width: 100%;\n padding: 10px;\n border-radius: 5px;\n border: 0;\n font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;\n outline: 0;\n \n &::placeholder {\n color: #00000061;\n }\n\n ${(props) =>\n props.bordered &&\n `\n border: 1px solid rgba(0, 0, 0, 0.23);\n background: transparent;\n `}\n }\n\n .MuiTableCell-root.MuiTableCell-root {\n padding: 8px 24px;\n }\n\n .MuiTabs-indicator {\n zoom: 116.1% !important;\n }\n\n .safari .MuiTabs-indicator {\n zoom: 100% !important;\n }\n`;\n\nexport const OutLineInputBox = styled('input')`\n background-color: #f8f8f9;\n height: 40px;\n font-size: 14px !important;\n width: 100%;\n padding: 10px;\n border-radius: 5px;\n border: 0;\n font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;\n outline: 0;\n &::placeholder {\n color: #00000061;\n }\n ${(props) =>\n props.bordered &&\n `\n border: 1px solid rgba(0, 0, 0, 0.23);\n background: transparent;\n `}\n`;\n\nexport const StyledButtonOutlined = styled(Button)`\n letter-spacing: 1px;\n font-size: 13px;\n font-weight: 500;\n margin-right: 10;\n width: fit-content;\n align-self: flex-end;\n border: 1px solid transparent;\n color: #4b7bff;\n\n &:hover {\n background: transparent;\n border: 1px solid transparent;\n }\n\n & .muibutton-label {\n font-size: 13px;\n }\n`;\n\nexport const BootstrapInput = withStyles((theme) => ({\n root: {\n 'label + &': {\n marginTop: theme.spacing(3),\n },\n '& svg': {\n color: '#fff !important',\n marginRight: 15,\n },\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: theme.palette.background.paper,\n border: '1px solid #008858',\n background: '#008858 !important',\n color: '#fff',\n paddingRight: '35px !important',\n fontSize: 16,\n minWidth: 160,\n padding: '10px 50px 10px 20px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n // Use the system font instead of the default Roboto font.\n fontFamily: [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n '& option': {\n color: '#333',\n },\n '&:focus': {\n borderRadius: 4,\n },\n },\n}))(InputBase);\n\nexport const useGlobalStyles = makeStyles(() => ({\n boxProgressWithLabel: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n position: 'absolute',\n zIndex: 1,\n background: 'rgba(255, 255, 255, .6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n emphasis: {\n color: '#4b7bff',\n textTransform: 'capitalize',\n fontWeight: '600',\n },\n}));\n\nexport const ImageContainer = styled.div`\n width: 120px;\n max-width: 120px;\n height: 120px;\n position: absolute;\n top: 0;\n opacity: 0;\n .MuiDropzoneArea-root {\n width: 120px !important;\n height: 120px !important;\n border-radius: 50% !important;\n max-width: 120px !important;\n min-width: 120px !important;\n max-height: 120px !important;\n min-height: 120px !important;\n margin-bottom: 0 !important;\n }\n`;\n\nexport const BoxLeftContainer = styled(Box)`\n width: calc(100% - 570px);\n min-width: calc(100% - 570px);\n\n @media screen and (min-width: 1546px) {\n width: calc(100% - 620px);\n min-width: calc(100% - 620px);\n }\n\n @media screen and (min-width: 1800px) {\n width: calc(100% - 670px);\n min-width: calc(100% - 670px);\n }\n`;\n\nexport const BoxContainer = styled(Box)`\n width: 550px;\n min-width: 550px;\n\n @media screen and (min-width: 1546px) {\n width: 600px;\n min-width: 600px;\n }\n\n @media screen and (min-width: 1800px) {\n width: 650px;\n min-width: 650px;\n }\n`;\n\nexport const Paper = styled(Box)`\n background-color: #fff;\n border-radius: 5px;\n`;\n\nexport const globalTheme = createTheme({\n overrides: {\n MuiButton: {\n textPrimary: {\n color: '#4b7bff',\n },\n containedPrimary: {\n backgroundColor: '#4b7bff',\n },\n },\n MuiTableHead: {\n root: {\n background: '#faf9fd',\n },\n },\n MuiTableCell: {\n head: {\n fontSize: 15,\n },\n },\n MuiTabs: {\n indicator: {\n zoom: '116.1% !important',\n },\n },\n },\n});\n\nexport default GlobalStyles;\n","import { useState, useEffect } from \"react\";\n\nfunction useDebounce(value, delay = 500) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n\nexport default useDebounce;\n","import { toast } from './Notification';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { updateOfficerCustomFields } from '../services/unarmed';\nimport UpdateRenderer from '../pages/CaseDetails/UpdateCaseComponents/UpdateRenderer';\nimport { Typography, Button, makeStyles } from '@material-ui/core';\n\nimport useDebounce from '../hooks/useDebounce';\n\nconst useStyles = makeStyles((theme) => ({\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n marginBottom: '10px',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 12,\n },\n },\n deleteButton: {\n textTransform: 'capitalize',\n marginBottom: '10px',\n '&:hover': {},\n '& .MuiButton-label': {\n fontSize: 12,\n },\n },\n}));\n\nexport const CustomFieldsAllegations = ({\n allegation,\n officerId,\n id,\n setIsRequestingData,\n setIsRefetch,\n setEditRow,\n row,\n setForm,\n i,\n handleOpen,\n CircularProgress,\n}) => {\n const classes = useStyles();\n const [customFieldsValues, setCustomFieldsValues] = useState([]);\n const [loading, setLoading] = useState(false);\n const prevCustomFieldsValuesRef = useRef(null);\n const stableCustomFieldsValues = useMemo(() => customFieldsValues, [JSON.stringify(customFieldsValues)]);\n const debouncedCustomFieldsValues = useDebounce(stableCustomFieldsValues, 800);\n\n const onUpdateFieldsForm = async () => {\n try {\n setLoading(true);\n setIsRequestingData(true);\n const updatedCustomFields = customFieldsValues.map((field) => ({\n ...field,\n sections: field.sections.map((section) => ({\n ...section,\n components: section.components.map((component) =>\n component === '' || component === undefined || component === null ? null : component\n ),\n })),\n }));\n\n await updateOfficerCustomFields(id, {\n allegationId: allegation._id,\n officerId,\n officersCustomFields: updatedCustomFields,\n });\n // setIsRefetch();\n setLoading(false);\n // updateChangesRow();\n // setEditRow(null); // revisar si aca lo corrije\n setIsRequestingData(false);\n toast.success('An Allegation row has been updated Successfully');\n } catch (error) {\n toast.error(error?.response?.data?.error?.details[0]?.message);\n toast.error(error?.response?.data?.message);\n setLoading(false);\n console.log(error);\n }\n };\n\n useEffect(() => {\n if (allegation && allegation?.officersCustomFields?.length > 0) {\n const pages1 =\n allegation?.officersCustomFields?.map((page) => ({\n sections: [\n {\n components:\n page?.sections?.[0]?.components?.map((component) =>\n !component.value && component.value !== false ? null : component.value\n ) || [],\n },\n ],\n })) || [];\n\n setCustomFieldsValues(pages1);\n }\n }, [allegation]);\n\n useEffect(() => {\n prevCustomFieldsValuesRef.current = customFieldsValues;\n if (row.officersCustomFields?.length === 0) return;\n\n const newRow = { ...row };\n newRow.officersCustomFields = row.officersCustomFields?.map((officerCustomField, index) => {\n return {\n ...officerCustomField,\n sections: officerCustomField?.sections?.map((section, sectionIndex) => ({\n ...section,\n components: section?.components?.map((component, compIndex) => ({\n ...component,\n value: customFieldsValues[index]?.sections?.[sectionIndex]?.components?.[compIndex] ?? component.value,\n })),\n })),\n };\n });\n\n setForm((prev) => {\n return {\n ...prev,\n officers: prev.officers.map((officer) => {\n if (officer._id === officerId) {\n return {\n ...officer,\n allegations: officer?.allegations?.map((allegation) => {\n if (allegation?._id === newRow._id) {\n return { ...allegation, officersCustomFields: newRow.officersCustomFields };\n }\n return allegation;\n }),\n };\n }\n return officer;\n }),\n };\n });\n }, [debouncedCustomFieldsValues]);\n\n return (\n <>\n \n
\n
\n handleOpen(row._id, i)}\n >\n Delete\n \n \n
\n
\n \n );\n};\n","import { Backdrop, Box, Button, CircularProgress, Divider, Grid, makeStyles, Typography } from '@material-ui/core';\nimport Modal from '@material-ui/core/Modal';\nimport Fade from '@material-ui/core/Fade';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport React, { useEffect, useState } from 'react';\nimport { toast } from './Notification';\nimport { Editor } from '@tinymce/tinymce-react';\nimport { useHistory } from 'react-router-dom';\nimport OpenInNewIcon from '@material-ui/icons/OpenInNew';\n\nimport { AllegationOptions, DisciplineOptions, DispositionOptions } from '../pages/CaseDetails/UpdateCase';\nimport {\n addRowOfficer,\n deleteAnAllegationRow,\n unassingOfficer,\n updateOfficerCustomFields,\n updateOfficerRow,\n} from '../services/unarmed';\n\nimport CasePersonInfo from './CasePersonInfo';\nimport { CustomFieldsAllegations } from './CustomFieldsAllegations';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontSize: 13,\n color: '#333',\n fontWeight: 500,\n marginBottom: 8,\n },\n saveButton: {\n background: ' #3B70FE',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n textTransform: 'none',\n },\n button: {\n background: ' #3B70FE',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n textTransform: 'none',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n}));\n\nexport const convertStatusToLowerCase = (status) => {\n switch (status) {\n case 'RECEIVED':\n return 'RECEIVED';\n case 'IN_PROGRESS':\n return 'IN_PROGRESS';\n case 'IN PROGRESS':\n return 'IN PROGRESS';\n case 'CLOSED':\n return 'CLOSED';\n default:\n return status?.toLowerCase();\n }\n};\n\nconst OfficerAdded = ({ officer, id, setIsRefetch, setIsRequestingData, officersOption, formId, setForm }) => {\n const classes = useStyles();\n const [rows, setRows] = useState([]);\n const [editRow, setEditRow] = useState(null);\n const [loading, setLoading] = useState(false);\n const [loadingDeleteRow, setLoadingDeleteRow] = useState(false);\n const [loadingAddRow, setLoadingAddRow] = useState(false);\n const [loadingDeleteOfficer, setLoadingDeleteOfficer] = useState(false);\n const [open, setOpen] = React.useState(false);\n const [openDeleteOfficer, setOpenDeleteOfficer] = React.useState(false);\n const [deleteState, setDeleteState] = useState({\n id: '',\n index: 0,\n });\n const [names, setNames] = useState({ firstName: { value: null }, lastName: { value: null } })\n\n const history = useHistory();\n\n const handleOpen = (id1, index) => {\n setDeleteState({\n id: id1,\n index,\n });\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n useEffect(() => {\n if (officer?.allegations?.length > 0) {\n setRows(\n officer?.allegations?.map((allegation) => ({\n _id: allegation._id,\n officersCustomFields: allegation?.officersCustomFields || [],\n status: allegation.status || null,\n allegation: allegation.allegation || null,\n disposition: allegation.disposition || null,\n discipline: allegation.discipline || null,\n description: allegation.description || null,\n reason: allegation.reason || null,\n }))\n );\n }\n\n let firstName =\n officer?.officer?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'First Name'\n );\n\n let lastName =\n officer?.customFields?.[0]?.sections?.[0]?.components?.find(\n (field) => field?.data?.question === 'Last Name'\n );\n\n if (!officer?.officer) {\n firstName = { value: \"Not\" };\n lastName = { value: \"Specified\" };\n }\n\n if ((!firstName?.value || !lastName?.value) && officer?.officer) {\n const names = officer?.officer?.customFields?.[0]?.sections?.[0]?.components?.filter(\n (field) => field?.data?.special === true\n );\n\n if (names && names.at(0)) {\n firstName = names[0];\n }\n\n if (names && names.at(1)) {\n lastName = names[1];\n }\n\n if (!names || (!names.at(0) && !names.at(1))) {\n firstName = { value: \"Not\" };\n lastName = { value: \"Specified\" };\n }\n }\n\n setNames({ firstName, lastName })\n }, [officer]);\n\n const onDeleteRow = async () => {\n try {\n setLoadingDeleteRow(true);\n setIsRequestingData(true);\n await deleteAnAllegationRow(id, {\n _id: deleteState.id,\n delete: true,\n officerId: officer?.officer?._id,\n });\n const rowsCopy = [...rows];\n rowsCopy.splice(deleteState.index, 1);\n setIsRefetch();\n setRows(rowsCopy);\n setLoadingDeleteRow(false);\n setEditRow(null);\n setIsRequestingData(false);\n setOpen(false);\n toast.success('The Allegation row has been removed Successfully');\n } catch (error) {\n toast.error(error?.response?.data?.error?.details[0]?.message);\n toast.error(error?.response?.data?.message);\n setLoadingDeleteRow(false);\n console.log(error);\n }\n };\n\n const onAddAllegationRow = async () => {\n try {\n setLoadingAddRow(true);\n setIsRequestingData(true);\n await addRowOfficer(id, officer?.officer?._id);\n setLoadingAddRow(false);\n setIsRefetch();\n setIsRequestingData(false);\n toast.success('A new Allegation row has been added Successfully');\n } catch (error) {\n toast.error(error?.response?.data?.error?.details[0]?.message);\n toast.error(error?.response?.data?.message);\n setLoadingAddRow(false);\n console.log(error);\n }\n };\n\n const onDeleteOfficer = async () => {\n try {\n setLoadingDeleteOfficer(true);\n setIsRequestingData(true);\n await unassingOfficer(id, officer?.officer?._id);\n setLoadingDeleteOfficer(false);\n setIsRefetch();\n setIsRequestingData(false);\n toast.success('An Officer has been deleted Successfully');\n setOpenDeleteOfficer(false);\n } catch (error) {\n toast.error(error?.response?.data?.error?.details[0]?.message);\n toast.error(error?.response?.data?.message);\n setLoadingDeleteOfficer(false);\n console.log(error);\n }\n };\n\n const handleOnClick = () => {\n history.push(`/officer/${officer?.officer?._id}`);\n };\n\n const handleOnClickOpenInNewWindow = () => {\n window.open(`/officer/${officer?.officer?._id}`, '_blank');\n };\n\n return (\n \n \n
\n
\n \n {names?.firstName?.value || names?.lastName?.value\n ? names?.firstName?.value + ' ' + names?.lastName?.value\n : 'Not specified'}\n \n \n \n
\n
\n \n Unique Identifier: {officer?.officer?.uniqueFieldId?.value || 'Not specified'}\n \n \n
\n\n \n {loadingAddRow ? (\n \n ) : (\n
\n +\n Add an Allegation\n
\n )}\n
\n setOpenDeleteOfficer(true)}\n />\n {/* \n {loading && loadingState === 'updateForm' ? : Save All}\n */}\n
\n \n\n {rows.length > 0 &&\n rows.map((row, i) => (\n \n \n \n \n
\n

Are you sure you want to delete this row?

\n \n onDeleteRow()}\n >\n {loadingDeleteRow ? : 'Delete'}\n \n \n
\n
\n \n
\n ))}\n setOpenDeleteOfficer(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n style: { background: 'rgba(0, 0, 0, 0.3)' },\n }}\n >\n \n
\n

Are you sure you want to remove this Officer from the case?

\n \n \n \n
\n
\n \n \n );\n};\n\n\nexport default OfficerAdded;\n","import { MenuItem, Select, Tooltip } from '@material-ui/core';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\n\n/**\n * SelectClearable component allows selecting an option from a dropdown\n * and provides a clear button to reset the selection.\n *\n * @param {Object} props - Component properties.\n * @param {string} props.value - The currently selected value.\n * @param {Function} props.onChange - Callback function to handle value change.\n * @param {Function} props.setValue - Callback function to set the value.\n * @param {string} props.dataTestId - The data-testid attribute for testing.\n * @param {Array} props.options - Array of options to display in the dropdown.\n * @param {string} props.options[].name - The name of the option.\n */\nconst SelectClearable = ({ value, onChange, setValue, dataTestId, options }) => (\n \n \n \n Select An Option\n \n {options.map((option, optionIndex) => (\n \n {option.name}\n \n ))}\n \n setValue('')}>\n \n \n \n \n \n);\n\nSelectClearable.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n setValue: PropTypes.func.isRequired,\n dataTestId: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n};\n\nconst Container = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n`;\n\nconst ContainerIcon = styled.div`\n position: absolute;\n width: 17px;\n height: 20px;\n right: 32px;\n z-index: 999;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n transition: all 0.25s ease;\n\n &:hover {\n opacity: 0.7;\n }\n`;\n\nexport default SelectClearable;\n","import React, { useState, useEffect } from 'react';\nimport { Box, TextField, Button, CircularProgress, Input, InputLabel, Select, MenuItem } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport MultiSelectBox from '../../components/MultiSelectBox';\nimport { genderOptions, raceEthnicityOptions, pronounsOptions } from '../../utils/options';\nimport DatePickerMUI from '../../components/DatePickerMUi';\nimport { TextMaskCustom } from '../Officers/OfficersTable';\nimport { getCitiesOfState } from '../../services/countryStateService';\nimport { validateEmail } from '../../utils/validateForm';\nimport SelectClearable from '../../components/SelectClearable';\n\n/**\n * Functional component representing a form for managing contact information.\n *\n * @component\n * @param {Object} props - The properties passed to the ContactForm component.\n * @param {string} props.firstName - First name of the contact.\n * @param {string} props.lastName - Last name of the contact.\n * @param {string} props.phoneNumber - Phone number of the contact.\n * @param {string} props.email - Email address of the contact.\n * @param {string} props.gender - Gender of the contact.\n * @param {string} props.raceEthnicity - Race or ethnicity of the contact.\n * @param {string} props.pronouns - Pronouns of the contact.\n * @param {string} props.salutation - Salutation for the contact.\n * @param {string} props.birthdate - Birthdate of the contact.\n * @param {string} props.title - Title of the contact.\n * @param {string} props.suffix - Suffix for the contact.\n * @param {string} props.description - Description for the contact.\n * @param {string} props.department - Department for the contact.\n * @param {string} props.mailingStreet - Mailing street address of the contact.\n * @param {string} props.mailingApt - Mailing apartment or unit number of the contact.\n * @param {string} props.mailingState - Mailing state of the contact.\n * @param {string} props.mailingCity - Mailing city of the contact.\n * @param {string} props.mailingZipCode - Mailing ZIP code of the contact.\n * @param {string} props.otherStreet - Other street address of the contact.\n * @param {string} props.otherApt - Other apartment or unit number of the contact.\n * @param {string} props.otherState - Other state of the contact.\n * @param {string} props.otherCity - Other city of the contact.\n * @param {string} props.otherZipCode - Other ZIP code of the contact.\n * @param {Array} props.states - List of available states for selection.\n * @param {boolean} props.loading - Indicates whether the form is in a loading state.\n * @param {function} props.onClickClose - Event handler for the close button click.\n * @param {function} props.onClickSave - Event handler for the save button click.\n * @param {boolean} props.isEdit - Indicates whether the form is in edit mode.\n *\n * @returns {JSX.Element} The JSX representation of the ContactForm component.\n */\nconst ContactForm = ({\n firstName,\n lastName,\n type,\n companyName,\n phoneNumber,\n email,\n gender,\n raceEthnicity,\n pronouns,\n salutation,\n birthdate,\n title,\n suffix,\n description,\n department,\n mailingStreet,\n mailingApt,\n mailingState,\n mailingCity,\n mailingZipCode,\n otherStreet,\n otherApt,\n otherState,\n otherCity,\n otherZipCode,\n states,\n loading,\n onClickClose,\n onClickSave,\n isEdit,\n}) => {\n const [cities, setCities] = useState([]);\n const [otherCities, setOtherCities] = useState([]);\n const [validEmail, setValidEmail] = useState(true);\n\n const onValidateEmail = () => {\n if (email && email.value !== '') {\n setValidEmail(validateEmail(email.value));\n }\n };\n\n useEffect(() => {\n if (mailingState && mailingState.value) {\n const isoCodeState = states.find((st) => st.name === mailingState.value);\n\n getCitiesOfState(isoCodeState?.isoCode).then((res) => setCities(res));\n }\n }, [mailingState, states]);\n\n useEffect(() => {\n if (otherState && otherState.value) {\n const isoCodeState = states.find((st) => st.name === otherState.value);\n\n getCitiesOfState(isoCodeState?.isoCode).then((res) => setOtherCities(res));\n }\n }, [otherState, states]);\n\n useEffect(() => {\n onValidateEmail();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [email?.value]);\n\n const typeValue = type.value;\n\n return (\n <>\n {email && (\n \n \n \n )}\n \n \n \n \n \n \n \n Type\n \n \n Select the type\n \n {['Individual', 'Organization'].map((option, optionIndex) => (\n \n {option}\n \n ))}\n \n \n {typeValue === 'Organization' && (\n \n \n \n )}\n \n Phone number\n \n \n {description && (\n \n \n \n )}\n {department && (\n \n \n \n )}\n {raceEthnicity && (\n \n Race/Ethnicity\n \n \n )}\n {gender && (\n \n Gender\n \n \n )}\n {pronouns && (\n \n Pronouns\n \n \n Select the pronouns\n \n {pronounsOptions.map((option, optionIndex) => (\n \n {option}\n \n ))}\n \n \n )}\n {salutation && (\n \n \n \n )}\n {birthdate && (\n \n Birthdate\n birthdate.setValue(date)}\n />\n \n )}\n {title && (\n \n \n \n )}\n {suffix && (\n \n \n \n )}\n {mailingStreet && (\n \n \n \n )}\n {mailingApt && (\n \n \n \n )}\n {mailingState && (\n \n Mailing State/Province\n \n \n )}\n {mailingCity && (\n \n Mailing City\n \n \n )}\n {mailingZipCode && (\n \n {\n if (e.target.value?.length <= 5) {\n mailingZipCode.onChange(e);\n }\n }}\n InputLabelProps={{\n shrink: true,\n }}\n min={5}\n step={1}\n type=\"number\"\n fullWidth\n />\n \n )}\n\n {otherStreet && (\n \n \n \n )}\n {otherApt && (\n \n \n \n )}\n {otherState && (\n \n Other State/Province\n \n \n )}\n {otherCity && (\n \n Other City\n \n \n )}\n {otherZipCode && (\n \n {\n if (e.target.value?.length <= 5) {\n otherZipCode.onChange(e);\n }\n }}\n min={5}\n step={1}\n InputLabelProps={{\n shrink: true,\n }}\n type=\"number\"\n fullWidth\n />\n \n )}\n \n \n Cancel\n \n {loading ? (\n \n ) : (\n \n {isEdit ? 'Save' : 'Create contact'}\n \n )}\n \n \n );\n};\n\nContactForm.propTypes = {\n firstName: PropTypes.object,\n lastName: PropTypes.object,\n type: PropTypes.object,\n companyName: PropTypes.object,\n phoneNumber: PropTypes.object,\n email: PropTypes.object,\n gender: PropTypes.object,\n raceEthnicity: PropTypes.object,\n pronouns: PropTypes.object,\n salutation: PropTypes.object,\n birthdate: PropTypes.object,\n title: PropTypes.object,\n suffix: PropTypes.object,\n description: PropTypes.object,\n department: PropTypes.object,\n mailingStreet: PropTypes.object,\n mailingApt: PropTypes.object,\n mailingState: PropTypes.object,\n mailingCity: PropTypes.object,\n mailingZipCode: PropTypes.object,\n otherStreet: PropTypes.object,\n otherApt: PropTypes.object,\n otherState: PropTypes.object,\n otherCity: PropTypes.object,\n otherZipCode: PropTypes.object,\n states: PropTypes.array,\n loading: PropTypes.bool,\n onClickClose: PropTypes.func,\n onClickSave: PropTypes.func,\n isEdit: PropTypes.bool,\n};\n\nexport default ContactForm;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n htmlContent: {\n //Some properties need to be reverted because they get in conflict with the page styles\n //Revert margin and padding styles for all elements and some properties for other specific elements\n ['& *']: {\n margin: 'revert',\n padding: 'revert',\n },\n ['& ul']: {\n textIndent: 'revert',\n listStyleType: 'revert',\n },\n ['& ol']: {\n textIndent: 'revert',\n listStyleType: 'revert',\n },\n ['& a']: {\n color: 'revert',\n textDecoration: 'revert',\n },\n ['& p']: {\n lineHeight: 'revert',\n },\n },\n}));\n\nconst HTMLContent = ({ content }) => {\n const classes = useStyles();\n return
 

' }} />;\n};\n\nexport default HTMLContent;\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nconst SvgCheck = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#e8eaed\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgCheck, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/check.10e5d9f4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nconst SvgCross = _ref => {\n let {\n svgRef,\n title,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#e8eaed\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgCross, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/cross.fdcfdaac.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\nimport { Box, Typography, IconButton, Slide } from '@material-ui/core';\nimport shortid from 'shortid';\nimport { ReactComponent as CheckIcon } from '../utils/icons/check.svg';\nimport { ReactComponent as ErrorIcon } from '../utils/icons/cross.svg';\nimport CloseIcon from '@material-ui/icons/Close';\n\nconst SLIDE_DURATION = 300;\n\nconst ToastNotification = () => {\n const [toasts, setToasts] = useState([]);\n\n const removeToast = (id) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n };\n\n const closeToast = (id) => {\n setToasts((prev) => prev.map((t) => (t.id === id ? { ...t, open: false } : t)));\n setTimeout(() => removeToast(id), SLIDE_DURATION);\n };\n\n useEffect(() => {\n ToastNotification.addToast = (toast) => {\n setToasts((prev) => [...prev, { ...toast, open: true }]);\n setTimeout(() => closeToast(toast.id), toast.duration || 5000);\n };\n }, []);\n\n return (\n \n {toasts.map((toast) => (\n \n \n \n {toast.type === 'success' ? (\n \n ) : (\n \n )}\n \n \n {typeof toast.message === 'object' ? toast.message.message || 'An error occurred' : toast.message}\n \n {toast.link && (\n {\n if (toast.link.onClickLink) {\n e.preventDefault();\n toast.link.onClickLink();\n }\n }}\n target={toast.link.blank ? '_blank' : '_self'}\n rel={toast.link.blank ? 'noopener noreferrer' : undefined}\n style={{\n color: '#007BFF',\n textDecoration: 'underline',\n display: 'block',\n marginTop: 5,\n }}\n >\n {toast.link.text}\n \n )}\n \n \n closeToast(toast.id)} size=\"small\">\n \n \n \n \n ))}\n \n );\n};\n\nconst toast = {\n success: (message, options = {}) => {\n const id = shortid.generate();\n if (ToastNotification.addToast) {\n ToastNotification.addToast({\n id,\n message,\n type: 'success',\n ...options,\n });\n }\n },\n error: (message, options = {}) => {\n if (typeof message === 'object' && message !== null) {\n console.error('Error ignored in the toast notification (object):', message);\n return;\n }\n\n const id = shortid.generate();\n if (ToastNotification.addToast) {\n ToastNotification.addToast({\n id,\n message: message || 'An error occurred',\n type: 'error',\n ...options,\n });\n }\n },\n};\n\nexport { ToastNotification, toast };\n","import { Box, Button, CircularProgress, Grid, Input, makeStyles, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport { toast } from '../../components/Notification';\nimport styled from 'styled-components';\nimport MultiSelectBox from '../../components/MultiSelectBox';\nimport useInput from '../../hooks/useInput';\nimport { assignOfficer, createOfficer } from '../../services/unarmed';\nimport { genderOptions, raceEthnicityOptions } from '../../utils/options';\nimport { TextMaskCustom } from '../Officers/OfficersTable';\nimport { OutLineInput } from './UpdateCase';\nimport Card from '../../components/Card';\n\nconst useStyles = makeStyles(() => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n },\n resaltText: {\n color: '#3B70FE',\n fontWeight: 600,\n fontSize: 13,\n },\n label: {\n fontWeight: '500',\n fontSize: 14,\n margin: '10px 0 10px',\n },\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n}));\n\nconst NewOfficer = ({ id, setIsRefetch, setIsRequestingData, caseArchived }) => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const badge = useInput('', isSubmitting);\n const firstName = useInput('', isSubmitting);\n const lastName = useInput('', isSubmitting);\n const email = useInput('');\n const phone = useInput('');\n const [gender, setGender] = useState([]);\n const [race, setRace] = useState([]);\n\n const onCreateOfficer = async (e) => {\n e.preventDefault();\n setIsSubmitting(true);\n setIsRequestingData(true);\n if (!firstName.value || !lastName.value || !badge.value) {\n return;\n }\n\n // const emailRgx = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n // if (!emailRgx.test(email.value)) {\n // email.setError('Please use a valid email!');\n // return;\n // }\n\n // if (phone.value.trim().length !== 14) {\n // phone.setError('Please enter a valid phone number');\n // return;\n // }\n\n try {\n setLoading(true);\n const { data } = await createOfficer(\n badge.value,\n firstName.value,\n lastName.value,\n email.value,\n phone.value,\n gender,\n race\n );\n\n toast.success(`Officer created Successfully`);\n await assignOfficer(id, data?._id);\n toast.success(`Officer assigned Successfully`);\n\n setIsRefetch();\n setIsSubmitting(false);\n setLoading(false);\n badge.setValue('');\n firstName.setValue('');\n lastName.setValue('');\n email.setValue('');\n phone.setValue('');\n setGender([]);\n setRace([]);\n setIsRequestingData(false);\n } catch (error) {\n setLoading(false);\n toast.error(error?.response?.data?.error?.details[0]?.message);\n toast.error(error?.response?.data?.message);\n if (error?.response?.data?.error?.details[0]?.message.includes('already exists')) {\n badge.setError(`An Officer with the Badge Number: ${badge.value} Already exist.`);\n }\n }\n };\n return (\n \n
\n \n Badge/Serial Number *\n \n \n {badge.error}\n \n \n \n Officer First Name\n *\n \n \n {firstName.error}\n \n \n \n Officer Last Name\n *\n \n \n {lastName.error}\n \n \n \n \n \n Officer Email Address\n \n \n {email.error}\n \n \n \n Officer Phone Number\n \n {/* {\n if (e.target.value.length === 0) {\n phone.setValue('');\n }\n if (e.target.value.match(/[0-9]$/g)) {\n phone.onChange(e);\n }\n }}\n inputMode=\"tel\"\n error={phone.error}\n aria-describedby=\"outlined-weight-helper-text\"\n maxLength={10}\n labelWidth={0}\n /> */}\n \n \n \n\n {phone.error}\n \n \n \n \n \n Gender\n \n setGender(e.target.value)}\n id=\"discliplineMutliSelct1\"\n options={genderOptions || []}\n />\n \n \n \n Race/Ethnicity\n \n setRace(e.target.value)}\n id=\"discliplineMutliSelct1\"\n options={raceEthnicityOptions || []}\n />\n \n \n \n \n {loading ? : 'Create Officer'}\n \n \n \n
\n );\n};\n\nexport const FillInputPhone = styled(Input)`\n background-color: #f8f8f9;\n height: 35px;\n font-size: 13px !important;\n width: 100%;\n padding: 10px;\n border-radius: 5px;\n border: 0;\n outline: 0;\n ${(props) =>\n props.bordered &&\n `\n border: 1px solid rgba(0, 0, 0, 0.23);\n background: transparent;\n `}\n ::before,\n ::after {\n border-bottom: 0 !important;\n }\n`;\n\nexport default NewOfficer;\n","import React from 'react';\nimport { Box, Grid, Typography, Tooltip, makeStyles } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport OpenInNewIcon from '@material-ui/icons/OpenInNew';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n formSection: {\n fontSize: 14,\n color: '#3f51b5',\n fontWeight: '500',\n margin: '20px 0',\n },\n label: {\n fontSize: 13,\n color: '#585858',\n fontWeight: 'normal',\n marginBottom: 8,\n },\n button: {\n background: ' #3B70FE',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#3B70FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n value: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontSize: 16,\n fontWeight: 500,\n display: 'inline-block',\n width: '100%',\n },\n}));\n\n/**\n * CasePersonInfo component for displaying information about a case person.\n * @param {Object} props - Component props.\n * @param {Array} props.data - Array of objects containing label, value, and valueRaw properties.\n * @param {Function} props.onClickDelete - Function to handle delete action.\n * @returns {JSX.Element} CasePersonInfo component.\n */\nconst CasePersonInfo = ({ data, onClickDelete, onClickColumn, onClickColumnInNewWindow }) => {\n const classes = useStyles();\n\n return (\n \n \n {data.map((item, itemKey) => (\n \n \n {item.label}\n \n \n \n {item.value}\n \n \n \n ))}\n \n {onClickColumnInNewWindow && (\n \n )}\n \n \n \n \n );\n};\n\n// PropTypes validation\nCasePersonInfo.propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n valueRaw: PropTypes.string,\n gridSize: PropTypes.number,\n })\n ),\n onClickDelete: PropTypes.func,\n onClickColumn: PropTypes.func,\n onClickColumnInNewWindow: PropTypes.func,\n};\n\nexport default CasePersonInfo;\n","import {\n Box,\n Button,\n CircularProgress,\n FormControl,\n Grid,\n InputLabel,\n makeStyles,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { toast } from '../../components/Notification';\nimport { Context } from '../../Context';\nimport useInput from '../../hooks/useInput';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { createUserInvitation, getRoles } from '../../services/unarmed';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n },\n\n alertContainer: {\n height: 'fit-content',\n width: '100%',\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n background: '#FFFBF3',\n borderLeft: '6px solid #FFC64C',\n borderRadius: 2,\n marginTop: 10,\n marginBottom: 10,\n padding: '10px',\n },\n}));\n\nconst InviteUser = ({ setOpen, onUpdateUsers, tab, setTab, limitInvites, leftInvites }) => {\n const classes = useStyles();\n const { authUser } = useContext(Context);\n const [roles, setRoles] = useState([]);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [loading, setLoading] = useState(false);\n const firstName = useInput('', isSubmitting);\n const lastName = useInput('', isSubmitting);\n const phone = useInput('', isSubmitting);\n const email = useInput('', isSubmitting);\n const role = useInput('', isSubmitting);\n\n useEffect(() => {\n const onGetRoles = async () => {\n try {\n const { data } = await getRoles();\n setRoles(data);\n } catch (error) {\n console.log(error);\n }\n };\n\n if (authUser) {\n onGetRoles();\n }\n }, [authUser]);\n\n const onInviteUser = async () => {\n setIsSubmitting(true);\n if (!firstName.value || !lastName.value || !phone.value || !email.value || !role.value) {\n return;\n }\n\n if (role.value === 'Select an Option') {\n role.setValue('');\n return;\n }\n\n if (phone.value.length !== 10) {\n phone.setError('Please enter a valid phone number');\n return;\n }\n const data = {\n firstName: firstName.value,\n lastName: lastName.value,\n phone: phone.value,\n email: email.value,\n type: role.value,\n };\n try {\n setLoading(true);\n const user = await createUserInvitation(data);\n onUpdateUsers(user.data); // this callback functions was deleted from the parent component\n setLoading(false);\n toast.success('A new User has been invited');\n setOpen(false);\n console.log(\"Setting openInviteUser to false\");\n } catch (error) {\n const message =\n error?.response?.data?.error?.details?.[0]?.message ||\n error?.response?.data?.message ||\n 'Something went wrong, try again later.';\n\n setLoading(false);\n\n console.log(message);\n toast.error(message);\n }\n };\n\n const formatRoleName = (roleName) =>\n roleName.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/^\\w/, (c) => c.toUpperCase());\n\n return (\n <>\n Invite User\n\n \n \n \n You can invite a new user to the dashboard by sending an invitation to their email address. You have{' '}\n \n {leftInvites} of {limitInvites}\n {' '}\n available invitations remaining.\n \n \n \n \n \n {' '}\n First Name *\n \n }\n style={{ width: '100%' }}\n value={firstName.value}\n onChange={firstName.onChange}\n error={firstName.error}\n helperText={firstName.error}\n />\n \n \n \n {' '}\n Last Name *\n \n }\n style={{ width: '100%' }}\n error={lastName.error}\n value={lastName.value}\n onChange={lastName.onChange}\n helperText={lastName.error}\n />\n \n \n \n {' '}\n Email *\n \n }\n value={email.value}\n onChange={email.onChange}\n style={{ width: '100%' }}\n error={email.error}\n helperText={email.error}\n />\n \n \n {\n if (e.target.value.length === 0) {\n phone.setValue('');\n }\n if (e.target.value.match(/[0-9]$/g)) {\n phone.onChange(e);\n }\n }}\n id=\"standard-required14\"\n label={\n \n {' '}\n Phone *\n \n }\n style={{ width: '100%' }}\n inputProps={{ maxlength: 10 }}\n error={phone.error}\n helperText={phone.error}\n />\n \n \n \n \n Role *\n \n \n \n {roles.map((roleItem, index) => (\n \n ))}\n \n {role.error}\n \n \n \n \n setOpen(false)}\n >\n CANCEL\n \n \n {loading ? : 'INVITE'}\n \n \n \n );\n};\n\nexport default InviteUser;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAYgAAAGIB+JKx0AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFVSURBVDiNlZK9L0NhFIef00rLvWUSidQgYWS57Up9RJpQo6ERC/4Om1n8Axax6CJRTSw+x0oXLI3BwCI2bq/bpPcYpFH33rb6jufN85zfed8jqsp/zmLBSTbQEyGav1yLPzXrkX/RgF13PlDGVRuX8wV3sidB9hCzPxYvAsPAWKtEuo2QPcR043YJZNZ39SISne8oSBcxzJpdEiQTcv2O8NzXCU44zhlhsOjtV93NmbGBwT8J5o5ruwJJAIVpwAqq9SbumsvnG9gA/gTbCiPtUil63e+aK00YfL+g4uWBWigtcmUbv51/p/E9YqbwuRDVyKkHRku58mkYM3e5oDywB3sT1dGd8epjpCWJwH0YHBBUKpV1VT0Y6vP2G+Ktth0nTNCERWTTsqyj67XEhf5I3hRe2wlEVQNwt65/BOVyeUpE7kRkq1cYfvZgSVXTqVTqoVcY4BvohpQevRm7SAAAAABJRU5ErkJggg==\"","import { Button, Typography } from '@material-ui/core';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\n\n/**\n * AddMore component renders a button with an icon and text.\n * It is used to trigger an action, typically adding a new item or option.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {function} props.onClick - The function to call when the button is clicked.\n * @param {string} props.dataTestId - The test ID for the button.\n * @param {string} [props.marginLeft='90px'] - The left margin of the button.\n * @param {string} [props.marginTop='20px'] - The top margin of the button.\n * @param {string} [props.text='Add new option'] - The text to display on the button.\n * @param {boolean} [props.disabled=false] - Whether the button is disabled.\n * @returns {React.ReactElement} The AddMore component.\n */\nexport default function AddMore({\n onClick,\n dataTestId,\n marginLeft = '90px',\n marginTop = '20px',\n text = 'Add new option',\n disabled = false,\n}) {\n return (\n \n \n {text}\n \n );\n}\n\nAddMore.propTypes = {\n onClick: PropTypes.func.isRequired,\n dataTestId: PropTypes.string.isRequired,\n marginLeft: PropTypes.string,\n marginTop: PropTypes.string,\n text: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nAddMore.defaultProps = {\n marginLeft: '90px',\n marginTop: '20px',\n text: 'Add new option',\n disabled: false,\n};\n","import { Box, Button, CircularProgress, Divider, makeStyles, Typography, FormControlLabel } from '@material-ui/core';\nimport React, { useContext, useEffect, useState } from 'react';\nimport moment from 'moment';\nimport DatePickerMUI from '../../components/DatePickerMUi';\nimport SelectBox from '../../components/SelectBox';\nimport { Context } from '../../Context';\nimport { getRoles, getUsers, getUsersInvitations, updateFilterConfigById } from '../../services/unarmed';\nimport { OutLineInput } from '../CaseDetails/UpdateCase';\nimport { activeColors } from '../../components/CaseFilters';\nimport { CustomSwitch } from '../../formEngine/components/WrapperComponent';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n}));\n\nconst UserFilter = ({\n setOpen,\n page,\n flagged,\n setUsername,\n setEmail,\n setPhone,\n setRole,\n onClick,\n name,\n email,\n setFrom,\n from,\n to,\n setTo,\n role,\n setUsers,\n value,\n rowsPerPage,\n phoneNumber,\n flaggedOnly,\n sortBy,\n sort,\n setIsFiltering,\n onClearFilters,\n setPage,\n fetchFiltersConfig,\n filtersApplied,\n filtersConfig,\n setfiltersConfig,\n filterConfigId\n}) => {\n const [roles, setRoles] = useState([]);\n const { authUser } = useContext(Context);\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const onGetRoles = async () => {\n try {\n const { data } = await getRoles();\n setRoles(data);\n } catch (error) {\n console.log(error);\n }\n };\n\n if (authUser) {\n onGetRoles();\n }\n }, [authUser]);\n const onFilter = async () => {\n try {\n setIsFiltering(true);\n setLoading(true);\n setPage(1);\n const filterSaved = {\n from: from ? moment(from).format('YYYY-MM-DD') : null,\n to: to ? moment(to).format('YYYY-MM-DD') : null,\n email,\n name,\n phoneNumber,\n role,\n sortOrder: sort,\n sortBy,\n flaggedOnly: flaggedOnly.value,\n };\n setfiltersConfig({ ...filtersConfig, ...filterSaved });\n localStorage.setItem('filters', JSON.stringify(filterSaved));\n await updateFilterConfigById(filterConfigId, filterSaved);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n\n console.log(error);\n }\n };\n\n const handleClearFilters = async () => {\n onClearFilters();\n const filterSaved = {\n from: from ? moment(from).format('YYYY-MM-DD') : null,\n to: to ? moment(to).format('YYYY-MM-DD') : null,\n email: '',\n name: '',\n phoneNumber: '',\n role: '',\n sortOrder: sort,\n sortBy,\n flaggedOnly: false,\n };\n await updateFilterConfigById(filterConfigId, filterSaved);\n }\n\n return (\n \n \n \n \n Name\n \n setUsername(e.target.value)}\n labelWidth={0}\n />\n \n \n \n Phone\n \n setPhone(e.target.value)}\n labelWidth={0}\n />\n \n \n \n Email\n \n setEmail(e.target.value)}\n labelWidth={0}\n />\n \n\n \n \n Role\n \n\n setRole(e.target.value)}\n outlined\n />\n \n\n \n \n Date Added\n \n \n \n \n \n \n \n {/*\n \n }\n label=\"Flagged only\"\n labelPlacement=\"start\"\n />\n */}\n \n\n \n \n \n \n Clear All Filters{' '}\n \n \n \n \n \n \n \n \n );\n};\n\nexport default UserFilter;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n Backdrop,\n Box,\n Checkbox,\n CircularProgress,\n Fade,\n Modal,\n Tooltip,\n Typography,\n Popover,\n List,\n ListItem,\n Divider,\n TextField,\n InputAdornment,\n Button,\n Tabs,\n} from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport SearchIcon from '@material-ui/icons/Search';\nimport moment from 'moment';\nimport { toast } from '../../components/Notification';\nimport EnhancedTable from '../../components/Table';\nimport TabPanel from '../../components/TabPanel';\nimport { TabComp } from '../CaseDetails/CaseDetails';\nimport InviteUser from './InviteUser';\nimport UserFilter from './UsersFilter';\nimport FilterButton from '../../components/FilterButton';\nimport DashButton from '../../components/DashButton';\nimport { getUsers, getfiltersConfigById, getViewByIdv, getUsersInvitations, getUsage } from '../../services/unarmed';\nimport AddMore from '../../components/AddMore';\nimport { TYPE_USER_TABS } from '../../utils/constants';\n\nexport const ViewTabUsers = ({\n a11yProps,\n anchorEl,\n checked,\n classes,\n email,\n fetchFiltersConfig,\n flagged,\n flaggedOnly,\n formatHeadersText,\n from,\n getVisibleColumns,\n handleChange,\n handleChangeRowsPerPage,\n handleClick,\n handleClose,\n handleToggleColumn,\n hideColumns,\n loading,\n loadingDeleteUser,\n name,\n onClearFilters,\n onDeleteUsers,\n onEditMultipleUsers,\n onUpdateUsers,\n open,\n openDeleteUser,\n openFilter,\n openPopover,\n openInviteUser,\n organization,\n page,\n phone,\n renderRow,\n role,\n rowsPerPage,\n searchTerm,\n selected,\n setChecked,\n setEmail,\n setFiltersLoaded,\n setFrom,\n setIsFiltering,\n setLoading,\n setOpenInviteUser,\n setOpenDeleteUser,\n setOpenFilter,\n setPage,\n setPhone,\n setRole,\n setSearchTerm,\n setSelected,\n setShowUpgradeModal,\n setSort,\n setSortBy,\n setTo,\n setUsage,\n setUsername,\n setUsers,\n setValue,\n setVisibleColumns,\n showColumns,\n sort,\n sortBy,\n tabSelected,\n to,\n usage,\n users,\n value,\n visibleColumns,\n stateUsage\n}) => {\n const [view, setView] = useState();\n const [filtersConfig, setfiltersConfig] = useState({});\n const [filtersApplied, setFiltersApplied] = useState({});\n const [filterCount, setFilterCount] = useState(0);\n\n const onGetUsers = async () => {\n try {\n setLoading(true);\n let res = null;\n if (value === 0) {\n res = await getUsers({\n page: page || 1,\n limit: rowsPerPage,\n sortBy: sortBy || 'createdAt',\n sort: sort || 'desc',\n from,\n to,\n name,\n role,\n email,\n phone,\n flaggedOnly: flagged.value,\n isFiltering: true,\n });\n }\n\n if (value === 1) {\n res = await getUsersInvitations(\n page || 1,\n rowsPerPage,\n sortBy || 'createdAt',\n sort || 'desc',\n from,\n to,\n name,\n role,\n email,\n flagged.value,\n phone,\n true\n );\n }\n\n const data = await getUsage(organization?._id);\n setUsage(data);\n\n setUsers({ data: res.data, headers: res.headers });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n toast.error(error.message);\n }\n };\n\n const onGetUsers1 = async ({ sortByV, sortV, fromV, toV, usernameV, roleV, emailV, phoneV, flaggedV }) => {\n try {\n setLoading(true);\n let res = null;\n if (value === 0) {\n res = await getUsers({\n page: page || 1,\n limit: rowsPerPage,\n sortBy: sortBy || 'createdAt',\n sort: sortV || 'desc',\n from: fromV,\n to: toV,\n name: usernameV,\n role: roleV,\n email: emailV,\n phone: phoneV,\n flagged: flaggedV, // flagged.value\n isFiltering: true,\n });\n }\n\n if (value === 1) {\n res = await getUsersInvitations(\n page || 1,\n rowsPerPage,\n sortBy || 'createdAt',\n sortV || 'desc',\n from,\n to,\n name,\n role,\n email,\n flaggedV,\n phone,\n true\n );\n }\n\n const data = await getUsage(organization?._id);\n setUsage(data);\n\n setUsers({ data: res.data, headers: res.headers });\n setLoading(false);\n } catch (error) {\n setLoading(false);\n toast.error(error.message);\n }\n };\n\n const handleOnSetFiltersConfig = () => {\n const newFiltersApplied = {};\n if (filtersConfig) {\n const configCopy = { ...filtersConfig };\n\n delete configCopy.sortOrder;\n delete configCopy.sortBy;\n delete configCopy.page;\n delete configCopy.limit;\n delete configCopy.isFiltering;\n Object.keys(configCopy).forEach((key) => {\n const value1 = configCopy[key];\n let isApplied = false;\n\n if (value1 === null || !value1 || value1 === '0') {\n isApplied = false;\n } else if (Array.isArray(value1)) {\n isApplied = value1.length > 0;\n } else if (typeof value1 === 'boolean') {\n isApplied = value1 === true;\n } else {\n isApplied = true;\n }\n\n newFiltersApplied[key] = isApplied;\n });\n\n const newCount = Object.values(newFiltersApplied).filter((item) => item).length;\n setFilterCount(newCount);\n setFiltersApplied(newFiltersApplied);\n }\n };\n\n useEffect(() => {\n handleOnSetFiltersConfig();\n if (filtersConfig) {\n setEmail(filtersConfig?.email);\n setUsername(filtersConfig?.name);\n setPhone(filtersConfig?.phoneNumber);\n setRole(filtersConfig?.role);\n setTo(filtersConfig?.to || null);\n setFrom(filtersConfig?.from || null);\n flaggedOnly.setValue(filtersConfig?.flaggedOnly);\n\n setFiltersLoaded(true);\n onGetUsers1({\n fromV: filtersConfig?.from,\n toV: filtersConfig?.to,\n sortByV: sortBy,\n sortV: sort,\n usernameV: filtersConfig?.name,\n roleV: filtersConfig?.role,\n emailV: filtersConfig?.email,\n phoneV: filtersConfig?.phoneNumber,\n flaggedV: filtersConfig?.flaggedOnly,\n });\n } else if (filtersConfig === null) {\n setFiltersLoaded(true);\n onGetUsers();\n }\n }, [filtersConfig, page, sort, sortBy, stateUsage]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (tabSelected?.displayObjectId && tabSelected?.displayObjectType === TYPE_USER_TABS.VIEW) {\n const responseView = await getViewByIdv(tabSelected?.displayObjectId);\n if (responseView?.data?.view[0]) {\n setView(responseView.data.view[0]);\n setVisibleColumns(responseView.data.view[0].columns);\n }\n }\n };\n\n fetchData();\n }, [tabSelected]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (view) {\n const responsefiltersConfig = await getfiltersConfigById(view?.filtersConfigId);\n setfiltersConfig(responsefiltersConfig?.data?.filterConfig[0]?.config);\n }\n };\n\n fetchData();\n }, [view]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (tabSelected?.displayObjectId && tabSelected?.displayObjectType === TYPE_USER_TABS.VIEW) {\n const responseView = await getViewByIdv(tabSelected?.displayObjectId);\n if (responseView?.data?.view[0]) {\n setView(responseView.data.view[0]);\n setVisibleColumns(responseView.data.view[0].columns);\n }\n }\n };\n\n fetchData();\n }, [tabSelected]);\n\n return (\n <>\n \n \n \n Available invitations:{' '}\n \n {organization?.features?.limits?.users - (usage?.activeUsers + usage?.pendingUsers) || 0}\n \n \n\n \n \n\n \n \n \n \n Show / Hide Columns\n \n \n\n \n\n setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n disableUnderline: true,\n style: {\n fontSize: '12px',\n height: '28px',\n },\n }}\n style={{\n padding: '5px 0',\n backgroundColor: 'transparent',\n fontSize: '12px',\n height: '28px',\n }}\n />\n\n \n\n \n \n Visible\n \n \n\n \n {showColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n\n \n\n \n \n Hidden\n \n \n\n \n {hideColumns.map((column) => (\n handleToggleColumn(view._id, column)}\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.1px',\n }}\n >\n \n \n {formatHeadersText(column)}\n \n \n \n \n ))}\n \n \n \n \n\n \n \n \n \n \n \n setOpenFilter(!openFilter)}\n marginRight=\"10px\"\n />\n \n Flag\n \n setOpenDeleteUser(true)} disabled={selected.length === 0} marginRight=\"10px\">\n Delete\n \n {\n if (organization?.features?.limits?.users - (usage?.activeUsers + usage?.pendingUsers) === 0) {\n setShowUpgradeModal(true);\n } else {\n setOpenInviteUser(true);\n }\n }}\n marginRight=\"10px\"\n >\n Invite User\n \n \n \n\n {openFilter && (\n \n )}\n\n \n \n \n \n \n\n \n \n \n \n \n\n setOpenInviteUser(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n \n
\n
\n \n\n setOpenDeleteUser(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n Are you sure you want to delete?\n This action can’t be undone!\n \n \n \n \n
\n
\n \n \n );\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { Box, Typography, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nexport const useCardStyles = makeStyles(() => ({\n container: {\n width: '100%',\n background: '#fff',\n borderRadius: 5,\n overflow: 'hidden',\n height: 'fit-content',\n },\n titleBox: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '10px 24px',\n height: 44,\n borderBottom: '1px solid #e2e2e2',\n },\n title: {\n fontSize: 16,\n fontWeight: '500',\n color: '#575A66',\n margin: 0,\n },\n}));\n\n/**\n * Card component to display a card with a title and content.\n * @param {Object} props - Component props.\n * @param {string} props.title - Title of the card.\n * @param {React.ReactNode} props.children - Children components of the card.\n * @returns {JSX.Element} Card component.\n */\nconst Card = ({ title, btn = null, paddingContent = '16px 24px', children, ...props }) => {\n const classes = useCardStyles();\n\n return (\n \n \n {typeof title === 'string' ? (\n \n {title}\n \n ) : (\n title\n )}\n {btn}\n \n {children}\n \n );\n};\n\n// PropTypes validation\nCard.propTypes = {\n title: PropTypes.node,\n btn: PropTypes.node,\n paddingContent: PropTypes.string,\n children: PropTypes.node,\n};\n\nexport default Card;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport { Box } from '@material-ui/core';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * TabPanel component for rendering the content of a tab based on the selected index.\n *\n * @component\n * @param {Object} props - The component props.\n * @param {React.ReactNode} props.children - The content to display inside the tab panel.\n * @param {number} props.value - The current selected tab index.\n * @param {number} props.index - The index of this tab panel.\n * @param {number} [props.padding=20] - The padding inside the tab panel.\n * @param {number} [props.marginBottom=0] - The bottom margin of the tab panel.\n * @returns {React.ReactElement} The TabPanel component.\n */\nfunction TabPanel(props) {\n const { children, value, index, padding = 20, marginBottom = 0, ...other } = props;\n\n return (\n
\n );\n}\n\nTabPanel.propTypes = {\n children: PropTypes.node,\n value: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired,\n padding: PropTypes.number,\n marginBottom: PropTypes.number,\n};\n\nexport default TabPanel;\n","import { useState, useEffect } from 'react';\n\nconst useInput = (initialValue = '', submitting, isPassword, isBoolean) => {\n const [value, setValue] = useState(initialValue);\n const [error, setError] = useState('');\n\n useEffect(() => {\n if (!value && submitting) {\n setError('This Field is required!');\n }\n\n if (\n isPassword &&\n submitting &&\n !value.match(\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$/\n )\n ) {\n setError(\n 'Password should be a minimum of eight characters and include at least one uppercase letter, one lowercase letter, one number, and a special character.'\n );\n }\n }, [submitting, value]);\n\n const onChange = (e) => {\n if (isBoolean) {\n setValue(e.target.checked);\n return;\n }\n setValue(e.target.value);\n\n if (value !== e.target.value) {\n setError('');\n }\n };\n\n return {\n value,\n error,\n onChange,\n setError,\n setValue,\n };\n};\n\nexport default useInput;\n","import { InputBase, NativeSelect, withStyles } from '@material-ui/core';\nimport React from 'react';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nconst BootstrapInputFillled = withStyles((theme) => ({\n root: {\n width: '100%',\n\n height: 40,\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: '#f8f8f9',\n border: '1px solid #f8f8f9',\n fontSize: 13,\n height: 20,\n padding: '7px 26px 7px 12px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n // Use the system font instead of the default Roboto font.\n fontFamily: [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n '&:focus': {\n borderRadius: 4,\n borderColor: '#f8f8f9',\n backgroundColor: '#f8f8f9',\n },\n },\n}))(InputBase);\n\nconst BootstrapInputOutlined = withStyles((theme) => ({\n root: {\n width: '100%',\n background: '#fff',\n height: 40,\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: 'transparent',\n border: '1px solid rgba(0,0,0,0.23)',\n fontSize: 13,\n\n height: 20,\n padding: '7px 26px 7px 12px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n // Use the system font instead of the default Roboto font.\n fontFamily: [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n '&:focus': {\n borderRadius: 4,\n borderColor: 'rgba(0,0,0,0.23)',\n },\n },\n}))(InputBase);\n\nconst BootstrapInputBorderLess = withStyles((theme) => ({\n root: {\n width: '100%',\n\n height: 40,\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: 'transparent',\n // border: '1px solid rgba(0,0,0,0.23)',\n fontSize: 14,\n height: 20,\n padding: '7px 26px 7px 12px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n // Use the system font instead of the default Roboto font.\n fontFamily: [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n '&:focus': {\n borderRadius: 4,\n borderColor: 'transparent',\n backgroundColor: 'transparent',\n },\n },\n}))(InputBase);\n\nconst SelectBox = ({\n id,\n value,\n onChange,\n options,\n outlined,\n dataTestId,\n withColors = null,\n allowPlaceHolder = true,\n showDefaultValue = true,\n placeholderText,\n disabled,\n hidePlaceholderWhenSelectedValue,\n}) => {\n const BootstrapInputColors = withStyles((theme) => ({\n root: {\n width: '100%',\n\n height: 40,\n\n '& svg': {\n color: `${withColors.color} !important`,\n },\n },\n input: {\n borderRadius: 4,\n position: 'relative',\n backgroundColor: withColors?.bg ? withColors?.bg : 'transparent',\n border: withColors?.border ? `1px solid ${withColors?.border}` : '1px solid rgba(0,0,0,0.23)',\n color: withColors.color,\n fontSize: 14,\n fontWeight: '500',\n height: 20,\n padding: '7px 26px 7px 12px',\n transition: theme.transitions.create(['border-color', 'box-shadow']),\n // Use the system font instead of the default Roboto font.\n fontFamily: ['Roboto'].join(','),\n '&:focus': {\n borderRadius: 4,\n borderColor: withColors.focus ? withColors.focus : 'transparent',\n backgroundColor: withColors.focus ? withColors.focus : 'transparent',\n },\n },\n }))(InputBase);\n\n const renderInputComponent = () => {\n if (withColors) {\n return ;\n }\n if (typeof outlined === 'string') {\n return ;\n }\n if (outlined) {\n return ;\n }\n return ;\n };\n\n return (\n \n {allowPlaceHolder && (\n <>{hidePlaceholderWhenSelectedValue && value ? null : }\n )}\n\n {placeholderText && (\n \n )}\n\n {Array.isArray(options)\n ? options.map((option, index) => (\n \n ))\n : options.obj.map((option, index) => (\n \n {option?.text}\n \n ))}\n \n );\n};\n\nexport default SelectBox;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAbdJREFUOI2VkTFLHFEQx/8zt2ojRIKGeJdNEyHY+AliYZcibSwET5u9B4kk3ElSBITXWEjQE0HJW1cIt92WaUQQrjCfIBAlRVLkuC3SaODgosm+SePKenpyTvkffr+Z94bQY4XGLAjRhBVZmVfqe5pzrwIAiQCfckRvPhrz6FaCcGfnsRCN/xHZGxgaepUjqoRBMAYA1BOcJC/bIotKqb8AEEVR/+nJSRXM1Rs3qG1vj9skWXDjuJLCADByeGgtsCvWvs3dBIvIi4dxXJ7S+l+a17V2fubzVRY5A/MvJ20EQXC339plAX6fv63tdoGJaGu2VDoCgAtBn8gDEH2b87z16zbKwkXPO0rziz+Y87wvZG2rZsxMJxxFUa4xOvpegA9Z+JIAAGaVCgAMh74/nc3bx8dLYPbnS6WvnfJLgrrWDojGrMjTrISYBzonXxHUtXYa+fwaRA6IqCUi92vGPL8OuiKoa+00CoVViByAaNKN40pRqQ0w36sZUwZwp6tAa82NQmEV1n4G8xM3jivp6Yqet8nAfuI477oJKPT910LUAjDhNpuL2bv3UizAMxIZ/NFslm8LA8B/P+fET/u3/GYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAG6ADAAQAAAABAAAAGwAAAADVx3bDAAACIElEQVRIDe1WUU4bMRCdcQjf3IB8Vmq3yg3IDcgNSKUm6l97A+AEpX8VQWJzgsINwgkalSL1D3qCJr+k69eZ3WxkbG93V2r/mI/YM555zx6PZ0P0LP8gA9wGI5lgSMB7ZhqA6AqWP32/4HlTjFqy/gh7tktHxPggoL0AGLQg5rNv5zwL1jxDJdmLd+h1M3vMxENi2vPiQhW0VNJHQ7Mfn/khdCCB8eTlGH1D+Kip8pYaqwDSdcec+qTGR+iwHTYgWvlxrs7Mo53fYcoDMjeoag6w3l9raU0Gwux2yilAN23Z2pNZkxYkvBmbU+7UuepJmMzCWilxkfJd6elevcWD2oyhvhTFQO76UPUqqSVj8GFGdHZ3wTmZC1QSJ2P0pKwP3LXYPJJGs3ziKG+sw/gqgKMn9o3yepKdMOOyyVsMyMp0BcBFBwnM8lSPI0YCyyP3JCCT9xGkq4jB1q4trMSJViXo5900THtAtkh5KQDXJdh2hJlrC0sm9ovdxa9knF0qqaRwvvXZTBCx6VJAlvtzrKztwa7FvRTCUH20S9gu7mVj+3mM87M25sRRt1OJjUsytnMp5doK86M1K7dTk2/IX4ufTLws5S3prz3QBxN91VnzKGLPTZVkesEte+AqAw/0zluTaUDRA/mNTOtOmBPFKtAlrjxZ6aSEuuNoiYuT2h8N9+uIFK+yQEoydyy6CPLvnfRM+Q9i0rJluX7P8/+agT9zf8t2scX+SwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAYAAACEYr13AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEKADAAQAAAABAAAAFAAAAADiHfUIAAABE0lEQVQ4EaVTO27CQBB9szgSt4DcIEjQQ4lQJI5gHyUnsW9AgVDKQE2K3CDxDUJBRezJDIqlZX8CMtJo5/fePK9t4vV4yoZKAEPxqDFQ9Rb7wh0wbFBJceg23JyAvNlMdNGFGYAGF5VEEiIRgtvMJbmZQNfZJNRuJnI/95le7F0KunWq5F8ESpQg4B2Z06M6wLtuq3tGCcj85DT/+Dq7xC6wy6ME6OO7G0qdWazJx2zFr0+F9rnJSn13IYsSgGjK7cPnGRQBay/wCHxg8ItgRmaxJ3WNtSZaDq4K70Oilmf0/L51BzX/+3Pf7J6nIAZWUKjnKbDZr4k9BdeA7Bkh8C/GHkjHXBtqsRSSOj0Y6nIt2PwXygNY22B6gLcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABXCAYAAACAw4LhAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAWKADAAQAAAABAAAAVwAAAABGGP37AAANkUlEQVR4Ae2dCZAcVRnHv9czswSSAAmiBCQkHBaoKGJxyL0cgcQQsDQL2SMY1BJFjmRnJlAIrAcC2Q2EymFVlKKSndmETQoNIJQCIcQgIggeBDnKAgQ5Ss6wCdmdnX7+v+5+3W92Zmd7Jz29k5l9VTP99Xuv3/Gbb7539HvdgirFpZKfJWEeieIcSZIOIyG+QCQnEom9cT4e/nuToL3g9wlJ8RHO8ZHbEP4WCfl3+G0lw3iOGm/dWilV4nKIEStMd1sd9facQ4aYRVKeD6CTAimLpB0A/gjSfIDqzPuo4fb/BpJuiYmEC7h7/kTKRL6Bsp6PzzT8vnuWWG7/l0n6JyKvJ1N20tyOV/xfGEzMcACvTRxGWboBRZ5btNgWDPkiwD+PeM9TJPs6CWMb9UW20RiYhIZbP6LVCydTtH8ymWIKtH4K4h0CEzIZWgtZfA7nRZx8AnE6Kba9kxpW9BSJGFhQeQF3zj+cjAjAipaCJZbyQxip3yBsA/WN+z3Na9tZMN5wPLtaTwH8WYA/G5dNKXyp3ExNHacXDgvWtzyAU62fJzJuALyLChT3TfhtQAN1Dyr5cIHw4LxSC49Gw3k+NBw2nk7UEt5KTe1f1M7LJgYPOJW4GZW5Jq/EEi29EDehYuvywsLwWJM8kLLym8hqBhnyp9TYAXNRfhcc4PT8Q4ki62EOvpJbbNg9KX5Bze335/rXxlkwgLsS30UrvQQaOtbDJjdCk2+Cpmz0/GpA6orDJInp+Kf+kGu7a4DvunpfqouuRjLc7XKc7EHL30KNi36rfGrm2JW8kKTJ/+II2pjb0Ma0RkuufPe1+1Nf5k9I7HAtDYymojNpzi2van61IebA9apseOIwJIabyWyGSdDhrqQJO79ak3BTiYs8zWWOcgvFsj9mafgmwh6NPY5Led4AaWFoaoimmjQJXH+GK+Qa8HBYWnCnYYj+CQcPz0Qw3L7oJvwsHlwyz6DGxU9xYjXnhoDLPGCMfbruhftQn4BZoKOdK/owoTKdWhbDDteg8wGXqfi3wZnsvRpcwnB0NrV0bKpBtEOaBZ2JPxORSvwEF53mXiiokVoW3eue15LgU3MVkqEbuXQrwBqPqQvQqrWhf8fAa88NEy4DKm4ieCAhjbs9kmghXx73M++8hqQS4DKd4oDrYmnY3QMsjDy1GIPdbWszawirXdWBcKV8Ev1ctytWjMfggNPxK3HhDPdigb5uQ/vb7nmtCIXgmnSW6ucOhaGwDV517X4U6X8D2jvGSeAOTF5cPVRiVRc+GNy5Hdv91rVwLyLafx0SUHD/RrGxSb8JVk28AOAyi3wN7k4cQH30iqu9RvZYmnPbs1UDzk9F0q24xSVWucNftrlsFoahuSqbfBuckde6cCU9Mgq3dLgMORcway+JyxR9hNZWlyxAzVUMcwFniKfY6qxASX+mxvbHVMSqP5YBLjPzAPNKG5KXaiBv1OTqFssEl6F5gHt3nAfzYK+0kfQf3KT8Q3VTdWqXB5eeKbVBK8TL66YZkpc02U5I3FeqAVcILu2sp7lLffdzh6Jka3D3bL5JN8uNLMU9rlytwmBwm5dixWZwzgbce8ipMA9YKspOvo9RW3VPoocEl2nagA3yzIOkdegHSw6sShciXOZnA5aiwYNZxeYhZLg24O75B0Fj7SlJ9pm4szr7viMA1wbcGz2UBctJeoNmLO1Vp1Vz5KVdOXML6IpxbyHgBq0QryiMxFQ3QMgXXLlaBIYr6VcAbNdIhgeXM4QNlp4Gk8Dq8pAcb3opt0snfmDDVRnJZ7Ei6awwNFflyI2cBjgkDe5KzMFqmNcpFX+D0oljVGECPTJcohVampjXzp5N85Z8qPkFL6YSa1GnV6grYa2gN7DU0gMsxUvB51ggRSnPsXyFOAjHjYFDTrXy0tEBcPv5Ns/7BUoTnNeaBSfBEvGq/ilYznsVJ8wafDALlhNmOCZCYnuBlGp71QTkvZHWLBiwcNsp03APDFcYy93LeGV9LAS4nKHU10fbsoG/qjOCQ4RxkfL+wqrWzYtwv0+eDPv4tuM1gbLGJupc8GUVpaQjN2g5cLGFS0Try665qrCm4bSk8BB2qwoNFuNUOF2w6GNXLrfQtPg1LD08xYUssKNTGJtLhuz2FpyC85YwETmdmm75oNxVcdM3TG8ELFEzODYRI+cubv+3BZnof1YhSoVcCXCtChjaYkqZZS80crzf13G8PDVsx5BNgcmmEiFXDFzUwNTMLQmrt8Ia/J7LtJfCB8yZtyx60YaMmTx2fjW5kuBa5aZPWeW3v97lAxo58ho2IzYygLkkDDlC6Dv6hFxpcLkOVAiwFJ4G6z0K+4Jwvy/ueM6GzI8qgBtMk1OJyweM0F4IvUErSEZoGmw6GqybiBwbUjCF8nsyZCNbj4wKQ2a4gpZ5BcHoU8hTQ+0teJnnSlLu73oYQpkI6Wlw7pYsN27oAq8kMsTZbgOsNDkdvyMXLm2lWOw07BGxKhN6OfMz1DSYHMD68FjQCfnXjJDPnEVPw1xMg03usUrAkElc6ZZG0r8oxoOIm+0unhswgoKgL2m5O4AjQt8UfbIWYeTFOR1PQmOnQZNz7/JK+Tx2mJ5eUXDTiSOgAKqT0E/79lrTDga9uNcz0BJrTxeI7kPWpu6RZ+uWwNoVL85Fo7bD9oPNNWRlwbUKJr09LJKeUDcuDGvFuhRPuxWiyPGeXCFSc/vjFJFnQhHarAatcmyuB0gSD5ZsJ7AR3nH2whMhcZveGk2hDpYdXqsiVMyRzQURfyrVeRosxKOqkGouQrfDF6jA0aNPArwqVYipdmzZS5PGYqux7WzAWXrYbUg4orV1S0UZPQ5JIENz3DhSbKH6tn51bgO2Vm6Lu5UnRtDf8eRRqSgBiX4O0Y+8OFLjqE9XRrJ3upEkNdDquPb0EjdkVBhIIN2KVanOfU1JH9PE3tV6FGWDCVsF0NA5Nz15d1GUmvWIo/JgBMQVWshK1T1Tfh5g9hG8fsBxUiTRhcsNV2GjR5sAjxkEsQbDSdzBEEts2fvOBRiNdSJexgk+lI7omedFHZXyCURhe9WDOMTviO81DnC5gHlcL8RKLc6NZG0t0HxGRZtAuvUQaO1lLg5JS11ZE3IBWwGR66HF2+w44mDKbL9ciz8qugRECtq7p32KRzUOsuUiHzDfhRWizU1H0nWjPQqXhi10xWE6xSmObx+etHXJgBjuaT5gDmpqvx3fL1uxBGHfMl1vyaNfRF1XfQabZLTGTN5Q7ElbhQEzSFPENZ5JSifrtfPaFc3YMvzDMTdtOUz4v9ZRDMbggO1HxqTti7mlxBPtwlgRWay0Ix2WTswG3G95xTAvoYZ1We88XxocMMftG4u1tZjcthxPJpv30KNt9gyc7Vk73+nk8ZhpXK1V+HZqWvxX7bygWBwwPzBZiAvRHbEn5IU4jt7subVgStXsyQ+aJvNBDCrG2NWU/8Cjcn21S/jr+3Bd8QasHNQmMeSFeDDSBh9X7v5R7IeTPAO4k53KvEmi71hqvOMdP5UrrsEqhcaObmjxMnWK4xrY47O08+oU72rDnEzmIRcuT+aY4ky/cBmKP8Acs2fbAtjjp1i0O9j4y7DRr1bHmhvr2Yy6qnXL/WSYM6wVSMOos3/A31+ZoWxsOgw9vzYB+YoYtPpuPBzz0mHkt3tEZZsbzTyLOh6nFbgR6y+2aOe+RP+AOblLbn6PxgteOO3cEkH3TdCdlI4v9JXb7hCJ91aICHoHmCZQTtKNGHytU6fDOfpr5Aam+MAVe9AHY9bDe6YbJOlequufF9pqcjfjAIV0sgm9hVWA66zzxRpfQUk8Jv22UnMZngarXHiz4stjL4BNRmEcJ2gWZaIvUGdylvLabY582ycdb4fJ4wkcG67Esl5T1O8KXK5/aRqsk0vFv4dU8AtrWxGk7KJM/+Vl3zKll6NUOZU4GeXnHtIxWhJb0S09r9D8rhbHl7jrgDkbntmXkU40Cidpub6Dx27Po+bFD2p+lSOuTR5F/WY7yvz13ELhBSqxbLPfJ/vlXpt/FgxgTpdvLx2xfQH+Zj+HNu/hZiV5UQstp7px66mhrc/1HymBZ8Nk7CZk/23XHNhleRWHZKmNmZ1E/ndwgFXalmag++Y9KVuF4G6J/DVeffNL3GB9XXmGcuRG+cMxM7GHosnR2Do3X15YKMQteMB/+8Ablm6cXRCCB6wKYz2a0Hrljm7bVOhD6OrdhwrfX9ZXkFlTrCZ6Brz7UmsjVCkIkzdm5hpqWfKW5xWsVD7Aqpyd8TOwmDoB0zEdlSyQn3wJsB9A2INUN3ZTyWaEnzHfb34NPZsT0UCdgH8LFjG6y0lVafiIlfPc+xHLYA7smwp6aMBygQoHnINKjt/QJQyAZts3mOPXSVoL/N5FjPfweRe/CV6JhlX4Ept1pIG3zODhIcKEHRX7AdQkgIJMU+F/1GCpWv7Wy6qMFRTL4F1y9isYisYPKDA8wKrAG5Lj6WPzbICZBkDnAuBUFVSGI78pYT1FzOX2wpoy5DBEkuEDHlggHvcLA7CNcxFUD00cPzDKMM7RS5F/wY/Hr6P4I0W3bwnrzYeDlXHkAQ8s2er4pykiDkQfGn9/YxJA8fOEDnTMwQRoJF6KKnbAb7sl81HwqAumpQJfO/F/Ejyfxk6wBf4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAYAAACEYr13AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEKADAAQAAAABAAAAFAAAAADiHfUIAAAA/0lEQVQ4EaWTuxHCMAxAJR8FWwAjsAGBBSihC6MwSdKRjgn4TQJsACUNQjKXO8W2QgDf+aLvsyLLCIfNBAgLBBhCyyKCEmaLVRji4Anlp2RJQoQcdlURARBxEBotPQVxVrBlDyFfAwSsIYj7iqzTPtmlsT9VUIOlkr8AAjIBBHQipJHfLNenhl8TAHLv2fLit8jGsgHQvxk5DXOvoWmFHlse8/fo8qhrl5ZNAI+3vJGzDk7J0S/w3d6JaE3oxjRdoN8ii419ISQaJO56xo07hoFe55eLhAftiyowkyUrAY4q0PQuclxBlywV41KNUf5WkRt7deBoLkJrZMLpcxzkL6r4X9EQNy4eAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAYAAACEYr13AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEKADAAQAAAABAAAAFAAAAADiHfUIAAABGUlEQVQ4EaVTO27CQBCdWTsVuQPQpQiFJac3HQIKjuAcJScJN6ABRJdQg0ThFOkSboA7pMSe7BCNYnt3HQMrjeaz770Zr3dxcz+OEPNnAOxA7aJpmCwfqxCFkE//JzMN421vqBuVlwLEdrlUl5kiqg5u3yuLXCDAsn8ivr1Lk+pJBC6cQBpgfKUAuCcgorX3lXXZOJaeVe+cwP/O4+B99cnGcZUouVMAjseDgOq88y9kt63Z7m5wurqZ7xk3UESdAoAQZTfehwBd3vIJlOpDe/JyCsJkgWwccw2A0qoQbnsjKhaJsP/wNn8t1iT+fbn0Ijl7YwIXmcG2PWMCBp6zjAnOITNWC5gH01iEaK+I1AR00JgkQM0hUPEPC95mUfhIEd8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAEF0lEQVRoBe1YUXITMQy1vE1/CScgn8xAQ3qChhM0nIAyQzr80Z4g6QkIf0zDTHMD0hMQTtDQwgx/lBukv2nXQtrEW6/WWXbTpuxHdiaxLVvykyzJ2lVq/awtsLZAaS2w1ca9ejvsZQGErMn/OcfgAfCEMSDCm4s+DHx4SqmACz4CjWoSKnj5sw9jqYSWhDKMQWE3gQNUNQD8kqDNB6VUgKzd8oCt8clIeikVmLkKHEqwFBOdFE0S8o6ftbERgNpFxCYFUoP5UKkxAIxCVKc+f10k++k7rP36BJdyvt42lwrUE5cuA3qpE6jv4wH55BlB7gKoJm1S5V/UJ1qg8Gu9je/djRf12S02Qzxjg8g1qKAraRQfCbmFs9BW2wwJ6K4U7BvTiQwvjvUr3xzTEtkG1fi8r7fl2vq+mRDtkUvXU3g8HgDTVaETYMvnBc/CyTot5uG+fJ6/Jdeb5/loDlTDF6SIaiR5w4pqWVpuBWZHjB8sY+4WseNzD9BmT8rwBSmZYSjXkesWVyAAEzOlBWZQohye5r3WuuvhqnFAu3Q6gUt3PO9XLS33CVD0Ny1T0dbHy1mHYuS7lLVpbt2D5zZu1Fiucce5FSDfb7iMRfoUCy+8673WNbF1mccGq8tPWHbsOLcClmGpFjieV/PkVoB8MfMos+At4iWtEpfUTIaeuLJkTPCc63q5FaAMMXIFF+n7eCNgHrekWzyxD8VALbUXVaeWlluBEPWQmK4sY4H2aqr1QK6vGNOVNDLtH1mCaO2NveIKzAus9KYpFJIAXV+dY1D3aGXSIIADyc21lqRxvWVpuU+AGc6PoUf+fGqZ/9XyWubxrWODhLPUPFOCrK+nkVLx8sYecn2VKlumWrE3RE8hBZjjoq9bdDseUjdpvUhc/EdzcDhbG9NSnVgJAs/vADJlmk1zIJk4gN0TXTq9zcpp0+JLyt4RnG04YNnn3U0kCDlmS0vwTDMV/B1VugkGPDo/DrqWtLQCVsCq2vp+SCChI+RfUSVac5Ut7EJC4EqGXKl6wNNe2HPB8+Yb/Fe2R+vZ55QELoqT8/6t69i5Up4AxdWRBWjbBS/6xWoUDqxwQ+0AXS7zd2F+lWzYTaKWApkyxYRzNRo1Dm7UN3nsifULBu7bGim0/IctzjYazGuqxyh9eq71BQAEmUpnHNI7wMci2SlSQpkGuU4qnVr5C7PQ/JWvQymyaRffR0updsQu8uPz7W16F7kpBbjIqoR4ct/AJUhW5DqAN0VORMrgcUKB6HKiTyJErfoW3zst45tn3r1iBdjy/H3mwcBbhKTENIDtZU8iTqNReftQlrfguaU9vaW1uyajHytAWWYnY91Kp+6yd6wAIaytFGW28KX3dhXI3qKks2sFSnowa1hrC6wtsLbAA1ngLzG2fVlaLYO6AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAAAq0lEQVRoBe2WywmAMBBEo1iPZVmUZVmQisfMZUEI2WGftzUomTf7a40HAhCAAAQqE1hU/H7cj77LFF/n2t15zXS5P3fZoo9UcTaH7B1AQJSCo8/DGsiW8wrEPoVUEDEEqhHo9opPfPauo5uBfRcK54AqzuaQvQMImN31whrIlvMKzD6FVBAxBKoRYBea7Xg4B9iFBltkP8jsBYQ1wC40uAb4PQQgAAEI1CbwAt3hH+2gnOODAAAAAElFTkSuQmCC\"","/* eslint-disable react/display-name */\nimport {\n Backdrop,\n Box,\n Checkbox,\n CircularProgress,\n Fade,\n makeStyles,\n Modal,\n TableCell,\n TableRow,\n Tooltip,\n Typography,\n Popover,\n IconButton,\n List,\n ListItem,\n Divider,\n TextField,\n InputAdornment,\n Button,\n Grid,\n Input,\n InputLabel,\n Tabs,\n} from '@material-ui/core';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport React, { useCallback, useContext, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport { toast } from '../../components/Notification';\nimport Flagged from '../../assets/flagged.png';\nimport { Context } from '../../Context';\nimport {\n deleteInvitationUser,\n deleteUser,\n getUsage,\n getUsers,\n getUsersInvitations,\n editMultipleUsers,\n updateViewsById,\n} from '../../services/unarmed';\nimport { ViewTabUsers } from './ViewTabUsers';\nimport useInput from '../../hooks/useInput';\nimport useOrganization from '../../hooks/useOrganization';\nimport UpgradeModal from '../../components/UpgradeModal';\nimport RenderMoreOption from './RenderMoreOptions';\nimport { logEvent } from '../../services/firebase';\nimport useFiltersConfig from '../../hooks/useFiltersConfig';\nimport { useTabsUtil } from '../../hooks/useTabs';\nimport { TYPE_USER_TABS } from '../../utils/constants';\nimport TabsModules from '../../components/TabsModules';\nimport InviteUser from './InviteUser';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: 20,\n },\n title: {\n marginTop: 50,\n },\n label: {\n fontSize: 12,\n color: '#aaa',\n },\n button: {\n letterSpacing: '1px',\n fontSize: 13,\n background: '#2E66FE',\n fontWeight: '400',\n width: 'fit-content',\n alignSelf: 'flex-end',\n color: '#fff',\n '&:hover': {\n background: '#4b7bff',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n btn: {\n background: ' #1F63FF',\n textTransform: 'capitalize',\n color: '#fff',\n '&:hover': {\n background: '#1F63FF',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n '&:disabled': {\n background: '#1f63ff61',\n color: '#fff',\n },\n },\n buttonOutlined: {\n letterSpacing: '1px',\n fontSize: 13,\n fontWeight: '500',\n marginRight: 10,\n width: 'fit-content',\n alignSelf: 'flex-end',\n border: '1px solid transparent',\n color: '#4b7bff',\n '&:hover': {\n background: 'transparent',\n border: '1px solid transparent',\n },\n '& .MuiButton-label': {\n fontSize: 13,\n },\n },\n\n img: {\n width: 120,\n height: 120,\n borderRadius: '50%',\n objectFit: 'cover',\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n backgroundColor: '#fff',\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 600,\n outline: 0,\n },\n}));\n\nconst Users = () => {\n const classes = useStyles();\n const [users, setUsers] = useState([]);\n const { authUser, setActive } = useContext(Context);\n const location = useLocation();\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [selected, setSelected] = React.useState([]);\n const [checked, setChecked] = useState(false);\n const [stateUsage, setStateUsage] = useState(false);\n const isSelected = (name) => selected.indexOf(name) !== -1;\n const [loading, setLoading] = useState(false);\n const [value, setValue] = useState(location?.state?.value || 0);\n const [loadingDeleteUser, setLoadingDeleteUser] = useState(false);\n const [sortBy, setSortBy] = useState('createdAt');\n const [sort, setSort] = useState('desc');\n const [username, setUsername] = useState('');\n const [email, setEmail] = useState('');\n const [phone, setPhone] = useState('');\n const [role, setRole] = useState('');\n const flaggedOnly = useInput(false, false, false, true);\n const flagged = useInput('');\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const [isFiltering, setIsFiltering] = useState(false);\n const { organization } = useOrganization();\n const [usage, setUsage] = useState(null);\n const history = useHistory();\n\n const [openInviteUser, setOpenInviteUser] = useState(false);\n const [openFilter, setOpenFilter] = useState(false);\n const [openDeleteUser, setOpenDeleteUser] = useState(false);\n const [showUpgradeModal, setShowUpgradeModal] = useState(false);\n const baseColumns = {\n flag: true,\n firstName: true,\n lastName: true,\n phone: true,\n email: true,\n role: true,\n dateAdded: true,\n };\n const [loadingEditUsers, setLoadingEditUsers] = useState(false);\n const [view, setView] = useState(null);\n const [visibleColumns, setVisibleColumns] = useState(baseColumns);\n const [anchorEl, setAnchorEl] = useState(null);\n const [searchTerm, setSearchTerm] = useState('');\n\n const filteredColumns = Object.keys(visibleColumns).filter((column) =>\n column.toLowerCase().includes(searchTerm.toLowerCase())\n );\n const phoneNumber = useInput('');\n\n const showColumns = filteredColumns.filter((column) => visibleColumns[column]);\n const hideColumns = filteredColumns.filter((column) => !visibleColumns[column]);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const openPopover = Boolean(anchorEl);\n const popoverId = openInviteUser ? 'column-popover' : undefined;\n\n const onUpdateUsers = async (newInvite) => {\n const usersCopy = users.data.slice();\n usersCopy.push(newInvite);\n const data = await getUsage(organization?._id);\n setUsage(data);\n setUsers({ ...users, data: usersCopy });\n };\n\n const {\n filtersConfig,\n filterCount,\n filtersLoaded,\n filtersApplied,\n resetFilterCount,\n setFiltersLoaded,\n fetchFiltersConfig,\n } = useFiltersConfig('users');\n\n useEffect(() => {\n setActive('/users');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {\n activeTab,\n setActiveTab,\n tabSelected,\n setTabSelected,\n onGetUserTabs,\n userTabs,\n updateNameTab,\n setUserTabs,\n handleSaveTab,\n handleTabSelection,\n nextPosition,\n setShowReportTable,\n handleTabsReorder,\n handleTabSelectionAction,\n deleteSelectedTab,\n activeTabName,\n setActiveTabName,\n } = useTabsUtil({ moduleName: 'USERS' });\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value));\n setPage(1);\n };\n\n const onClearFilters = async () => {\n setRole('0');\n setFrom(null);\n setTo(null);\n setUsername('');\n setEmail('');\n setPhone('');\n flaggedOnly.setValue(false);\n resetFilterCount();\n\n try {\n setLoading(true);\n let res = null;\n if (value === 0) {\n res = await getUsers({ page, rowsPerPage, sortBy, sort });\n }\n\n if (value === 1) {\n res = await getUsersInvitations({ page, rowsPerPage, sortBy, sort });\n }\n setUsers({ data: res.data, headers: res.headers });\n setLoading(false);\n fetchFiltersConfig();\n toast.success('Successfully cleared filters!');\n } catch (error) {\n setLoading(false);\n toast.error(error.message);\n }\n };\n\n const goTouserProfile = (e, row, handleClick) => {\n const go = handleClick(e, row._id);\n if (go && value === 0) {\n history.push(`/user/${row._id}`);\n logEvent('enter_profile_details');\n } else if (go && value === 1) {\n history.push(`/invitation/${row._id}`);\n logEvent('enter_invite_details');\n }\n };\n\n const renderRow = (withRedirectToProfile = true) => (row, index, handleClick) => {\n const isItemSelected = isSelected(row._id);\n const labelId = `enhanced-table-checkbox-${index}`;\n\n return (\n goTouserProfile(e, row, handleClick) : (e) => handleClick(e, row._id)}\n >\n \n \n \n {visibleColumns?.flag && (\n \n {row?.flagged && \"Flagged\"}\n \n )}\n {visibleColumns.firstName && (\n \n {row?.firstName}\n \n )}\n {visibleColumns.lastName && {row?.lastName}}\n {visibleColumns.phone && (\n \n {row?.phoneNumber?.replace(/(\\d{3})(\\d{3})(\\d{4})/g, '($1) $2-$3') ||\n row?.phone?.replace(/(\\d{3})(\\d{3})(\\d{4})/g, '($1) $2-$3')}\n \n )}\n {visibleColumns.email && (\n \n {row?.email}\n \n )}\n {visibleColumns.role && (\n \n {row?.role || row?.type}\n \n )}\n {visibleColumns.dateAdded && (\n \n {row?.createdAt && moment(row?.createdAt).format('MMMM DD, YYYY')}\n \n )}\n {value === 1 && (\n \n \n \n )}\n \n );\n };\n\n function a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n }\n const handleChange = (event, newValue) => {\n setValue(newValue);\n setStateUsage(!stateUsage);\n };\n\n const handleToggleColumn = async (viewId, columnName) => {\n try {\n const updatedColumns = {\n ...visibleColumns,\n [columnName]: !visibleColumns[columnName],\n };\n\n const response = await updateViewsById(viewId, { columns: updatedColumns });\n\n if (response && response.status === 200 && response.view) {\n setVisibleColumns(response.view.columns);\n } else {\n console.error('Failed to update columns:', response);\n }\n } catch (error) {\n console.error('Error updating column visibility:', error);\n }\n };\n\n const formatHeadersText = (str) => {\n const result = str.replace(/([A-Z])/g, ' $1');\n\n return result.replace(/^./, (firstChar) => firstChar.toUpperCase()).trim();\n };\n\n const onEditMultipleUsers = async () => {\n let ids = '';\n const selectedUsers = users.data.filter((user) => selected.includes(user._id));\n const allAreFlagged = selectedUsers.every((user) => user.flagged);\n\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingEditUsers(true);\n await editMultipleUsers(ids);\n\n setUsers((prevUsers) => {\n const updatedData = prevUsers.data.map((user) => {\n if (selected.includes(user._id)) {\n return {\n ...user,\n flagged: !allAreFlagged,\n };\n }\n return user;\n });\n\n return {\n ...prevUsers,\n data: updatedData,\n };\n });\n\n setLoadingEditUsers(false);\n setSelected([]);\n toast.success(allAreFlagged ? 'Successfully unflagged users' : 'Successfully flagged users');\n } catch (error) {\n setLoadingEditUsers(false);\n toast.error(error.message);\n }\n };\n\n const onDeleteUsers = async () => {\n let ids = '';\n for (const id of selected) {\n const index = selected.indexOf(id);\n if (index + 1 === selected.length) {\n ids += `ids[]=${id}`;\n } else {\n ids += `ids[]=${id}&`;\n }\n }\n\n try {\n setLoadingDeleteUser(true);\n\n if (value === 0) {\n await deleteUser(ids);\n } else {\n await deleteInvitationUser(ids);\n }\n let availableData = users.data.slice();\n for (const id of selected) {\n availableData = availableData.filter((x) => x._id !== id);\n }\n\n const data = await getUsage(organization?._id);\n setUsage(data);\n setUsers({ ...users, data: availableData });\n\n setLoadingDeleteUser(false);\n setOpenDeleteUser(false);\n setSelected([]);\n } catch (error) {\n setLoadingDeleteUser(false);\n toast.error(error);\n }\n };\n const description = (\n <>\n To Increase your limit please contact us to hello@sivilco.com\n \n );\n\n const getVisibleColumns = () =>\n Object.keys(visibleColumns)\n .filter((column) => visibleColumns[column])\n .map((column) => formatHeadersText(column));\n\n return (\n <>\n {organization && }\n setShowUpgradeModal(false)}\n type=\"danger\"\n title=\"You can't create more users, you reached your limit.\"\n description={description}\n />\n \n Users\n\n {}}\n saveTab={handleSaveTab}\n onTabSelect={handleTabSelection}\n nextPosition={nextPosition}\n saveTabPositions={handleTabsReorder}\n onTabAction={handleTabSelectionAction}\n deleteTab={deleteSelectedTab}\n moduleName=\"USERS\"\n />\n\n {activeTab === TYPE_USER_TABS.MAIN && (\n \n )}\n\n {activeTab === TYPE_USER_TABS.VIEW && (\n \n )}\n \n \n );\n};\nconst PageWrapper = styled.div`\n width: 100%;\n`;\n\nexport default Users;\n","import { CircularProgress } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport { toast } from '../../components/Notification';\nimport MenuTable from '../../components/MenuTable';\nimport {\n deleteInvitationUser,\n deleteUser,\n getUsage,\n resendUserInvitation,\n} from '../../services/unarmed';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\n\nconst RenderMoreOption = ({\n value,\n row,\n users,\n setUsers,\n setUsage,\n organization,\n}) => {\n const [loading, setLoading] = useState(false);\n\n const onResendInviteUser = async () => {\n setLoading(true);\n resendUserInvitation(row?._id)\n .then((res) => {\n toast.success('Invitation forwarded Successfully');\n setLoading(false);\n })\n .catch((err) => {\n toast.error(\n 'Something went wrong while trying to forwarded the invitation'\n );\n setLoading(false);\n });\n };\n\n const onDeleteUser = async () => {\n const id = `ids[]=${row?._id}`;\n\n try {\n setLoading(true);\n\n await deleteUser(id);\n if (value === 0) {\n } else {\n await deleteInvitationUser(id);\n }\n const availableData = users.data\n .slice()\n .filter((x) => x._id !== row?._id);\n\n const data = await getUsage(organization?._id);\n setUsage(data);\n setUsers({ ...users, data: availableData });\n\n setLoading(false);\n toast.success(\n value === 0\n ? 'User deleted Successfully'\n : 'Invitation deleted Successfully!'\n );\n } catch (error) {\n setLoading(false);\n toast.error(error);\n }\n };\n\n const activeOptions = [\n {\n text: 'Delete',\n onClick: onDeleteUser,\n Icon: DeleteIcon,\n },\n ];\n const pendingOptions = [\n {\n text: 'Resend invitation',\n onClick: onResendInviteUser,\n Icon: MailOutlineIcon,\n },\n ];\n\n return loading ? (\n \n ) : (\n \n );\n};\n\nexport default RenderMoreOption;\n","module.exports = __webpack_public_path__ + \"static/media/nube_wrong.f5f806c9.svg\";","import axios from 'axios';\nimport { toast } from '../components/Notification';\n\nimport { unarmedWithToken } from '../services/axios';\nimport { logEvent } from '../services/firebase';\nimport { getDocumentTitle } from '.';\n\nexport async function downloadImage(imageSrc, filename) {\n return axios({\n url: imageSrc,\n method: 'GET',\n params: { download: true },\n headers: {\n Authorization: `Bearer ${window.localStorage.getItem('authToken')}`,\n },\n })\n .then(({ data }) => {\n const { url } = data;\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n })\n .catch((err) => toast.error(err.message));\n}\n\nexport async function downloadContactImages(id) {\n return unarmedWithToken().get(`/contacts/${id}/attachments?download=true`, { responseType: 'arraybuffer' });\n}\n\nexport async function downloadContactImage(id, fileId, filename) {\n return unarmedWithToken()\n .get(`/contacts/${id}/attachments/${fileId}?download=true`)\n .then(({ data }) => {\n const { url } = data;\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n })\n .catch((err) => toast.error(err.message));\n}\n\nexport const updateUrlWithParams = (eventParams, urlParams) => {\n let url = window.location.href.includes('?') ? window.location.href.split('?')[0] : window.location.href;\n\n url += (url.includes('?') ? '&' : '?') + new URLSearchParams(urlParams).toString();\n\n let pageTitle = 'Sivil';\n\n if (eventParams.organization_name) {\n pageTitle = getDocumentTitle(eventParams.organization_name);\n }\n\n logEvent('page_view', {\n page_title: pageTitle,\n page_location: url,\n page_path: window.location.pathname,\n ...eventParams,\n });\n\n window.history.replaceState(null, '', url);\n};\n","import React, { useState } from 'react';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport CalendarTodayIcon from '@material-ui/icons/CalendarToday';\nimport moment from 'moment';\nimport { parseISO } from 'date-fns';\nimport PropTypes from 'prop-types';\n\nfunction DatePickerMUI({\n dataTestId,\n date,\n setdate,\n label,\n disableFuture,\n propWidth = 75,\n propHeight = 25,\n minDate,\n maxDate,\n disablePast = false,\n compareDate,\n setCompareDate,\n type = 'start',\n propPadding = 0,\n propPaddingInput = 10,\n propFontSize = 13,\n inputVariant = 'outlined',\n allowEndBeforeStart = false,\n active = false,\n error,\n helperText,\n}) {\n const [invalidDate, setInvalidDate] = useState();\n\n const onChangeStartDate = (dt) => {\n if (dt) {\n const d1 = new Date(dt);\n const d2 = new Date(compareDate);\n\n if (d1.getTime() > d2.getTime() && compareDate && !allowEndBeforeStart) {\n setInvalidDate(dt);\n return;\n }\n\n if (d1.getTime() > d2.getTime() && compareDate && allowEndBeforeStart && setCompareDate) {\n setCompareDate(null);\n }\n\n setdate(moment(dt).startOf('day').format());\n } else {\n setdate('');\n }\n };\n\n const onChangeEnd = (dt) => {\n if (dt) {\n const d1 = new Date(dt);\n const d2 = new Date(compareDate);\n\n if (d1.getTime() < d2.getTime() && compareDate && !allowEndBeforeStart) {\n setInvalidDate(dt);\n return;\n }\n\n if (d1.getTime() < d2.getTime() && compareDate && allowEndBeforeStart && setCompareDate) {\n setCompareDate(null);\n }\n\n setdate(moment(dt).endOf('day').format());\n } else {\n setdate('');\n }\n };\n\n return (\n \n \n {new Date(invalidDate).getTime() < new Date(compareDate).getTime() && !allowEndBeforeStart\n ? `Date cannot be less than ${moment(compareDate).endOf('day').format('MM/DD/YYYY')}.`\n : ''}{' '}\n {new Date(invalidDate).getTime() > new Date(compareDate).getTime()\n ? `Date cannot be greater than ${moment(compareDate).endOf('day').format('MM/DD/YYYY')}.`\n : ''}{' '}\n {'Invalid date format'}\n \n }\n format=\"MM/dd/yyyy\"\n icon={}\n KeyboardButtonProps={{\n 'aria-label': 'change date',\n style: { padding: 20 },\n }}\n error={error}\n helperText={helperText}\n />\n \n );\n}\n\nDatePickerMUI.propTypes = {\n dataTestId: PropTypes.string,\n allowEndBeforeStart: PropTypes.bool,\n date: PropTypes.instanceOf(Date).isRequired,\n setdate: PropTypes.func.isRequired,\n label: PropTypes.string.isRequired,\n disableFuture: PropTypes.bool,\n disablePast: PropTypes.bool,\n propWidth: PropTypes.number,\n propHeight: PropTypes.number,\n minDate: PropTypes.instanceOf(Date),\n maxDate: PropTypes.instanceOf(Date),\n compareDate: PropTypes.instanceOf(Date),\n setCompareDate: PropTypes.func,\n type: PropTypes.oneOf(['start', 'end']),\n propPadding: PropTypes.number,\n inputVariant: PropTypes.oneOf(['standard', 'outlined', 'filled']),\n propPaddingInput: PropTypes.oneOf([PropTypes.string, PropTypes.number]),\n propFontSize: PropTypes.oneOf([PropTypes.string, PropTypes.number]),\n};\n\nexport default DatePickerMUI;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport CloseIcon from '@material-ui/icons/Close';\nimport PropTypes from 'prop-types';\n\n/**\n * Represents a tag component.\n * @param {string} text - The text content of the tag.\n * @param {string} [bg='#F2F8FF'] - The background color of the tag.\n * @param {string} [color='#408BEC'] - The text color of the tag.\n * @param {boolean} [canRemove=false] - Whether the tag can be removed.\n * @param {function} [onClickRemove] - The callback function when the remove button is clicked.\n * @param {function} [onClick] - The callback function when the tag is clicked.\n * @returns {JSX.Element} The tag component.\n */\nconst Tag = ({ text, bg = '#F2F8FF', color = '#408BEC', canRemove = false, onClickRemove, onClick }) => {\n const [onHover, setOnHover] = useState(false);\n\n return (\n setOnHover(true)}\n onMouseLeave={() => setOnHover(false)}\n onClick={onClick}\n clickable={!!onClick}\n >\n {text}\n {onHover && canRemove && (\n \n \n \n )}\n \n );\n};\n\nTag.propTypes = {\n onClick: PropTypes.func.isRequired,\n canRemove: PropTypes.bool,\n text: PropTypes.string.isRequired,\n bg: PropTypes.string,\n color: PropTypes.string,\n onClickRemove: PropTypes.func.isRequired,\n};\n\nconst Container = styled.span`\n height: 24px;\n background-color: ${(props) => props.bg};\n color: ${(props) => props.color};\n display: inline-flex;\n justify-content: center;\n align-items: center;\n font-size: 14px;\n padding: 2px 8px;\n border-radius: 4px;\n margin-right: 4px;\n margin-bottom: 8px;\n position: relative;\n\n ${(props) =>\n props.clickable\n ? `\n cursor: pointer;\n `\n : ''}\n`;\n\nconst Close = styled.span`\n position: absolute;\n top: 0px;\n right: 0px;\n background-color: ${(props) => props.bg};\n border-radius: 4px;\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n padding: 0px 4px;\n cursor: pointer;\n`;\n\nexport default Tag;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Backdrop, Fade, Modal } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n boxShadow: theme.shadows[5],\n padding: 30,\n maxWidth: 500,\n alignSelf: 'center',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n}));\n\nfunction ModalPopUp({\n children,\n open,\n setOpen,\n allowBg = true,\n maxWidth = 500,\n}) {\n const classes = useStyles();\n\n return (\n setOpen(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n \n {children}\n \n \n \n );\n}\n\nexport default ModalPopUp;\n","import React from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n label: {\n fontSize: 16,\n color: '#000000DE',\n fontWeight: '500',\n },\n description: {\n fontSize: 14,\n color: '#000000DE',\n marginBottom: 15,\n },\n}));\n\nexport default function PreviewLabel({ question, required, description }) {\n const classes = useStyles();\n return (\n <>\n \n {question}\n {required && *}\n \n {description && (\n {description}\n )}\n \n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport Paper from '@material-ui/core/Paper';\nimport { Box, Checkbox, CircularProgress, Typography, useMediaQuery } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n boxShadow: '0 3px 6px #00000005',\n },\n paper: {\n width: '100%',\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n paddingR: {\n paddingRight: '0px !important',\n },\n selectPaper: {\n left: 'auto !important',\n top: '740px !important',\n right: '160px !important',\n },\n}));\n\nfunction EnhancedTableHeadItem({ column, setSortBy, setSort, sort, tab, disableHeaderArrows = false }) {\n const matches = useMediaQuery('(max-width:1440px)');\n const classes = useStyles();\n const sortType = () => {\n switch (column) {\n case 'Type': {\n if (tab === 'projectType') {\n return 'projectType';\n }\n return 'type';\n }\n\n case 'Reporter': {\n return 'reporter';\n }\n\n case 'Unique Identifier': {\n return 'uniqueFieldId';\n }\n\n case 'Source': {\n return 'source';\n }\n\n case 'Dispositions': {\n return 'dispositions';\n }\n\n case 'Discipline': {\n return 'discipline';\n }\n\n case 'Allegations': {\n return 'allegations';\n }\n\n case 'Investigator': {\n return 'investigator';\n }\n\n case 'Disposition': {\n return 'disposition';\n }\n\n case 'Internal Affairs Case Number': {\n return 'internalAffairsCaseNumber';\n }\n\n case 'Case Type': {\n return 'type';\n }\n case 'Tracking Number': {\n return 'code';\n }\n case 'Name': {\n if (tab === 'forms') {\n return 'adminName';\n }\n return 'name';\n }\n case 'Display Name': {\n return 'name';\n }\n\n case 'Officer Name': {\n if (tab === 'officer') {\n return 'firstName';\n }\n return 'name';\n }\n\n case 'Allegation': {\n return 'allegation';\n }\n\n case 'Owner Name': {\n return 'ownerName';\n }\n\n case 'Description': {\n return 'description';\n }\n case 'Report Name': {\n return 'name';\n }\n\n case 'Assigned To': {\n return 'assigned';\n }\n\n case 'Status': {\n if (tab === 'forms') {\n return 'published';\n }\n return 'status';\n }\n\n case 'First Name': {\n return 'firstName';\n }\n case 'Last Name': {\n return 'lastName';\n }\n case 'Email': {\n return 'email';\n }\n case 'Role': {\n if (tab === 1) {\n return 'type';\n }\n return 'role';\n }\n\n case 'Phone': {\n if (tab === 1) {\n return 'phone';\n }\n return 'phoneNumber';\n }\n\n case 'Phone Number': {\n return 'phoneNumber';\n }\n\n case 'Officer Phone': {\n return 'phoneNumber';\n }\n\n case 'Unique Identifier': {\n return 'uniqueFieldId';\n }\n case 'Officer Name': {\n return 'firstName';\n }\n case 'Officer Last Name': {\n return 'lastName';\n }\n\n case 'Total Cases': {\n return 'totalCases';\n }\n\n case 'Total Compliments': {\n return 'complimentsCount';\n }\n case 'Total Complaints': {\n return 'complaintsCount';\n }\n case 'Form Name': {\n return 'name';\n }\n\n case 'Created By': {\n return 'createdBy';\n }\n\n case 'Subtype': {\n return 'subtype';\n }\n\n case 'Number': {\n return 'number';\n }\n\n case 'Case Number': {\n return 'caseNumber';\n }\n\n case 'Case Type': {\n return 'type';\n }\n\n case 'Flag': {\n return 'flagged';\n }\n\n default: {\n return 'createdAt';\n }\n }\n };\n\n const renderHeader = (width = 180) => (\n {\n if (sort && column !== 'Actions') {\n setSort(sort === 'desc' ? 'asc' : 'desc');\n setSortBy(sortType());\n }\n }}\n >\n {disableHeaderArrows ? (\n {column}\n ) : (\n {column}\n )}\n \n );\n\n if (column === 'Tracking Number' && matches) {\n return renderHeader();\n }\n if (column === 'Unique Identifier' && matches) {\n return renderHeader();\n }\n if (column === 'Allegation' && matches) {\n return renderHeader(160);\n }\n if (column === 'Name' && matches) {\n return renderHeader(220);\n }\n if (column === 'Created Date' && matches) {\n return renderHeader(180);\n }\n\n return (\n {\n if (sort && column !== 'Actions') {\n setSort(sort === 'desc' ? 'asc' : 'desc');\n setSortBy(sortType());\n }\n }}\n >\n {disableHeaderArrows ? (\n {column}\n ) : (\n {column}\n )}\n \n );\n}\n\nfunction EnhancedTableHead({\n rows,\n showCheckBox,\n numSelected,\n onSelectAllClick,\n rowCount,\n checked,\n setSortBy,\n sort,\n setSort,\n tab,\n disableHeaderArrows,\n}) {\n return (\n \n \n {showCheckBox && (\n \n 0 && numSelected < rowCount}\n checked={checked}\n onChange={onSelectAllClick}\n color=\"primary\"\n inputProps={{ 'aria-label': 'select all desserts' }}\n />\n \n )}\n {rows.map((column, i) => (\n \n ))}\n \n \n );\n}\n\nexport default function EnhancedTable({\n rows = [],\n containerStyles,\n sort,\n setSort,\n setSortBy,\n tab,\n columns,\n rowRender,\n loading,\n count,\n page,\n setPage,\n rowsPerPage,\n handleChangeRowsPerPage,\n showCheckBox,\n selected = [],\n setSelected,\n checked,\n setChecked,\n mt = 20,\n paperMarginBottom = '16px',\n pagination = true,\n disableHeaderArrows,\n path,\n rowsPerPageOptions = [10, 15, 20],\n}) {\n const classes = useStyles();\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage + 1);\n setChecked && setChecked(false);\n };\n\n const handleSelectAllClick = (event) => {\n setChecked && setChecked(!checked);\n\n if (event.target.checked) {\n const newSelecteds = rows.map((n) => (path ? n?.[path]?._id : n._id));\n\n setSelected([...selected, ...newSelecteds]);\n }\n\n if (!event.target.checked && page !== 1) {\n const toRemove = selected.slice((page - 1) * rowsPerPage, rowsPerPage * page);\n const items = selected.filter((item) => !toRemove.includes(item));\n\n setSelected(items);\n }\n\n if (page === 1 && !event.target.checked) {\n setSelected([]);\n }\n };\n\n const handleClick = !setSelected\n ? () => true\n : (event, code) => {\n const selectedIndex = selected.indexOf(code);\n let newSelected = [];\n\n if (selectedIndex === -1) {\n newSelected = newSelected.concat(selected, code);\n } else if (selectedIndex === 0) {\n newSelected = newSelected.concat(selected.slice(1));\n } else if (selectedIndex === selected.length - 1) {\n newSelected = newSelected.concat(selected.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelected = newSelected.concat(selected.slice(0, selectedIndex), selected.slice(selectedIndex + 1));\n }\n\n setSelected(newSelected);\n return event.target.type !== 'checkbox';\n };\n\n return (\n
\n \n {/* */}\n {loading ? (\n \n \n \n ) : (\n \n \n \n\n \n {rows.map((row, index) => rowRender(row, index, handleClick))}\n {/* .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) */}\n \n
\n
\n )}\n {pagination && (\n \n )}\n
\n
\n );\n}\n","import * as firebase from 'firebase';\nimport 'firebase/functions';\nimport 'firebase/firestore';\nimport 'firebase/analytics';\n\nconst firebaseConfig = {\n apiKey: process.env.REACT_APP_API_KEY,\n authDomain: process.env.REACT_APP_AUTH_DOMAIN,\n databaseURL: process.env.REACT_APP_DATABASE_URL,\n projectId: process.env.REACT_APP_PROJECT_ID,\n storageBucket: process.env.REACT_APP_PROJECT_ID,\n messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,\n appId: process.env.REACT_APP_ID,\n measurementId: process.env.REACT_APP_MEASUREMENT_ID,\n};\n\nfirebase.initializeApp(firebaseConfig);\nfirebase.analytics();\n\nexport const signInWithEmailAndPassword = (email, password) =>\n firebase.auth().signInWithEmailAndPassword(email, password);\n\nexport const signOut = () => firebase.auth().signOut();\n\nexport const logSessionWithToken = (token) => firebase.auth().signInWithCustomToken(token);\n\nexport const onAuthStateChanged = (callback) => firebase.auth().onAuthStateChanged(callback);\n\nexport const onResetUserPassword = (email) =>\n firebase.auth().sendPasswordResetEmail(email, {\n url: window.location.origin,\n handleCodeInApp: false,\n });\n\n// SIGN IN WITH MICROSOFT\n\nexport const signInWithMicrosoft = async () => {\n try {\n const provider = await new firebase.auth.OAuthProvider('microsoft.com');\n provider.setCustomParameters({\n //prompt: 'consent',\n // tenant: '581a9dfe-ac7a-4aee-a4a0-37f07ca5b659',\n });\n const res = await firebase.auth().signInWithPopup(provider);\n return res;\n } catch (error) {\n //if (error.code === 'auth/account-exists-with-different-credential') {\n // throw new Error('hola');\n //}\n console.log('El error es este', error);\n throw error;\n }\n};\n\nexport const linkInWithMicrosoft = async () => {\n try {\n const provider = new firebase.auth.OAuthProvider('microsoft.com');\n const auth = firebase.auth();\n try {\n await auth.currentUser.linkWithPopup(provider);\n } catch (error) {\n console.log('Esta monda no funciona', error);\n }\n } catch (error) {\n //if (error.code === 'auth/account-exists-with-different-credential') {\n // throw new Error('hola');\n //}\n console.log('El error es este', error);\n throw error;\n }\n};\n\nexport const logEvent = (event, params) => firebase.analytics().logEvent(event, params);\n","import { DropzoneArea } from 'material-ui-dropzone';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { useDebounce } from 'use-debounce/lib';\nimport { Box, CircularProgress, makeStyles, Typography } from '@material-ui/core';\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\nimport { toast } from '../../../components/Notification';\nimport styled from 'styled-components';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport YouTubeIcon from '@material-ui/icons/YouTube';\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport MusicNoteIcon from '@material-ui/icons/MusicNote';\n\nimport PreviewLabel from './PreviewLabel';\nimport { LabelError } from './MultipleChoice';\nimport { uploadFormImg } from '../../../services/unarmed';\nimport { fileUploadAceptedTypes } from '../../../utils';\n\nconst useStyles = makeStyles(() => ({\n dropzoneBox: {\n background: '#4762FA08',\n borderRadius: 4,\n border: '1px dashed #364F7431',\n padding: 34,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n marginTop: 16,\n },\n\n dropzoneText: {\n display: 'block',\n fontSize: 12,\n marginTop: 10,\n },\n deleteIcon: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n centerIcon: {\n position: 'absolute',\n fontSize: 60,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n },\n}));\n\nconst getFileTypes = (types) =>\n types?.map((type) => {\n switch (type) {\n case 'JPG':\n return ['image/jpg', 'image/jpeg'];\n case 'PNG':\n return 'image/png';\n case 'BMP':\n return 'image/bmp';\n case 'MP4':\n return 'video/mp4';\n case 'MOV':\n return 'video/quicktime';\n case 'PDF':\n return 'application/pdf';\n case 'XLSX':\n return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n case 'XLS':\n return 'application/vnd.ms-excel';\n case 'DOC':\n return ['application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'];\n\n default:\n return `.${type?.toLowerCase()}`;\n }\n });\n\nexport const wiredValue = (questionBankIndex, getFormValue, setter) => {\n if (typeof questionBankIndex === 'number') {\n if (getFormValue()?.[questionBankIndex]) {\n setter(getFormValue()[questionBankIndex]);\n }\n } else if (getFormValue()) {\n setter(getFormValue());\n }\n};\n\nexport const setterState = (questionBankIndex, setter, value) => {\n if (typeof questionBankIndex === 'number') {\n const values = [];\n values[questionBankIndex] = value;\n setter(values);\n\n return;\n }\n setter(value);\n};\n\nfunction CircularProgressWithLabel(props) {\n return (\n \n \n \n {`${props.value}%`}\n \n \n );\n}\n\nexport function renderPreviewIcon(type, src, imageWidth = 100, imageHeight = 100, imageFit = 'contain') {\n const centerIcon = {\n position: 'absolute',\n fontSize: 60,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n margin: 'auto',\n cursor: 'pointer',\n };\n if (type?.includes('image')) {\n return (\n \n );\n }\n if (type?.includes('audio')) {\n return ;\n }\n if (type?.includes('video')) {\n return ;\n }\n\n if (type === 'application/pdf') {\n return ;\n }\n\n if (\n type === 'application/msword' ||\n type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n ) {\n return ;\n }\n}\n\nexport default function File({\n data,\n onSaveFormValues,\n getFormValue,\n organizationId,\n imagesPreview,\n componentIndex,\n withFileUpload = true,\n}) {\n const classes = useStyles();\n const [key, setKey] = useState(0);\n const [debounceKey] = useDebounce(key, 1000);\n const [images, setImages] = useState([]);\n const [hashFiles, setHashFiles] = useState([]);\n const [loadingPercentage, setLoadingPercentage] = useState(0);\n\n const onSetImagesPreview = (images) => {\n imagesPreview.setImagesPreview((_imagesPreview) => ({\n ..._imagesPreview,\n [imagesPreview?.pageIndex]: {\n ...(imagesPreview?.imagesPreview?.[imagesPreview?.pageIndex] || {}),\n [imagesPreview?.sectionIndex]: {\n ...(imagesPreview?.imagesPreview?.[imagesPreview?.pageIndex]?.[imagesPreview?.sectionIndex] || {}),\n [componentIndex]: [\n ...(imagesPreview?.imagesPreview?.[imagesPreview?.pageIndex]?.[imagesPreview?.sectionIndex]?.[\n componentIndex\n ] || []),\n ...images,\n ],\n },\n },\n }));\n };\n\n useEffect(() => {\n const defaultImages = getFormValue();\n\n if (\n defaultImages &&\n Array.isArray(defaultImages) &&\n defaultImages.every((defaultImage) => !Array.isArray(defaultImage))\n ) {\n return setImages([...defaultImages?.filter((image) => !!image)]);\n }\n\n setImages([...(defaultImages?.[componentIndex]?.filter((image) => !!image) || [])]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (withFileUpload) {\n const _images =\n imagesPreview?.imagesPreview?.[imagesPreview?.pageIndex]?.[imagesPreview?.sectionIndex]?.[componentIndex] || [];\n\n setImages(_images);\n }\n }, [imagesPreview, withFileUpload]);\n\n const onDeleteImg = (index) => {\n const imgs = [...images];\n const ids = [...hashFiles];\n\n let imagesCopy = Array.from(\n imagesPreview?.imagesPreview?.[imagesPreview?.pageIndex]?.[imagesPreview?.sectionIndex]?.[componentIndex] || []\n );\n\n imgs.splice(index, 1);\n ids.splice(index, 1);\n imagesCopy = imgs;\n setImages([...imgs]);\n setHashFiles([...ids]);\n onSetImagesPreview(imagesCopy);\n setterState(data.questionBankIndex, onSaveFormValues, [...hashFiles]);\n };\n\n const uploadOnLoad = useCallback(\n async (fl) => {\n const imagesArr = [];\n const hashArr = [];\n\n for (const file of fl) {\n if (file.size > 100000000) {\n // Toast WARN\n toast.error(\n 'Large file upload in-progress, please do not refresh the page until the upload process is completed.'\n );\n }\n const imgData = new FormData();\n imgData.append('file', file);\n imgData.append('organizationId', organizationId);\n\n try {\n const img = await uploadFormImg(imgData, setLoadingPercentage);\n imagesArr.push({ public_url: img.publicUrl, mimetype: img.mimetype });\n hashArr.push(img.hashId);\n\n toast.success('File Uploaded Successfully');\n } catch (error) {\n toast.error(error?.response?.data?.message);\n }\n }\n setImages([...images, ...imagesArr]);\n let imagesCopy = Array.from(\n imagesPreview?.imagesPreview?.[imagesPreview?.pageIndex]?.[imagesPreview?.sectionIndex]?.[componentIndex] || []\n );\n imagesCopy = [...images, ...imagesArr];\n onSetImagesPreview(imagesCopy);\n setHashFiles([...hashFiles, ...hashArr]);\n setterState(data.questionBankIndex, onSaveFormValues, [...hashFiles, ...hashArr]);\n setKey(key + 1);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [hashFiles, images, componentIndex, imagesPreview, data.questionBankIndex, key, organizationId]\n );\n\n return (\n \n \n \n {withFileUpload && (\n <>\n \n {data && (\n {\n if (files[0].size > data?.maxFileSize * 1000000) {\n toast.error(\n 'The file is too large, please upload to a file repository and share the link on incident External links section.'\n );\n }\n if (data?.fileTypes && !getFileTypes(data?.fileTypes).flat().includes(files[0].type)) {\n toast.error('File type is not supported');\n }\n }}\n onChange={(fl) => {\n if (fl.length > 0) {\n uploadOnLoad(fl);\n }\n }}\n clearOnUnmount\n filesLimit={3}\n showPreviewsInDropzone={false}\n />\n )}\n \n \n \n \n Drag files here or browser\n \n \n \n )}\n \n {images.length > 0 ? (\n <>\n {images?.map((image, i) => (\n \n {renderPreviewIcon(image.mimetype, image.public_url)}\n {withFileUpload && (\n \n onDeleteImg(i)}\n />\n \n )}\n \n ))}\n \n ) : (\n <>{!withFileUpload && Not specified}\n )}\n {loadingPercentage > 0 && loadingPercentage < 100 && }\n \n \n {data?.showRequired && {data?.requiredMessage ? data?.requiredMessage : 'This field is required'}}\n \n );\n}\n\nconst PreviewImg = styled.div`\n width: 100px;\n height: 100px;\n position: relative;\n border-radius: 7px;\n overflow: hidden;\n margin-right: 10px;\n & div:hover {\n opacity: 1;\n }\n`;\n\nconst BackDrop = styled.div`\n background: rgba(0, 0, 0, 0.4);\n width: 100px;\n height: 100px;\n position: absolute;\n left: 0;\n top: 0;\n opacity: 0;\n display: flex;\n align-content: center;\n justify-content: center;\n transition: all 0.3s ease;\n`;\n","import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Dialog from '@material-ui/core/Dialog';\nimport styled from 'styled-components';\nimport { Box, Typography } from '@material-ui/core';\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { useHistory } from 'react-router-dom';\n\nimport upArrow from '../assets/upArrow.png';\nimport { Context } from '../Context';\n\nconst useStyles = makeStyles(() => ({\n button: {\n background: ' #2E66FE',\n textTransform: 'capitalize',\n color: '#fff',\n padding: 15,\n cursor: 'pointer',\n borderRadius: '4px',\n '&:hover': {\n background: '#2E66FE',\n },\n '& .MuiButton-label': {\n fontSize: 14,\n },\n marginTop: 10,\n marginBottom: 20,\n fontSize: 14,\n fontWeight: '500',\n },\n labelError: {\n fontSize: 12,\n color: 'red',\n },\n\n circle: {\n width: 76,\n height: 76,\n borderRadius: '50%',\n border: '3px solid #FEB535',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginBottom: 25,\n flexDirection: 'column',\n },\n}));\n\nfunction UpgradeModal({\n open,\n callback,\n type = 'warning',\n title = 'Upgrade Required!',\n description = (\n <>\n This feature is not included in your current Sivil subscription. Please upgrade your account to access additional\n tools. Contact us at hello@sivilco.com\n \n ),\n}) {\n const classes = useStyles();\n const { setActive } = useContext(Context);\n const history = useHistory();\n\n const renderIcon = () => {\n switch (type) {\n case 'warning':\n return (\n \n \"upArrow\"\n \n \n );\n case 'danger':\n return ;\n\n default:\n return (\n \n \"upArrow\"\n \n \n );\n }\n };\n\n return (\n <>\n {\n if (typeof callback === 'function') {\n callback();\n } else {\n history.push('/');\n setActive('/');\n }\n }}\n aria-labelledby=\"simple-dialog-title\"\n open={open}\n className={classes.modal}\n >\n {\n if (typeof callback === 'function') {\n callback();\n } else {\n history.push('/');\n setActive('/');\n }\n }}\n />\n \n {renderIcon()}\n \n {title}\n \n \n {description}\n \n\n {/* */}\n \n UPGRADE\n \n \n \n \n );\n}\n\nconst Popup = styled(Dialog)`\n .MuiDialog-paperWidthSm {\n max-width: 450px !important;\n width: 100%;\n }\n`;\n\nexport default UpgradeModal;\n"],"sourceRoot":""}