{"version":3,"sources":["images/Monograma.png","images/miniLogoFeg.png","images/troph.png","images/feghome.com.png","images/Calendar.png","images/icons/iconFeg/1.png","images/icons/iconFeg/2.png","images/icons/iconFeg/3.png","components/Loader/index.tsx","pages/DefaultPage/index.tsx","services/axios.ts","pages/PaylocityAnnouncement/index.tsx","pages/BenefitsAnnouncement/index.tsx","config/routers/signRoutes.tsx","config/routers/routerList.ts","components/UserValidation/index.tsx","pages/UserValidation/index.tsx","data/index.ts","components/UserValidation/Profile/index.tsx","pages/UserValidation/Profile/index.tsx","components/CompanyAnnouncements/Formatter.ts","components/CompanyAnnouncements/AnnouncementList/index.tsx","styles/Theme.ts","components/CompanyAnnouncements/style.ts","components/GridLatestNews/styled.ts","components/GridLatestNews/weeks.ts","components/GridLatestNews/index.tsx","components/Benefits/index.tsx","components/GridNewsletter/styled.ts","components/GridNewsletter/index.tsx","components/CompanyAnnouncements/index.tsx","pages/Announcements/index.tsx","components/UsersManagement/menu.tsx","components/UsersManagement/styled.ts","components/UsersManagement/index.tsx","pages/UsersManagement/index.tsx","components/Newsletter/styled.ts","components/NewAnnouncement/index.tsx","components/NewAnnouncement/paylocity.tsx","components/NewAnnouncement/benefits.tsx","components/LatestNews/styled.ts","components/LatestNews/index.tsx","components/Newsletter/index.tsx","pages/NewAnnouncement/index.tsx","components/CompanyAnnouncements/AnnouncementList/SingleAnnouncement/index.tsx","pages/CompanyAnnouncement/index.tsx","components/CompanyCalendar/exportEvent.js","components/CompanyCalendar/index.tsx","pages/CompanyCalendar/index.tsx","components/Analytics/index.tsx","pages/Analytics/index.tsx","components/Shortcuts/index.tsx","components/Shortcuts/InactivesPage/index.tsx","pages/ShortcutManagement/index.tsx","pages/Permission/index.tsx","components/PasswordExpired/index.tsx","utils/width.tsx","components/Popover/index.tsx","components/SideBar/index.tsx","components/LoginButton/ProfileInfo/index.tsx","components/LoginButton/index.tsx","utils/formatDate.tsx","components/Notifications/index.tsx","components/Header/index.tsx","pages/SpecialEvent/index.tsx","pages/LocationManagement/index.tsx","pages/MyProfile/index.tsx","components/MapJobtitle/styled.ts","components/MapJobtitle/index.tsx","components/MuiSidebar/styled.tsx","components/MuiSidebar/appbar.tsx","components/MuiSidebar/index.tsx","components/DocumentSources/styled.ts","components/DocumentSources/index.jsx","pages/ChatBot/index.jsx","components/Drawer/index.tsx","pages/ChatBotSettings/index.tsx","utils/formatSlug.tsx","pages/SettingsChatBot/index.tsx","components/RepositorySettings/table.jsx","components/RepositorySettings/index.tsx","components/Chat/index.jsx","components/Home/CompanyAnnoun/index.tsx","pages/NewHome/styled.ts","components/CardFav/styled.ts","components/CardFav/index.tsx","components/Carousel/styled.ts","components/Carousel/index.tsx","components/CardTask/styled.ts","components/CardTask/index.tsx","components/IdeaLatestNews/styled.ts","components/IdeaLatestNews/index.tsx","components/PollsCard/styled.ts","components/PollsCard/index.tsx","components/CardDownload/styled.ts","components/CardDownload/index.tsx","pages/NewHome/index.tsx","pages/Shortcuts/styled.ts","pages/Shortcuts/list.jsx","pages/Shortcuts/index.tsx","pages/UserLocationChat/styled.ts","components/userMessagesChat/index.tsx","pages/UserLocationChat/index.tsx","pages/LogsAskFEG/styled.ts","pages/LogsAskFEG/table.jsx","components/Pagination/index.tsx","pages/LogsAskFEG/index.tsx","pages/Trivia/styled.ts","pages/Trivia/index.tsx","pages/AdminTrivia/styled.ts","components/AdminTriviaComp/CreatePoll/styled.ts","components/AdminTriviaComp/CreatePoll/index.tsx","components/AdminTriviaComp/CreateQuestion/styled.ts","components/AdminTriviaComp/CreateQuestion/index.tsx","components/AdminTriviaComp/UpdateQuestion/styled.ts","components/AdminTriviaComp/UpdateQuestion/index.tsx","components/AdminTriviaComp/ViewQuestion/styled.ts","components/AdminTriviaComp/ViewQuestion/index.tsx","components/AdminTriviaComp/ViewPoll/styled.ts","components/AdminTriviaComp/ViewPoll/index.tsx","components/AdminTriviaComp/UpdatePoll/styled.ts","components/AdminTriviaComp/UpdatePoll/index.tsx","components/AdminTriviaComp/Scoreboard/styled.ts","components/AdminTriviaComp/Scoreboard/index.tsx","pages/AdminTrivia/index.tsx","pages/NewCalendar/styled.ts","pages/NewCalendar/index.tsx","pages/NotifyDashboard/styled.ts","pages/NotifyDashboard/index.tsx","config/routers/privateRoutes.tsx","config/routers/index.tsx","serviceWorker.ts","index.tsx"],"names":["module","exports","Loader","className","HomePage","useState","loaded","setLoaded","useCookies","cookies","token","location","useLocation","useEffect","undefined","pathname","style","marginTop","href","process","api","axios","create","baseURL","headers","Accepted","timeout","interceptors","request","use","config","localStorage","getItem","authorization","error","Promise","reject","PaylocityAnnouncement","useParams","id","userId","info","subject","createdAt","url_image","data","setData","author","setAuthor","registerVisit","a","get","window","fetchAnnouncement","req","created_by","full_name","src","Monograma","alt","dangerouslySetInnerHTML","__html","includes","width","BenefitsAnnouncement","contactPhone","SignRoutes","path","component","DefaultPage","Register","accountsToBeUpgrade","setAccountsToBeUpgrade","accountSelected","setAccountSelected","openModalUpdate","setOpenModalUpdate","groups","setGroups","groupSelected","setGroupSelected","isUpgradeSaving","setIsUpgradeSaving","openAlertError","setOpenAlertError","openAlertSuccess","setOpenAlertSuccess","errorMessage","setErrorMessage","optionsGroup","filter","group","profile_id","map","value","label","name","view","add","edit","delete","permissions2","setPermissions2","Employee","firstName","lastName","location_name","location_id","email","group_name","Partner","requests","setRequests","history","useHistory","then","response","results","result","handleValidate","push","business_email","personal_email","user_email","groupId","Error","put","customer_id","setTimeout","reload","catch","err","jwt","verify","toString","decoded","alert","roles","user_validation","loadRequests","loadGroups","loadUpgrades","handleCloseAlertError","event","reason","handleCloseAlertSuccess","alertErrorMessage","Snackbar","open","autoHideDuration","onClose","anchorOrigin","horizontal","vertical","Alert","severity","alertSuccessMessage","modalUpdate","onClick","htmlFor","type","disabled","options","maxMenuHeight","isClearable","onChange","option","backgroundColor","key","display","length","user","index","account","UserValidation","ReactGA","initialize","pageview","search","groupsData","mockEventsData","address","allDay","description","endStr","isForEveryone","isForMe","startStr","title","Profile","modalLoading","setModalLoading","setGroup","addresses","full","first_name","last_name","phone_number","loadUsersValidate","match","useRouteMatch","params","userID","group_id","status_name","classNamePrefix","placeholder","background","UserProfile","Formatter","createdHour","createdMinutes","Announcements","content","requestLoaded","setRequestLoaded","modalDate","setModalDate","confirmation","setConfirmation","setPermissions","owner_id","updatedAt","viewd","announcements","setAnnouncements","sortedAnnouncements","sort","b","Date","getTime","reverse","patch","visibility","e","modules","onclick","target","classList","height","to","link","color","size","split","splice","join","handleDeleteAnnouncement","Theme","DivContainer","styled","div","Container","Grid","moment","require","GridLatestNews","viewedOpen","setViewedOpen","latestNewsTarget","setLatestNewsTarget","images","setImages","searchParams","URLSearchParams","setEdit","titleField","setTitleField","prevLegendField","setPrevLegendField","EditorState","createEmpty","fullLegend","setFullLegend","superAdmin","setSuperAdmin","comment","setComment","idAccount","commentsLatestNews","setCommentsLatestNews","filterComments","setFilterComments","imageUrl","publishDate","setPublishDate","compararAtivos","active","getComments","r","handleOpenLatestTarget","latestNew","prev_legend","blocksFromHTML","convertFromHTML","full_legend","replace","createWithContent","ContentState","createFromBlockArray","contentBlocks","entityMap","publish_date","getImages","res","console","log","find","latestNews","handleView","post","handlePermissions","document","querySelectorAll","forEach","video","play","formatDate","dateString","date","Intl","DateTimeFormat","month","day","year","timeZone","format","insertImage","imgUrl","entityKey","getCurrentContent","createEntity","class","getLastCreatedEntityKey","newEditorState","AtomicBlockUtils","insertAtomicBlock","forceSelection","getSelection","createImageUrl","file","dataFile","FormData","append","url","removerParametro","has","novaURL","replaceState","items","slice","idea","marginLeft","Input","store_id","image_url","video_url","poster","thumbnail_url","controls","loop","editorState","stripPastedStyles","wrapperClassName","editorClassName","onEditorStateChange","toolbarCustomButtons","padding","borderRadius","margin","cursor","files","lineHeight","htmlDescription","draftToHtml","convertToRaw","dataToSend","publishDateFormated","setUTCHours","handleUpdate","fontWeight","cols","id_remetente","latest_news_id","full_name_remetente","Math","random","Avatar","flexDirection","justifyContent","alignItems","like","dataStr","utc","agora","diferencaDias","diff","semanas","semanasOuDiasPassados","image","toISOString","marginRight","set","attParam","BenefitsComp","annoucements","setAnnoucements","handleGetAnnoucements","annoucment","GridNewsletter","is_visible","btnCompany","btnLocal","btnGroup","btnOthers","btnLatestNews","btnCommunications","btnBenefits","btnNewsletter","btn","setBtn","write","BasicMenu","children","React","anchorEl","setAnchorEl","Boolean","Button","aria-controls","aria-haspopup","aria-expanded","currentTarget","Menu","MenuListProps","MenuStyle","GreenCheckbox","gap","withStyles","root","checked","props","Checkbox","Management","locationsData","setLocationsData","profilesData","setProfilesData","groupsData2","setGroupsData2","locationsFilter","setLocationsFilter","profilesFilter","setProfilesFilter","groupsFilter","setGroupsFilter","isActive","setIsActive","isExpired","setIsExpired","setCookies","users","setUsers","dialogOpen","setDialogOpen","closeDialog","newDialogOpen","limit","nextPage","offset","pageCount","prevPage","total","pages","setPages","loading","setLoading","modal","setModal","serviceRequest","switchConfirmation","setSwitchConfirmation","initialModalDate","setInitialModalDate","setFirstName","setLastName","setEmail","setLocation","profile","setProfile","password","setPassword","passwordConfirmation","setPasswordConfirmation","permissions","servicePermissions","setServicePermissions","onSearch","setOnSearch","groupsDataFiltered","handleLoad","handleSwitchPage","page","status","domain","hostname","sessionStorage","setItem","Md5","init","user_status_value","parser","actived","locationsResponse","formattedLocations","locationRes","display_name","profilesResponse","formattedProfiles","profileRes","groupsResponse","formattedGroups","groupRes","user_management","read","locations","profiles","handleFilterUsers","TextField","handleSearchUser","First_name","Last_name","Location_name","Profiles_name","profiles_name","Group_name","Status","Email","csvString","row","blob","Blob","saveAs","workbook","excel","Workbook","worksheet","addWorksheet","columns","header","addRow","xlsx","writeBuffer","exportCSV2","handleLocationsFilter","isMulti","handleProfilesFilter","handleGroupsFilter","FormControlLabel","control","Divider","MenuItem","border","handleImpersonate","password_is_expired","userExpiredPassword","has_permission_service_request","card_related_ticket_permission","game_related_ticket_permission","handleUpdateServiceRequest","handleDeleteUser","handleActived","UsersManagement","EmailEditorContainer","UsersEmailTest","grey","green","NewAnnouncement","setprofilesData","setgroupsData","setChecked","locationChecked","setLocationChecked","optEveryone","setOptEveryone","selectedFile","imageFile","setImageFile","imageName","setImageName","setDescription","setSubject","myPreview","setMyPreview","filteredGroupsData","handleFileDoc","setHandleFileDoc","strings","setStrings","inputValue","setInputValue","notifyMobile","setNotifyMobile","notifyDesktop","setNotifyDesktop","emailChecked","setEmailChecked","smsChecked","setSmsChecked","handleTestEmail","doc","getTextFromEditorState","contentState","blocks","block","text","trim","_immutable","_map","created","groups_ids","locations_ids","notify_mobile","notify_desktop","sms_checked","email_checked","handleChange","handleLocation","myModal","preview","maxWidth","maxLength","reader","FileReader","readAsDataURL","onload","docSelect","accept","fileSelect","handlePastedText","html","newContentState","createFromText","getPlainText","listStyleType","str","_","i","removeString","imageUrlFile","locationsInfo","setLocationsInfo","rolesInfo","setRolesInfo","editorType","setEditorType","fetchLocations","fetchGroups","exportHtmlAsync","resolve","unlayer","exportHtml","HtmlText","editor_type","script","createElement","async","projectId","displayMode","body","appendChild","removeChild","publishAnnouncement","formattedLocation","formattedRoles","role","locationsReq","users2","filteredUsers","counter","marginBottom","MainContainer","PreviewContent","LoadingContainer","ContainerForm","CallendarFull","ExportContainerImage","LatestNews","nav","setTitle","prevLegend","setPrevLegend","setFile","thumbnail","setThumbnail","polls","setPolls","setLatestNews","questions","setQuestions","selectedEvent","setSelectedEvent","setIdLatestNews","setImageUrl","dataThumbnail","ContentType","formatedDateLatest","item","question","FadeLoader","opacity","createAnnouncement","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","listPlugin","eventClick","extendedProps","events","formatEvent","q","question_answer","start","end","formatPolls","p","polls_answer","date_start","date_end","formatLatestNews","news","createAt","concat","formatedEvents","selectMirror","dayMaxEvents","weekends","eventClassNames","eventInfo","handleWindowResize","displayEventTime","contentEvent","Newsletter","newsletterAll","setNewsletterAll","draftId","setDraftId","getAllNews","exportDesign","design","handleSaveDraft","draft","target_date","handleUpdateDraft","findItem","loadDesign","onChangeSelect","opinionEmoji","setOpinionEmoji","url_doc","router","opinion","emoji","sendInteraction","onLoad","linkDownload","download","click","handleDownload","paddingTop","DISCOVERY_DOCS","Calendar","todayDate","currentEvents","setCurrentEvents","allEvents","setAllEvents","show","setShow","setModalUpdate","eventAddress","setEventAddress","setType","setColor","setId","showGroup","setShowGroup","showLocation","setShowLocation","startTime","setStartTime","endTime","setEndTime","personal","setPersonal","general","setGeneral","specifics","setSpecifics","list","permission","setPermission","permission2","setPermission2","locationOpeningEvents","setLocationOpeningEvents","projectEvents","setProjectEvents","userEmail","handleLoaded","notSpecialEvents","responseSpecial","responseLocationOpenings","responseProjects","confirm","selectInfo","converter","startEventTime","endEventTime","resetStates","clickInfo","event_end","event_start","event_address","event_description","event_type","event_title","event_id","event_color","event_is_for_me","event_is_for_everyone","handleShowGroup","handleShowLocation","handlePersonalEvent","handleGeneralEvent","filteredLocationOpenings","filteredProjects","handleChangeType","handleSelectGroup","handleSelectLocation","modalCreateEvent","inputProps","FormControl","InputLabel","Select","multiline","rowsMax","InputLabelProps","shrink","modalEditEvent","isDisabled","gapi","load","client","apiKey","clientId","discoveryDocs","scope","auth2","getAuthInstance","signIn","calendar","insert","execute","message","htmlLink","ExportEvent","borderColor","outline","customButtons","myCustomButton","headerToolbar","left","center","right","initialView","editable","selectable","initialEvents","select","eventContent","timeText","eventsSet","CompanyCalendar","Analytics","displayPaylocity","setDisplayPaylocity","displayBenefits","setDisplayBenefits","displayUserReport","setDisplayUserReport","user7","setUser7","user1","setUser1","targetButton","setTargetButton","userTime","setUserTime","searchAnnouncement","setSearchAnnouncement","searchUser","setSearchUser","amount_emails_sent","announcement_id","dateEmailSent","open_rate","open_rate_email","report_announcement_id","total_clicks","total_opens","amount_sms_sent","total_clicks_sms","open_rate_sms","daily_ago","lastLogin","amount_login_in_week","userPage","setUserPage","announcementPage","setAnnouncementPage","handleLoadAnnouncements","handleLoadUsers","table","actualPage","exportCSV","fetch","method","analytics","tables","Number","handleSearchAnnouncement","textAlign","fontSize","toFixed","floor","handleSearchPaylocityAnnouncement","handleLoadPaylocityAnnouncements","handleSearchBenefitsAnnouncement","handleLoadBenefitsAnnouncementsAnalytics","paylocityToolTable","benefitsToolTable","userReportTable","handleLoadUserReportAnalytics","FEGAnalytics","useStyles","makeStyles","theme","createStyles","formControl","spacing","minWidth","chips","flexWrap","chip","ShortcutManagement","styles","defaultSearch","setDefaultSearch","shortcuts","setShortcuts","defaultShortcuts","setDefaultShortcuts","shortcutTarget","setShortcutTarget","groupIds","setGroupIds","triggerModal","setTriggerModal","previewDesktop","setPreviewDesktop","imageDesktopName","setImageDesktopName","imageDesktopFile","setImageDesktopFile","previewMobile","setPreviewMobile","imageMobileName","setImageMobileName","imageMobileFile","setImageMobileFile","setProfiles","selectedProfile","setSelectProfile","groupOptions","setGroupOptions","selectedGroup","setSelectedGroup","allInputs","display_name1","display_name2","desktop_image","link_desktop","link_mobile","bgColor","S","TableHeadContainer","TableHead","TableHeaderCell","TableCell","TableBodyCell","AddButton","clearImages","clearSelects","shortcutsResponse","profiles_filtered","handleGroupOptions","profiles_id","shortcutModal","labelId","multiple","renderValue","selected","profile_names","Chip","groups_id","groups_names","URL","createObjectURL","fileSelectDesktop","variant","fileSelectMobile","mobile_image","group_ids","groupID","dataCreate","favorite","code","exec","detail","dataEdit","makeShortcutAction","defaultValue","filteredShortcuts","shortcut","toLowerCase","handleSearchShortcut","TableContainer","Paper","Table","aria-label","TableRow","align","onDragEnd","provided","destination","source","sourceId","draggableId","sourceIndex","destinationIndex","order","droppableId","direction","droppableProvided","TableBody","ref","innerRef","droppableProps","draggableProvided","snapshot","draggableProps","isDragging","dragHandleProps","substring","IconButton","newIds","selectedProfiles","selectedGroups","Edit","handleDeleteShortcut","Delete","isDragDisabled","handleActiveShortcut","ToggleOff","Shortcuts","btnActive","btnInactive","selectEmpty","tableHeader","SaveButton","Permission","classes","selectGroup","setSelectGroup","selectProfile","setNewRoles","loadingChecks","setLoadingChecks","setLoadingSave","homeView","sethomeView","homeAdd","sethomeAdd","homeEdit","sethomeEdit","homeDelete","sethomeDelete","announcementsView","setannouncementsView","announcementsAdd","setannouncementsAdd","announcementsEdit","setannouncementsEdit","announcementsDelete","setannouncementsDelete","userValidationView","setuserValidationView","userValidationAdd","setuserValidationAdd","userValidationEdit","setuserValidationEdit","userValidationDelete","setuserValidationDelete","userManagementView","setuserManagementView","userManagementAdd","setuserManagementAdd","userManagementEdit","setuserManagementEdit","userManagementDelete","setuserManagementDelete","locationView","setlocationView","locationAdd","setlocationAdd","locationEdit","setlocationEdit","locationDelete","setlocationDelete","eventsView","seteventsView","eventsAdd","seteventsAdd","eventsEdit","seteventsEdit","eventsDelete","seteventsDelete","analyticsView","setanalyticsView","analyticsAdd","setanalyticsAdd","analyticsEdit","setanalyticsEdit","analyticsDelete","setanalyticsDelete","shortcutsView","setshortcutsView","shortcutsAdd","setshortcutsAdd","shortcutsEdit","setshortcutsEdit","shortcutsDelete","setshortcutsDelete","permissionManagementView","setpermissionManagementView","permissionManagementAdd","setpermissionManagementAdd","permissionManagementEdit","setpermissionManagementEdit","permissionManagementDelete","setpermissionManagementDelete","askFegView","setAskFegView","askFegAdd","setAskFegAdd","askFegEdit","setAskFegEdit","askFegDelete","setAskFegDelete","askRepositoryView","setAskRepositoryView","askRepositoryAdd","setAskRepositoryAdd","askRepositoryDelete","setAskRepositoryDelete","askRepositoryEdit","setAskRepositoryEdit","askLogsView","setAskLogsView","askLogsAdd","setAskLogsAdd","askLogsEdit","setAskLogsEdit","askLogsDelete","setAskLogsDelete","askDocsView","setAskDocsView","askDocsAdd","setAskDocsAdd","askDocsEdit","setAskDocsEdit","askDocsDelete","setAskDocsDelete","PurpleCheckbox","handleGroupSelect","setAllChecksToFalse","newRoles","oneAccess","oneRoles","permissions_management","home_page","chat_feg","chat_feg_repository","chat_feg_logs","chat_feg_docs","PasswordExpired","setPasswordExpired","repetPassword","setRepetPassword","setMessage","useWindowWith","innerWidth","windowWidth","setWindowWidth","handleResize","addEventListener","removeEventListener","PopoverContainer","PopoverTrigger","PopoverContent","isVisible","Popover","triggerContent","popoverContent","setIsVisible","onMouseEnter","onMouseLeave","SideBar","setActived","repeatTooltip","setFirstAccess","passwordExpired","setPrivacyPolicy","setFegpt","setActivedDown","admin","setAdmin","activedDownAdmin","setActivedDownAdmin","admin_trivia","map_jobtitle","first_access","password_expired_time","accepted_privacy_policy","handleNav","setSidebarOpen","sidebarOpen","logo","miniLogo","act","WorkOutlineOutlined","ProfileInfo","update","setUpdate","updateFirstName","setUpdateFirstName","updateLastName","setUpdateLastName","updatePicture","setPicture","setName","nameLast","setNameLast","setCookie","clear","changeFirstName","changeLastName","changePicture","updateOn","LoginButton","extended","setExtended","dateProp","toLocaleString","hour","minute","hour12","Notifications","screen","notify","setNotify","idUser","clearAll","clearOne","notifyUser","user_id_receptor","baseUrl","origin","startsWith","newPath","warn","myModal2","is_open","handleClickCloseSidebar","Header","impersonate","setImpersonate","setInfo","position","top","zIndex","originalToken","SpecialEvent","specialEvent","setSpecialEvent","newComment","setNewComment","usersData","setUsersData","additionalFollowers","setAdditionalFollowers","additionalFollowersIds","setAdditionalFollowersIds","editMode","setEditMode","setAddress","eventStart","setEventStart","eventEnd","setEventEnd","editComment","setEditComment","updatedComment","setUpdatedComment","additional_users","changeEditModeOfInputs","field","indexOf","val","createComment","customer_ids","fetchUsers","input","updateEvent","deleteEvent","deleteConfirmationModal","onInputChange","customerIds","x","updateFollowersData","saveAdditionalFollowers","rows","multiImages","prevState","comments","singleComment","readOnly","LocationManagement","setLocations","locationTarget","setLocationTarget","triggerDeleteModal","setTriggerDeleteModal","setLimit","ordered","setOrdered","textDecoration","handleOrderBy","columnKey","orderedLocations","handleLimit","newLimit","locationModal","autocompletionRequest","componentRestrictions","country","selectProps","phone","makeLocationAction","deleteLocationModal","handleDeleteLocation","ArrowLeftSharp","ArrowLeft","ArrowRight","ArrowRightSharp","MyProfile","userData","setUserData","imageFileInput","useRef","activities","setActivities","fetchData","sortedActivities","filterActivities","dateLimit","today","dater","activity","setDate","getDate","getDay","submitProfileUpdates","backgroundImage","backgroundSize","current","announcement_created","announcement_benefits_created","event_created","event_commented","MapJobtitle","jobTitles","setJobTitles","newJobtitles","setNewJobtitles","setNav","relod","setRelod","setSelectedGroups","submitPutGroup","newJobtitle","paylocity_jobtitle","group_title","job","updatedGroups","AppContainer","grow","flexGrow","menuButton","breakpoints","up","shape","palette","common","white","searchIcon","pointerEvents","inputRoot","inputInput","paddingLeft","transition","transitions","sectionDesktop","sectionMobile","PrimarySearchAppBar","handleDrawerOpen","handleSidebarOpen","drawer","sidebarStatus","mobileMoreAnchorEl","setMobileMoreAnchorEl","isMenuOpen","isMobileMenuOpen","handleMobileMenuClose","handleMenuClose","Badge","edge","ThemeColor","Typography","noWrap","MiniDrawer","useTheme","setOpen","setDrawer","fegpt","activedDown","CssBaseline","DocumentSources","sources","rel","filename","ChatContainer","ChatLog","ChatMessage","ErrorMessage","UserInput","TextInput","SendButton","button","SugestedBtn","SugestedContainer","ChatSubContainer","App","messages","setMessages","userMessage","setUserMessage","setSources","sugested","setSugested","openModal","setOpenModal","allMessages","setAllMessages","idHistory","setidHistory","isHovered","setIsHovered","setToken","streamedData","setStreamedData","historyMessage","setHistoryMessage","headersHistory","setHeadersHistory","followUP","setFollowUP","loadingSources","setLoadingSources","contentRef","getHistory","resData","scrollToDiv","elemento","scrollTo","MAX_SAFE_INTEGER","behavior","transformarLinksEmHTML","texto","fetchDataFromStream","userMessageRecover","firstMessage","prevHistory","JSON","stringify","prompt","Authorization","getReader","headersObj","idHeaderHistory","idMessageResponse","textDataFilter","done","TextDecoder","decode","prevData","scrollBehavior","whiteSpace","suges","BeatLoader","onKeyPress","ContainerBar","Content","DrawerContent","Paragrah","InputTextTitle","openFile","setOpenFile","openText","setOpenText","openUrl","setOpenUrl","openNewRepo","setOpenNewRepo","selectedValue","setSelectedValue","errCheckRepository","setErrCheckRepository","newRepositoryInpt","setNewRepositoryInpt","errLocal","setErrLocal","categories","setCategories","setSelectedFile","loadingUploadFile","setLoadingUploadFile","filenameInput","setFilenameInput","textInput","setTextInput","setUrl","urlLoading","setUrlLoading","textLoading","setTextLoading","checkRepository","local","formData","toast","success","uploadFileFunc","category_id","uploadTextFunc","getCategories","Drawer","category","slug","normalize","addRepository","ContainerSettings","ContainerGrid","Title","h1","SettingsChatBot","TableX","useTable","useGlobalFilter","getTableProps","getTableBodyProps","headerGroups","prepareRow","globalFilter","state","setGlobalFilter","headerGroup","getHeaderGroupProps","column","getHeaderProps","render","getRowProps","cells","cell","getCellProps","Modal","TableCategories","idParam","setCategory","dataCategory","setDataCategory","setReload","openModalRename","setOpenModalRename","modalNewRenameId","setModalNewRenameId","renameText","setRenameText","accessor","Cell","original","rename","ChatFloat","Chat","openChat","setLarguraDaJanela","ContainerWelcome","ContainerContent","FirstContainerContent","SecondContainerContent","ContainerIdea","CardFav","favShortcut","setFavShortcut","getShortcuts","element","short","favoriteShortCurt","PreviewContainer","Btn","SubContainer","CarouselCompoponent","close","latestNewsWithComments","setLatestNewsWithComments","showMoreLatestNews","all","newsItem","commentsResponse","newsWithComments","fetchCommentsForNews","getLatestNews","filterLatestNews","sortItemsByActiveAndDate","handleLatestNewsFilter","showThumbs","autoPlay","infiniteLoop","interval","CardContainer","QuestionContainer","NoHavePollContainer","CardTask","trivia","setTrivia","answers","setAnswers","responseTrivia","setResponseTrivia","setUserScore","setRanking","setUserRanking","realCorrectOption","setRealCorrectOption","userResponseHistory","setUserResponseHistory","setUserId","historyQuestion","setHistoryQuestion","noHaveQuestion","setNoHaveQuestion","getTrivia","userIdParam","customers_id","history_question","correct_option_id","response_user_question_id","getTriviaStatus","user_id","user_score","pontuation","user_rank","getUserId","hidden","y","visible","container","scale","delayChildren","staggerChildren","QuestionListEnum","num","questEnum","hasSelectedOption","responses_task_id","AnimatePresence","motion","animate","ul","variants","initial","li","stiffness","questionId","optionId","task_id","question_id","correct_question","Icon","Form","IdeaLatestNews","customerId","Card","Item","Label","ProgressBar","GreenRadio","Radio","Progress","percent","ContainerTaskDescription","PollsCard","rankingOptions","setRankingOptions","votes","setSelected","noHavePolls","setNoHavePolls","reduce","sum","lang","getPolls","existsPontuation","response_user_polls_id","percentage","polls_id","CardDownload","NewHome","shortcutsOrdered","setShortcutsOrdered","setWidth","setCustomerId","userGroupId","setUserGroupId","editOrder","setEditOrder","setShortcutOrder","viewAllsFav","openIdeaLatestNews","setOpenIdeaLatestNews","handleWindowSizeChange","changeShortcutOrder","shortcuts_filtered","orderedShorts","table_order","personal_order","newOrder","number","verifyOrder","shortcuts_order","moveArrayElement","arr","from","el","handleDragEnd","old_order","chatBTN","ServiceRequest","PowerBi","views","TitleShortcuts","GridShortcut","ListaOrdenada","dados","formatString","checkFav","dadosOrdenados","localeCompare","dadosSeparadosPorLetra","primeiraLetra","charAt","toUpperCase","hoveredIndex","setHoveredIndex","handleHover","Object","keys","letra","indexKey","orderForName","objetos","nameA","nameB","orderModal","handleSearch","objeto","FilterContainer","ListLocations","LocationGroup","ChatUserLocation","HeaderChat","Informations","InformationsContent","CloseButton","UserMessagesChat","setText","socket","setSocket","disableZoom","viewportMetaTag","querySelector","setAttribute","intervalId","setInterval","handleMessaging","clearInterval","messageDateFilter","sendMessage","emit","room","newsocket","io","transports","upgrade","on","disconnect","dataT","dateMomemnt","isSame","dateFormat","UserLocationChat","currentMessage","setCurrentMessage","currentLocation","setCurrentLocation","locationName","setLocationName","informationOpen","setInformationOpen","locationId","handleSelectChange","user_status","PaginationComp","meta","setState","Pagination","count","last","LogsAskFEG","openTable","setOpenTable","before","first","next","metaData","setMetaData","currentPage","seCurrentPage","handleTable","removeIndex","checkVisibleTable","first_page","last_page","current_page","next_page","role_id","PontuationContainer","Trivia","userScore","ranking","usersRanking","lastDay","getFullYear","getMonth","getLastDayOfMonth","img","troph","values","tr","delay","duration","td","polls_answered","correct","SelectOption","AdminTriviaContainer","DivisorScoreboard","CreateQuestionContainer","CreatePoll","setQuestion","setOptions","setCorrectAnswer","isEditing","setIsEditing","dateStart","setDateStart","dateEnd","setDateEnd","clearInputs","newOptions","opt","newQuestion","CreateQuestion","correctAnswer","iaGenerated","setIaGenerated","notAvaliableDates","setNotAvaliableDates","GenerateIaQuestion","setGenerateIaQuestion","generateIaQuestion","answer","dates","tileDisabled","some","blockedDate","blockedDateWithOneMoreDay","tileClassName","line","Fragment","UpdateQuestion","questionEdit","updatedQuestion","ViewQuestion","selectedQuestion","handleEditQuestion","scheduleDate","setScheduleDate","reschedule","setReschedule","correctOption","findIndex","obj","handleSaveQuestion","ViewPoll","selectedPoll","handleEditPoll","usersPontuation","setUsersPontuation","optionUser","UpdatePoll","poll","setPoll","handleUpdateQuestion","Scoreboard","currentMonth","String","selectedMonth","setSelectedMonth","fetchRanking","handleMonthChange","AdminTriviaPage","setSelectedQuestion","typeForm","setTypeForm","selectedPolls","setSelectedPolls","handleContent","DivisorContent","NewCalendar","createEvent","setCreateEvent","form","Divisor","NotifyDashboard","legend","every","setForm","formDesktop","setFormDesktop","loadingDesktop","setLoadingDesktop","groupDesktop","setGroupDesktop","profileDesktop","setProfileDesktop","locationsDesktop","groupsDesktop","routeOptions","onSubmit","preventDefault","FormLabel","withRouter","removeCookie","redirect","redirectLocation","currentPath","redirectFiltered","decodeURIComponent","exact","CompanyAnnouncement","ChatBotSettings","ChatBot","Routes","token2","handleLogin","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.e0c556c5.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Monograma.56fe92f9.png\";","module.exports = __webpack_public_path__ + \"static/media/miniLogoFeg.bece4536.png\";","module.exports = __webpack_public_path__ + \"static/media/troph.da5a0514.png\";","module.exports = __webpack_public_path__ + \"static/media/feghome.com.f8504c50.png\";","module.exports = __webpack_public_path__ + \"static/media/Calendar.56bee59e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEbGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIzLTEyLTExPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjAzZWYwMWQwLTJjZmYtNGExYi1hM2ZlLWUyZGEyMTUyZWY1NTwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5GRUcgSWNvbiAtIDE8L3JkZjpsaT4KICAgPC9yZGY6QWx0PgogIDwvZGM6dGl0bGU+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjph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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEbGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIzLTEyLTExPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmJjYjA3YjQzLTRkNjEtNGVlMy05NzJhLWYyOGI0OTY0Mzg1MDwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5GRUcgSWNvbiAtIDI8L3JkZjpsaT4KICAgPC9yZGY6QWx0PgogIDwvZGM6dGl0bGU+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjph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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEbGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIzLTEyLTExPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjBkZWZmYjg2LWVjOGUtNDJmYS1hZTc4LTQ1ZWRkYzdiMzI2MjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5GRUcgSWNvbiAtIDM8L3JkZjpsaT4KICAgPC9yZGY6QWx0PgogIDwvZGM6dGl0bGU+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjph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\"","import React from 'react';\n\nconst Loader = () => {\n return (\n
\n )\n}\nexport default Loader;\n","import React, { useEffect, useState } from 'react';\n\nimport Loader from '../../components/Loader';\nimport { useCookies } from 'react-cookie';\nimport { useLocation } from 'react-router-dom';\n\nconst HomePage: React.FC = () => {\n const [loaded, setLoaded] = useState(true);\n const [cookies, setCookies] = useCookies(['token']);\n const token: any = cookies.token;\n const location = useLocation();\n\n useEffect(() => {\n if (token !== undefined || token !== null) {\n const currentPath = location.pathname;\n \n setLoaded(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return loaded ? (\n
\n \n
\n ) : (\n
\n

Oops!

\n

\n You are not allowed to access this area of the system. Please login\n again or contact your system administrator.\n

\n Go To Login\n
\n );\n};\n\nexport default HomePage;\n","import axios from 'axios'\n\nexport const api = axios.create({\n baseURL: process.env.REACT_APP_API_URL,\n headers: {\n Accepted: 'appication/json',\n 'Content-Type': 'application/json'\n },\n timeout: 10000\n})\n\napi.interceptors.request.use(\n (config: any) => {\n const token = localStorage.getItem('token')\n if (token) {\n config.headers.authorization = `Bearer ${token}`\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nexport default api\n","import axios from '../../services/axios';\nimport React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router';\nimport Monograma from '../../images/Monograma.png';\n\nconst PaylocityAnnouncement: React.FC = () => {\n type DataType = {\n info: string;\n subject: string;\n createdAt: string;\n url_image: string;\n };\n\n type ParamTypes = {\n id: string;\n userId: string;\n };\n\n const { id, userId } = useParams();\n\n const [data, setData] = useState({\n info: '',\n subject: '',\n createdAt: '',\n url_image: ''\n });\n const [author, setAuthor] = useState('');\n\n useEffect(() => {\n const registerVisit = async () => {\n if (id && userId) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const req = await axios.get(\n `/api/v1/analytics/viewed/announcements/${id}/paylocity/${userId}`\n );\n } catch (error) {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n } else {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n };\n const fetchAnnouncement = async () => {\n try {\n const req = await axios.get(`/api/v1/announcements/ap/${id}`);\n setData(req.data);\n setAuthor(req.data.created_by.full_name);\n } catch (error) {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n };\n registerVisit();\n fetchAnnouncement();\n }, []);\n\n return (\n
\n FEG logo\n
\n
\n

{data.createdAt}

\n

Author: {author}

\n

{data.subject}

\n
\n
\n {data.url_image.includes('1x1-00000000.png') ? null : (\n \n )}\n
\n
\n );\n};\n\nexport default PaylocityAnnouncement;\n","import axios from '../../services/axios';\nimport React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router';\nimport Monograma from '../../images/Monograma.png';\n\nconst BenefitsAnnouncement: React.FC = () => {\n type DataType = {\n info: string;\n subject: string;\n createdAt: string;\n url_image: string;\n };\n\n type ParamTypes = {\n id: string;\n contactPhone: string;\n };\n\n const { id, contactPhone } = useParams();\n\n const [data, setData] = useState({\n info: '',\n subject: '',\n createdAt: '',\n url_image: ''\n });\n const [author, setAuthor] = useState('');\n\n useEffect(() => {\n const registerVisit = async () => {\n if (id) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const req = await axios.get(\n `/api/v1/analytics/viewed/announcements/${id}/benefits/${contactPhone}`\n );\n } catch (error) {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n } else {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n };\n const fetchAnnouncement = async () => {\n try {\n const req = await axios.get(`/api/v1/announcements/ab/${id}`);\n setData(req.data);\n setAuthor(req.data.created_by.full_name);\n } catch (error) {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n };\n {\n contactPhone && registerVisit();\n }\n fetchAnnouncement();\n }, []);\n\n return (\n
\n FEG logo\n
\n
\n

{data.createdAt}

\n

Author: {author}

\n

{data.subject}

\n
\n
\n {data.url_image.includes('1x1-00000000.png') ? null : (\n \n )}\n
\n
\n );\n};\n\nexport default BenefitsAnnouncement;\n","import React from 'react';\nimport { Switch, BrowserRouter, Route } from 'react-router-dom';\nimport * as ROUTES from './routerList';\nimport DefaultPage from '../../pages/DefaultPage';\nimport PaylocityAnnouncement from '../../pages/PaylocityAnnouncement';\nimport BenefitsAnnouncement from '../../pages/BenefitsAnnouncement';\n\nconst SignRoutes: React.FC = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default SignRoutes;\n","export const HOME = '/home';\nexport const DEFAULT = '/*';\nexport const USER = '/user';\nexport const MYPROFILE = '/profile';\nexport const PROFILE = '/user/:id';\nexport const ANNOUNCEMENTPAYLOCITY = '/ap/:id/:userId';\nexport const ANNOUNCEMENTBENEFITS = '/ab/:id/:contactPhone';\nexport const ANNOUNCEMENTBENEFITSALL = '/ab/:id';\nexport const ANNOUNCEMENTS = '/announcements';\nexport const NEWANNOUNCEMENT = '/announcements/new';\nexport const ANNOUNCEMENTLOCAL = '/announcements/local/:id';\nexport const ANNOUNCEMENTOTHERS = '/announcements/others/:id';\nexport const ANNOUNCEMENTLATESTNEWS = '/announcements/latest-news/:id';\nexport const ANNOUNCEMENTGROUP = '/announcements/group/:id';\nexport const ANNOUNCEMENTCOMPANY = '/announcements/company/:id';\nexport const MANAGEMENT = '/management';\nexport const CALENDAR = '/calendar';\nexport const NEWHOME = '/';\nexport const ANALYTICS = '/analytics';\nexport const SPECIALEVENT = '/special-event/:id';\nexport const LOCATIONMANAGEMENT = '/locations';\nexport const SHORTCUTMANAGEMENT = '/shortcuts';\nexport const PERMISSIONMANAGEMENT = '/permissions';\nexport const MAPJOBTITLE = '/mapJobtitle';\nexport const CHATBOT = '/chat-fegpt';\nexport const HOMENEWDESIGN = '/new-home';\nexport const SHORTCUTS = '/list-shortcuts';\nexport const SETTINGSCHATBOT = '/settings-fegpt';\nexport const REPOCHATBOT = '/knowledgebase';\nexport const CARDCHATBOT = '/knowledgebase/:idParam';\nexport const USERLOCATIONSCHAT = '/locations/chat/:id';\nexport const LOGCASKFEG = '/chat/logs';\nexport const TRIVIA = '/trivia';\nexport const ADMINTRIVIA = '/admin-trivia';\nexport const NEWCALENDAR = '/new-calendar';\nexport const NOTIFYDASHBOARD = '/notify-dashboard';\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport Loader from '../Loader';\n\nimport axios from '../../services/axios';\nimport { useCookies } from 'react-cookie';\nimport jwt from 'jsonwebtoken';\nimport Select from 'react-select'\nimport { Alert } from '@material-ui/lab';\nimport { Snackbar } from '@material-ui/core';\n\ninterface AccountupgradeData {\n user_email: string\n business_email: string\n customer_id: string\n}\n\ninterface GroupData {\n id: string\n name: string\n profile_id: string\n}\n\nconst id_profile_feg_email = 'c843021e-0c33-40cd-a0d2-0ec36fa1bb7a'\n\nconst Register = () => {\n const [cookies, ,] = useCookies(['token']);\n const token: any = cookies.token;\n const [loaded, setLoaded] = useState(true);\n const [accountsToBeUpgrade, setAccountsToBeUpgrade] = useState([])\n const [accountSelected, setAccountSelected] = useState()\n const [openModalUpdate, setOpenModalUpdate] = useState(false)\n const [groups, setGroups] = useState([])\n const [groupSelected, setGroupSelected] = useState<{value: string; label:string}>()\n const [isUpgradeSaving, setIsUpgradeSaving] = useState(false)\n const [openAlertError, setOpenAlertError] = useState(false)\n const [openAlertSuccess, setOpenAlertSuccess] = useState(false)\n const [errorMessage, setErrorMessage] = useState<'exist' | 'default'>('default')\n const optionsGroup = groups.filter((group) => group.profile_id == id_profile_feg_email).map((group) => {return {value: group.id, label: group.name}})\n const [permissions2, setPermissions2] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n })\n const [requests, setRequests] = useState({\n Employee: [\n {\n id: '',\n firstName: '',\n lastName: '',\n location_name: '',\n location_id: '',\n email: '',\n group_name: ''\n }\n ],\n \"Users With FEG Email\": [\n {\n id: '',\n firstName: '',\n lastName: '',\n location_name: '',\n location_id: '',\n email: '',\n group_name: ''\n }\n ],\n Partner: [\n {\n id: '',\n firstName: '',\n lastName: '',\n location_name: '',\n location_id: '',\n email: '',\n group_name: ''\n }\n ],\n \"Users Non-FEG Email\": [\n {\n id: '',\n firstName: '',\n lastName: '',\n location_name: '',\n location_id: '',\n email: '',\n group_name: ''\n }\n ]\n });\n\n const history = useHistory();\n\n useEffect(() => {\n handlePermissions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n async function loadRequests() {\n await axios\n .get('/api/v1/accounts?user_status=unverified')\n .then((response) => {\n setRequests(response.data.results);\n // setLoaded(false);\n });\n }\n\n async function loadGroups() {\n await axios.get('/api/v1/groups')\n .then((response) => {\n setGroups(response.data)\n })\n }\n\n async function loadUpgrades() {\n await axios.get('/api/v1/accounts/upgrade/list')\n .then((response) => {\n setAccountsToBeUpgrade(response.data.result)\n setLoaded(false)\n })\n }\n\n function handlePermissions() {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n if (decoded.roles.user_validation.view === false) {\n alert('Permission denied');\n window.location.href = `${process.env.REACT_APP_URL}`;\n } else {\n loadRequests();\n setPermissions2(decoded.roles.user_validation)\n // setUserCustomerId(decoded.customer_id)\n loadGroups()\n loadUpgrades()\n }\n }\n }\n );\n }\n\n function handleValidate(id: string) {\n history.push(`/user/${id}`);\n }\n\n function handleModalUpgrade(account: AccountupgradeData) {\n setGroupSelected(undefined)\n setOpenModalUpdate(true)\n setAccountSelected(account)\n }\n\n async function handleSaveUpgrade() {\n try {\n setIsUpgradeSaving(true)\n\n const data = {\n business_email: accountSelected?.business_email,\n personal_email: accountSelected?.user_email,\n groupId: groupSelected?.value,\n profile_id: id_profile_feg_email\n }\n if(!data.business_email) throw new Error('Need a fegllc email to be upgraded')\n if(!data.groupId) throw new Error('Need to select a group.')\n\n await axios.put(`/api/v1/accounts/upgrade/${accountSelected?.customer_id}`, data)\n .then((response) => {\n setOpenAlertSuccess(true)\n setTimeout(() => {\n window.location.reload()\n }, 2000)\n })\n .catch((err) => {\n setOpenAlertError(true)\n setErrorMessage('exist')\n })\n\n } catch (error) {\n // alert('Error saving the upgrade, please try again later.')\n setOpenAlertError(true)\n setErrorMessage('default')\n setOpenModalUpdate(false)\n setIsUpgradeSaving(false)\n } finally {\n setIsUpgradeSaving(false)\n setOpenModalUpdate(false)\n }\n }\n\n const handleCloseAlertError = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') return\n setOpenAlertError(false)\n }\n\n const handleCloseAlertSuccess = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') return\n setOpenAlertSuccess(false)\n }\n\n const alertErrorMessage = (\n \n \n {errorMessage === 'exist' ? \n 'This business email already exist!' \n : 'Error saving the upgrade, please try again later.'\n }\n \n \n )\n\n const alertSuccessMessage = (\n \n \n Account upgraded!\n \n \n )\n\n const modalUpdate = (\n
\n
\n

\n
\n Account Upgrade \n \n

\n\n
\n \n \n\n \n \n\n \n \n \n
\n

Responses

\n
\n

setFilterComments('desc')} className={`${filterComments === 'desc' && 'active'}`}>Newest

\n

setFilterComments('most-liked')} className={`${filterComments === 'most-liked' && 'active'}`}>Most Liked

\n

setFilterComments('asc')} className={`${filterComments === 'asc' && 'active'}`}>Oldest

\n
\n
\n
\n {\n commentsLatestNews?.map(comment => {\n return (\n <>\n
\n
\n
\n {\n (comment.id_remetente === idAccount && imageUrl) ?\n \"\" :\n {comment.full_name_remetente[0]}\n }\n
\n\n {\n idAccount && handleLike(comment?.id)} />\n }\n\n\n {comment.like.length >= 1 && comment.like.length}\n
\n\n
\n

{comment.full_name_remetente}

\n

{comment.content}

\n
\n
\n
\n {semanasOuDiasPassados(comment.createdAt)}\n {\n (superAdmin || comment.id_remetente === idAccount) && (\n deleteComment(comment.id)} />\n )\n }\n
\n\n
\n\n
\n
\n \n )\n })\n }\n\n
\n
\n\n\n
\n
\n \n \n );\n } else {\n return (\n \n\n {images &&\n sortItemsByActiveAndDate(images).map((image: any, index: number) => {\n if (!isDateValid(image.publish_date)) {\n if (!superAdmin) {\n return <>\n }\n }\n if (image.active === false) {\n if (!superAdmin) {\n return <>\n }\n }\n return (\n \n
\n

{formatDate(image.createdAt.slice(0, 10))}

\n {\n (superAdmin && image.idea) && (\n \n {image.idea && 'Idea Submission'}\n \n )\n }\n
\n {\n superAdmin && image.publish_date && (\n \n {image?.publish_date ? `Publish Date ${image?.publish_date.split('T')[0]}` : ''}\n \n\n )\n }\n {\n superAdmin && (\n \n handleView({\n id: image.id,\n active: image.active\n })\n }\n >\n {image.active ? 'Public' : 'Private'}\n \n )\n }\n\n
\n\n
\n \n {image.image_url ? () : ()}\n\n

{image.title}

\n

{image.prev_legend}

\n \n
\n \n );\n })}\n \n );\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport api from 'src/services/axios';\nimport { Link } from 'react-router-dom';\nimport Formatter from '../CompanyAnnouncements/Formatter';\n\nimport { FiTrash } from 'react-icons/fi';\n\nexport default function BenefitsComp(): React.ReactElement {\n const [annoucements, setAnnoucements] = useState([]);\n function handleGetAnnoucements() {\n api.get('/api/v1/announcements/ab/all').then((r) => {\n setAnnoucements(r.data);\n });\n }\n\n useEffect(() => {\n handleGetAnnoucements();\n }, []);\n function handleDelete(id: String) {\n api.delete(`/api/v1/announcements/ab/delete/${id}`).then((r) => {\n handleGetAnnoucements();\n window.alert('success');\n });\n }\n\n return (\n
\n {annoucements.map((annoucment: any) => {\n return (\n
\n
\n \n

{annoucment.subject}

\n \n \n
\n

\n {annoucment.createdAt.split('').splice(0, 11).join('')}{' '}\n {Formatter(\n annoucment.createdAt.split('').splice(12, 2).join(''),\n annoucment.createdAt.split('').splice(14, 3).join('')\n )}\n

\n
\n );\n })}\n
\n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const ContainerTarget = styled.div`\n margin: 0 auto;\n background-color: ${Theme['secondary-light']};\n padding: 12px;\n width: 60%;\n height: 100%;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n h1.text {\n color: #454545;\n text-align: center;\n }\n p.text {\n color: gray;\n text-align: center;\n }\n .full-legend {\n line-height: 10;\n color: red;\n }\n img {\n width: 300px;\n height: 300px;\n }\n gap: 8px;\n button {\n padding: 10px;\n background-color: ${Theme.primary};\n border: none;\n border-radius: 3px;\n color: white;\n cursor: pointer;\n }\n`;\n\nexport const Container = styled.div`\n width: 100%;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 40px;\n video {\n width: 100%;\n max-height: 300px;\n }\n &.t {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 60%;\n margin: 0 auto;\n margin-bottom: 20px;\n\n .demo-wrapper {\n display: flex;\n width: 100%;\n flex-direction: column;\n justify-content: center;\n align-self: center;\n }\n div.edit-btn {\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n gap: 10px;\n }\n }\n`;\n\nexport const Grid = styled.div`\n display: flex;\n background-color: #f9f9f9f9;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n .header {\n padding: 10px;\n background-color: #f1f1f1f1;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 8px;\n button {\n padding: 6px;\n border: none;\n background-color: red;\n border-radius: 3px;\n color: white;\n cursor: pointer;\n }\n button.btn-edit {\n background-color: ${Theme.primary};\n color: white;\n margin-left: 8px;\n }\n button.active {\n background-color: green;\n }\n }\n .content {\n padding: 12px;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n h1.header-title {\n color: #303030;\n margin-bottom: 0 10px;\n }\n h1 {\n color: ${Theme.primary};\n text-align: center;\n }\n p.text {\n color: gray;\n text-align: center;\n }\n img {\n max-width: 100%;\n height: auto;\n max-height: 300px;\n object-fit: cover;\n border-radius: 12px;\n &.t {\n max-width: 100%;\n height: auto;\n max-height: 500px;\n }\n }\n .comments {\n textarea {\n width: 100%;\n height: 100px;\n background-color: #cfcfcf;\n padding: 10px;\n border-radius: 4px;\n border: none;\n font-family: sans-serif;\n }\n button.post {\n align-items: end;\n justify-self: end;\n align-self: flex-end;\n margin: 10px 0;\n }\n .comment-edit {\n display: flex;\n align-items: center;\n justify-content: center;\n small {\n margin: 0;\n padding: 0;\n }\n }\n width: 100%;\n .title-comments {\n margin-top: 4px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n margin-bottom: 8px;\n div {\n display: flex;\n gap: 10px;\n }\n p {\n font-weight: bold;\n }\n .active {\n font-weight: bold;\n color: #b100cd;\n }\n }\n .comment-area {\n margin: 18px 0;\n padding: 10px 0;\n\n div {\n display: flex;\n gap: 14px;\n justify-content: space-between;\n label {\n display: flex;\n\n align-items: center;\n }\n small {\n font-weight: bold;\n color: #454545;\n }\n .main-comment {\n display: flex;\n justify-content: space-between;\n .icon-area {\n display: flex;\n flex-direction: row;\n gap: 4px;\n justify-content: center;\n align-items: center;\n width: 40px;\n margin: 0;\n padding: 0;\n }\n .icon-red {\n color: red;\n }\n .icon-gray {\n color: gray;\n }\n div {\n display: flex;\n flex-direction: column;\n }\n img {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n }\n display: flex;\n }\n }\n }\n }\n gap: 8px;\n button {\n padding: 10px;\n background-color: ${Theme.primary};\n border: none;\n border-radius: 3px;\n color: white;\n cursor: pointer;\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Container, Grid } from './styled';\nimport api from 'src/services/axios';\n\nimport jwt from 'jsonwebtoken';\nimport { FiTrash } from 'react-icons/fi';\nimport { useCookies } from 'react-cookie';\nimport { Link } from 'react-router-dom';\n\n\nexport default function GridNewsletter() {\n\n const [permissions2, setPermissions2] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n })\n const [announcements, setAnnouncements] = useState([]);\n const [cookies, ,] = useCookies([\"token\"]);\n const token: any = cookies.token\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(localStorage.getItem('token')!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n setPermissions2(decoded.roles.announcements)\n }\n })\n } else {\n jwt.verify(token!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n setPermissions2(decoded.roles.announcements)\n }\n })\n }\n }\n\n useEffect(() => {\n loadRequests()\n handlePermissions()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n async function handleDeleteAnnouncement(id: string) {\n try {\n\n await api.patch(`/api/v1/announcements/${id}`, {\n visibility: false\n })\n setAnnouncements(announcements.filter(e => e.id !== id));\n\n alert('Announcement deleted')\n\n } catch (error) {\n alert('Error')\n\n }\n }\n\n async function loadRequests() {\n try {\n await api.get(`api/v1/announcements/newsletter_announcements`, { timeout: 0 }).then(response => {\n\n setAnnouncements(response.data.results.filter((e: any) => e.is_visible === true));\n\n })\n } catch (error) {\n alert(error)\n }\n }\n\n return (\n \n\n {announcements &&\n announcements.map((data: any) => {\n return (\n \n
\n

{data.createdAt}

\n \n\n\n\n
\n \n {data.url_image && }\n\n

{data.subject}

\n\n \n
\n \n );\n })}\n \n );\n\n}\n","import React, { useState, useEffect } from 'react';\nimport Company from './AnnouncementList';\n\nimport jwt from 'jsonwebtoken';\nimport { useCookies } from 'react-cookie'\nimport { DivContainer } from './style';\nimport GridLatestNews from '../GridLatestNews';\nimport BenefitsComp from '../Benefits';\nimport Newsletter from '../Newsletter';\nimport GridNewsletter from '../GridNewsletter';\n\nconst Announcements: React.FC = () => {\n const [permissions, setPermissions] = useState(false);\n const [permissions2, setPermissions2] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false,\n })\n const [btn, setBtn] = useState(\n {\n content: 6,\n btnCompany: '',\n btnLocal: '',\n btnGroup: '',\n btnOthers: '',\n btnLatestNews: \"#fff\",\n btnCommunications: '',\n btnBenefits: \"\",\n btnNewsletter: \"\"\n },\n );\n const [cookies, ,] = useCookies([\"token\"]);\n const token: any = cookies.token\n\n useEffect(() => {\n handlePermissions()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(localStorage.getItem('token')!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n setPermissions(decoded.modules.announcements.write)\n setPermissions2(decoded.roles.announcements)\n }\n })\n } else {\n jwt.verify(token!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n setPermissions(decoded.modules.announcements.write)\n setPermissions2(decoded.roles.announcements)\n }\n })\n }\n }\n\n function changeContent() {\n console.log('a')\n if (btn.content === 1) {\n return \n }\n if (btn.content === 2) {\n return \n }\n if (btn.content === 3) {\n return \n }\n if (btn.content === 4) {\n return \n }\n if (btn.content === 5) {\n return \n }\n\n if (btn.content === 6) {\n return \n }\n if (btn.content === 7) {\n return \n }\n if (btn.content === 8) {\n return \n }\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n
\n {\n changeContent()\n }\n
\n
\n )\n}\n\nexport default Announcements;\n","import React, {useEffect} from 'react';\nimport ReactGA from 'react-ga';\nimport Announcement from '../../components/CompanyAnnouncements';\n\nconst Announcements: React.FC = () => {\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1')\n ReactGA.pageview(window.location.pathname + window.location.search)\n })\n\n return (\n \n )\n}\n\nexport default Announcements;\n","import * as React from 'react';\nimport { Button, Menu, MenuItem } from '@material-ui/core';\nimport { BsCaretDownFill } from 'react-icons/bs';\n\ninterface BasicMenuProps {\n children: React.ReactNode;\n}\n\nexport default function BasicMenu({ children }: BasicMenuProps): JSX.Element {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n return (\n
\n \n

MANAGE

{' '}\n \n \n \n {children}\n \n
\n );\n}\n","import styled from 'styled-components';\n\nexport const MenuStyle = styled.div`\n display: flex;\n button {\n color: none;\n background: none;\n border: none;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n :hover {\n background-color: '#000';\n }\n }\n`;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { FiEdit, FiTrash, FiToggleLeft, FiUser } from 'react-icons/fi';\nimport { MdSyncDisabled } from 'react-icons/md';\nimport axios from '../../services/axios';\nimport { saveAs } from 'file-saver';\nimport { Md5 } from 'md5-typescript';\nimport TextField from '@material-ui/core/TextField';\nimport Select from 'react-select';\nimport { useCookies } from 'react-cookie';\nimport { groupsData } from '../../data';\nimport jwt from 'jsonwebtoken';\nimport Loader from '../../components/Loader';\nimport {\n Button,\n Checkbox,\n CheckboxProps,\n Dialog,\n DialogTitle,\n FormControlLabel,\n IconButton,\n Tooltip,\n styled,\n withStyles,\n Menu,\n MenuItem,\n Divider\n} from '@material-ui/core';\nimport excel from 'exceljs';\nimport BasicMenu from './menu';\nimport { MenuStyle } from './styled';\nimport { Theme } from 'src/styles/Theme';\n\nconst MyComponentDialog = styled('div')({\n color: 'darkslategray',\n backgroundColor: 'aliceblue',\n padding: 22,\n margin: 14,\n display: 'flex',\n gap: 10,\n borderRadius: 4\n});\n\nconst GreenCheckbox = withStyles({\n root: {\n color: `${Theme.primary}`,\n '&$checked': {\n color: `${Theme.primary}`\n }\n },\n checked: {}\n})((props: CheckboxProps) => );\n\ninterface userInfo {\n company_name: string;\n createdAt: string;\n email: string;\n first_name: string;\n full_name: string;\n group_id: string;\n group_name: string;\n id: string;\n ip: string;\n last_name: string;\n location_id: string;\n location_name: string;\n password: string;\n phone_number: string;\n profile_id: string;\n profiles_name: string;\n status: string;\n updatedAt: string;\n url_image: string;\n permission_service_request_id: string;\n has_permission_service_request: boolean;\n card_related_ticket_permission: string;\n game_related_ticket_permission: string;\n user_status_value: string;\n password_is_expired: boolean;\n}\n\ninterface usersArray extends Array { }\n\ninterface servicePermissions {\n card_related_ticket_permission: string | undefined;\n game_related_ticket_permission: string | undefined;\n has_permission_service_request: boolean | undefined;\n}\n\ninterface profileData {\n value: string;\n label: string;\n}\n\ninterface groupData {\n value: string;\n label: string;\n profile_id: string;\n}\n\ninterface locationData {\n value: string;\n label: string;\n}\n\nconst Management = () => {\n const [locationsData, setLocationsData] = useState([]);\n const [profilesData, setProfilesData] = useState<\n { value: string; label: string }[]\n >([]);\n const [groupsData2, setGroupsData2] = useState<\n { value: string; label: string; profile_id: string }[]\n >([]);\n const [locationsFilter, setLocationsFilter] = useState([]);\n const [profilesFilter, setProfilesFilter] = useState([]);\n const [groupsFilter, setGroupsFilter] = useState([]);\n const [isActive, setIsActive] = useState(false);\n const [isExpired, setIsExpired] = useState(false);\n const [cookies, setCookies, removeCookies] = useCookies(['token']);\n const token: any = cookies.token;\n const [users, setUsers] = useState([]);\n const [open, setOpen] = useState(false);\n const [dialogOpen, setDialogOpen] = useState([]);\n\n const openDialog = (index: number) => {\n const newDialogOpen = [...dialogOpen];\n newDialogOpen[index] = true;\n setDialogOpen(newDialogOpen);\n };\n\n const closeDialog = (index: number) => {\n const newDialogOpen = [...dialogOpen];\n newDialogOpen[index] = false;\n setDialogOpen(newDialogOpen);\n };\n\n const [pages, setPages] = useState({\n limit: 5,\n nextPage: 'limit=5&offset=5',\n offset: 1,\n pageCount: 5,\n prevPage: '',\n total: '0'\n });\n const [loading, setLoading] = useState(true);\n const [modalLoading, setModalLoading] = useState(false);\n const [modal, setModal] = useState(false);\n const [serviceRequest, setServiceRequest] = useState(false);\n const [confirmation, setConfirmation] = useState(false);\n const [switchConfirmation, setSwitchConfirmation] = useState(false);\n const [modalDate, setModalDate] = useState();\n const [initialModalDate, setInitialModalDate] = useState();\n const [firstName, setFirstName] = useState('');\n const [lastName, setLastName] = useState('');\n const [email, setEmail] = useState('');\n const [location, setLocation] = useState('');\n const [profile, setProfile] = useState('');\n const [group, setGroup] = useState('');\n const [password, setPassword] = useState('');\n const [passwordConfirmation, setPasswordConfirmation] = useState('');\n const [permissions, setPermissions] = useState();\n const [permissions2, setPermissions2] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n });\n const [\n servicePermissions,\n setServicePermissions\n ] = useState();\n // {\n // \"has_permission_service_request\": modalDate.has_permission_service_request,\n // \"card_related_ticket_permission\": modalDate.card_related_ticket_permission,\n // \"game_related_ticket_permission\": modalDate.game_related_ticket_permission,\n // }\n const [onSearch, setOnSearch] = useState(false);\n const history = useHistory();\n const groupsDataFiltered = groupsData2.filter(\n (group) => group.profile_id === profile\n );\n useEffect(() => {\n axios.get(`/api/v1/locations`).then((locationsResponse) => {\n const formattedLocations: { value: string; label: string }[] = [];\n locationsResponse.data.forEach((locationRes: any) => {\n formattedLocations.push({\n value: locationRes.id,\n label: locationRes.display_name\n });\n });\n setLocationsData(formattedLocations);\n });\n\n axios.get(`/api/v1/profiles`).then((profilesResponse) => {\n const formattedProfiles: profileData[] = [];\n profilesResponse.data.forEach((profileRes: any) => {\n formattedProfiles.push({\n value: profileRes.id,\n label: profileRes.name\n });\n });\n setProfilesData(formattedProfiles);\n });\n\n axios.get(`api/v1/groups`).then((groupsResponse) => {\n console.log('g', groupsResponse.data);\n const formattedGroups: groupData[] = [];\n groupsResponse.data.forEach((groupRes: any) => {\n formattedGroups.push({\n value: groupRes.id,\n label: groupRes.name,\n profile_id: groupRes.profile_id\n });\n });\n setGroupsData2(formattedGroups);\n });\n // handleLoad()\n handlePermissions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n async function userExpiredPassword(id: string) {\n await axios\n .post('api/v1/accounts/recover_password_expired', { id })\n .then((r) => handleLoad())\n .catch((e) => console.log(e));\n }\n\n useEffect(() => {\n const locations = locationsFilter.map((location) => location.value);\n const profiles = profilesFilter.map((profile) => profile.value);\n const groups = groupsFilter.map((group) => group.value);\n let data: any;\n\n if (\n locationsFilter?.length &&\n !profilesFilter?.length &&\n !groupsFilter?.length\n )\n data = { type: 'L', locations };\n if (\n !locationsFilter?.length &&\n profilesFilter?.length &&\n !groupsFilter?.length\n )\n data = { type: 'P', profiles };\n if (\n !locationsFilter?.length &&\n !profilesFilter?.length &&\n groupsFilter?.length\n )\n data = { type: 'G', groups };\n if (\n locationsFilter?.length &&\n profilesFilter?.length &&\n !groupsFilter?.length\n )\n data = { type: 'LP', locations, profiles };\n if (\n locationsFilter?.length &&\n !profilesFilter?.length &&\n groupsFilter?.length\n )\n data = { type: 'LG', locations, groups };\n if (\n !locationsFilter?.length &&\n profilesFilter?.length &&\n groupsFilter?.length\n )\n data = { type: 'PG', profiles, groups };\n if (\n locationsFilter?.length &&\n profilesFilter?.length &&\n groupsFilter?.length\n )\n data = { type: 'LPG', locations, profiles, groups };\n\n if (data || isActive || isExpired) handleFilterUsers(data);\n else handleLoad();\n }, [locationsFilter, profilesFilter, groupsFilter, isActive, isExpired]);\n\n async function handleFilterUsers(data: any) {\n try {\n const response: any = await axios.post(`/api/v1/accounts/filter/users`, {\n ...data,\n isActive,\n isExpired\n });\n setOnSearch(true);\n setUsers(response.data.results);\n } catch (error) {\n console.log(error);\n }\n }\n\n async function handleLoad() {\n const response: any = await axios.get(`/api/v1/accounts/?limit=5&offset=0`);\n setUsers(response.data.results);\n setPages(response.data);\n setOnSearch(false);\n setLoading(false);\n }\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n if (decoded.roles.user_management.view === false) {\n alert('Permission denied');\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n } else {\n setPermissions(decoded.modules.users.write);\n setPermissions2(decoded.roles.user_management);\n handleLoad();\n }\n }\n }\n );\n } else {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n if (decoded.modules.users.read === false) {\n alert('Permission denied');\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`;\n }\n } else {\n setPermissions(decoded.modules.users.write);\n setPermissions2(decoded.roles.user_management);\n handleLoad();\n }\n }\n }\n );\n }\n }\n\n async function handleSwitchPage(page: string) {\n setLoading(true);\n const response: any = await axios.get(`/api/v1/accounts/?${page}`);\n setUsers(response.data.results);\n setPages(response.data);\n setLoading(false);\n }\n\n async function handleDeleteUser(id: string) {\n try {\n const data = {\n status_name: 'blocked'\n };\n setModalLoading(true);\n await axios.put(`/api/v1/accounts/change_status/${id}`, data);\n setUsers(users?.filter((user) => user.id !== id));\n setConfirmation(false);\n alert('User deleted');\n setModalLoading(false);\n } catch (error) {\n alert(error);\n setModalLoading(false);\n }\n }\n\n async function handleImpersonate(id: string, status: string) {\n if (['INACTIVE', 'BLOCKED'].includes(status)) {\n return alert('Cannot impersonate Inactives users');\n }\n try {\n setModalLoading(true);\n let response = await axios.get(`/api/v1/accounts/impersonate/${id}`);\n // console.log(response.data);\n // localStorage.setItem('token', response.data.token);\n // removeCookies('token', {domain: 'fegsystem.com'}) // remove this line when update to production\n let domain = '';\n const hostname = window.location.hostname;\n sessionStorage.setItem('originalToken', token);\n if (hostname.includes('localhost')) {\n domain = 'localhost'; // Ambiente local\n } else if (hostname.includes('fegsystem')) {\n domain = '.fegsystem.com'; // Ambiente de homologação\n } else {\n domain = '.systemfeg.com'; // Produção\n }\n\n setCookies('token', response.data.token, { domain });\n history.push('/');\n window.location.reload();\n } catch (error) {\n alert(error);\n setModalLoading(false);\n }\n }\n\n async function exportCSV(e: any) {\n const data = new Date().toISOString().split('').splice(5, 5).join('');\n if (e === 'excel') {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/accounts/export/${e}`, {\n method: 'GET'\n })\n .then(function (response) {\n return response.blob();\n })\n .then(function (blob) {\n saveAs(blob, `export${data}.xlsx`);\n })\n .catch((error) => {\n alert(error);\n });\n } else {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/accounts/export/${e}`, {\n method: 'GET'\n })\n .then(function (response) {\n return response.blob();\n })\n .then(function (blob) {\n saveAs(blob, `export${data}.csv`);\n })\n .catch((error) => {\n alert(error);\n });\n }\n }\n\n function exportCSV2(type: string) {\n const date = new Date().toISOString().split('').splice(5, 5).join('');\n const info = users.map((user) => {\n return {\n First_name: user.first_name,\n Last_name: user.last_name,\n Location_name: user.location_name,\n Profiles_name: user.profiles_name,\n Group_name: user.group_name,\n Status: user.status,\n Email: user.email\n };\n });\n\n if (type === 'csv') {\n const csvString = [\n [\n 'First_name',\n 'Last_name',\n 'Location_name',\n 'Profiles_name',\n 'Group_name',\n 'Status',\n 'Email'\n ],\n ...info.map((row) => [\n row.First_name,\n row.Last_name,\n row.Location_name,\n row.Profiles_name,\n row.Group_name,\n row.Status,\n row.Email\n ])\n ]\n .map((e) => e.join(','))\n .join('\\n');\n const blob = new Blob([csvString]);\n saveAs(blob, `export${date}.csv`);\n } else if (type === 'excel') {\n const workbook = new excel.Workbook();\n const worksheet = workbook.addWorksheet('Report customers');\n worksheet.columns = [\n { header: 'First_name', key: 'first_name' },\n { header: 'Last_name', key: 'last_name' },\n { header: 'Location_name', key: 'location_name' },\n { header: 'Profiles_name', key: 'profiles_name' },\n { header: 'Group_name', key: 'group_name' },\n { header: 'Status', key: 'status' },\n { header: 'Email', key: 'email' }\n ];\n\n info.forEach((row) => {\n worksheet.addRow([\n row.First_name,\n row.Last_name,\n row.Location_name,\n row.Profiles_name,\n row.Group_name,\n row.Status,\n row.Email\n ]);\n });\n workbook.xlsx.writeBuffer().then((data) => {\n var blob = new Blob([data], {\n type:\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n });\n saveAs(blob, `export${date}.xlsx`);\n });\n }\n }\n\n function handleClearInputs() {\n setFirstName('');\n setLastName('');\n setEmail('');\n setLocation('');\n setProfile('');\n setGroup('');\n setPassword('');\n }\n\n async function handleUpdate(id: string) {\n if (firstName === '') {\n setFirstName(initialModalDate!.first_name);\n }\n if (lastName === '') {\n setLastName(initialModalDate!.lastName);\n }\n if (email === '') {\n setEmail(initialModalDate!.email);\n }\n if (location === '') {\n setLocation(initialModalDate!.location_id);\n }\n if (profile === '') {\n setProfile(initialModalDate!.profile_id);\n }\n if (group === '') {\n setGroup(initialModalDate!.group_id);\n }\n if (password) {\n if (password !== passwordConfirmation) {\n return alert(\n \"Passwords don't match, please revisit them and try again.\"\n );\n } else if (password.length < 8) {\n return alert('Password must be at least 8 characters.');\n }\n }\n\n const data = {\n first_name: firstName ? firstName : initialModalDate.first_name,\n last_name: lastName ? lastName : initialModalDate.last_name,\n email: email ? email : initialModalDate.email,\n location_id: location ? location : initialModalDate.location_id,\n profile_id: profile ? profile : initialModalDate.profile_id,\n group_id: group ? group : initialModalDate.group_id,\n password: password ? Md5.init(password) : ''\n };\n try {\n setModalLoading(true);\n await axios.put(`/api/v1/accounts/${id}`, data);\n alert(`User updated`);\n setLoading(true);\n handleLoad();\n setModal(false);\n setModalLoading(false);\n } catch (error) {\n alert('Error updating user');\n setModalLoading(false);\n }\n }\n\n async function handleUpdateServiceRequest(id: string) {\n try {\n console.log(servicePermissions);\n setModalLoading(true);\n await axios.put(\n `/api/v1/accounts/${id}/permission-service-request`,\n servicePermissions\n );\n alert(`User updated`);\n setLoading(true);\n handleLoad();\n setModal(false);\n setModalLoading(false);\n } catch (error) {\n alert('Error updating user');\n setModalLoading(false);\n }\n }\n\n async function handleActived(\n user_status_value: string,\n id: string,\n group_id: string\n ) {\n if (user_status_value === 'ACTIVE') {\n const data = {\n status_name: 'inactive'\n };\n try {\n await axios.put(`/api/v1/accounts/change_status/${id}`, data);\n\n alert(`User inactivated`);\n } catch (error) {\n alert('Error inactivating user');\n }\n setLoading(true);\n handleLoad();\n } else {\n const data = {\n status_name: 'active',\n group_id\n };\n try {\n await axios.put(`/api/v1/accounts/change_status/${id}`, data);\n alert(`User activated`);\n setLoading(true);\n handleLoad();\n } catch (error) {\n alert('Error activating user');\n }\n }\n }\n\n async function handleSearchUser(value: string) {\n if (value.length < 1) {\n handleLoad();\n } else {\n try {\n const response: any = await axios.get(\n `/api/v1/accounts?filter=${value}`\n );\n setOnSearch(true);\n setUsers(response.data.results);\n } catch (error) {\n console.log(error);\n }\n }\n }\n\n function actualPage() {\n if (pages.offset === 1) {\n return 1;\n }\n if (pages.offset === pages.limit) {\n return 2;\n }\n if (pages.offset / pages.limit === 2) {\n return 3;\n }\n if (pages.offset !== pages.limit) {\n return pages.offset / pages.limit + 1;\n }\n }\n\n function parser(actived: string) {\n if (actived === 'ACTIVE') {\n return true;\n } else if (actived === 'INACTIVE') {\n return false;\n }\n }\n\n const handleSelectGroup = (event: any) => {\n setGroup(event.value);\n };\n\n const handleSelectLocation = (event: any) => {\n setLocation(event.value);\n };\n\n const handleSelectProfile = (event: any) => {\n setProfile(event.value);\n };\n\n window.onclick = function (event: any) {\n if (event.target.className === 'modal') {\n setModal(false);\n setConfirmation(false);\n setSwitchConfirmation(false);\n }\n };\n\n function handleLocationsFilter(locations: any) {\n if (locations) {\n setLocationsFilter(locations);\n } else setLocationsFilter([]);\n }\n function handleProfilesFilter(profiles: any) {\n if (profiles) setProfilesFilter(profiles);\n else setProfilesFilter([]);\n }\n function handleGroupsFilter(groups: any) {\n if (groups) setGroupsFilter(groups);\n else setGroupsFilter([]);\n }\n function handleIsActive(event: React.ChangeEvent) {\n setIsActive(event.target.checked);\n }\n function handleIsExpired(event: React.ChangeEvent) {\n setIsExpired(event.target.checked);\n }\n const [anchorEl, setAnchorEl] = React.useState(null);\n const openT = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n return loading ? (\n \n ) : (\n
\n
\n
\n

\n Users {pages.total} total\n

\n
\n
\n\n
\n
\n handleSearchUser(e.target.value)}\n />\n

User Management

\n
\n \n {/* */}\n
\n\n
\n {\n handleLocationsFilter(locations);\n }}\n placeholder='Location Filter'\n className='select-filter-user'\n isClearable\n isMulti\n />\n {\n handleProfilesFilter(profiles);\n }}\n placeholder='Profiles Filter'\n className='select-filter-user'\n isClearable\n isMulti\n />\n {\n handleGroupsFilter(groups);\n }}\n placeholder='Groups Filter'\n className='select-filter-user'\n isClearable\n isMulti\n />\n\n \n }\n label='Only Actives'\n className='align-vertical'\n />\n\n \n }\n label='Only Expireds'\n className='align-vertical'\n />\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {users?.map((user, index) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n closeDialog(index);\n setSwitchConfirmation(true);\n setModalDate(user);\n }}\n >\n \n

Disable User

\n \n
\n
\n \n \n \n {\n setModal(true);\n closeDialog(index);\n setModalDate(user);\n setInitialModalDate(user);\n console.log(user);\n handleClearInputs();\n }}\n >\n \n

Edit User

\n \n
\n
\n \n \n \n {\n closeDialog(index);\n setConfirmation(true);\n setModalDate(user.id);\n }}\n >\n \n

Delete User

\n \n
\n
\n \n \n \n {\n closeDialog(index);\n handleImpersonate(user.id, user.user_status_value);\n }}\n >\n \n

Impersonate

\n \n
\n
\n \n\n {user.password_is_expired && (\n <>\n \n \n {\n closeDialog(index);\n userExpiredPassword(user.id);\n }}\n >\n {' '}\n \n

Resend Password (Expired)

\n \n
\n
\n \n \n )}\n
\n \n
\n ))}\n \n
FIRST NAMELAST NAMEEMAILLOCATIONPROFILESGROUPSTATUSACTIONS
\n user.png\n \n

FIRST NAME:

{user.first_name}\n
\n

LAST NAME:

{user.last_name}\n
\n

EMAIL:

{user.email}\n
\n

LOCATION:

{user.location_name}\n
\n

PROFILE:

{user.profiles_name}\n
\n

GROUP:

{user.group_name}\n
\n

STATUS:

{' '}\n \n {parser(user.user_status_value) ? 'ACTIVATED' : 'DISABLED'}\n \n
\n
\n {\n handleSwitchPage(pages.prevPage);\n }}\n >\n Prev Page\n \n

Page: {actualPage()}

\n {\n handleSwitchPage(pages.nextPage);\n }}\n >\n Next Page\n \n
\n {/* Modal */}\n \n
\n
\n setModal(false)} className='close'>\n ×\n \n

Update User

\n
\n
\n {/*
\n \n \n
*/}\n {serviceRequest ? (\n
\n
\n
\n

Service Request Agent

\n \n setServicePermissions({\n card_related_ticket_permission:\n modalDate.card_related_ticket_permission === ''\n ? modalDate.card_related_ticket_permission\n : servicePermissions?.card_related_ticket_permission,\n game_related_ticket_permission:\n modalDate.game_related_ticket_permission === ''\n ? modalDate.game_related_ticket_permission\n : servicePermissions?.game_related_ticket_permission,\n has_permission_service_request: e?.value\n })\n }\n />\n
\n
\n
\n

Card Related Ticket Permission

\n \n setServicePermissions({\n card_related_ticket_permission: e?.value,\n game_related_ticket_permission:\n modalDate.game_related_ticket_permission === ''\n ? modalDate.game_related_ticket_permission\n : servicePermissions?.game_related_ticket_permission,\n has_permission_service_request:\n modalDate.has_permission_service_request === ''\n ? modalDate.has_permission_service_request\n : servicePermissions?.has_permission_service_request\n })\n }\n />\n
\n
\n
\n

Game Related Ticket Permission

\n \n setServicePermissions({\n card_related_ticket_permission:\n modalDate.card_related_ticket_permission === ''\n ? modalDate.card_related_ticket_permission\n : servicePermissions?.card_related_ticket_permission,\n game_related_ticket_permission: e?.value,\n has_permission_service_request:\n modalDate.has_permission_service_request === ''\n ? modalDate.has_permission_service_request\n : servicePermissions?.has_permission_service_request\n })\n }\n />\n
\n {modalLoading ? (\n \n ) : (\n handleUpdateServiceRequest(modalDate.id)}\n type='button'\n >\n Update\n \n )}\n \n ) : (\n
\n
\n {\n setModalDate({\n ...modalDate,\n first_name: e.target.value\n });\n setFirstName(e.target.value);\n }}\n style={{ marginRight: '8px' }}\n />\n {\n setModalDate({\n ...modalDate,\n last_name: e.target.value\n });\n setLastName(e.target.value);\n }}\n />\n
\n
\n \n \n \n \n
\n
\n
\n {\n setModalDate({ ...modalDate, email: e.target.value });\n setEmail(e.target.value);\n }}\n style={{ marginRight: '8px' }}\n />\n setPassword(e.target.value)}\n />\n setPasswordConfirmation(e.target.value)}\n />\n
\n {modalLoading ? (\n \n ) : (\n handleUpdate(modalDate.id)}\n type='button'\n >\n Update\n \n )}\n \n )}\n
\n
\n
\n {/* Modal Confirmations */}\n \n
\n
\n {/* setConfirmation(false)} className=\"close\">× */}\n

\n The user will be blocked from the system and their information\n will be deleted. Do you want to proceed?\n

\n
\n
\n
\n {modalLoading ? (\n \n ) : (\n <>\n handleDeleteUser(modalDate)}\n className='cancelbtn'\n >\n Yes\n \n setConfirmation(false)}\n className='deletebtn'\n >\n No\n \n \n )}\n \n
\n
\n
\n \n
\n
\n {/* setSwitchConfirmation(false)} className=\"close\">× */}\n

Are you sure you want to activate/disable the user?

\n
\n
\n
\n {\n handleActived(\n modalDate.user_status_value,\n modalDate.id,\n modalDate.group_id\n );\n setSwitchConfirmation(false);\n }}\n className='cancelbtn'\n >\n Yes\n \n {\n setSwitchConfirmation(false);\n }}\n className='deletebtn'\n >\n No\n \n\n \n
\n
\n \n \n \n );\n};\n\nexport default Management;\n","import React, {useEffect} from 'react';\nimport ReactGA from 'react-ga';\nimport Management from '../../components/UsersManagement';\n\nconst UsersManagement: React.FC = () => {\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1')\n ReactGA.pageview(window.location.pathname + window.location.search)\n })\n\n return (\n \n )\n}\n\nexport default UsersManagement;\n","import styled from 'styled-components';\n\nexport const EmailEditorContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 0px;\n width: 100%;\n height: 500px;\n background-color: #f5f5f5;\n border-radius: 5px;\n\n div#editor-container {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const UsersEmailTest = styled.div`\n margin-left: 30px;\n select {\n max-width: 250px;\n margin-top: 10px;\n padding: 10px;\n }\n ul {\n li {\n display: flex;\n align-items: center;\n gap: 10px;\n background-color: aliceblue;\n min-width: 300px;\n width: min-content;\n max-width: 500px;\n padding: 10px;\n margin-bottom: 5px;\n }\n }\n .btn-remove-user {\n border: none;\n margin: 0;\n padding: 0px;\n background-color: transparent;\n width: 20px;\n margin-top: 6px;\n }\n`;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport { green, grey } from '@material-ui/core/colors';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox';\nimport { EditorState, convertToRaw, ContentState } from 'draft-js';\nimport { Editor } from 'react-draft-wysiwyg';\nimport draftToHtml from 'draftjs-to-html';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport axios from '../../services/axios';\nimport jwt from 'jsonwebtoken';\nimport { useCookies } from 'react-cookie';\nimport { BiTrash } from 'react-icons/bi';\n\nimport Loader from '../Loader';\n\nimport Select from 'react-select';\nimport { UsersEmailTest } from '../Newsletter/styled';\n// import { groupsData } from '../../data';\n\nconst GreenCheckbox = withStyles({\n root: {\n color: grey[400],\n '&$checked': {\n color: green[600]\n }\n },\n checked: {}\n})((props: CheckboxProps) => );\n\ninterface profileData {\n value: string;\n label: string\n}\n\n\n\nconst NewAnnouncement: React.FC = () => {\n const [locationsData, setLocationsData] = useState<\n { value: string; label: string }[]\n >([]);\n const [profilesData, setprofilesData] = useState([])\n const [groupsData, setgroupsData] = useState<{ value: string; label: string; profile_id: string }[]>([])\n const [cookies, ,] = useCookies(['token']);\n const token: any = cookies.token;\n const [loaded, setLoaded] = useState(true);\n const [checked, setChecked] = useState(false);\n const [locationChecked, setLocationChecked] = useState(false);\n const [optEveryone, setOptEveryone] = useState(false);\n const [group, setGroup] = useState([]);\n const [profile, setProfile] = useState([]);\n const [location, setLocation] = useState([]);\n const [imageFile, setImageFile] = useState({\n selectedFile: '',\n type: ''\n });\n const [imageName, setImageName] = useState('');\n const [description, setDescription] = useState(\n EditorState.createEmpty()\n );\n const [subject, setSubject] = useState('');\n const [confirmation, setConfirmation] = useState(false);\n const [modalLoading, setModalLoading] = useState(false);\n const [myPreview, setMyPreview] = useState(false);\n\n const filteredGroupsData = groupsData.filter((group) => profile ? profile.map((profile) => profile.value).includes(group.profile_id) : false)\n const history = useHistory();\n const [handleFileDoc, setHandleFileDoc] = useState({\n selectedFile: '',\n type: ''\n });\n const [strings, setStrings] = useState([]);\n const [inputValue, setInputValue] = useState('');\n\n const [notifyMobile, setNotifyMobile] = useState(false);\n const [notifyDesktop, setNotifyDesktop] = useState(false);\n\n const [emailChecked, setEmailChecked] = useState(false);\n const [smsChecked, setSmsChecked] = useState(false);\n\n\n\n\n\n\n const addString = () => {\n if (inputValue.trim() !== '') {\n setStrings([...strings, inputValue]);\n setInputValue('');\n }\n };\n\n\n const removeString = (index: number) => {\n setStrings(strings.filter((_, i) => i !== index));\n };\n\n\n const handleTestEmail = async () => {\n\n\n const htmlDescription = draftToHtml(\n convertToRaw(description.getCurrentContent())\n );\n console.log(strings)\n\n axios.post('/api/v1/announcements/email-test', {\n subject: subject,\n info: htmlDescription,\n doc: handleFileDoc,\n email: strings,\n image: imageFile\n }).then(() => {\n alert(\"Email sent\")\n\n })\n\n }\n useEffect(() => {\n axios.get(`/api/v1/locations`).then((locationsResponse) => {\n const formattedLocations: { value: string; label: string }[] = [];\n locationsResponse.data.forEach((locationRes: any) => {\n formattedLocations.push({\n value: locationRes.id,\n label: locationRes.display_name\n });\n });\n setLocationsData(formattedLocations);\n });\n\n axios.get(`api/v1/profiles`).then((profiles) => {\n const formattedProfiles: { value: string; label: string }[] = []\n profiles.data.forEach((profile: any) => {\n formattedProfiles.push({\n value: profile.id,\n label: profile.name\n })\n })\n setprofilesData(formattedProfiles)\n })\n\n axios.get(`api/v1/groups`).then((groups) => {\n const formattedGroups: { value: string; label: string; profile_id: string }[] = []\n groups.data.forEach((group: any) => {\n formattedGroups.push({\n value: group.id,\n label: group.name,\n profile_id: group.profile_id\n })\n })\n setgroupsData(formattedGroups)\n })\n\n handlePermissions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const handlePastedText = (\n text: string,\n html?: string | undefined,\n editorState?: EditorState\n ): boolean => {\n if (text) {\n // Insere apenas o texto puro no estado do editor\n const contentState = editorState?.getCurrentContent() || EditorState.createEmpty().getCurrentContent();\n const newContentState = ContentState.createFromText(\n contentState.getPlainText() + text // Adiciona o texto colado ao conteúdo existente\n );\n\n setDescription(\n EditorState.push(editorState || EditorState.createEmpty(), newContentState, 'insert-characters')\n );\n return true; // Indica que o evento foi tratado\n }\n return false; // Permite o comportamento padrão se nenhuma ação for realizada\n };\n const getTextFromEditorState = () => {\n const contentState = description.getCurrentContent();\n const rawText = convertToRaw(contentState);\n const text = rawText.blocks.map(block => (!block.text.trim() && '\\n') || block.text).join('\\n');\n return text\n };\n\n async function createAnnouncement() {\n const id = localStorage.getItem('id');\n\n if (\n optEveryone === false &&\n checked === false &&\n locationChecked === false\n ) {\n setConfirmation(false);\n return alert('Invalid announcement type');\n }\n\n if (subject === '') {\n setConfirmation(false);\n return alert('Invalid subject');\n }\n\n if (description._immutable._map.length <= 7) {\n setConfirmation(false);\n return alert('Invalid description');\n }\n\n const htmlDescription = draftToHtml(\n convertToRaw(description.getCurrentContent())\n );\n let created = new Date();\n const data = {\n groups_ids: group,\n owner_id: id,\n locations_ids: location,\n text: getTextFromEditorState(),\n image: imageFile,\n subject: subject,\n info: htmlDescription,\n createdAt: created.toString().split('').splice(4, 17).join(''),\n doc: handleFileDoc,\n notify_mobile: notifyMobile,\n notify_desktop: notifyDesktop,\n sms_checked: smsChecked,\n email_checked: emailChecked\n };\n\n if (subject !== undefined && description !== undefined) {\n try {\n setModalLoading(true);\n await axios.post(`/api/v1/announcements`, data).then((res) => {\n console.log(res)\n });\n setConfirmation(false);\n alert('Announcement created');\n history.push(`/announcements`);\n } catch (error) {\n setModalLoading(false);\n alert(error);\n }\n }\n }\n\n function handlePermissions() {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n if (decoded.roles.announcements.add === false) {\n alert('Permission denied');\n window.location.href = `${process.env.REACT_APP_URL}`;\n } else {\n setLoaded(false);\n }\n }\n }\n );\n }\n\n function handleChange() {\n if (checked === false) {\n setChecked(true);\n } else if (checked === true) {\n setChecked(false);\n }\n }\n\n function handleLocation() {\n if (locationChecked === false) {\n setLocationChecked(true);\n } else if (locationChecked === true) {\n setLocationChecked(false);\n }\n }\n\n function handleEveryone() {\n if (optEveryone === false) {\n setOptEveryone(true);\n setGroup([]);\n setLocation([]);\n } else if (optEveryone === true) {\n setOptEveryone(false);\n }\n }\n\n function fileSelect(props: any) {\n if (props[0] === undefined) {\n setImageName('');\n setImageFile({\n selectedFile: '',\n type: ''\n });\n return;\n }\n setImageName(props[0].name);\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setImageFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n function docSelect(props: any) {\n if (props[0] === undefined) {\n setHandleFileDoc({\n selectedFile: '',\n type: ''\n });\n return;\n }\n\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setHandleFileDoc({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n\n const handleSelectGroup = (event: any) => {\n setGroup(event);\n };\n\n const handleSelectProfile = (event: any) => {\n setProfile(event);\n };\n\n const handleSelectLocation = (event: any) => {\n setLocation(event);\n };\n\n window.onclick = function (event: any) {\n if (event.target.className === 'modal') {\n setConfirmation(false);\n }\n };\n\n const groups = (\n
\n }\n label='Specific Group'\n checked={checked ? true : false}\n />\n\n \n\n \n
\n );\n\n const locations = (\n
\n }\n label='Specific Location'\n checked={locationChecked ? true : false}\n />\n\n \n
\n );\n\n const myModal = (\n \n
\n
\n setConfirmation(false)} className='close'>\n ×\n \n

\n Your announcement is about to be published. When publishing an\n announcement all selected users will receive an email and will be\n able to read the announcement on their pages. Would you like to\n publish it now?\n

\n
\n
\n
\n {modalLoading ? (\n \n ) : (\n <>\n setConfirmation(false)}\n className='cancelbtn'\n >\n No\n \n \n Yes\n \n \n )}\n \n
\n
\n \n );\n\n const preview = (\n
\n setMyPreview(false)} className='close'>\n ×\n \n

{subject}

\n ')\n .replace(/

<\\/p>/g, '
')\n }}\n >

\n \n );\n\n return loaded ? (\n \n ) : (\n
\n

FEG Announcement

\n
\n }\n label='Everyone'\n disabled={checked || locationChecked ? true : false}\n className='create-announcement-everyone'\n />\n }\n label='Specific Group'\n style={{ display: checked ? 'none' : 'block' }}\n checked={checked ? true : false}\n disabled={optEveryone ? true : false}\n />\n {checked ? groups : <>}\n }\n label='Specific Location'\n style={{ display: locationChecked ? 'none' : 'block' }}\n checked={locationChecked ? true : false}\n disabled={optEveryone ? true : false}\n />\n {locationChecked ? locations : <>}\n
\n
\n

Notify

\n }\n label='Push Notification'\n color='primary'\n value={notifyMobile}\n onChange={() => setNotifyMobile(!notifyMobile)}\n />\n }\n label='Website Notification'\n color='primary'\n value={notifyDesktop}\n onChange={() => setNotifyDesktop(!notifyDesktop)}\n />\n\n\n\n }\n label='Email'\n color='primary'\n value={emailChecked}\n onChange={() => setEmailChecked(!emailChecked)}\n />\n }\n label='SMS'\n color='primary'\n value={smsChecked}\n onChange={() => setSmsChecked(!smsChecked)}\n />\n
\n
\n

Subject

\n setSubject(e.target.value)}\n />\n\n

Attachment

\n docSelect(e.target.files)}\n />\n\n

Picture

\n
\n \n +\n \n = 1 && imageName !== undefined ? '' : 'none',\n padding: '7px 10px'\n }}\n htmlFor='inputFileImg'\n >\n {imageName}\n \n fileSelect(event.target.files)}\n />\n

images less than 4 mb only

\n
\n

Announcement

\n

(Please make sure to include full links in the text to carry over correctly for SMS Announcements)

\n {\n setDescription(e);\n }}\n />\n\n \n
\n

Email Test

\n setInputValue(e.target.value)}\n placeholder=\"Email tester list\"\n style={{\n padding: '10px',\n marginRight: '10px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n }}\n />\n addString()}\n style={{\n padding: '10px 10px',\n backgroundColor: '#4CAF50',\n color: 'white',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n width: '150px',\n }}\n >\n Add test users\n \n \n
\n
    \n\n {strings.map((str, index) => (\n \n {str}\n \n \n ))}\n
\n
\n
\n\n \n {myModal}\n {preview}\n {\n setMyPreview(myPreview ? false : true);\n }}\n >\n Preview Content\n \n
\n );\n};\n\nexport default NewAnnouncement;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport { green, grey } from '@material-ui/core/colors';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox';\nimport { EditorState, convertToRaw, ContentState, AtomicBlockUtils } from 'draft-js';\nimport { Editor } from 'react-draft-wysiwyg';\nimport draftToHtml from 'draftjs-to-html';\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\nimport axios from '../../services/axios';\nimport jwt from 'jsonwebtoken';\nimport { useCookies } from 'react-cookie'\n\nimport Loader from '../Loader';\n\nimport Select from 'react-select';\nimport { EmailEditorContainer, UsersEmailTest } from '../Newsletter/styled';\nimport { BiTrash } from 'react-icons/bi';\nimport { CiImageOn } from 'react-icons/ci';\n\nconst GreenCheckbox = withStyles({\n root: {\n color: grey[400],\n '&$checked': {\n color: green[600],\n },\n },\n checked: {},\n})((props: CheckboxProps) => );\n\nconst NewAnnouncement: React.FC = () => {\n const [imageUrlFile, setImageUrlFile] = useState(null);\n const [cookies, ,] = useCookies([\"token\"]);\n const token: any = cookies.token\n const [loaded, setLoaded] = useState(true);\n const [checked, setChecked] = useState(false);\n const [locationChecked, setLocationChecked] = useState(false);\n const [emailChecked, setEmailChecked] = useState(false);\n const [smsChecked, setSmsChecked] = useState(false);\n const [optEveryone, setOptEveryone] = useState(false);\n const [group, setGroup] = useState([])\n const [location, setLocation] = useState([])\n const [imageFile, setImageFile] = useState({\n selectedFile: \"\",\n type: \"\"\n })\n const [imageName, setImageName] = useState(\"\")\n const [description, setDescription] = useState(EditorState.createEmpty())\n const [subject, setSubject] = useState(\"\")\n const [confirmation, setConfirmation] = useState(false)\n const [modalLoading, setModalLoading] = useState(false)\n const [myPreview, setMyPreview] = useState(false)\n const [locationsInfo, setLocationsInfo] = useState([]);\n const [rolesInfo, setRolesInfo] = useState([]);\n const [handleFileDoc, setHandleFileDoc] = useState({\n selectedFile: '',\n type: ''\n });\n const [notifyMobile, setNotifyMobile] = useState(false);\n const [notifyDesktop, setNotifyDesktop] = useState(false);\n const [strings, setStrings] = useState([]);\n const [inputValue, setInputValue] = useState('');\n const [editorType, setEditorType] = useState('default'); // New state for editor type\n const history = useHistory();\n useEffect(() => {\n handlePermissions()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n const getTextFromEditorState = () => {\n const contentState = description.getCurrentContent();\n const rawText = convertToRaw(contentState);\n const text = rawText.blocks.map(block => (!block.text.trim() && '\\n') || block.text).join('\\n');\n return text\n };\n\n const fetchLocations = async () => {\n const data = await axios.get('/api/v1/contacts/locations');\n setLocationsInfo(data.data);\n }\n\n const fetchGroups = async () => {\n const data = await axios.get('/api/v1/contacts/roles');\n setRolesInfo(data.data);\n }\n const addString = () => {\n if (inputValue.trim() !== '') {\n setStrings([...strings, inputValue]);\n setInputValue('');\n }\n };\n const insertImage = (imgUrl: string) => {\n const contentState = description.getCurrentContent();\n\n // Cria uma entidade para a imagem\n const contentStateWithEntity = contentState.createEntity(\n 'IMAGE', // Tipo da entidade\n 'IMMUTABLE', // Tipo de mutabilidade\n { src: imgUrl, class: 'img-field' } // Dados associados\n );\n\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n\n // Usa o AtomicBlockUtils para inserir a entidade no editor\n const newEditorState = AtomicBlockUtils.insertAtomicBlock(\n description,\n entityKey,\n ' '\n );\n\n // Atualiza o estado do editor\n setDescription(\n EditorState.forceSelection(newEditorState, newEditorState.getSelection())\n );\n\n };\n const createImageUrl = async (file: any) => {\n const dataFile = new FormData();\n console.log(imageUrlFile);\n if (file) {\n dataFile.append('file', file);\n }\n await axios\n .post('/api/v1/latest-news/uploadFile', dataFile, { timeout: 0 })\n .then((res) => {\n console.log(res.data);\n insertImage(res.data.url);\n });\n };\n const handleFileImageUrl = (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n createImageUrl(event.target.files[0]);\n }\n };\n const removeString = (index: number) => {\n setStrings(strings.filter((_, i) => i !== index));\n };\n const exportHtmlAsync = () => {\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window.unlayer.exportHtml((data) => {\n const { html } = data;\n if (html) {\n resolve(html);\n } else {\n reject(\"Failed to export HTML\");\n }\n });\n });\n };\n const handleTestEmail = async () => {\n let HtmlText = \"\";\n if (editorType !== 'default') {\n\n try {\n HtmlText = await exportHtmlAsync() as string;\n console.log(\"HTML :\", HtmlText);\n } catch (error) {\n alert(\"Error HTML: \" + error);\n return;\n }\n }\n const htmlDescription = draftToHtml(\n convertToRaw(description.getCurrentContent())\n );\n console.log(strings)\n\n\n axios.post('/api/v1/announcements/email-test', {\n subject: subject,\n info: editorType === 'default' ? htmlDescription : HtmlText,\n doc: handleFileDoc,\n email: strings,\n image: imageFile,\n editor_type: editorType,\n }).then(() => {\n alert(\"Email sent\")\n\n })\n\n }\n const handlePastedText = (\n text: string,\n html?: string | undefined,\n editorState?: EditorState\n ): boolean => {\n if (text) {\n // Insere apenas o texto puro no estado do editor\n const contentState = editorState?.getCurrentContent() || EditorState.createEmpty().getCurrentContent();\n const newContentState = ContentState.createFromText(\n contentState.getPlainText() + text // Adiciona o texto colado ao conteúdo existente\n );\n\n setDescription(\n EditorState.push(editorState || EditorState.createEmpty(), newContentState, 'insert-characters')\n );\n return true; // Indica que o evento foi tratado\n }\n return false; // Permite o comportamento padrão se nenhuma ação for realizada\n };\n\n\n useEffect(() => {\n // Adiciona o script Unlayer dinamicamente\n const script = document.createElement('script');\n script.src = 'https://editor.unlayer.com/embed.js';\n script.async = true;\n script.onload = () => {\n // Inicializa o editor\n // @ts-ignore\n window.unlayer.init({\n id: 'editor-container',\n projectId: 264208, // Substitua pelo seu projectId se tiver um\n displayMode: 'email',\n });\n\n };\n document.body.appendChild(script);\n\n // Remove o script ao desmontar o componente\n return () => {\n document.body.removeChild(script);\n };\n }, [editorType]);\n\n const publishAnnouncement = async () => {\n const id = localStorage.getItem('owner_id');\n let users = [];\n\n const formattedLocation = [];\n if (group) {\n for (let index = 0; index < group.length; index++) {\n formattedLocation.push(group[index].value)\n }\n }\n const formattedRoles = [];\n if (location) {\n for (let index = 0; index < location.length; index++) {\n formattedRoles.push(location[index].value)\n }\n }\n\n if (optEveryone) {\n const req = await axios.get('/api/v1/contacts');\n users = req.data;\n }\n\n if (checked && !locationChecked) {\n const req = await axios.post('/api/v1/contacts/byLocation', { location: formattedLocation });\n users = req.data;\n }\n\n if (locationChecked && !checked) {\n const req = await axios.post('/api/v1/contacts/byRole', { role: formattedRoles });\n users = req.data;\n }\n\n if (checked && locationChecked) {\n const locationsReq = await axios.post('/api/v1/contacts/byLocation', { location: formattedLocation });\n let users2 = locationsReq.data\n let filteredUsers = []\n for (let index = 0; index < users2.length; index++) {\n if (location) {\n for (let counter = 0; counter < location.length; counter++) {\n if (users2[index].role === location[counter].value) {\n filteredUsers.push(users2[index])\n }\n }\n }\n }\n if (filteredUsers.length > 0) users = filteredUsers\n }\n\n let HtmlText = \"\";\n if (editorType !== 'default') {\n\n try {\n HtmlText = await exportHtmlAsync() as string;\n console.log(\"HTML :\", HtmlText);\n } catch (error) {\n alert(\"Error HTML: \" + error);\n return;\n }\n }\n // const blocks = convertToRaw(description.getCurrentContent()).blocks;\n // const infoValue = blocks.map(block => (!block.text.trim() && '\\n') || block.text).join('\\n');\n const htmlDescription = draftToHtml(convertToRaw(description.getCurrentContent()))\n let created = new Date()\n const data = {\n groups_ids: [],\n owner_id: id,\n locations_ids: [],\n image: imageFile,\n subject: subject,\n info: editorType === 'default' ? htmlDescription : HtmlText,\n text: editorType === 'default' ? getTextFromEditorState() : HtmlText,\n editor_type: editorType,\n users: users,\n createdAt: created.toString().split(\"\").splice(4, 17).join(\"\"),\n emailChecked,\n smsChecked,\n doc: handleFileDoc,\n notify_mobile: notifyMobile,\n notify_desktop: notifyDesktop\n }\n\n if (subject !== undefined\n && description !== undefined) {\n try {\n if (users.length > 0) {\n setModalLoading(true)\n await axios.post(`/api/v1/announcements/ap`, data)\n setConfirmation(false)\n alert(\"Announcement created\")\n history.push('/announcements')\n window.location.reload()\n } else {\n alert(\"0 contacts found.\")\n }\n } catch (error) {\n setModalLoading(false)\n alert(error)\n }\n }\n\n }\n\n async function createAnnouncement() {\n const id = localStorage.getItem('id');\n\n if (optEveryone === false && checked === false && locationChecked === false) {\n setConfirmation(false)\n return alert(\"Invalid announcement type\")\n }\n\n if (subject === \"\") {\n setConfirmation(false)\n return alert(\"Invalid subject\")\n }\n\n if (description._immutable._map.length <= 7) {\n setConfirmation(false)\n return alert(\"Invalid description\")\n }\n\n const htmlDescription = draftToHtml(convertToRaw(description.getCurrentContent()))\n let created = new Date()\n const data = {\n groups_ids: group,\n owner_id: id,\n locations_ids: location,\n image: imageFile,\n subject: subject,\n info: htmlDescription,\n createdAt: created.toString().split(\"\").splice(4, 17).join(\"\"),\n doc: handleFileDoc\n }\n\n if (subject !== undefined\n && description !== undefined) {\n try {\n setModalLoading(true)\n await axios.post(`/api/v1/announcements`, data)\n setConfirmation(false)\n alert(\"Announcement created\")\n history.push(`/announcements`)\n } catch (error) {\n setModalLoading(false)\n alert(error)\n }\n }\n }\n function docSelect(props: any) {\n if (props[0] === undefined) {\n setHandleFileDoc({\n selectedFile: '',\n type: ''\n });\n return;\n }\n\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setHandleFileDoc({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n\n function handlePermissions() {\n jwt.verify(token!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.announcements.add === false) {\n alert(\"Permission denied\")\n window.location.href = `${process.env.REACT_APP_URL}`\n } else {\n setLoaded(false)\n }\n }\n })\n }\n\n function handleChange() {\n if (checked === false) {\n setGroup([])\n setChecked(true)\n } else if (checked === true) {\n setChecked(false)\n }\n }\n\n function handleLocation() {\n if (locationChecked === false) {\n setLocation([])\n setLocationChecked(true)\n } else if (locationChecked === true) {\n setLocationChecked(false)\n }\n }\n\n function handleEveryone() {\n if (optEveryone === false) {\n setOptEveryone(true)\n setGroup([])\n setLocation([])\n } else if (optEveryone === true) {\n setOptEveryone(false)\n }\n }\n\n function fileSelect(props: any) {\n if (props[0] === undefined) {\n setImageName(\"\")\n setImageFile({\n selectedFile: \"\",\n type: \"\",\n })\n return\n }\n setImageName(props[0].name)\n const reader = new FileReader()\n reader.readAsDataURL(props[0])\n\n reader.onload = (e: any) => {\n setImageFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n })\n }\n }\n\n const handleSelectGroup = (event: any) => {\n setGroup(event)\n };\n\n const handleSelectLocation = (event: any) => {\n setLocation(event)\n };\n\n window.onclick = function (event: any) {\n if (event.target.className === 'modal') {\n setConfirmation(false)\n }\n }\n\n const groups = (\n
\n\n }\n label=\"Specific Location\"\n checked={checked ? true : false}\n />\n\n \n
\n )\n\n const locations = (\n
\n }\n label=\"Job Title (Group)\"\n checked={locationChecked ? true : false}\n />\n\n \n\n
\n )\n\n\n const myModal = (\n
\n
\n
\n setConfirmation(false)} className=\"close\">×\n

\n Your announcement is about to be published.\n When publishing an announcement all selected users will receive an email and will be able\n to read the announcement on their pages.\n Would you like to publish it now?\n

\n
\n
\n
\n {(modalLoading ? \n :\n <>\n \n \n\n \n )}\n \n
\n
\n
)\n\n const preview = (\n
\n setMyPreview(false)} className=\"close\">×\n

{subject}

\n ')\n .replace(/

<\\/p>/g, '
')\n }}\n >

\n )\n\n return (\n loaded ? \n :\n
\n

FEG Announcement

\n
\n

Target

\n }\n label=\"Everyone\"\n disabled={checked || locationChecked ? true : false}\n className='create-announcement-everyone'\n />\n }\n label=\"Specific Location\"\n style={{ display: checked ? \"none\" : \"block\" }}\n checked={checked ? true : false}\n onClick={() => fetchLocations()}\n disabled={optEveryone ? true : false}\n />\n {\n (checked ? groups : <>)\n }\n }\n label=\"Job Title (Group)\"\n style={{ display: locationChecked ? \"none\" : \"block\" }}\n checked={locationChecked ? true : false}\n onClick={() => fetchGroups()}\n disabled={optEveryone ? true : false}\n />\n {\n (locationChecked ? locations : <>)\n }\n\n
\n
\n

Channels

\n setEmailChecked(!emailChecked)}\n name=\"checkedG\"\n />}\n label=\"Email\"\n // style={{ display: checked ? \"none\" : \"block\" }}\n // checked={checked ? true : false}\n // disabled={optEveryone ? true : false}\n />\n {/* {\n (checked ? groups : <>)\n } */}\n setSmsChecked(!smsChecked)}\n name=\"checkedA\"\n />}\n label=\"SMS\"\n // style={{ display: locationChecked ? \"none\" : \"block\" }}\n // checked={locationChecked ? true : false}\n // disabled={optEveryone ? true : false}\n />\n {/* {\n (locationChecked ? locations : <>)\n } */}\n\n }\n label='Push Notification'\n color='primary'\n value={notifyMobile}\n onChange={() => setNotifyMobile(!notifyMobile)}\n />\n }\n label='Website Notification'\n color='primary'\n value={notifyDesktop}\n onChange={() => setNotifyDesktop(!notifyDesktop)}\n />\n
\n
\n

Subject

\n setSubject(e.target.value)}\n />\n

Attachment

\n docSelect(e.target.files)}\n />\n

Picture

\n
\n \n \n fileSelect(event.target.files)}\n />\n

images less than 4 mb only

\n
\n

Editor Type

\n setEditorType(e.target.value)}\n style={{\n padding: '10px',\n marginBottom: '20px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n }}\n >\n \n \n \n {editorType === 'default' ? (\n <>\n

Announcement

\n \n \n {}\n \n\n {\n handleFileImageUrl(file);\n }}\n />\n \n ]}\n onEditorStateChange={e => { setDescription(e) }}\n />\n \n ) : (\n \n
\n
\n )}\n \n
\n

Email Test

\n setInputValue(e.target.value)}\n placeholder=\"Email tester list\"\n style={{\n padding: '10px',\n marginRight: '10px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n }}\n />\n addString()}\n style={{\n padding: '10px 10px',\n backgroundColor: '#4CAF50',\n color: 'white',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n width: '150px',\n }}\n >\n Add test users\n \n \n
\n
    \n\n {strings.map((str, index) => (\n \n {str}\n \n \n ))}\n
\n
\n
\n {/* */}\n \n {\n myModal\n }\n {\n preview\n }\n {\n editorType === 'default' ? (\n
\n\n \n
\n ) : (\n <>\n )\n }\n
\n );\n}\n\nexport default NewAnnouncement;","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport { green, grey } from '@material-ui/core/colors';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox';\nimport { EditorState, convertToRaw } from 'draft-js';\nimport { Editor } from 'react-draft-wysiwyg';\nimport draftToHtml from 'draftjs-to-html';\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\nimport axios from '../../services/axios';\nimport jwt from 'jsonwebtoken';\nimport { useCookies } from 'react-cookie'\nimport Loader from '../Loader';\n\nconst GreenCheckbox = withStyles({\n root: {\n color: grey[400],\n '&$checked': {\n color: green[600],\n },\n },\n checked: {},\n})((props: CheckboxProps) => );\n\nconst NewAnnouncement: React.FC = () => {\n const [cookies, ,] = useCookies([\"token\"]);\n const token: any = cookies.token\n const [loaded, setLoaded] = useState(true);\n const [checked, setChecked] = useState(false);\n const [imageFile, setImageFile] = useState({\n selectedFile: \"\",\n type: \"\"\n })\n const [info, setInfo] = useState('');\n const [imageName, setImageName] = useState(\"\")\n const [description, setDescription] = useState(EditorState.createEmpty())\n const [subject, setSubject] = useState(\"\")\n const [confirmation, setConfirmation] = useState(false)\n const [modalLoading, setModalLoading] = useState(false)\n const [myPreview, setMyPreview] = useState(false)\n\n const history = useHistory();\n\n useEffect(() => {\n handlePermissions()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const getTextFromEditorState = () => {\n const contentState = description.getCurrentContent();\n const rawText = convertToRaw(contentState);\n const text = rawText.blocks.map(block => (!block.text.trim() && '\\n') || block.text).join('\\n');\n return text\n };\n\n async function createAnnouncement() {\n const id = localStorage.getItem('id');\n\n if (subject === \"\") {\n setConfirmation(false)\n return alert(\"Invalid subject\")\n }\n\n if (description._immutable._map.length <= 7) {\n setConfirmation(false)\n return alert(\"Invalid description\")\n }\n\n const htmlDescription = draftToHtml(convertToRaw(description.getCurrentContent()))\n let created = new Date()\n const data = {\n groups_ids: [],\n owner_id: id,\n locations_ids: [],\n image: imageFile,\n subject: subject,\n info: htmlDescription,\n text: getTextFromEditorState(),\n createdAt: created.toString().split(\"\").splice(4, 17).join(\"\")\n }\n\n if (subject !== undefined\n && description !== undefined) {\n try {\n setModalLoading(true)\n await axios.post(`/api/v1/announcements/ab`, data)\n setConfirmation(false)\n alert(\"Announcement created\")\n history.push(`/announcements`)\n } catch (error) {\n setModalLoading(false)\n alert(error)\n }\n }\n }\n\n function handlePermissions() {\n jwt.verify(token!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.announcements.add === false) {\n alert(\"Permission denied\")\n window.location.href = `${process.env.REACT_APP_URL}`\n } else {\n setLoaded(false)\n }\n }\n })\n }\n\n function handleChange() {\n if (checked === false) {\n setChecked(true)\n } else if (checked === true) {\n setChecked(false)\n }\n }\n\n function fileSelect(props: any) {\n if (props[0] === undefined) {\n setImageName(\"\")\n setImageFile({\n selectedFile: \"\",\n type: \"\",\n })\n return\n }\n setImageName(props[0].name)\n const reader = new FileReader()\n reader.readAsDataURL(props[0])\n\n reader.onload = (e: any) => {\n setImageFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n })\n }\n }\n\n window.onclick = function (event: any) {\n if (event.target.className === 'modal') {\n setConfirmation(false)\n }\n }\n\n const myModal = (\n
\n
\n
\n setConfirmation(false)} className=\"close\">×\n

\n Your announcement is about to be published.\n When you publish this announcement, all the contacts inside the Benefits\n eligible group will receive a notification about it via e-mail and sms.\n Would you like to publish it now?\n

\n
\n
\n
\n {(modalLoading ? \n :\n <> \n \n \n \n )}\n \n
\n
\n
)\n\n const preview = (\n
\n setMyPreview(false)} className=\"close\">×\n

{subject}

\n
\n
)\n\n return (\n loaded ? \n :\n
\n

FEG Announcement

\n
\n

Subject

\n setSubject(e.target.value)}\n />\n

Picture

\n
\n \n \n fileSelect(event.target.files)}\n />\n

images less than 4 mb only

\n
\n

Announcement

\n

(Please make sure to include full links in the text to carry over correctly for SMS Announcements)

\n { \n setDescription(e) \n }}\n />\n
\n \n {\n myModal\n }\n {\n preview\n }\n \n
\n );\n}\n\nexport default NewAnnouncement;","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\nexport const MainContainer = styled.div`\n display: flex;\n gap: 20px;\n margin: 0 auto;\n width: 86%;\n @media (max-width: 768px) {\n gap: 0;\n }\n`;\nexport const PreviewContent = styled.div`\n margin: 20px;\n display: flex;\n flex-direction: column;\n padding: 0;\n h1 {\n margin: 0;\n padding: 0;\n color: ${Theme.primary};\n }\n h1.primary {\n color: ${Theme.grey};\n }\n\n img {\n max-width: 300px;\n object-fit: cover;\n }\n`;\nexport const LoadingContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n font-size: 1.5rem;\n color: ${Theme.primary};\n font-weight: bold;\n text-align: center;\n margin-top: 20px;\n p {\n margin-bottom: 20px;\n }\n`;\nexport const ContainerForm = styled.div`\n width: 40%;\n .new-announcement-latest {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n\n width: 100%;\n\n height: 100%;\n background: white;\n border-radius: 20px;\n\n h1 {\n font-weight: bold;\n color: ${Theme.primary};\n margin-left: 2rem;\n margin-top: 1rem;\n }\n\n .utils {\n margin-left: 2rem;\n\n input[type='file'] {\n display: none;\n }\n\n .imageInput label {\n cursor: pointer;\n align-items: center;\n border-radius: 10px;\n font-size: 20px;\n background-color: #efefef;\n color: #4c4c4c;\n padding: 7px 150px;\n }\n\n .imageInput p {\n color: $grey;\n margin: 0.7rem 0 0 0.2rem;\n }\n\n textarea {\n align-items: center;\n width: 100%;\n max-width: 450px;\n min-height: 20rem;\n box-sizing: border-box;\n border: 1px solid transparent;\n border-radius: 10px;\n font-size: 16px;\n background-color: #efefef;\n background-position: 10px 10px;\n background-repeat: no-repeat;\n padding: 5px 20px 12px 40px;\n }\n\n h4 {\n margin: 1rem 0;\n }\n }\n\n .utils input[type='text'],\n .typefile {\n align-items: center;\n width: 100%;\n max-width: 500px;\n height: 2.5rem;\n box-sizing: border-box;\n border: 1px solid transparent;\n border-radius: 10px;\n font-size: 16px;\n background-color: #efefef;\n background-position: 10px 10px;\n background-repeat: no-repeat;\n padding: 5px 20px 8px 10px;\n }\n\n button {\n border-radius: 10px !important;\n border: 0px;\n padding: 1rem;\n background: ${Theme.primary};\n color: #fff;\n font-size: 1.2rem;\n font-weight: bold;\n transition: 0.2s;\n margin: 0.7rem 0;\n margin-left: 2rem;\n }\n\n button:hover {\n cursor: pointer;\n opacity: 0.5;\n }\n }\n .create-announcement {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n height: 100%;\n margin-left: 2rem;\n }\n\n .create-announcement-everyone {\n align-self: flex-start;\n }\n\n .specific-groups {\n width: 22%;\n\n .MuiFormControl-root {\n width: 40%;\n }\n }\n\n .MuiFormControlLabel-root {\n margin-top: 16px;\n }\n\n .new-announcement-latest .modal {\n display: none;\n position: fixed;\n z-index: 2;\n padding-top: 150px;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n background-color: #0000001a;\n }\n\n .new-announcement-latest .modal-content {\n position: relative;\n background-color: #fefefe;\n border-radius: 20px;\n margin: auto;\n padding: 0;\n width: 50%;\n animation-name: animatetop;\n animation-duration: 0.5s;\n\n form .export {\n width: 100%;\n }\n\n button {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 30%;\n height: 50%;\n border-radius: 15px !important;\n border: 0px;\n padding: 1rem !important;\n background: $bg-color;\n color: #fff;\n font-size: 1.2rem;\n font-weight: bold;\n transition: 0.2s;\n margin: 5rem 0;\n }\n\n button:hover {\n opacity: 0.5;\n }\n\n .deletebtn button {\n background-color: gray;\n cursor: pointer;\n }\n }\n\n .new-announcement-latest .modal-header {\n padding: 40px 50px;\n background-color: $bg-color;\n color: white;\n border-radius: 20px 20px 0 0;\n text-align: center;\n\n h2 {\n font-weight: 300;\n }\n }\n\n .new-announcement-latest .modal-confirmation form {\n display: flex;\n justify-content: space-evenly;\n align-items: center;\n flex-direction: row;\n margin: 0;\n padding: 0;\n border: 0;\n }\n\n .rdw-editor-wrapper {\n width: 100%;\n max-width: 500px;\n }\n\n .rdw-editor-main {\n background: #efefef;\n border-radius: 10px;\n border: 1px solid transparent;\n min-height: 150px;\n }\n\n .rdw-link-modal,\n .rdw-embedded-modal {\n min-height: 250px;\n }\n\n .rdw-image-modal-btn,\n .rdw-embedded-modal-btn,\n .rdw-link-modal-btn {\n margin: 0 5px;\n width: 100% !important;\n height: 30px;\n border: 1px solid #f1f1f1;\n margin-left: 0 !important;\n border-radius: 2px;\n padding: 0 !important;\n cursor: pointer;\n background: white;\n text-transform: capitalize;\n }\n\n @media (max-width: 700px) {\n .new-announcement-latest {\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 1rem;\n width: 100%;\n\n h1 {\n margin: 0;\n }\n\n button {\n margin: 0;\n width: 80%;\n }\n\n .utils {\n input[type='file'] {\n width: 30%;\n }\n textarea {\n width: 90%;\n }\n input[type='file'] {\n width: 90%;\n }\n }\n }\n\n .create-announcement {\n width: 90%;\n margin: 0;\n }\n\n .new-announcement-latest .utils input[type='text'],\n .typefile {\n width: 90%;\n }\n\n .specific-groups {\n margin-left: 1rem;\n margin-top: 0;\n width: 100%;\n }\n\n .rdw-editor-wrapper {\n width: 100%;\n }\n\n .rdw-editor-main {\n margin: 1rem 0;\n }\n\n .rdw-image-modal-btn,\n .rdw-embedded-modal-btn,\n .rdw-link-modal-btn {\n margin-left: 0 !important;\n width: 75px;\n height: 30px;\n border: 1px solid #f1f1f1;\n border-radius: 2px;\n padding: 0 !important;\n cursor: pointer;\n background: white;\n text-transform: capitalize;\n }\n }\n\n @media (max-width: 500px) {\n .new-announcement-latest .modal-content {\n width: 90%;\n }\n\n .new-announcement-latest .modal {\n padding-top: 60px;\n }\n\n .new-announcement-latest .utils {\n margin: 0;\n\n label {\n font-size: 15px;\n }\n }\n }\n`;\nexport const CallendarFull = styled.div`\n width: 60%;\n @media (max-width: 768px) {\n width: 100%;\n }\n .fc {\n width: 100%;\n height: 100%;\n max-height: 600px;\n }\n\n .task-question {\n width: 100%;\n background: #1260a7;\n font-weight: bold;\n border: none;\n padding: 5px;\n color: white;\n }\n .task-poll {\n width: 100%;\n background: #b400bd;\n border: none;\n font-weight: bold;\n padding: 5px;\n }\n .task-news {\n width: 100%;\n background: #e7262b;\n color: white;\n border: none;\n font-weight: bold;\n padding: 5px;\n }\n .fc-daygrid-event-dot {\n display: none;\n }\n`;\nexport const DivisorScoreboard = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 50%;\n @media (max-width: 768px) {\n width: 100%;\n }\n div.score {\n width: 50%;\n height: 100%;\n background-color: #f8f9fa;\n border-radius: 12px;\n padding: 20px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n }\n`;\nexport const ExportContainerImage = styled.div`\n img {\n max-width: 300px;\n height: auto;\n }\n .rdw-image-wrapper {\n display: none !important;\n }\n`;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport {\n EditorState,\n Modifier,\n convertToRaw,\n AtomicBlockUtils\n} from 'draft-js';\nimport { Editor } from 'react-draft-wysiwyg';\nimport draftToHtml from 'draftjs-to-html';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport axios, { api } from '../../services/axios';\nimport { CiImageOn } from 'react-icons/ci';\n\nimport {\n PreviewContent,\n LoadingContainer,\n CallendarFull,\n MainContainer,\n ContainerForm,\n ExportContainerImage\n} from './styled';\n\nimport { Theme } from 'src/styles/Theme';\n\nimport { FadeLoader } from 'react-spinners';\nimport 'react-calendar/dist/Calendar.css';\nimport FullCalendar from '@fullcalendar/react';\nimport listPlugin from '@fullcalendar/list';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport interactionPlugin from '@fullcalendar/interaction';\nimport GridLatestNews from '../GridLatestNews';\nimport { Checkbox, FormControlLabel } from '@material-ui/core';\n\ninterface Options {\n option: string;\n id: string;\n count?: number;\n percentage?: string;\n}\n\ninterface Question {\n id: string;\n question_answer: string;\n options: Options[];\n correct_option_id: string;\n date: string;\n active: boolean;\n}\ninterface Polls {\n id: string;\n polls_answer: string;\n options: Options[];\n date_start: string;\n date_end: string;\n totalUsers?: number;\n}\ninterface LatestNewsProps {\n view?: boolean;\n}\n\nconst LatestNews: React.FC = ({ view }) => {\n const nav = useHistory();\n const [title, setTitle] = useState('');\n const [fullLegend, setFullLegend] = useState(EditorState.createEmpty());\n const [prevLegend, setPrevLegend] = useState('');\n const [confirmation, setConfirmation] = useState(false);\n\n const [myPreview, setMyPreview] = useState(false);\n const [loading, setLoading] = useState(false);\n const [file, setFile] = useState(null);\n const [thumbnail, setThumbnail] = useState(null);\n const [polls, setPolls] = useState([]);\n const [latestNews, setLatestNews] = useState([]);\n const [questions, setQuestions] = useState([]);\n const [publishDate, setPublishDate] = useState('');\n const [selectedEvent, setSelectedEvent] = useState(null);\n const [idLatestNews, setIdLatestNews] = useState('');\n const [imageUrlFile, setImageUrlFile] = useState(null);\n const [imageUrl, setImageUrl] = useState('');\n const [notifyDesktop, setNotifyDesktop] = useState(false);\n const [notifyMobile, setNotifyMobile] = useState(false);\n\n const createImageUrl = async (file: any) => {\n const dataFile = new FormData();\n console.log(imageUrlFile);\n if (file) {\n dataFile.append('file', file);\n }\n await axios\n .post('/api/v1/latest-news/uploadFile', dataFile, { timeout: 0 })\n .then((res) => {\n console.log(res.data);\n insertImage(res.data.url);\n });\n };\n\n async function createAnnouncement() {\n const htmlDescription = draftToHtml(\n convertToRaw(fullLegend.getCurrentContent())\n );\n const dataFile = new FormData();\n console.log(file);\n if (file) {\n dataFile.append('file', file);\n }\n if (!title || !prevLegend) {\n alert('Please fill all fields');\n return;\n }\n if (!file) {\n alert('Please upload a file');\n return;\n }\n setLoading(true);\n await axios\n .post('/api/v1/latest-news/uploadFile', dataFile, { timeout: 0 })\n .then((res) => {\n if (file?.type === 'video/mp4' && thumbnail) {\n const dataThumbnail = new FormData();\n dataThumbnail.append('file', thumbnail);\n axios\n .post('/api/v1/latest-news/uploadFile', dataThumbnail, {\n timeout: 0\n })\n .then((thumbnail) => {\n const data = {\n image: res.data.type === 'image' ? res.data.url : '',\n video: res.data.type === 'video' ? res.data.url : '',\n prev_legend: prevLegend,\n full_legend: htmlDescription,\n publish_date: publishDate,\n title: title,\n idea: false,\n thumbnail: thumbnail.data.url,\n notify_desktop: notifyDesktop,\n notify_mobile: notifyMobile\n };\n axios\n .post('/api/v1/latest-news/create', data, {\n headers: {\n ContentType: 'multipart/form-data'\n },\n timeout: 0\n })\n .then(() => {\n setLoading(false);\n setTitle('');\n setPrevLegend('');\n setFullLegend('');\n setConfirmation(false);\n alert('Latest News created');\n nav.push('/announcements');\n })\n .catch((err) => {\n setLoading(false);\n alert('Error creating Latest News');\n console.log(err);\n });\n })\n .catch((err) => {\n console.log(err);\n alert('Error creating Latest News');\n setLoading(false);\n });\n } else {\n const data = {\n image: res.data.type === 'image' ? res.data.url : '',\n video: res.data.type === 'video' ? res.data.url : '',\n prev_legend: prevLegend,\n full_legend: htmlDescription,\n publish_date: publishDate,\n title: title,\n idea: false,\n notify_desktop: notifyDesktop,\n notify_mobile: notifyMobile\n };\n axios\n .post('/api/v1/latest-news/create', data, {\n headers: {\n ContentType: 'multipart/form-data'\n },\n timeout: 0\n })\n .then(() => {\n setLoading(false);\n setTitle('');\n setPrevLegend('');\n setFullLegend('');\n setConfirmation(false);\n alert('Latest News created');\n nav.push('/announcements');\n })\n .catch((err) => {\n setLoading(false);\n alert('Error creating Latest News');\n console.log(err);\n });\n }\n })\n .catch((err) => {\n console.log(err);\n alert('Error creating Latest News');\n setLoading(false);\n });\n }\n\n const handleFileChange = (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n setFile(event.target.files[0]);\n }\n };\n const handleFileImageUrl = (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n createImageUrl(event.target.files[0]);\n }\n };\n const handleThumbnail = (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n setThumbnail(event.target.files[0]);\n }\n };\n\n window.onclick = function (event: any) {\n if (loading) {\n return;\n }\n if (event.target.className === 'modal') {\n setConfirmation(false);\n }\n };\n\n const formatedDateLatest = (item: any) => {\n if (item.publish_date) {\n return item.publish_date;\n } else {\n return item.createdAt;\n }\n };\n\n const formatedEvents = () => {\n const formatEvent = questions.map((q) => ({\n title: q.question_answer,\n start: q.date,\n end: q.date,\n id: q.id,\n type: 'question'\n }));\n const formatPolls = polls?.map((p) => ({\n title: p.polls_answer,\n start: p.date_start,\n end: p.date_end,\n id: p.id,\n type: 'poll'\n }));\n const formatLatestNews = latestNews.map((news) => ({\n start: formatedDateLatest(news),\n end: formatedDateLatest(news),\n id: news.id,\n createAt: news.createdAt,\n type: 'news',\n ...news\n }));\n\n return formatEvent.concat(formatPolls, formatLatestNews);\n };\n const getQuestion = () => {\n api.get('/api/v1/trivia/month').then((res) => {\n setQuestions(res.data.question);\n });\n };\n\n const getPolls = () => {\n api.get('/api/v1/polls/calendar').then((res) => {\n console.log(res.data);\n setPolls(res.data.polls);\n });\n };\n\n function getLatestNews() {\n api.get('/api/v1/latest-news').then((res) => {\n setLatestNews(res.data);\n });\n }\n\n useEffect(() => {\n getQuestion();\n getPolls();\n getLatestNews();\n }, []);\n\n const getEventClassNames = (eventInfo: any) => {\n switch (eventInfo.event.extendedProps.type) {\n case 'question':\n return 'task-question';\n case 'poll':\n return 'task-poll';\n case 'news':\n return 'task-news';\n default:\n return '';\n }\n };\n\n const myModal = (\n \n
\n
\n {\n if (loading) {\n return;\n }\n setConfirmation(false);\n }}\n className='close'\n >\n ×\n \n {publishDate ? (\n

\n You are able to schedule a Latest News for {publishDate}. This\n will go to the Home Page and Latest News feed for all users to\n view. Please go to “Latest News” to make any edits or changes\n to your article.\n

\n ) : (\n

\n You are about to publish a new Latest News. This will go to the\n Home Page and Latest News feed for all users to view.\n

\n )}\n
\n {loading && (\n \n

\n Your photo/video is now uploading. Please do not close this window\n while it uploads.\n

\n \n
\n )}\n\n
\n
\n <>\n createAnnouncement()}\n className='cancelbtn'\n >\n Yes\n \n\n setConfirmation(false)}\n className='deletebtn'\n >\n No\n \n \n \n
\n
\n \n );\n\n const insertImage = (imgUrl: string) => {\n const contentState = fullLegend.getCurrentContent();\n\n // Cria uma entidade para a imagem\n const contentStateWithEntity = contentState.createEntity(\n 'IMAGE', // Tipo da entidade\n 'IMMUTABLE', // Tipo de mutabilidade\n { src: imgUrl, class: 'img-field' } // Dados associados\n );\n\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n\n // Usa o AtomicBlockUtils para inserir a entidade no editor\n const newEditorState = AtomicBlockUtils.insertAtomicBlock(\n fullLegend,\n entityKey,\n ' '\n );\n\n // Atualiza o estado do editor\n setFullLegend(\n EditorState.forceSelection(newEditorState, newEditorState.getSelection())\n );\n setImageUrl('');\n };\n\n const preview = (\n \n setMyPreview(false)} className='close'>\n ×\n \n

Title:

\n

{title}

\n
\n

Preview:

\n

{prevLegend}

\n
\n

Full Article:

\n {fullLegend && (\n <>\n ')\n .replace(/

<\\/p>/g, '
')\n }}\n style={{\n lineHeight: 1.3,\n marginTop: 12\n }}\n className='full-legend'\n >\n \n )}\n \n );\n const handleEventClick = (info: any) => {\n setSelectedEvent(info.event);\n\n if (info?.event.extendedProps?.type === 'news') {\n setIdLatestNews(info.event.id);\n }\n };\n const contentEvent = () => {\n if (!selectedEvent) return '';\n if (selectedEvent) {\n switch (selectedEvent.extendedProps.type) {\n case 'question':\n return (\n

\n

Question

\n

{selectedEvent.title}

\n
\n );\n case 'poll':\n return (\n
\n

Poll

\n
\n );\n case 'news':\n return ;\n default:\n return
;\n }\n }\n };\n\n return (\n \n \n
\n

FEG Latest News

\n
\n }\n label='Push Notification'\n color='primary'\n value={notifyMobile}\n onChange={() => setNotifyMobile(!notifyMobile)}\n />\n }\n label='Website Notification'\n color='primary'\n value={notifyDesktop}\n onChange={() => setNotifyDesktop(!notifyDesktop)}\n />\n

Title

\n setTitle(e.target.value)}\n />\n

Preview Field

\n setPrevLegend(e.target.value)}\n />\n

Date Publish

\n setPublishDate(e.target.value)}\n />\n

Picture or Video

\n \n Choose a video or photo to upload:\n \n\n {file?.name}\n {\n handleFileChange(file);\n }}\n />\n

\n The system does not accept files larger than 1TB.\n

\n {file?.type === 'video/mp4' && (\n <>\n

Thumbnail

\n \n Choose photo to upload:\n \n\n {thumbnail?.name}\n {\n handleThumbnail(file);\n }}\n />\n \n )}\n\n

Full Article

\n \n \n \n {}\n \n\n {\n handleFileImageUrl(file);\n }}\n />\n \n ]}\n editorClassName='demo-editor'\n onEditorStateChange={(e) => {\n setFullLegend(e);\n }}\n />\n \n
\n
\n {\n setMyPreview(myPreview ? false : true);\n }}\n >\n Preview Content\n \n \n
\n {myModal}\n {preview}\n
\n
\n {!view && (\n \n \n
{contentEvent()}
\n
\n )}\n
\n );\n};\n\nexport default LatestNews;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport { green, grey } from '@material-ui/core/colors';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox';\nimport { EditorState, convertToRaw } from 'draft-js';\nimport { Editor } from 'react-draft-wysiwyg';\nimport draftToHtml from 'draftjs-to-html';\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\nimport axios, { api } from '../../services/axios';\nimport jwt from 'jsonwebtoken';\nimport { useCookies } from 'react-cookie'\n\nimport Loader from '../Loader';\n\nimport Select from 'react-select';\nimport { EmailEditorContainer, UsersEmailTest } from './styled';\nimport { BiTrash } from 'react-icons/bi';\n\n\nconst GreenCheckbox = withStyles({\n root: {\n color: grey[400],\n '&$checked': {\n color: green[600],\n },\n },\n checked: {},\n})((props: CheckboxProps) => );\n\nconst Newsletter: React.FC = () => {\n const [cookies, ,] = useCookies([\"token\"]);\n const token: any = cookies.token\n const [loaded, setLoaded] = useState(true);\n const [checked, setChecked] = useState(false);\n const [locationChecked, setLocationChecked] = useState(false);\n const [emailChecked, setEmailChecked] = useState(true);\n const [smsChecked, setSmsChecked] = useState(false);\n const [optEveryone, setOptEveryone] = useState(false);\n const [group, setGroup] = useState([])\n const [location, setLocation] = useState([])\n const [imageFile, setImageFile] = useState({\n selectedFile: \"\",\n type: \"\"\n })\n const [imageName, setImageName] = useState(\"\")\n const [description, setDescription] = useState(EditorState.createEmpty())\n const [subject, setSubject] = useState(\"\")\n\n const [myPreview, setMyPreview] = useState(false)\n const [locationsInfo, setLocationsInfo] = useState([]);\n const [rolesInfo, setRolesInfo] = useState([]);\n const [newsletterAll, setNewsletterAll] = useState([])\n const [draftId, setDraftId] = useState(\"\")\n const [newsletterSelected, setNewsletterSelected] = useState(\"\")\n const history = useHistory();\n const [handleFileDoc, setHandleFileDoc] = useState({\n selectedFile: '',\n type: ''\n });\n const [notifyMobile, setNotifyMobile] = useState(false)\n const [notifyDesktop, setNotifyDesktop] = useState(false)\n\n const [strings, setStrings] = useState([]); // Estado do array\n const [inputValue, setInputValue] = useState(''); // Estado do campo de input\n\n // Adicionar string ao array\n const addString = () => {\n if (inputValue.trim() !== '') {\n setStrings([...strings, inputValue]);\n setInputValue(''); // Limpa o campo de input\n }\n };\n\n // Remover string do array\n const removeString = (index: number) => {\n setStrings(strings.filter((_, i) => i !== index));\n };\n\n\n const getAllNews = async () => {\n await axios.get('/api/v1/newsletter-schedule/all').then((response) => {\n setNewsletterAll(response.data.response)\n }\n )\n\n }\n\n useEffect(() => {\n getAllNews()\n handlePermissions()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n useEffect(() => {\n // Adiciona o script Unlayer dinamicamente\n const script = document.createElement('script');\n script.src = 'https://editor.unlayer.com/embed.js';\n script.async = true;\n script.onload = () => {\n // Inicializa o editor\n // @ts-ignore\n window.unlayer.init({\n id: 'editor-container',\n projectId: 264208, // Substitua pelo seu projectId se tiver um\n displayMode: 'email',\n });\n\n };\n document.body.appendChild(script);\n\n // Remove o script ao desmontar o componente\n return () => {\n document.body.removeChild(script);\n };\n }, []);\n\n const onChangeSelect = (e: any) => {\n console.log(e)\n setDraftId(e)\n if (e === \"\") {\n setSubject(\"\")\n\n return\n }\n const findItem = newsletterAll.find((item: any) => item.id === e)\n // @ts-ignore\n setSubject(findItem?.subject)\n // @ts-ignore\n window.unlayer.loadDesign(findItem.draft);\n }\n\n const fetchLocations = async () => {\n const data = await axios.get('/api/v1/contacts/locations');\n setLocationsInfo(data.data);\n }\n\n const fetchGroups = async () => {\n const data = await axios.get('/api/v1/contacts/roles');\n setRolesInfo(data.data);\n }\n const exportHtmlAsync = () => {\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window.unlayer.exportHtml((data) => {\n const { html } = data;\n if (html) {\n resolve(html);\n } else {\n reject(\"Failed to export HTML\");\n }\n });\n });\n };\n const exportDesign = () => {\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window.unlayer.exportHtml((data) => {\n const { design } = data;\n console.log(data)\n if (design) {\n resolve(design);\n } else {\n reject(\"Failed to export HTML\");\n }\n });\n });\n };\n const publishAnnouncement = async () => {\n const id = localStorage.getItem('owner_id');\n let users = [];\n let HtmlText = \"\";\n try {\n HtmlText = await exportHtmlAsync() as string;\n console.log(\"HTML :\", HtmlText);\n } catch (error) {\n alert(\"Error HTML: \" + error);\n return;\n }\n const formattedLocation = [];\n if (group) {\n for (let index = 0; index < group.length; index++) {\n formattedLocation.push(group[index].value)\n }\n }\n const formattedRoles = [];\n if (location) {\n for (let index = 0; index < location.length; index++) {\n formattedRoles.push(location[index].value)\n }\n }\n\n if (optEveryone) {\n const req = await axios.get('/api/v1/contacts');\n users = req.data;\n }\n\n if (checked && !locationChecked) {\n const req = await axios.post('/api/v1/contacts/byLocation', { location: formattedLocation });\n users = req.data;\n }\n\n if (locationChecked && !checked) {\n const req = await axios.post('/api/v1/contacts/byRole', { role: formattedRoles });\n users = req.data;\n }\n\n if (checked && locationChecked) {\n const locationsReq = await axios.post('/api/v1/contacts/byLocation', { location: formattedLocation });\n let users2 = locationsReq.data\n let filteredUsers = []\n for (let index = 0; index < users2.length; index++) {\n if (location) {\n for (let counter = 0; counter < location.length; counter++) {\n if (users2[index].role === location[counter].value) {\n filteredUsers.push(users2[index])\n }\n }\n }\n }\n if (filteredUsers.length > 0) users = filteredUsers\n }\n\n\n let created = new Date()\n\n const data = {\n groups_ids: [],\n owner_id: id,\n locations_ids: [],\n image: imageFile,\n subject: subject,\n info: HtmlText,\n text: HtmlText,\n users: users,\n createdAt: created.toString().split(\"\").splice(4, 17).join(\"\"),\n emailChecked,\n smsChecked,\n doc: handleFileDoc,\n notify_mobile: notifyMobile,\n notify_desktop: notifyDesktop\n }\n\n if (subject !== undefined\n && description !== undefined) {\n try {\n if (users.length > 0) {\n\n await axios.post(`/api/v1/announcements/newsletter`, data)\n\n alert(\"Announcement created\")\n history.push('/announcements')\n window.location.reload()\n } else {\n alert(\"0 contacts found.\")\n }\n } catch (error) {\n\n alert(error)\n }\n }\n\n }\n\n function docSelect(props: any) {\n if (props[0] === undefined) {\n setHandleFileDoc({\n selectedFile: '',\n type: ''\n });\n return;\n }\n\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setHandleFileDoc({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n\n function handlePermissions() {\n jwt.verify(token!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.announcements.add === false) {\n alert(\"Permission denied\")\n window.location.href = `${process.env.REACT_APP_URL}`\n } else {\n setLoaded(false)\n }\n }\n })\n }\n\n function handleChange() {\n if (checked === false) {\n setGroup([])\n setChecked(true)\n } else if (checked === true) {\n setChecked(false)\n }\n }\n\n function handleLocation() {\n if (locationChecked === false) {\n setLocation([])\n setLocationChecked(true)\n } else if (locationChecked === true) {\n setLocationChecked(false)\n }\n }\n\n function handleEveryone() {\n if (optEveryone === false) {\n setOptEveryone(true)\n setGroup([])\n setLocation([])\n } else if (optEveryone === true) {\n setOptEveryone(false)\n }\n }\n\n function fileSelect(props: any) {\n if (props[0] === undefined) {\n setImageName(\"\")\n setImageFile({\n selectedFile: \"\",\n type: \"\",\n })\n return\n }\n setImageName(props[0].name)\n const reader = new FileReader()\n reader.readAsDataURL(props[0])\n\n reader.onload = (e: any) => {\n setImageFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n })\n }\n }\n\n const handleSelectGroup = (event: any) => {\n setGroup(event)\n };\n\n const handleSelectLocation = (event: any) => {\n setLocation(event)\n };\n\n\n\n const groups = (\n
\n\n }\n label=\"Specific Location\"\n checked={checked ? true : false}\n />\n\n \n
\n )\n\n const locations = (\n
\n }\n label=\"Job Title (Group)\"\n checked={locationChecked ? true : false}\n />\n\n \n\n
\n )\n\n\n const preview = (\n
\n setMyPreview(false)} className=\"close\">×\n

{subject}

\n ')\n .replace(/

<\\/p>/g, '
')\n }}\n >

\n )\n\n const handleSaveDraft = async () => {\n let HtmlText\n try {\n HtmlText = await exportDesign() as object;\n console.log(\"HTML :\", HtmlText);\n } catch (error) {\n alert(\"Error HTML: \" + error);\n return;\n }\n\n api.post('/api/v1/newsletter-schedule/create', {\n draft: HtmlText,\n subject: subject,\n target_date: new Date(),\n }).then(() => {\n alert(\"Draft saved\")\n getAllNews()\n })\n }\n\n\n const handleUpdateDraft = async () => {\n let HtmlText\n try {\n HtmlText = await exportDesign() as object;\n console.log(\"HTML :\", HtmlText);\n } catch (error) {\n alert(\"Error HTML: \" + error);\n return;\n }\n\n api.put('/api/v1/newsletter-schedule/update', {\n draft: HtmlText,\n subject: subject,\n target_date: new Date(),\n id: draftId\n }).then(() => {\n alert(\"Draft updated\")\n //window.location.reload()\n })\n }\n const handleTestEmail = async () => {\n let HtmlText\n try {\n HtmlText = await exportHtmlAsync() as object;\n console.log(\"HTML :\", HtmlText);\n } catch (error) {\n alert(\"Error HTML: \" + error);\n return;\n }\n\n api.post('/api/v1/newsletter-schedule/send-email-test', {\n draft: HtmlText,\n subject: subject,\n users: strings,\n id: draftId\n }).then(() => {\n alert(\"Email sent\")\n //window.location.reload()\n })\n }\n return (\n loaded ? \n :\n
\n

Newsletter

\n\n \n\n\n
\n\n
\n
\n

Target

\n }\n label=\"Everyone\"\n disabled={checked || locationChecked ? true : false}\n className='create-announcement-everyone'\n />\n }\n label=\"Specific Location\"\n style={{ display: checked ? \"none\" : \"block\" }}\n checked={checked ? true : false}\n onClick={() => fetchLocations()}\n disabled={optEveryone ? true : false}\n />\n {\n (checked ? groups : <>)\n }\n }\n label=\"Job Title (Group)\"\n style={{ display: locationChecked ? \"none\" : \"block\" }}\n checked={locationChecked ? true : false}\n onClick={() => fetchGroups()}\n disabled={optEveryone ? true : false}\n />\n {\n (locationChecked ? locations : <>)\n }\n
\n
\n

Channels

\n setEmailChecked(!emailChecked)}\n name=\"checkedG\"\n />}\n\n label=\"Email\"\n checked={true}\n />\n setSmsChecked(!smsChecked)}\n name=\"checkedA\"\n />}\n label=\"SMS\"\n\n />\n }\n label='Push Notification'\n color='primary'\n value={notifyMobile}\n onChange={() => setNotifyMobile(!notifyMobile)}\n />\n }\n label='Website Notification'\n color='primary'\n value={notifyDesktop}\n onChange={() => setNotifyDesktop(!notifyDesktop)}\n />\n\n
\n
\n

Subject

\n setSubject(e.target.value)}\n />\n

Attachment

\n docSelect(e.target.files)}\n />\n

Picture

\n
\n \n \n fileSelect(event.target.files)}\n />\n

images less than 4 mb only

\n
\n

Announcement

\n\n\n\n
\n \n \n {\n draftId === \"\" ? : \n }\n\n
\n\n

Test settings

\n setInputValue(e.target.value)}\n placeholder=\"Email tester list\"\n style={{\n padding: '10px',\n marginRight: '10px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n }}\n />\n \n Add test users\n \n \n
\n
    \n\n {strings.map((str, index) => (\n \n {str}\n \n \n ))}\n
\n
\n
\n
\n\n \n\n\n\n
\n
\n\n {\n preview\n }\n
\n
\n\n
\n );\n}\n\nexport default Newsletter;","import React, { useState } from 'react';\nimport Announcement from '../../components/NewAnnouncement/index';\nimport Paylocity from '../../components/NewAnnouncement/paylocity';\nimport Benefits from '../../components/NewAnnouncement/benefits';\nimport { Theme } from '../../styles/Theme';\nimport LatestNews from '../../components/LatestNews';\nimport Newsletter from 'src/components/Newsletter';\n\nconst Announcements: React.FC = () => {\n // const [options, setOptions] = useState(true)\n const [btn, setBtn] = useState({\n content: 4,\n btnCompany: '',\n btnLocal: '',\n btnBenefits: '',\n btnLatestNews: Theme.primary,\n btnNewsletter: ''\n });\n\n function changeContent() {\n if (btn.content === 1) {\n return ;\n }\n if (btn.content === 2) {\n return ;\n }\n if (btn.content === 3) {\n return ;\n }\n if (btn.content === 4) {\n return ;\n }\n if (btn.content === 5) {\n return ;\n }\n }\n\n return (\n
\n
\n \n setBtn({\n content: 4,\n btnCompany: '',\n btnLocal: '',\n btnLatestNews: Theme.primary,\n btnBenefits: '',\n btnNewsletter: ''\n })\n }\n >\n Latest News\n \n \n setBtn({\n content: 1,\n btnCompany: Theme.primary,\n btnLocal: '',\n btnBenefits: '',\n btnLatestNews: '',\n btnNewsletter: ''\n })\n }\n >\n FEG Home Users\n \n \n setBtn({\n content: 2,\n btnCompany: '',\n btnLocal: Theme.primary,\n btnBenefits: '',\n btnLatestNews: '',\n btnNewsletter: ''\n })\n }\n >\n All Paylocity Contacts\n \n \n setBtn({\n content: 3,\n btnCompany: '',\n btnLocal: '',\n btnBenefits: Theme.primary,\n btnLatestNews: '',\n btnNewsletter: ''\n })\n }\n >\n Benefits Eligible Group\n \n \n setBtn({\n content: 5,\n btnCompany: '',\n btnLocal: '',\n btnBenefits: '',\n btnLatestNews: '',\n btnNewsletter: Theme.primary\n })\n }\n >\n Newsletter\n \n
\n
{changeContent()}
\n
\n );\n};\n\nexport default Announcements;\n","import React, { useState, useEffect } from 'react';\nimport { useRouteMatch, useHistory } from 'react-router-dom';\nimport { Emoji } from 'emoji-mart';\nimport axios from '../../../../services/axios';\nimport Loader from '../../../Loader';\nimport Formatter from '../../Formatter';\nimport { Theme } from 'src/styles/Theme';\n\nconst Announcements: React.FC = () => {\n const [loaded, setLoaded] = useState(true);\n const [opinionEmoji, setOpinionEmoji] = useState();\n const [announcements, setAnnouncements] = useState({\n id: '',\n owner_id: '',\n location_id: '',\n subject: '',\n info: '',\n url_image: '',\n url_doc: '',\n createdAt: '',\n created_by: {\n id: '',\n location_id: '',\n profile_id: '',\n first_name: '',\n last_name: '',\n createdAt: ''\n }\n });\n\n const history = useHistory();\n\n useEffect(() => {\n loadUsersValidate();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const router = useRouteMatch();\n const match: any = useRouteMatch(\n `/announcements/${router.url.split('/')[2]}/:id`\n );\n const id: any = match?.params?.id || '';\n\n async function loadUsersValidate() {\n try {\n await axios.get(`/api/v1/announcements/${id}`).then((response) => {\n setAnnouncements(response.data.results);\n setOpinionEmoji(response.data.results?.opinion?.emoji);\n setLoaded(true);\n });\n } catch (error) {\n history.push(`/announcements`);\n }\n }\n\n const sendInteraction = (opinion: string) => {\n axios.put(`/api/v1/announcements/${id}/interaction`, { opinion });\n setOpinionEmoji(opinion);\n };\n\n const handleDownload = (linkDownload: string) => {\n // Criação do link de download\n const link = document.createElement('a');\n link.href = linkDownload;\n link.download = linkDownload;\n link.click();\n };\n\n return (\n <>\n
\n

\n {announcements.createdAt.split('').splice(0, 11).join('')}{' '}\n {Formatter(\n announcements.createdAt.split('').splice(12, 2).join(''),\n announcements.createdAt.split('').splice(14, 3).join('')\n )}\n

\n
\n setLoaded(false)}\n alt='Announcement'\n />\n {loaded ? (\n \n ) : (\n <>\n \n Author: {announcements.created_by.first_name}{' '}\n {announcements.created_by.last_name}\n

\n

{announcements.subject}

\n \n {announcements.url_doc && (\n handleDownload(announcements.url_doc)}\n className='download-button'\n style={{\n background: Theme.primary,\n color: Theme['secondary-light'],\n border: 'none',\n borderRadius: '5px',\n padding: '1rem',\n cursor: 'pointer',\n marginTop: '1rem'\n }}\n >\n Download Attachment\n \n )}\n\n {!opinionEmoji ? (\n
\n
\n

Was this helpful?

\n
\n sendInteraction('white_frowning_face')}\n >\n \n \n sendInteraction('neutral_face')}>\n \n \n sendInteraction('grinning')}>\n \n \n
\n
\n
\n ) : (\n
\n )}\n \n )}\n
\n
\n \n );\n};\n\nexport default Announcements;\n","import React, {useEffect} from 'react';\nimport ReactGA from 'react-ga';\nimport Announcement from '../../components/CompanyAnnouncements/AnnouncementList/SingleAnnouncement';\n\nconst Announcements: React.FC = () => {\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1')\n ReactGA.pageview(window.location.pathname + window.location.search)\n })\n\n return (\n \n )\n}\n\nexport default Announcements;\n","import { gapi } from 'gapi-script';\nconst CLIENT_ID = \"378284412150-7j8p2ek1hb1a239bb674tbjqiqdre0nd.apps.googleusercontent.com\"\nconst API_KEY = \"AIzaSyDMoik280-lm7A7TOaDQZJPuDfVgVfQzNg\"\nconst DISCOVERY_DOCS = [\"https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest\"]\nconst SCOPES = \"https://www.googleapis.com/auth/calendar.events\"\n\nexport default function ExportEvent(email, title, description, startTime, endTime) {\n let fullTime = new Date()\n let timeZone = fullTime.toString().split('-')[1].split(\"\").splice(0,2).join(\"\")\n gapi.load('client:auth2', () => {\n console.log('Loaded client')\n console.log(email, title, description, startTime, endTime)\n\n gapi.client.init({\n apiKey: API_KEY,\n clientId: CLIENT_ID,\n discoveryDocs: DISCOVERY_DOCS,\n scope: SCOPES,\n })\n\n gapi.client.load('calendar', 'v3', () => console.log('Google Calendar'))\n\n gapi.auth2.getAuthInstance().signIn()\n .then(() => {\n\n var event = {\n 'summary': `${title}`,\n // 'location': '800 Howard St., San Francisco, CA 94103',\n 'description': `${description}`,\n 'start': {\n 'dateTime': `${startTime}:00-${timeZone}:00`,\n // 'dateTime': `${startTime}:00-06:00`,\n // 'timeZone': 'US/Central',\n },\n 'end': {\n 'dateTime': `${endTime}:00-${timeZone}:00`,\n // 'dateTime': `${endTime}:00-06:00`,\n // 'timeZone': 'US/Central',\n },\n // 'recurrence': [\n // 'RRULE:FREQ=DAILY;COUNT=2'\n // ],\n // 'attendees': [\n // { 'email': 'gian@bemaxgroup.com' },\n // ],\n 'reminders': {\n 'useDefault': false,\n 'overrides': [\n { 'method': 'email', 'minutes': 24 * 60 },\n { 'method': 'popup', 'minutes': 10 },\n ],\n },\n }\n\n try {\n var request = gapi.client.calendar.events.insert({\n 'calendarId': `${email}`,\n 'resource': event,\n })\n } catch (error) {\n alert(error)\n }\n\n\n request.execute(event => {\n if (event.error) {\n alert(event.error.message)\n } else {\n console.log(event)\n alert(`Event exported`)\n window.open(event.htmlLink)\n }\n })\n })\n })\n}","import React, { useState, useEffect } from 'react';\nimport FullCalendar from '@fullcalendar/react';\nimport listPlugin from '@fullcalendar/list';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport interactionPlugin from '@fullcalendar/interaction';\nimport TextField from '@material-ui/core/TextField';\n\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\n\nimport Selection from 'react-select';\nimport { groupsData, mockEventsData } from '../../data';\n\nimport Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox';\nimport { withStyles } from '@material-ui/core/styles';\nimport { green, grey } from '@material-ui/core/colors';\n\nimport { useCookies } from 'react-cookie';\nimport axios from '../../services/axios';\nimport jwt from 'jsonwebtoken';\n\nimport Loader from '../Loader';\n\nimport ExportEvent from './exportEvent';\nimport Formatter from '../CompanyAnnouncements/Formatter';\nimport { useHistory } from 'react-router-dom';\n\nconst Calendar: React.FC = () => {\n const [locationsData, setLocationsData] = useState<\n { value: string; label: string }[]\n >([]);\n const [cookies, ,] = useCookies(['token']);\n const token: any = cookies.token;\n const todayDate = new Date();\n const [loaded, setLoaded] = useState(true);\n const [currentEvents, setCurrentEvents] = useState([]);\n const [allEvents, setAllEvents] = useState([\n {\n allDay: true,\n id: '',\n title: '',\n type: '',\n address: '',\n color: '',\n description: '',\n start: '',\n end: '',\n full_name: '',\n groups_ids: [],\n locations_ids: []\n }\n ]);\n const [show, setShow] = useState(false);\n const [modal, setModal] = useState(false);\n const [modalUpdate, setModalUpdate] = useState(false);\n const [title, setTitle] = useState('');\n const [eventAddress, setEventAddress] = useState('');\n const [type, setType] = useState('');\n const [group, setGroup] = useState([]);\n const [location, setLocation] = useState([]);\n const [description, setDescription] = useState('');\n const [color, setColor] = useState('');\n const [id, setId] = useState('');\n const [showGroup, setShowGroup] = useState(false);\n const [showLocation, setShowLocation] = useState(false);\n const [startTime, setStartTime] = useState(\n `${todayDate.toISOString().replace(/T.*$/, '')}T08:00`\n );\n const [endTime, setEndTime] = useState(\n `${todayDate.toISOString().replace(/T.*$/, '')}T08:30`\n );\n const [personal, setPersonal] = useState(false);\n const [general, setGeneral] = useState(false);\n const [specifics, setSpecifics] = useState(false);\n const [modalLoading, setModalLoading] = useState(false);\n const [permission, setPermission] = useState({\n list: false,\n read: false,\n write: false\n });\n const [permission2, setPermission2] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n })\n const [locationOpeningEvents, setLocationOpeningEvents] = useState([]);\n const [projectEvents, setProjectEvents] = useState([]);\n\n const userEmail = localStorage.getItem('email');\n const profile_id = localStorage.getItem('owner_id');\n\n const history = useHistory();\n\n useEffect(() => {\n handleLoaded();\n handlePermissions();\n const filteredLocationOpenings = mockEventsData.filter(\n (e) => e.type === 'Location Opening'\n );\n const filteredProjects = mockEventsData.filter((e) => e.type === 'Project');\n setLocationOpeningEvents(filteredLocationOpenings);\n setProjectEvents(filteredProjects);\n axios.get(`/api/v1/locations`).then((locationsResponse) => {\n const formattedLocations: { value: string; label: string }[] = [];\n locationsResponse.data.forEach((locationRes: any) => {\n formattedLocations.push({\n value: locationRes.id,\n label: locationRes.display_name\n });\n });\n setLocationsData(formattedLocations);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n async function handleLoaded() {\n try {\n const response: any = await axios.get(`/api/v1/events/sample`);\n const notSpecialEvents = response.data.results.filter(\n (result: any) =>\n result.type !== 'Location Opening' && result.type !== 'Project'\n );\n setAllEvents(notSpecialEvents);\n\n const responseSpecial: any = await axios.get(\n `/api/v1/events/special/${profile_id}`\n );\n const responseLocationOpenings = responseSpecial.data.results.filter(\n (result: any) => result.type === 'Location Opening'\n );\n const responseProjects = responseSpecial.data.results.filter(\n (result: any) => result.type === 'Project'\n );\n setLocationOpeningEvents(responseLocationOpenings);\n setProjectEvents(responseProjects);\n console.log(response.data.results);\n setLoaded(false);\n } catch (error) {\n alert(error);\n }\n }\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n setPermission(decoded.modules.events);\n setPermission2(decoded.roles.events);\n }\n }\n );\n } else {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n setPermission(decoded.modules.events);\n setPermission2(decoded.roles.events);\n }\n }\n );\n }\n }\n\n async function handleCreateEvent() {\n if (title === '') {\n return alert('invalid title');\n }\n if (type === '') {\n return alert('invalid type');\n }\n if (eventAddress === '') {\n return alert('invalid address');\n }\n if (description === '') {\n return alert('invalid description');\n }\n\n if (startTime === '') {\n return alert('invalid start time');\n }\n\n if (endTime === '') {\n return alert('invalid end time');\n }\n\n if (showGroup === true && group.length === 0) {\n return alert('group cannot be empty value');\n }\n\n if (showLocation === true && location.length === 0) {\n return alert('location cannot be empty value');\n }\n\n if (type === 'Location Opening') {\n setGeneral(false);\n setPersonal(false);\n setColor('#4fdb89');\n setLocation([]);\n }\n\n if (type === 'Project') {\n setGeneral(false);\n setPersonal(false);\n setColor('#4f5bdb');\n setLocation([]);\n }\n\n if (general === true) {\n setGroup([]);\n setLocation([]);\n setColor('#007619');\n }\n\n const data = {\n title: title,\n type: type,\n locations_ids: location,\n groups_ids: group,\n address: eventAddress,\n description: description,\n start: startTime,\n end: endTime,\n color: color,\n isForMe: personal,\n isForEveryone: general\n };\n\n if (\n general === false &&\n personal === false &&\n color === '' &&\n type !== 'Location Opening' &&\n type !== 'Project'\n ) {\n return alert('Please select one event type');\n }\n\n if (color !== '') {\n try {\n setModalLoading(true);\n await axios.post(`/api/v1/events`, data);\n alert(`Event created successfully!`);\n setModal(false);\n setModalLoading(false);\n setLoaded(true);\n handleLoaded();\n } catch (error) {\n alert(\n 'Error while creating the event. Please, refresh the page and try again.'\n );\n setModalLoading(false);\n }\n }\n }\n\n async function handleUpdateEvent() {\n if (location === null || undefined) {\n setLocation([]);\n }\n\n if (group === null || undefined) {\n setGroup([]);\n }\n\n const data = {\n title: title,\n type: type,\n locations_ids: location,\n groups_ids: group,\n address: eventAddress,\n description: description,\n start: startTime,\n end: endTime,\n color: color,\n isForMe: personal,\n isForEveryone: general\n };\n\n try {\n setModalLoading(true);\n await axios.put(`/api/v1/events/${id}`, data);\n alert(`Event Updated`);\n setLoaded(true);\n handleLoaded();\n setModalLoading(false);\n setModalUpdate(false);\n } catch (error) {\n alert(error);\n setModalLoading(false);\n }\n }\n\n async function handleDeleteEvent() {\n try {\n if (\n window.confirm(`Are you sure you want to delete the event '${title}'`)\n ) {\n setModalLoading(true);\n await axios.delete(`/api/v1/events/${id}`);\n alert('Event deleted');\n setModalLoading(false);\n setModalUpdate(false);\n setLoaded(true);\n handleLoaded();\n }\n } catch (error) {\n alert(error);\n setModalLoading(false);\n }\n }\n\n async function handleDateSelect(selectInfo: any) {\n var converter = (\n selectInfo.endStr.split('').splice(8, 9).join('') - 1\n ).toString();\n if (permission2.view === false) {\n alert('Insufficient permissions');\n } else {\n if (converter.toString().length === 1) {\n converter = `0${converter}`;\n }\n const startEventTime = `${selectInfo.startStr}T08:00:00`;\n const endEventTime = `${\n selectInfo.endStr.split('').splice(0, 8).join('') + converter\n }T08:30:00`;\n resetStates(startEventTime, endEventTime);\n }\n }\n\n function resetStates(startTime: any, endTime: any) {\n if (permission?.read === false) {\n alert('Insufficient permissions');\n } else if (startTime !== false && endTime !== false) {\n if (permission?.write === false) {\n setPersonal(true);\n } else {\n setPersonal(false);\n }\n setGeneral(false);\n setSpecifics(false);\n setShowGroup(false);\n setShowLocation(false);\n setTitle('');\n setEventAddress('');\n setType('');\n setGroup([]);\n setLocation([]);\n setDescription('');\n setStartTime(startTime);\n setEndTime(endTime);\n setModal(true);\n } else {\n if (permission?.write === false) {\n setPersonal(true);\n } else {\n setPersonal(false);\n }\n setGeneral(false);\n setSpecifics(false);\n setShowGroup(false);\n setShowLocation(false);\n setTitle('');\n setEventAddress('');\n setType('');\n setGroup([]);\n setLocation([]);\n setDescription('');\n setStartTime(`${todayDate.toISOString().replace(/T.*$/, '')}T08:00`);\n setEndTime(`${todayDate.toISOString().replace(/T.*$/, '')}T08:30`);\n setModal(true);\n }\n }\n\n async function handleEventClick(clickInfo: any) {\n try {\n await axios.get(`/api/v1/events/${clickInfo.event.id}`).then((event) => {\n setEndTime(\n event.data.results.event_end.split('').splice(0, 16).join('')\n );\n setStartTime(\n event.data.results.event_start.split('').splice(0, 16).join('')\n );\n setEventAddress(event.data.results.event_address);\n setDescription(event.data.results.event_description);\n setGroup(event.data.results.groups_ids);\n setLocation(event.data.results.locations_ids);\n setType(event.data.results.event_type);\n setTitle(event.data.results.event_title);\n setId(event.data.results.event_id);\n setColor(event.data.results.event_color);\n setSpecifics(false);\n\n setShowGroup(false);\n setShowLocation(false);\n\n if (\n event.data.results.event_is_for_me === false &&\n event.data.results.event_is_for_everyone === false\n ) {\n setSpecifics(true);\n if (\n event.data.results.groups_ids.length !== 0 &&\n event.data.results.locations_ids.length !== 0\n ) {\n setShowGroup(true);\n setShowLocation(true);\n }\n if (event.data.results.groups_ids.length !== 0) {\n setShowGroup(true);\n }\n if (event.data.results.locations_ids.length !== 0) {\n setShowLocation(true);\n }\n }\n\n setPersonal(event.data.results.event_is_for_me);\n setGeneral(event.data.results.event_is_for_everyone);\n });\n setModalUpdate(true);\n } catch (error) {\n alert(error);\n }\n }\n\n function handleEvents(events: any) {\n // setCurrentEvents(events)\n setCurrentEvents(\n events.filter(\n (result: any) =>\n result.type !== 'Project' && result.type === 'Location Opening'\n )\n );\n }\n\n function renderEventContent(eventInfo: any) {\n return (\n <>\n {eventInfo.timeText} \n {eventInfo.event.title}\n \n );\n }\n\n function changeState(boolean: any) {\n if (boolean === true) {\n setShow(false);\n } else {\n setShow(true);\n }\n }\n\n function renderSidebarEvent(event: any) {\n return (\n
  • \n \n {event.title}\n

    \n console.log(event)}\n >\n \n {' '}\n {(event.startStr ? 'Start: ' : '') +\n event.startStr.split('').splice(0, 10).join('')}{' '}\n \n \n {' '}\n {Formatter(\n event.startStr.split('').splice(11, 2).join(''),\n event.startStr.split('').splice(13, 3).join('')\n )}\n \n
    \n \n {' '}\n {(event.endStr ? 'End: ' : '') +\n event.endStr.split('').splice(0, 10).join('')}{' '}\n \n \n {' '}\n {Formatter(\n event.endStr.split('').splice(11, 2).join(''),\n event.endStr.split('').splice(13, 3).join('')\n )}\n \n \n
  • \n );\n }\n\n function renderSidebarLocationOpeningEvent(event: any) {\n return (\n
  • \n history.push(`/special-event/${event.id}`)}\n >\n {event.title}\n \n {/*
    console.log(event)}>\n {(event.startStr ? \"Start: \" : \"\") + event.startStr.split('').splice(0, 10).join('')} \n {Formatter(event.startStr.split('').splice(11, 2).join(''), event.startStr.split('').splice(13, 3).join(''))}\n
    \n {(event.endStr ? \"End: \" : \"\") + event.endStr.split('').splice(0, 10).join('')} \n {Formatter(event.endStr.split('').splice(11, 2).join(''), event.endStr.split('').splice(13, 3).join(''))}\n
    */}\n
  • \n );\n }\n\n function renderSidebarProjectEvent(event: any) {\n return (\n
  • \n history.push(`/special-event/${event.id}`)}\n >\n {event.title}\n \n {/*
    console.log(event)}>\n {(event.startStr ? \"Start: \" : \"\") + event.startStr.split('').splice(0, 10).join('')} \n {Formatter(event.startStr.split('').splice(11, 2).join(''), event.startStr.split('').splice(13, 3).join(''))}\n
    \n {(event.endStr ? \"End: \" : \"\") + event.endStr.split('').splice(0, 10).join('')} \n {Formatter(event.endStr.split('').splice(11, 2).join(''), event.endStr.split('').splice(13, 3).join(''))}\n
    */}\n
  • \n );\n }\n\n function handleShowGroup() {\n if (showGroup === true && showLocation === true) {\n setShowGroup(false);\n setGroup([]);\n setColor('#f74f41');\n }\n if (showGroup === true && showLocation === false) {\n setShowGroup(false);\n setGroup([]);\n setSpecifics(false);\n setColor('');\n }\n if (showGroup === false) {\n setShowGroup(true);\n setSpecifics(true);\n setColor('#ffc138');\n }\n if (showGroup === false && showLocation === true) {\n setColor('#a3259F');\n }\n }\n\n function handleShowLocation() {\n if (showLocation === true && showGroup === true) {\n setShowLocation(false);\n setLocation([]);\n setColor('#ffc138');\n }\n if (showLocation === true && showGroup === false) {\n setShowLocation(false);\n setLocation([]);\n setSpecifics(false);\n setColor('');\n }\n if (showLocation === false) {\n setShowLocation(true);\n setSpecifics(true);\n setColor('#f74f41');\n }\n if (showLocation === false && showGroup === true) {\n setColor('#a3259F');\n }\n }\n\n function handlePersonalEvent() {\n if (personal === true) {\n setPersonal(false);\n setColor('');\n setGroup([]);\n setLocation([]);\n }\n if (personal === false) {\n setPersonal(true);\n setColor('#418dee');\n setShowGroup(false);\n setShowLocation(false);\n }\n }\n\n function handleGeneralEvent() {\n if (general === true) {\n setGeneral(false);\n setColor('');\n setGroup([]);\n setLocation([]);\n }\n if (general === false) {\n setGeneral(true);\n setColor('#007619');\n setShowGroup(false);\n setShowLocation(false);\n }\n }\n\n window.onclick = function (event: any) {\n if (event.target.className === 'modal') {\n setModal(false);\n setModalUpdate(false);\n }\n };\n\n const handleChangeType = (event: React.ChangeEvent<{ value: unknown }>) => {\n setType(event.target.value as string);\n if (event.target.value === 'Location Opening') setShowGroup(true);\n if (event.target.value === 'Project') setShowGroup(true);\n };\n\n const handleSelectGroup = (event: any) => {\n setGroup(event);\n };\n\n const handleSelectLocation = (event: any) => {\n setLocation(event);\n };\n\n withStyles({\n root: {\n color: grey[400],\n '&$checked': {\n color: green[600]\n }\n },\n checked: {}\n })((props: CheckboxProps) => );\n\n const modalCreateEvent = (\n \n
    \n
    \n {\n setModal(false);\n handlePermissions();\n }}\n className='close'\n >\n ×\n \n

    New Event

    \n
    \n
    \n
    \n setTitle(e.target.value)}\n />\n\n \n Type\n \n \n\n \n handlePersonalEvent()}\n >\n Personal Event\n \n handleShowLocation()}\n >\n Local Event\n \n handleShowGroup()}\n >\n Group Event\n \n handleGeneralEvent()}\n >\n General Event\n \n
    \n\n \n \n
    \n\n \n \n \n\n setEventAddress(e.target.value)}\n />\n\n
    \n\n setDescription(e.target.value)}\n rowsMax={4}\n />\n\n setStartTime(e.target.value)}\n InputLabelProps={{\n shrink: true\n }}\n />\n\n
    \n\n setEndTime(e.target.value)}\n InputLabelProps={{\n shrink: true\n }}\n />\n {modalLoading ? (\n \n ) : (\n <>\n \n Create Event\n \n \n )}\n \n \n \n \n );\n\n const modalEditEvent = (\n \n
    \n
    \n setModalUpdate(false)} className='close'>\n ×\n \n

    \n {(permission2.add ? 'true' : personal)\n ? 'Update Event'\n : 'Event information'}\n

    \n
    \n
    \n
    \n setTitle(e.target.value)}\n disabled={permission?.write ? false : true}\n />\n\n \n Type\n \n Meeting\n Conference Call\n Project Delivery\n Reporting\n \n Travel and Vacation\n \n Location Opening\n Marketing Event\n \n \n\n \n handlePersonalEvent()}\n >\n Personal Event\n \n handleShowLocation()}\n >\n Local Event\n \n handleShowGroup()}\n >\n Group Event\n \n handleGeneralEvent()}\n >\n General Event\n \n
    \n\n \n \n
    \n\n \n \n \n\n setEventAddress(e.target.value)}\n disabled={permission?.write ? false : true}\n />\n\n
    \n\n setDescription(e.target.value)}\n rowsMax={4}\n disabled={permission?.write ? false : true}\n />\n\n setStartTime(e.target.value)}\n InputLabelProps={{\n shrink: true\n }}\n disabled={permission?.write ? false : true}\n />\n\n
    \n\n setEndTime(e.target.value)}\n InputLabelProps={{\n shrink: true\n }}\n disabled={permission?.write ? false : true}\n />\n {modalLoading ? (\n \n ) : (\n <>\n \n ExportEvent(\n userEmail,\n title,\n description,\n startTime,\n endTime\n )\n }\n type='button'\n className='cancelbtn'\n >\n Export event\n \n \n Update Event\n \n \n Delete Event\n \n \n )}\n \n \n \n \n );\n\n return loaded ? (\n \n ) : (\n
    \n {modalCreateEvent}\n {modalEditEvent}\n
    \n
    \n
    \n

    \n All Events (\n {\n currentEvents.filter(\n (result: any) =>\n result.type !== 'Location Opening' &&\n result.type !== 'Project'\n ).length\n }\n )\n

    \n
      \n {currentEvents\n .filter(\n (result: any) =>\n result.type !== 'Location Opening' &&\n result.type !== 'Project'\n )\n .map(renderSidebarEvent)}\n changeState(show)}\n >\n {show ? 'Hide info' : 'Show info'}\n \n
    \n
    \n
    \n\n
    \n

    Location Openings ({locationOpeningEvents.length})

    \n
      \n {locationOpeningEvents.map(renderSidebarLocationOpeningEvent)}\n
    \n
    \n
    \n\n
    \n

    Projects ({projectEvents.length})

    \n
      {projectEvents.map(renderSidebarProjectEvent)}
    \n
    \n
    \n\n
    \n
    \n {}}\n timeZone='US/Central'\n eventsSet={handleEvents} // called after events are initialized/added/changed/removed\n handleWindowResize={true}\n />\n
    \n
    \n
    \n
    \n );\n};\n\nexport default Calendar;\n","import React, {useEffect} from 'react';\nimport ReactGA from 'react-ga';\nimport Calendar from '../../components/CompanyCalendar';\n\nconst CompanyCalendar: React.FC = () => {\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1')\n ReactGA.pageview(window.location.pathname + window.location.search)\n })\n\n return (\n \n )\n}\n\nexport default CompanyCalendar;\n","import React, { useState, useEffect } from 'react';\nimport TextField from '@material-ui/core/TextField';\nimport Loader from '../../components/Loader';\nimport axios from '../../services/axios';\nimport jwt from 'jsonwebtoken';\nimport { Theme } from 'src/styles/Theme';\n// import PieChart from './Graphs/PieChart';\nimport Formatter from '../CompanyAnnouncements/Formatter';\nimport { useHistory } from 'react-router-dom';\n// import LineChart from './Graphs/LineChart';\n// import BarChart from './Graphs/BarChart';\nimport { useCookies } from 'react-cookie'\n\ninterface LastUserData {\n \"user_email\": string,\n \"full_name\": string,\n \"location_name\": string,\n \"group_name\": string,\n \"profile_name\": string,\n \"status_name\": string,\n \"createdAt\": string\n}\n\nconst Analytics = () => {\n const [cookies, ,] = useCookies([\"token\"]);\n const token: any = cookies.token\n const [loading, setLoading] = useState(true)\n const [displayPaylocity, setDisplayPaylocity] = useState(false)\n const [displayBenefits, setDisplayBenefits] = useState(false)\n const [displayUserReport, setDisplayUserReport] = useState(false)\n const [user7, setUser7] = useState()\n const [user1, setUser1] = useState()\n const [targetButton, setTargetButton] = useState(1);\n const [userTime, setUserTime] = useState<'1' | '7' | undefined>('7')\n // const [analytics, setAnalytics] = useState(true)\n const [searchAnnouncement, setSearchAnnouncement] = useState(false)\n const [searchUser, setSearchUser] = useState(false)\n const [announcements, setAnnouncements] = useState(\n [\n {\n title: \"\",\n amount_emails_sent: 0,\n announcement_id: \"\",\n createdAt: \"\",\n dateEmailSent: \"\",\n open_rate: \"\",\n open_rate_email: \"\",\n report_announcement_id: \"\",\n total_clicks: 0,\n total_opens: 0,\n updatedAt: null,\n amount_sms_sent: 0,\n total_clicks_sms: 0,\n open_rate_sms: \"\"\n }\n ]\n )\n const [users, setUsers] = useState([\n {\n daily_ago: 0,\n email: \"\",\n full_name: \"\",\n lastLogin: \"\",\n group_name: \"\",\n location_name: \"\",\n id: \"\",\n amount_login_in_week: \"\",\n }\n ])\n // const [userStatus, setUserStatus] = useState({\n // ACTIVE: 0,\n // INACTIVE: 0,\n // BLOCKED: 0,\n // })\n const [userPage, setUserPage] = useState({\n limit: 10,\n nextPage: \"limit=10&offset=10\",\n offset: 1,\n pageCount: 10,\n prevPage: \"\",\n total: \"0\",\n })\n const [announcementPage, setAnnouncementPage] = useState({\n limit: 5,\n nextPage: \"\",\n offset: 1,\n pageCount: 5,\n prevPage: \"\",\n total: \"0\",\n })\n\n const history = useHistory();\n\n useEffect(() => {\n handlePermissions()\n handleLoadAnnouncements()\n handleLoadUsers()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // async function handleLoadStatus() {\n // await axios.get(`/api/v1/analytics/users/status`).then(response => {\n // setUserStatus(response.data.results)\n // })\n // }\n\n function handlePermissions() {\n jwt.verify(token!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n alert(err)\n setLoading(true);\n history.push(\"/\")\n } else {\n if (decoded.roles.analytics.view === false) {\n setLoading(true);\n alert(\"Insufficient Permissions\");\n history.push(\"/\")\n }\n }\n })\n }\n\n async function handleLoadAnnouncements() {\n setTargetButton(1)\n setLoading(true)\n try {\n await axios.get(`/api/v1/analytics/announcements?limit=5&offset=0`).then(response => {\n setAnnouncements(response.data.results)\n setAnnouncementPage(response.data)\n setSearchAnnouncement(false)\n setDisplayPaylocity(false)\n setDisplayBenefits(false)\n setDisplayUserReport(false)\n })\n } catch (error) {\n console.log(error)\n }\n setLoading(false)\n }\n\n async function handleLoadUsers() {\n try {\n await axios.get(`/api/v1/analytics/users?limit=5&offset=0`).then(response => {\n setUsers(response.data.results)\n setUserPage(response.data)\n setSearchUser(false)\n })\n } catch (error) {\n console.log(error)\n }\n setLoading(false)\n }\n\n async function handleSwitchPage(page: string, table: string) {\n setLoading(true)\n if (table === \"user\") {\n const response: any = await axios.get(`/api/v1/analytics/users/?${page}`)\n setUsers(response.data.results)\n setUserPage(response.data)\n setLoading(false)\n }\n if (table === \"announcement\") {\n const response = await axios.get(`/api/v1/analytics/announcements/?${page}`)\n setAnnouncements(response.data.results)\n setAnnouncementPage(response.data)\n setLoading(false)\n }\n }\n\n async function handleSearchAnnouncement(value: string) {\n if (value.length < 1) {\n handleLoadAnnouncements()\n } else {\n try {\n const response: any = await axios.get(`/api/v1/analytics/announcements?filter=${value}`)\n setAnnouncements(response.data.results)\n setSearchAnnouncement(true)\n } catch (error) {\n console.log(error)\n setSearchAnnouncement(false)\n }\n }\n }\n\n async function handleSearchUser(value: string) {\n if (value.length < 1) {\n handleLoadUsers()\n } else {\n try {\n const response: any = await axios.get(`/api/v1/analytics/users?filter=${value}`)\n setUsers(response.data.results)\n setSearchUser(true)\n } catch (error) {\n console.log(error)\n setSearchUser(false)\n }\n }\n }\n\n function lastLoginConverter(date: number) {\n if (date === 0) {\n return \"today\"\n }\n if (date >= 30) {\n const daysAgo = `${Math.floor(date / 30)} months ago`\n return daysAgo\n }\n else {\n return `${date} days ago`\n }\n }\n\n function actualPage(offset: number, limit: number) {\n if (offset === 1) {\n return 1\n }\n if (offset === limit) {\n return 2\n }\n if (offset / limit === 2) {\n return 3\n }\n if (offset !== limit) {\n return (offset / limit) + 1\n }\n }\n\n async function exportCSV(e: any, id: string) {\n const data = new Date().toISOString().split(\"\").splice(5, 5).join(\"\")\n if (e === \"excel\") {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/analytics/announcements/export/excel/${id}`, {\n method: 'GET',\n }).then(function (response) {\n return response.blob();\n }).then(function (blob) {\n saveAs(blob, `export${data}.xlsx`);\n }).catch(error => {\n alert(error)\n })\n }\n if (e === \"csv\") {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/analytics/announcements/export/csv/${id}`, {\n method: 'GET',\n }).then(function (response) {\n return response.blob();\n }).then(function (blob) {\n saveAs(blob, `export${data}.csv`);\n }).catch(error => {\n alert(error)\n })\n }\n if (e === \"paylocity_excel\") {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/analytics/announcements/export/paylocity/excel/${id}`, {\n method: 'GET',\n }).then(function (response) {\n return response.blob();\n }).then(function (blob) {\n saveAs(blob, `export${data}.xlsx`);\n }).catch(error => {\n alert(error)\n })\n }\n if (e === \"paylocity_csv\") {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/analytics/announcements/export/paylocity/csv/${id}`, {\n method: 'GET',\n }).then(function (response) {\n return response.blob();\n }).then(function (blob) {\n saveAs(blob, `export${data}.csv`);\n }).catch(error => {\n alert(error)\n })\n }\n if (e === \"benefits_excel\") {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/analytics/announcements/export/benefits/excel/${id}`, {\n method: 'GET',\n }).then(function (response) {\n return response.blob();\n }).then(function (blob) {\n saveAs(blob, `export${data}.xlsx`);\n }).catch(error => {\n alert(error)\n })\n }\n if (e === \"benefits_csv\") {\n fetch(`${process.env.REACT_APP_API_URL}/api/v1/analytics/announcements/export/benefits/csv/${id}`, {\n method: 'GET',\n }).then(function (response) {\n return response.blob();\n }).then(function (blob) {\n saveAs(blob, `export${data}.csv`);\n }).catch(error => {\n alert(error)\n })\n }\n }\n\n const tables = (\n
    \n
    \n
    \n

    Announcement Report

    \n handleSearchAnnouncement(e.target.value)}\n />\n {/*
    \n exportCSV(e.target.value)} \n name=\"\">\n \n \n \n \n
    */}\n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {announcements.map(data => (\n \n \n \n \n \n \n \n \n \n ))}\n \n
    TITLEFEG HOME TOTAL OPENFEG HOME OPEN RATEEMAIL SENTEMAIL OPEN RATEEMAIL STATUSEXPORT

    TITLE:

    {data.title}

    FEG HOME TOTAL OPEN:

    {data.total_opens}

    FEG HOME OPEN RATE:

    {Number(data.open_rate).toFixed(1)}%

    EMAIL SENT:

    {data.amount_emails_sent}

    EMAIL OPEN RATE:

    {Number(data.open_rate_email).toFixed(1)}%

    EMAIL STATUS:

    \n {(data.dateEmailSent !== \"\") ? \"Sent on\" : \"Error.\"}\n {\n (data.dateEmailSent !== \"\") ?\n `${data.dateEmailSent.split(\"T\")[0] + \" \" + Formatter(data.dateEmailSent.split('').splice(11, 2).join(''), data.dateEmailSent.toString().split('').splice(13, 3).join(''))}`\n :\n \"Email not triggered\"\n }\n
    \n \n
    \n {\n searchAnnouncement ?\n (
    \n
    )\n :\n (
    \n \n

    Page: {actualPage(announcementPage.offset, announcementPage.limit)}

    \n \n
    )\n }\n
    \n\n
    \n
    \n

    User Activity

    \n handleSearchUser(e.target.value)}\n />\n {/*
    \n exportCSV(e.target.value)} \n name=\"\">\n \n \n \n \n
    */}\n
    \n \n \n \n \n \n \n \n \n \n \n \n\n \n {users.map(user => (\n \n \n \n \n \n \n \n \n ))}\n \n
    USERLOCATIONEMAILGROUPDAILY LOGIN (LAST 7 DAYS)LAST LOGIN

    USER:

    {user.full_name}

    LOCATION:

    {user.location_name}

    EMAIL:

    {user.email}

    GROUP:

    {user.group_name}

    DAILY LOGIN:

    {Number(user.amount_login_in_week).toFixed(0)}

    LAST LOGIN:

    {lastLoginConverter(user.daily_ago)}
    \n {\n searchUser ?\n (
    \n
    )\n :\n (\n
    \n \n

    Page: {actualPage(userPage.offset, userPage.limit)}

    \n \n
    \n )\n }\n
    \n
    \n )\n\n // const graphs = (\n // <>\n //
    \n\n // {/* */}\n\n // {/* */}\n\n // tmp.title)}\n // data={announcements.map((tmp: any) => Math.floor(tmp.open_rate))}\n // title={'Email Open Rating'}\n // colors={['#3B93AC', '#C191D9', '#9071CE', '#C2C5F0', '#D0E5FF']}\n // />\n\n // \n\n //
    \n // \n // )\n\n const handleSearchPaylocityAnnouncement = async (value: string) => {\n if (value.length < 1) {\n handleLoadPaylocityAnnouncements()\n } else {\n try {\n const response: any = await axios.get(`/api/v1/analytics/announcements?filter=${value}&has_paylocity=true`)\n setAnnouncements(response.data.results)\n setSearchAnnouncement(true)\n } catch (error) {\n console.log(error)\n setSearchAnnouncement(false)\n }\n }\n }\n\n const handleSearchBenefitsAnnouncement = async (value: string) => {\n if (value.length < 1) {\n handleLoadBenefitsAnnouncementsAnalytics()\n } else {\n try {\n const response: any = await axios.get(`/api/v1/analytics/announcements?filter=${value}&has_benefits=true`)\n setAnnouncements(response.data.results)\n setSearchAnnouncement(true)\n } catch (error) {\n console.log(error)\n setSearchAnnouncement(false)\n }\n }\n }\n\n const paylocityToolTable = (\n
    \n
    \n
    \n

    Paylocity Tool Announcement Report

    \n handleSearchPaylocityAnnouncement(e.target.value)}\n />\n
    \n\n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n \n\n \n {announcements.map(data => (\n \n \n {/* */}\n \n \n \n \n \n \n \n \n ))}\n \n
    TITLEFEG HOME OPENSEMAIL SENTEMAIL OPEN RATESMS SENTSMS SINGLE CLICKSSMS CLICK RATESTATUS

    TITLE:

    {data.title}

    FEG HOME OPENS:

    {data.total_opens}

    EMAIL SENT:

    {data.amount_emails_sent}

    EMAIL OPEN RATE:

    {Number(data.open_rate_email).toFixed(1)}%

    SMS SENT:

    {data.amount_sms_sent}

    SMS SINGLE CLICKS:

    {data.total_clicks_sms}

    SMS CLICK RATE:

    {Number(data.open_rate_sms).toFixed(1)}%

    STATUS:

    \n {(data.createdAt !== \"\") ? \"Sent on\" : \"Error.\"}\n {\n (data.createdAt !== \"\") ?\n `${data.createdAt.split(\"T\")[0] + \" \" + Formatter(data.createdAt.split('').splice(11, 2).join(''), data.createdAt.toString().split('').splice(13, 3).join(''))}`\n :\n \"Email not triggered\"\n }\n
    \n \n
    \n {/* {\n searchAnnouncement ?\n (
    \n
    )\n :\n (
    \n \n

    Page: {actualPage(announcementPage.offset, announcementPage.limit)}

    \n \n
    )\n } */}\n
    \n
    \n )\n\n const benefitsToolTable = (\n
    \n
    \n
    \n

    Benefits Eligible Group Announcement Report

    \n handleSearchBenefitsAnnouncement(e.target.value)}\n />\n
    \n\n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n \n\n \n {announcements.map(data => (\n \n \n {/* */}\n \n \n \n \n \n \n \n \n ))}\n \n
    TITLEFEG HOME OPENSEMAIL SENTEMAIL OPEN RATESMS SENTSMS SINGLE CLICKSSMS CLICK RATESTATUS

    TITLE:

    {data.title}

    FEG HOME OPENS:

    {data.total_opens}

    EMAIL SENT:

    {data.amount_emails_sent}

    EMAIL OPEN RATE:

    {Number(data.open_rate_email).toFixed(1)}%

    SMS SENT:

    {data.amount_sms_sent}

    SMS SINGLE CLICKS:

    {data.total_clicks_sms}

    SMS CLICK RATE:

    {Number(data.open_rate_sms).toFixed(1)}%

    STATUS:

    \n {(data.createdAt !== \"\") ? \"Sent on\" : \"Error.\"}\n {\n (data.createdAt !== \"\") ?\n `${data.createdAt.split(\"T\")[0] + \" \" + Formatter(data.createdAt.split('').splice(11, 2).join(''), data.createdAt.toString().split('').splice(13, 3).join(''))}`\n :\n \"Email not triggered\"\n }\n
    \n \n
    \n {/* {\n searchAnnouncement ?\n (
    \n
    )\n :\n (
    \n \n

    Page: {actualPage(announcementPage.offset, announcementPage.limit)}

    \n \n
    )\n } */}\n
    \n
    \n )\n\n const userReportTable = (\n
    \n
    \n
    \n

    User Report Analytics

    \n\n
    \n setUserTime('7')}\n >\n 7 days\n \n setUserTime('1')}\n >\n 24 hours\n \n
    \n
    \n\n
    \n
    \n \n {userTime === '7' ? (\n {user7?.filter((user) => user.status_name === 'Active').length}\n ) : (\n {user1?.filter((user) => user.status_name === 'Active').length}\n )}\n
    \n\n
    \n \n {userTime === '7' ? (\n {user7?.filter((user) => user.status_name !== 'Active').length}\n ) : (\n {user1?.filter((user) => user.status_name !== 'Active').length}\n )}\n
    \n
    \n\n \n \n \n \n \n \n \n \n {/* */}\n \n \n\n \n {userTime === '7' ? user7?.map((user) => (\n \n \n \n \n \n \n {/* */}\n \n )) : null}\n\n {userTime === '1' ? user1?.map((user) => (\n \n \n \n \n \n \n {/* */}\n \n )) : null}\n \n
    NAMELOCATIONEMAILGROUPSTATUSCREATED AT

    {user.full_name}

    {user.location_name}

    {user.user_email}

    {user.group_name}

    {user.status_name}

    {user.createdAt}

    {user.full_name}

    {user.location_name}

    {user.user_email}

    {user.group_name}

    {user.status_name}

    {user.createdAt}

    \n\n {/*
    \n {\n handleSwitchPage(userPage.prevPage, 'user-report');\n }}\n >\n Prev Page\n \n

    Page: {actualPage(userPage.offset, userPage.limit)}

    \n {\n handleSwitchPage(userPage.nextPage, 'user-report');\n }}\n >\n Next Page\n \n
    */}\n
    \n
    \n )\n\n const handleLoadPaylocityAnnouncements = async () => {\n setTargetButton(2)\n setLoading(true)\n try {\n await axios.get(`/api/v1/analytics/announcements?limit=5&offset=0&has_paylocity=true`).then(response => {\n setAnnouncements(response.data.results)\n setAnnouncementPage(response.data)\n setSearchAnnouncement(false)\n setDisplayBenefits(false)\n setDisplayPaylocity(true)\n setDisplayUserReport(false)\n })\n } catch (error) {\n console.log(error)\n }\n setLoading(false)\n }\n\n const handleLoadBenefitsAnnouncementsAnalytics = async () => {\n setTargetButton(3)\n setLoading(true)\n try {\n await axios.get(`/api/v1/analytics/announcements?limit=5&offset=0&has_benefits=true`).then(response => {\n setAnnouncements(response.data.results)\n setAnnouncementPage(response.data)\n setSearchAnnouncement(false)\n setDisplayPaylocity(false)\n setDisplayBenefits(true)\n setDisplayUserReport(false)\n })\n } catch (error) {\n console.log(error)\n }\n setLoading(false)\n }\n\n const handleLoadUserReportAnalytics = async () => {\n setTargetButton(4)\n setLoading(true)\n try {\n await axios.get(`api/v1/accounts/last/7days`).then(response => {\n setUser7(response.data)\n setSearchUser(false)\n setDisplayPaylocity(false)\n setDisplayBenefits(false)\n setDisplayUserReport(true)\n })\n await axios.get(`api/v1/accounts/last/1day`).then(response => {\n setUser1(response.data)\n setSearchUser(false)\n setDisplayPaylocity(false)\n setDisplayBenefits(false)\n setDisplayUserReport(true)\n })\n } catch (error) {\n console.log(error)\n }\n setLoading(false)\n }\n\n return (\n loading ?\n \n :\n
    \n {/*/
    \n \n \n
    /*/}\n
    \n \n \n \n \n
    \n
    \n {\n (!displayPaylocity && !displayBenefits && !displayUserReport) && tables\n }\n {\n // !displayPaylocity ? tables : (paylocityToolTable)\n displayPaylocity && paylocityToolTable\n }\n {\n // !displayPaylocity ? tables : (paylocityToolTable)\n displayBenefits && benefitsToolTable\n }\n {\n displayUserReport && userReportTable\n }\n
    \n
    \n )\n}\nexport default Analytics;","import React, {useEffect} from 'react';\nimport ReactGA from 'react-ga';\nimport Analytics from '../../components/Analytics';\n\nconst FEGAnalytics: React.FC = () => {\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1')\n ReactGA.pageview(window.location.pathname + window.location.search)\n })\n\n return (\n \n )\n}\n\nexport default FEGAnalytics;","import React, { useState, useEffect, ChangeEvent } from 'react';\nimport Select from 'react-select';\nimport { groupsData } from '../../data';\nimport {\n TextField,\n Button,\n Table,\n TableContainer,\n TableHead,\n TableRow,\n TableCell,\n TableBody,\n Paper,\n IconButton,\n FormControl,\n InputLabel,\n Select as Select2,\n MenuItem,\n makeStyles,\n Theme,\n createStyles,\n Chip\n} from '@material-ui/core';\nimport { Delete, Edit } from '@material-ui/icons';\nimport jwt from 'jsonwebtoken';\nimport axios from '../../services/axios';\nimport { useCookies } from 'react-cookie';\nimport { useHistory } from 'react-router-dom';\nimport Loader from 'src/components/Loader';\nimport { withStyles } from '@material-ui/core/styles';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport { FiImage } from 'react-icons/fi';\nimport {\n DragDropContext,\n Droppable,\n Draggable,\n DropResult,\n ResponderProvided,\n DraggableProvided,\n DroppableProvided,\n DraggableStateSnapshot\n} from 'react-beautiful-dnd';\nimport ReorderIcon from '@material-ui/icons/Reorder';\nimport Profile from 'src/components/UserValidation/Profile';\nimport { Theme as S } from 'src/styles/Theme';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n width: '100%'\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n },\n })\n)\n\ntype Profile = {\n id: string\n name: string\n}\n\ntype Group = {\n id: string\n name: string\n profile_id: string\n}\n\nconst ShortcutManagement: React.FC = () => {\n const styles = useStyles()\n const [permissions, setPermissions] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n })\n const [loaded, setLoaded] = useState(false);\n const [defaultSearch, setDefaultSearch] = useState('');\n const [shortcuts, setShortcuts] = useState([]);\n const [defaultShortcuts, setDefaultShortcuts] = useState([]);\n const [shortcutTarget, setShortcutTarget] = useState<{\n id?: string;\n name?: string;\n display_name1?: string;\n display_name2?: string;\n desktop_image?: string;\n mobile_image?: string;\n link_desktop?: string;\n link_mobile?: string;\n order?: number;\n group_ids?: string[];\n favorite?: boolean\n }>({})\n const [groupIds, setGroupIds] = useState<{\n label: string\n value: string\n }[]>([])\n const [cookies, ,] = useCookies(['token']);\n const [triggerModal, setTriggerModal] = useState(false);\n const [previewDesktop, setPreviewDesktop] = useState('');\n const [imageDesktopName, setImageDesktopName] = useState('');\n const [imageDesktopFile, setImageDesktopFile] = useState({\n selectedFile: '',\n type: ''\n });\n const [previewMobile, setPreviewMobile] = useState('');\n const [imageMobileName, setImageMobileName] = useState('');\n const [imageMobileFile, setImageMobileFile] = useState({\n selectedFile: '',\n type: ''\n });\n const [profiles, setProfiles] = useState([])\n const [groups, setGroups] = useState([])\n const [selectedProfile, setSelectProfile] = useState([])\n const [groupOptions, setGroupOptions] = useState([])\n const [selectedGroup, setSelectedGroup] = useState([])\n const allInputs =\n shortcutTarget.name &&\n shortcutTarget.display_name1 &&\n shortcutTarget.display_name2 &&\n (imageDesktopName || shortcutTarget.desktop_image) &&\n shortcutTarget.link_desktop &&\n shortcutTarget.link_mobile;\n\n const token = cookies.token;\n const history = useHistory();\n\n const bgColor = S.primary;\n const textColor = '#808285';\n\n const TableHeadContainer = withStyles(() => ({\n root: {\n backgroundColor: bgColor\n }\n }))(TableHead);\n\n const TableHeaderCell = withStyles(() => ({\n root: {\n color: 'white'\n }\n }))(TableCell);\n\n const TableBodyCell = withStyles(() => ({\n root: {\n color: textColor\n }\n }))(TableCell);\n\n const AddButton = withStyles(() => ({\n root: {\n backgroundColor: bgColor\n }\n }))(Button);\n\n const handlePermissions = () => {\n if (token) {\n jwt.verify(\n token.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n history.push('/');\n } else {\n if (decoded.roles.shortcuts.view !== true) {\n alert(\"Insufficient Permissions\")\n history.push('/');\n } else {\n setPermissions(decoded.roles.shortcuts)\n }\n }\n }\n );\n }\n };\n\n function handleLoad() {\n setLoaded(false);\n clearImages();\n setShortcutTarget({});\n setGroupIds([])\n clearSelects()\n\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n setDefaultShortcuts(shortcutsResponse.data);\n setLoaded(true);\n });\n\n axios.get('api/v1/profiles').then((response) => {\n const profiles: Profile[] = response.data\n const profiles_filtered = profiles.filter((profile: Profile) => profile.id === '2f305f43-c236-4a93-8a1c-c365f296190d' || profile.id === 'c843021e-0c33-40cd-a0d2-0ec36fa1bb7a')\n setProfiles(profiles_filtered)\n })\n\n axios.get('api/v1/groups').then((response) => {\n const groups = response.data\n setGroups(groups)\n })\n }\n\n const handleSearchShortcut = (name: string) => {\n const filteredShortcuts = defaultShortcuts.filter(\n (shortcut: any) =>\n shortcut.name.toLowerCase().includes(name.toLowerCase()) ||\n shortcut.display_name1.toLowerCase().includes(name.toLowerCase()) ||\n shortcut.display_name2.toLowerCase().includes(name.toLowerCase())\n );\n setShortcuts(filteredShortcuts);\n setDefaultSearch(name);\n };\n\n function handleDeleteShortcut(id: string, order: number) {\n setLoaded(false)\n try {\n axios.delete(`/api/v1/shortcuts/${id}/${order}`).then(() => {\n handleLoad()\n })\n } catch (error) {\n alert('Error deleting a shortcut, please try again.')\n handleLoad()\n }\n }\n\n const handleSelectGroup = (value: any) => {\n if (value) {\n setGroupIds(value)\n } else {\n setGroupIds([])\n }\n }\n\n const makeShortcutAction = () => {\n if (triggerModal === 'create') {\n let group_ids: string[] = []\n groupIds.map((groupID) => {\n group_ids.push(groupID.value)\n })\n const dataCreate = {\n name: shortcutTarget.name,\n display_name1: shortcutTarget.display_name1,\n display_name2: shortcutTarget.display_name2,\n desktop_image: imageDesktopFile,\n mobile_image: imageMobileFile,\n link_desktop: shortcutTarget.link_desktop,\n link_mobile: shortcutTarget.link_mobile,\n group_ids: selectedGroup,\n favorite: false\n };\n axios\n .post(`/api/v1/shortcuts`, dataCreate)\n .then(() => {\n handleLoad();\n setTriggerModal(false);\n })\n .catch((error) => {\n if (error.response.data.code === '23505') {\n const regExp = /\\(([^)]+)\\)/;\n const errorMessage: any = regExp.exec(error.response.data.detail);\n alert(`The ${errorMessage[1].replace('_', ' ')} already exists.`);\n }\n });\n }\n if (triggerModal === 'edit') {\n let group_ids: string[] = []\n groupIds.map((groupID) => {\n group_ids.push(groupID.value)\n })\n const dataEdit = {\n name: shortcutTarget.name,\n display_name1: shortcutTarget.display_name1,\n display_name2: shortcutTarget.display_name2,\n desktop_image: imageDesktopFile,\n mobile_image: imageMobileFile,\n link_desktop: shortcutTarget.link_desktop,\n link_mobile: shortcutTarget.link_mobile,\n group_ids: selectedGroup,\n favorite: shortcutTarget.favorite\n };\n setLoaded(true);\n try {\n axios\n .put(`/api/v1/shortcuts/${shortcutTarget.id}`, dataEdit)\n .then(() => {\n handleLoad();\n setDefaultSearch('');\n setTriggerModal(false);\n });\n } catch (error) {\n alert('Error updating a shortcut, please try again.');\n handleLoad();\n }\n }\n };\n\n useEffect(() => {\n handlePermissions();\n handleLoad();\n }, []);\n\n function fileSelectDesktop(props: any) {\n if (props[0] === undefined) {\n setImageDesktopName('');\n setImageDesktopFile({\n selectedFile: '',\n type: ''\n });\n return;\n }\n setPreviewDesktop(URL.createObjectURL(props[0]));\n setImageDesktopName(props[0].name);\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setImageDesktopFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n\n function fileSelectMobile(props: any) {\n if (props[0] === undefined) {\n setImageMobileName('');\n setImageMobileFile({\n selectedFile: '',\n type: ''\n });\n return;\n }\n setPreviewMobile(URL.createObjectURL(props[0]));\n setImageMobileName(props[0].name);\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setImageMobileFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n\n function clearImages() {\n setPreviewDesktop('');\n setImageDesktopName('');\n setImageDesktopFile({\n selectedFile: '',\n type: ''\n });\n setPreviewMobile('');\n setImageMobileName('');\n setImageMobileFile({\n selectedFile: '',\n type: ''\n });\n }\n\n function clearGroup() {\n setGroupIds([])\n }\n\n function handleGroupTarget(group_ids: string[]) {\n if (group_ids) {\n let append: {\n label: string\n value: string\n }[] = []\n group_ids.map((id) => {\n groupsData.forEach((data) => {\n if (data.value == id) {\n append.push({\n label: data.label,\n value: id\n })\n }\n })\n })\n const newIds = [\n ...groupIds,\n ...append\n ]\n setGroupIds(newIds)\n\n\n let selectedProfiles: string[] = []\n let selectedGroups: string[] = []\n\n for (let id of group_ids) {\n groups.forEach((group) => {\n if (group.id === id) {\n const profile = profiles.filter((profile) => profile.id === group.profile_id)[0]\n if (!selectedProfiles.includes(profile.id)) selectedProfiles.push(profile.id)\n if (!selectedGroups.includes(group.id)) selectedGroups.push(group.id)\n }\n })\n }\n\n setSelectProfile(selectedProfiles)\n setSelectedGroup(selectedGroups)\n handleGroupOptions(selectedProfiles)\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const handleDragEnd = (result: DropResult, provided?: ResponderProvided) => {\n if (!result.destination) {\n return;\n }\n\n if (result.destination.index === result.source.index) {\n return;\n }\n\n const params = {\n sourceId: result.draggableId,\n sourceIndex: result.source.index,\n destinationIndex: result.destination.index\n };\n\n if (params.destinationIndex < params.sourceIndex) {\n axios\n .get(`/api/v1/shortcuts/up/${params.sourceId}/${shortcuts[params.destinationIndex].order}`)\n .then(() => {\n handleLoad();\n });\n }\n\n if (params.destinationIndex > params.sourceIndex) {\n axios\n .get(`/api/v1/shortcuts/down/${params.sourceId}/${shortcuts[params.destinationIndex].order}`)\n .then(() => {\n handleLoad();\n });\n }\n };\n\n function handleSelectedProfile(event: ChangeEvent<{ value: unknown }>) {\n const profiles_id = event.target.value as string[]\n\n // if (profiles_id.length < selectedProfile.length) {\n // const newSelectedGroups: string[] = []\n // for (let id of profiles_id) {\n // selectedGroup.forEach((group_id) => {\n // groups.forEach((group) => {\n // if (group_id === group.id && )\n // })\n // })\n // }\n // } else {\n // }\n setSelectProfile(profiles_id)\n handleGroupOptions(profiles_id)\n }\n\n function handleSelectedGroup(event: ChangeEvent<{ value: unknown }>) {\n const groups_id = event.target.value as string[]\n setSelectedGroup(groups_id)\n }\n\n function renderSelectedProfile(selected: unknown) {\n let profile_names: string[] = []\n\n for (let id of selected as string[]) {\n profiles.map((profile) => {\n if (id === profile.id) {\n profile_names.push(profile.name)\n }\n })\n }\n\n return (\n
    \n {profile_names.map((value) => (\n \n ))}\n
    \n )\n }\n\n function renderSelectedGroup(selected: unknown) {\n let groups_names: string[] = []\n\n for (let id of selected as string[]) {\n groups.map((group) => {\n if (id === group.id) {\n groups_names.push(group.name)\n }\n })\n }\n\n return (\n
    \n {groups_names.map((value) => (\n \n ))}\n
    \n )\n }\n\n function handleGroupOptions(profiles_id: string[]) {\n let data: Group[] = []\n\n profiles_id.map((id) => {\n groups.filter((group) => group.profile_id === id).map((group) => {\n data.push(group)\n })\n })\n\n setGroupOptions(data)\n }\n\n function clearSelects() {\n setSelectProfile([])\n setSelectedGroup([])\n }\n\n const shortcutModal = (\n
    \n
    \n
    \n {\n setTriggerModal(false);\n clearImages();\n clearGroup()\n clearSelects()\n }}\n className='close'\n >\n ×\n \n

    FEG Home Shortcut Manager

    \n
    \n
    \n {!loaded ? (\n \n ) : (\n <>\n
    \n \n setShortcutTarget({\n ...shortcutTarget,\n name: e.target.value\n })\n }\n />\n\n
    \n \n Profiles\n \n {profiles.map((profile) => (\n \n {profile.name}\n \n ))}\n \n \n\n \n Groups\n \n {groupOptions.map((group) => (\n \n {group.name}\n \n ))}\n \n \n
    \n\n {/* */}\n
    \n
    \n \n setShortcutTarget({\n ...shortcutTarget,\n display_name1: e.target.value\n })\n }\n />\n \n setShortcutTarget({\n ...shortcutTarget,\n display_name2: e.target.value\n })\n }\n />\n
    \n
    \n \n setShortcutTarget({\n ...shortcutTarget,\n link_desktop: e.target.value\n })\n }\n />\n \n setShortcutTarget({\n ...shortcutTarget,\n link_mobile: e.target.value\n })\n }\n />\n
    \n
    \n
    \n fileSelectDesktop(event.target.files)}\n />\n \n
    \n
    \n fileSelectMobile(event.target.files)}\n />\n \n
    \n
    \n
    \n makeShortcutAction()}\n disabled={!allInputs}\n >\n SAVE\n \n
    \n \n )}\n
    \n
    \n
    \n );\n\n\n return !loaded ? (\n \n ) : (\n
    \n
    \n

    FEG Apps Manager

    \n
    \n handleSearchShortcut(e.target.value)}\n className='searchShortcut'\n />\n {\n setShortcutTarget({});\n clearImages();\n setTriggerModal('create');\n clearSelects()\n }}\n >\n Add Feg App\n \n
    \n
    \n \n \n \n \n  \n \n Shortcut Name\n \n \n App Name\n \n \n App Description\n \n \n Desktop Image\n \n\n Link Desktop\n Link Mobile\n Order\n Actions\n \n \n \n \n {(droppableProvided: DroppableProvided) => (\n \n {shortcuts.map((shortcut: any, index: number) => (\n \n {(\n draggableProvided: DraggableProvided,\n snapshot: DraggableStateSnapshot\n ) => {\n return (\n \n {/* note: `snapshot.isDragging` is useful to style or modify behaviour of dragged cells */}\n \n {defaultSearch.length >= 1 ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )}\n
    \n \n 18\n ? shortcut.name\n : null\n }\n >\n {shortcut.name.length > 18\n ? shortcut.name.substring(0, 18) + '...'\n : shortcut.name}\n \n \n \n 14\n ? shortcut.display_name1\n : null\n }\n >\n {shortcut.display_name1.length > 14\n ? shortcut.display_name1.substring(0, 14) + '...'\n : shortcut.display_name1}\n \n \n \n 18\n ? shortcut.display_name2\n : null\n }\n >\n {shortcut.display_name2.length > 18\n ? shortcut.display_name2.substring(0, 18) + '...'\n : shortcut.display_name2}\n \n \n \n \n window.open(shortcut.desktop_image)\n }\n style={{ color: `${S.primary}` }}\n />\n \n\n \n
    \n {shortcut.link_desktop.length > 10\n ? shortcut.link_desktop.substring(0, 10) + '...'\n : shortcut.link_desktop}\n
    \n
    \n \n
    \n {shortcut.link_mobile.length > 10\n ? shortcut.link_mobile.substring(0, 10) + '...'\n : shortcut.link_mobile}\n
    \n
    \n \n {shortcut.order}\n \n \n
    \n {\n setShortcutTarget(shortcut);\n clearImages();\n clearSelects()\n setTriggerModal('edit');\n handleGroupTarget(shortcut.group_ids)\n }}\n aria-label='edit'\n >\n \n \n \n handleDeleteShortcut(\n shortcut.id,\n shortcut.order\n )\n }\n aria-label='delete'\n >\n \n \n
    \n
    \n \n );\n }}\n \n ))}\n {droppableProvided.placeholder}\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n {shortcutModal}\n
    \n );\n};\n\nexport default ShortcutManagement;\n","import React, { useState, useEffect } from 'react';\nimport {\n TextField,\n Table,\n TableContainer,\n TableHead,\n TableRow,\n TableCell,\n TableBody,\n Paper,\n IconButton\n} from '@material-ui/core';\nimport { ToggleOff } from '@material-ui/icons';\nimport jwt from 'jsonwebtoken';\nimport axios from '../../../services/axios';\nimport { useCookies } from 'react-cookie';\nimport { useHistory } from 'react-router-dom';\nimport Loader from 'src/components/Loader';\nimport { withStyles } from '@material-ui/core/styles';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport { FiImage } from 'react-icons/fi';\nimport {\n DragDropContext,\n Droppable,\n Draggable,\n DraggableProvided,\n DroppableProvided,\n DraggableStateSnapshot\n} from 'react-beautiful-dnd';\nimport { Theme } from 'src/styles/Theme';\n\nconst ShortcutManagement: React.FC = () => {\n const [permissions, setPermissions] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n });\n const [loaded, setLoaded] = useState(false);\n const [defaultSearch, setDefaultSearch] = useState('');\n const [shortcuts, setShortcuts] = useState([]);\n const [defaultShortcuts, setDefaultShortcuts] = useState([]);\n const [cookies, ,] = useCookies(['token']);\n const token = cookies.token;\n const history = useHistory();\n\n const bgColor = Theme.primary;\n const textColor = '#808285';\n\n const TableHeadContainer = withStyles(() => ({\n root: {\n backgroundColor: bgColor\n }\n }))(TableHead);\n\n const TableHeaderCell = withStyles(() => ({\n root: {\n color: 'white'\n }\n }))(TableCell);\n\n const TableBodyCell = withStyles(() => ({\n root: {\n color: textColor\n }\n }))(TableCell);\n\n const handlePermissions = () => {\n if (token) {\n jwt.verify(\n token.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n history.push('/');\n } else {\n if (decoded.roles.shortcuts.view !== true) {\n alert('Insufficient Permissions');\n history.push('/');\n } else {\n setPermissions(decoded.roles.shortcuts);\n }\n }\n }\n );\n }\n };\n\n function handleLoad() {\n setLoaded(false);\n\n axios.get(`/api/v1/shortcuts?status=inactive`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n setDefaultShortcuts(shortcutsResponse.data);\n setLoaded(true);\n });\n }\n\n const handleSearchShortcut = (name: string) => {\n const filteredShortcuts = defaultShortcuts.filter(\n (shortcut: any) =>\n shortcut.name.toLowerCase().includes(name.toLowerCase()) ||\n shortcut.display_name1.toLowerCase().includes(name.toLowerCase()) ||\n shortcut.display_name2.toLowerCase().includes(name.toLowerCase())\n );\n setShortcuts(filteredShortcuts);\n setDefaultSearch(name);\n };\n\n const handleActiveShortcut = (id: string, order: number) => {\n setLoaded(false);\n try {\n axios.put(`api/v1/shortcuts/${id}/${order}/activate`).then(() => {\n setTimeout(() => {\n handleLoad();\n }, 300);\n });\n } catch (error) {\n alert('Error activing the shortcut, please try again.');\n handleLoad();\n }\n };\n\n useEffect(() => {\n handlePermissions();\n handleLoad();\n }, []);\n\n return !loaded ? (\n \n ) : (\n
    \n
    \n {/*

    FEG Home Shortcut Manager

    */}\n

    Inactive Shortcuts

    \n
    \n handleSearchShortcut(e.target.value)}\n className='searchShortcut'\n />\n
    \n
    \n \n \n \n \n \n Shortcut Name\n \n \n Display Name 01\n \n \n Display Name 02\n \n \n Desktop Image\n \n Mobile Image\n Link Desktop\n Link Mobile\n Order\n Actions\n \n \n {}}>\n \n {(droppableProvided: DroppableProvided) => (\n \n {shortcuts.map((shortcut: any, index: number) => (\n \n {(\n draggableProvided: DraggableProvided,\n snapshot: DraggableStateSnapshot\n ) => {\n return (\n \n \n 18\n ? shortcut.name\n : null\n }\n >\n {shortcut.name.length > 18\n ? shortcut.name.substring(0, 18) + '...'\n : shortcut.name}\n \n \n \n 14\n ? shortcut.display_name1\n : null\n }\n >\n {shortcut.display_name1.length > 14\n ? shortcut.display_name1.substring(\n 0,\n 14\n ) + '...'\n : shortcut.display_name1}\n \n \n \n 18\n ? shortcut.display_name2\n : null\n }\n >\n {shortcut.display_name2.length > 18\n ? shortcut.display_name2.substring(\n 0,\n 18\n ) + '...'\n : shortcut.display_name2}\n \n \n \n \n window.open(shortcut.desktop_image)\n }\n style={{ color: `${Theme.primary}` }}\n />\n \n \n \n window.open(shortcut.mobile_image)\n }\n style={{ color: `${Theme.primary}` }}\n >\n \n \n \n \n
    \n {shortcut.link_desktop.length > 10\n ? shortcut.link_desktop.substring(0, 10) +\n '...'\n : shortcut.link_desktop}\n
    \n
    \n \n
    \n {shortcut.link_mobile.length > 10\n ? shortcut.link_mobile.substring(0, 10) +\n '...'\n : shortcut.link_mobile}\n
    \n
    \n \n {shortcut.order}\n \n \n \n \n handleActiveShortcut(\n shortcut.id,\n shortcut.order\n )\n }\n aria-label='active'\n >\n \n \n \n \n \n );\n }}\n \n ))}\n {droppableProvided.placeholder}\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default ShortcutManagement;\n","import React, { useEffect, useState } from 'react';\nimport { useCookies } from 'react-cookie';\nimport ActiveShortcuts from '../../components/Shortcuts';\nimport InactiveShortcuts from '../../components/Shortcuts/InactivesPage';\nimport jwt from 'jsonwebtoken';\nimport { useHistory } from 'react-router-dom';\nimport { Theme } from 'src/styles/Theme';\n\nconst Shortcuts: React.FC = () => {\n const [btn, setBtn] = useState({\n content: 1,\n btnActive: Theme.primary,\n btnInactive: ''\n });\n const [permissions, setPermissions] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n });\n const [cookies, ,] = useCookies(['token']);\n const history = useHistory();\n const token = cookies.token;\n\n useEffect(() => {\n handlePermissions();\n }, []);\n\n const handlePermissions = () => {\n if (token) {\n jwt.verify(\n token.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n history.push('/');\n } else {\n if (decoded.roles.shortcuts.view !== true) {\n alert('Insufficient Permissions');\n history.push('/');\n } else {\n setPermissions(decoded.roles.shortcuts);\n }\n }\n }\n );\n }\n };\n\n function changeContent() {\n if (btn.content === 1) {\n return ;\n }\n if (btn.content === 2) {\n return ;\n }\n }\n\n return (\n
    \n
    \n \n setBtn({\n content: 1,\n btnActive: Theme.primary,\n btnInactive: ''\n })\n }\n >\n Active Apps\n \n \n setBtn({\n content: 2,\n btnActive: '',\n btnInactive: Theme.primary\n })\n }\n >\n Inactive Apps\n \n
    \n
    {changeContent()}
    \n
    \n );\n};\n\nexport default Shortcuts;\n","import React, { FC, useEffect, useState } from 'react'\nimport { createStyles, FormControl, InputLabel, makeStyles, MenuItem, Select, Theme, Button, withStyles } from '@material-ui/core'\nimport { TableContainer, Table, TableBody, TableCell, TableHead, TableRow, Paper, Checkbox } from '@material-ui/core'\nimport { useHistory } from 'react-router-dom';\nimport { useCookies } from 'react-cookie'\nimport axios from '../../services/axios'\nimport jwt from 'jsonwebtoken'\n\nconst bgColor = '#7f43f5'\nconst hoverColor = '#6535e9'\nconst textColor = '#fff'\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n table: {\n minWidth: 650,\n },\n header: {\n display: 'flex',\n justifyContent: \"space-between\",\n alignItems: 'center'\n },\n tableHeader: {\n backgroundColor: bgColor\n }\n }),\n);\n\nconst TableHeaderCell = withStyles(() => ({\n root: {\n color: textColor\n }\n}))(TableCell)\n\nconst SaveButton = withStyles(() => ({\n root: {\n backgroundColor: bgColor,\n color: textColor,\n '&:hover': { backgroundColor: hoverColor }\n }\n}))(Button)\n\ntype Profile = {\n id: string\n name: string\n}\n\ntype Group = {\n id: string\n name: string\n profile_id: string\n}\n\ntype LevelAccess = {\n group_id: string\n namegroup: string\n modules: any\n roles: any\n}\n\ntype Roles = {\n name: string\n roles: {\n view: boolean,\n add: boolean,\n edit: boolean,\n delete: boolean\n }\n}\n\nconst Permission: FC = () => {\n const classes = useStyles()\n const [groups, setGroups] = useState([])\n const [profiles, setProfiles] = useState([])\n const [selectGroup, setSelectGroup] = useState('')\n const [selectProfile, setSelectProfile] = useState('')\n const [newRoles, setNewRoles] = useState()\n const [permissions, setPermissions] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n })\n\n const [loadingChecks, setLoadingChecks] = useState(true)\n const [loadingSave, setLoadingSave] = useState(false)\n\n const [homeView, sethomeView] = useState(false)\n const [homeAdd, sethomeAdd] = useState(false)\n const [homeEdit, sethomeEdit] = useState(false)\n const [homeDelete, sethomeDelete] = useState(false)\n\n const [announcementsView, setannouncementsView] = useState(false)\n const [announcementsAdd, setannouncementsAdd] = useState(false)\n const [announcementsEdit, setannouncementsEdit] = useState(false)\n const [announcementsDelete, setannouncementsDelete] = useState(false)\n\n const [userValidationView, setuserValidationView] = useState(false)\n const [userValidationAdd, setuserValidationAdd] = useState(false)\n const [userValidationEdit, setuserValidationEdit] = useState(false)\n const [userValidationDelete, setuserValidationDelete] = useState(false)\n\n const [userManagementView, setuserManagementView] = useState(false)\n const [userManagementAdd, setuserManagementAdd] = useState(false)\n const [userManagementEdit, setuserManagementEdit] = useState(false)\n const [userManagementDelete, setuserManagementDelete] = useState(false)\n\n const [locationView, setlocationView] = useState(false)\n const [locationAdd, setlocationAdd] = useState(false)\n const [locationEdit, setlocationEdit] = useState(false)\n const [locationDelete, setlocationDelete] = useState(false)\n\n const [eventsView, seteventsView] = useState(false)\n const [eventsAdd, seteventsAdd] = useState(false)\n const [eventsEdit, seteventsEdit] = useState(false)\n const [eventsDelete, seteventsDelete] = useState(false)\n\n const [analyticsView, setanalyticsView] = useState(false)\n const [analyticsAdd, setanalyticsAdd] = useState(false)\n const [analyticsEdit, setanalyticsEdit] = useState(false)\n const [analyticsDelete, setanalyticsDelete] = useState(false)\n\n const [shortcutsView, setshortcutsView] = useState(false)\n const [shortcutsAdd, setshortcutsAdd] = useState(false)\n const [shortcutsEdit, setshortcutsEdit] = useState(false)\n const [shortcutsDelete, setshortcutsDelete] = useState(false)\n\n const [permissionManagementView, setpermissionManagementView] = useState(false)\n const [permissionManagementAdd, setpermissionManagementAdd] = useState(false)\n const [permissionManagementEdit, setpermissionManagementEdit] = useState(false)\n const [permissionManagementDelete, setpermissionManagementDelete] = useState(false)\n\n const [askFegView, setAskFegView] = useState(false)\n const [askFegAdd, setAskFegAdd] = useState(false)\n const [askFegEdit, setAskFegEdit] = useState(false)\n const [askFegDelete, setAskFegDelete] = useState(false)\n\n const [askRepositoryView, setAskRepositoryView] = useState(false);\n const [askRepositoryAdd, setAskRepositoryAdd] = useState(false);\n const [askRepositoryDelete, setAskRepositoryDelete] = useState(false);\n const [askRepositoryEdit, setAskRepositoryEdit] = useState(false);\n\n\n const [askLogsView, setAskLogsView] = useState(false);\n const [askLogsAdd, setAskLogsAdd] = useState(false);\n const [askLogsEdit, setAskLogsEdit] = useState(false);\n const [askLogsDelete, setAskLogsDelete] = useState(false);\n\n const [askDocsView, setAskDocsView] = useState(false);\n const [askDocsAdd, setAskDocsAdd] = useState(false);\n const [askDocsEdit, setAskDocsEdit] = useState(false);\n const [askDocsDelete, setAskDocsDelete] = useState(false);\n\n\n const [cookies, ,] = useCookies(['token']);\n const token = cookies.token\n const history = useHistory()\n\n const PurpleCheckbox = withStyles(() => ({\n root: {\n color: bgColor\n }\n }))(Checkbox)\n\n useEffect(() => {\n handlePermissions()\n handleLoad()\n }, [])\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.permissions_management.view === false) {\n alert('Permission denied')\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {\n setPermissions(decoded.roles.permissions_management)\n }\n }\n }\n )\n } else {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.permissions_management.view === false) {\n alert('Permission denied');\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {\n setPermissions(decoded.roles.permissions_management)\n }\n }\n }\n )\n }\n }\n\n function handleLoad() {\n axios.get('api/v1/profiles').then((response) => {\n const profiles: Profile[] = response.data\n const profiles_filtered = profiles.filter((profile: Profile) => profile.id === '2f305f43-c236-4a93-8a1c-c365f296190d' || profile.id === 'c843021e-0c33-40cd-a0d2-0ec36fa1bb7a')\n setProfiles(profiles_filtered)\n })\n }\n\n function handleProfileSelect(profile_id: any) {\n if (profile_id !== selectProfile) {\n setSelectGroup('')\n setLoadingChecks(true)\n setAllChecksToFalse()\n setSelectProfile(profile_id)\n axios.get('api/v1/groups').then((response) => {\n const groups = response.data\n setGroups(groups.filter((group: Group) => group.profile_id === profile_id))\n })\n } else {\n setSelectProfile('')\n setGroups([])\n setLoadingChecks(true)\n setAllChecksToFalse()\n }\n }\n\n function handleGroupSelect(group_id: any) {\n if (group_id !== selectGroup && group_id !== '') {\n setAllChecksToFalse()\n setLoadingChecks(true)\n setSelectGroup(group_id)\n axios.get('api/v1/permissions').then((response) => {\n const allAccess: LevelAccess[] = response.data\n let newRoles: Roles[] = []\n let oneAccess = allAccess.filter((data: LevelAccess) => data.group_id === group_id)[0]\n for (let page in oneAccess.roles) {\n newRoles.push({\n name: page,\n roles: {\n view: oneAccess.roles[page].view,\n add: oneAccess.roles[page].add,\n edit: oneAccess.roles[page].edit,\n delete: oneAccess.roles[page].delete,\n }\n })\n }\n setNewRoles(newRoles)\n loadChecks(newRoles)\n })\n } else {\n setSelectGroup('')\n setLoadingChecks(true)\n setAllChecksToFalse()\n }\n }\n\n function setAllChecksToFalse() {\n sethomeView(false)\n sethomeAdd(false)\n sethomeEdit(false)\n sethomeDelete(false)\n setannouncementsView(false)\n setannouncementsAdd(false)\n setannouncementsEdit(false)\n setannouncementsDelete(false)\n setuserValidationView(false)\n setuserValidationAdd(false)\n setuserValidationEdit(false)\n setuserValidationDelete(false)\n setuserManagementView(false)\n setuserManagementAdd(false)\n setuserManagementEdit(false)\n setuserManagementDelete(false)\n setlocationView(false)\n setlocationAdd(false)\n setlocationEdit(false)\n setlocationDelete(false)\n seteventsView(false)\n seteventsAdd(false)\n seteventsEdit(false)\n seteventsDelete(false)\n setanalyticsView(false)\n setanalyticsAdd(false)\n setanalyticsEdit(false)\n setanalyticsDelete(false)\n setshortcutsView(false)\n setshortcutsAdd(false)\n setshortcutsEdit(false)\n setshortcutsDelete(false)\n setpermissionManagementView(false)\n setpermissionManagementAdd(false)\n setpermissionManagementEdit(false)\n setpermissionManagementDelete(false)\n setAskFegView(false)\n setAskFegAdd(false)\n setAskFegEdit(false)\n setAskFegDelete(false)\n setAskRepositoryAdd(false)\n setAskRepositoryView(false)\n setAskRepositoryEdit(false)\n setAskRepositoryDelete(false)\n setAskLogsAdd(false)\n setAskLogsDelete(false)\n setAskLogsView(false)\n setAskLogsEdit(false)\n setAskDocsView(false)\n setAskDocsDelete(false)\n setAskDocsEdit(false)\n setAskDocsAdd(false)\n }\n\n function loadChecks(roles: Roles[]) {\n roles.map((oneRoles) => {\n if (oneRoles.name === 'home_page') {\n sethomeView(oneRoles.roles.view)\n sethomeAdd(oneRoles.roles.add)\n sethomeEdit(oneRoles.roles.edit)\n sethomeDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'announcements') {\n setannouncementsView(oneRoles.roles.view)\n setannouncementsAdd(oneRoles.roles.add)\n setannouncementsEdit(oneRoles.roles.edit)\n setannouncementsDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'user_validation') {\n setuserValidationView(oneRoles.roles.view)\n setuserValidationAdd(oneRoles.roles.add)\n setuserValidationEdit(oneRoles.roles.edit)\n setuserValidationDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'user_management') {\n setuserManagementView(oneRoles.roles.view)\n setuserManagementAdd(oneRoles.roles.add)\n setuserManagementEdit(oneRoles.roles.edit)\n setuserManagementDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'location') {\n setlocationView(oneRoles.roles.view)\n setlocationAdd(oneRoles.roles.add)\n setlocationEdit(oneRoles.roles.edit)\n setlocationDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'events') {\n seteventsView(oneRoles.roles.view)\n seteventsAdd(oneRoles.roles.add)\n seteventsEdit(oneRoles.roles.edit)\n seteventsDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'analytics') {\n setanalyticsView(oneRoles.roles.view)\n setanalyticsAdd(oneRoles.roles.add)\n setanalyticsEdit(oneRoles.roles.edit)\n setanalyticsDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'shortcuts') {\n setshortcutsView(oneRoles.roles.view)\n setshortcutsAdd(oneRoles.roles.add)\n setshortcutsEdit(oneRoles.roles.edit)\n setshortcutsDelete(oneRoles.roles.delete)\n }\n\n if (oneRoles.name === 'permissions_management') {\n setpermissionManagementView(oneRoles.roles.view)\n setpermissionManagementAdd(oneRoles.roles.add)\n setpermissionManagementEdit(oneRoles.roles.edit)\n setpermissionManagementDelete(oneRoles.roles.delete)\n }\n if (oneRoles.name === 'chat_feg') {\n setAskFegView(oneRoles.roles.view)\n setAskFegAdd(oneRoles.roles.add)\n setAskFegEdit(oneRoles.roles.edit)\n setAskFegDelete(oneRoles.roles.delete)\n }\n if (oneRoles.name === 'chat_feg_repository') {\n setAskRepositoryView(oneRoles.roles.view)\n setAskRepositoryAdd(oneRoles.roles.add)\n setAskRepositoryEdit(oneRoles.roles.edit)\n setAskRepositoryDelete(oneRoles.roles.delete)\n }\n if (oneRoles.name === 'chat_feg_logs') {\n setAskLogsView(oneRoles.roles.view)\n setAskLogsAdd(oneRoles.roles.add)\n setAskLogsEdit(oneRoles.roles.edit)\n setAskLogsDelete(oneRoles.roles.delete)\n }\n if (oneRoles.name === 'chat_feg_docs') {\n setAskDocsView(oneRoles.roles.view)\n setAskDocsAdd(oneRoles.roles.add)\n setAskDocsEdit(oneRoles.roles.edit)\n setAskDocsDelete(oneRoles.roles.delete)\n }\n })\n\n setLoadingChecks(false)\n }\n\n function handleSave() {\n setLoadingSave(true)\n setLoadingChecks(true)\n const data = {\n home_page: {\n view: homeView,\n add: homeAdd,\n edit: homeEdit,\n delete: homeDelete\n },\n announcements: {\n view: announcementsView,\n add: announcementsAdd,\n edit: announcementsEdit,\n delete: announcementsDelete\n },\n user_validation: {\n view: userValidationView,\n add: userValidationAdd,\n edit: userValidationEdit,\n delete: userValidationDelete\n },\n user_management: {\n view: userManagementView,\n add: userManagementAdd,\n edit: userManagementEdit,\n delete: userManagementDelete\n },\n location: {\n view: locationView,\n add: locationAdd,\n edit: locationEdit,\n delete: locationDelete\n },\n events: {\n view: eventsView,\n add: eventsAdd,\n edit: eventsEdit,\n delete: eventsDelete\n },\n analytics: {\n view: analyticsView,\n add: analyticsAdd,\n edit: analyticsEdit,\n delete: analyticsDelete\n },\n shortcuts: {\n view: shortcutsView,\n add: shortcutsAdd,\n edit: shortcutsEdit,\n delete: shortcutsDelete\n },\n permissions_management: {\n view: permissionManagementView,\n add: permissionManagementAdd,\n edit: permissionManagementEdit,\n delete: permissionManagementDelete\n },\n chat_feg: {\n view: askFegView,\n add: askFegAdd,\n edit: askFegEdit,\n delete: askFegDelete\n },\n chat_feg_repository: {\n view: askFegView,\n add: askFegAdd,\n edit: askFegEdit,\n delete: askFegDelete\n },\n chat_feg_logs: {\n view: askLogsView,\n add: askLogsAdd,\n edit: askLogsEdit,\n delete: askLogsDelete\n },\n chat_feg_docs: {\n view: askDocsView,\n add: askDocsAdd,\n edit: askDocsEdit,\n delete: askDocsDelete\n }\n }\n\n axios.put(`api/v1/permissions/${selectGroup}`, data).then(() => {\n setLoadingSave(false)\n setLoadingChecks(false)\n })\n }\n\n return (\n
    \n
    \n

    Permission Management

    \n\n
    \n
    \n \n User Profile\n \n \n\n \n User Group\n \n \n
    \n\n
    \n \n Save\n \n
    \n
    \n\n\n \n \n \n \n Module Name\n View\n Add\n Edit\n Delete\n \n \n\n \n \n Home Page\n \n { sethomeView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { sethomeAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { sethomeEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { sethomeDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Announcements\n \n { setannouncementsView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setannouncementsAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setannouncementsEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setannouncementsDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n User Validation\n \n { setuserValidationView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setuserValidationAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setuserValidationEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setuserValidationDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n User Management\n \n { setuserManagementView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setuserManagementAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setuserManagementEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setuserManagementDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Location\n \n { setlocationView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setlocationAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setlocationEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setlocationDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Events\n \n { seteventsView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { seteventsAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { seteventsEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { seteventsDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Analytics\n \n { setanalyticsView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setanalyticsAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setanalyticsEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setanalyticsDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Shortcuts\n \n { setshortcutsView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setshortcutsAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setshortcutsEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setshortcutsDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Permissions Management\n \n { setpermissionManagementView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setpermissionManagementAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setpermissionManagementEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setpermissionManagementDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Ask FEG\n \n { setAskFegView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskFegAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskFegEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskFegDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Ask FEG Repository\n \n { setAskRepositoryView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskRepositoryAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskRepositoryEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskRepositoryDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Ask FEG Logs\n \n { setAskLogsView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskLogsAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskLogsEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskLogsDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n\n \n Ask FEG Docs\n \n { setAskDocsView(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskDocsAdd(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskDocsEdit(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n { setAskDocsDelete(e.target.checked) }} disabled={loadingChecks || !permissions.edit}>\n \n \n \n\n\n \n
    \n
    \n
    \n
    \n )\n}\nexport default Permission","/* eslint-disable react/prop-types */\nimport { Button, Input, TextField } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport axios from '../../services/axios';\nimport { Md5 } from 'md5-typescript';\n\ninterface Props {\n setPasswordExpired: (value: boolean) => void;\n}\n\nconst PasswordExpired: React.FC = ({ setPasswordExpired }) => {\n const [password, setPassword] = useState('');\n const [repetPassword, setRepetPassword] = useState('');\n const [message, setMessage] = useState('');\n\n function acceptTerm() {\n if (password !== repetPassword) {\n return setMessage('Passwords don’t match. Please try again');\n }\n if (password.length < 8) {\n return setMessage('Password must be at least 8 characters');\n }\n const customer_id = localStorage.getItem('id');\n //set setPasswordExpired: (value: boolean) => void;\n axios\n .post('/api/v1/accounts/change/password_temporary', {\n id: customer_id,\n password: Md5.init(password)\n })\n .then((res) => setPasswordExpired(false))\n .catch((e) => console.log(e));\n }\n\n return (\n
    \n

    Update Password

    \n

    \n You must update your password to move forward\n

    \n setPassword(e.target.value)}\n type='password'\n />\n setRepetPassword(e.target.value)}\n variant='standard'\n type='password'\n />\n
    \n

    {message}

    \n
    \n\n
    \n \n
    \n
    \n );\n};\n\nexport default PasswordExpired;\n","import React, { useEffect, useState } from 'react';\n\nconst useWindowWith = (): number => {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n\n useEffect(() => {\n // Update the window width when the component mounts\n setWindowWidth(window.innerWidth);\n\n // Create a listener function to update the window width on resize\n const handleResize = () => {\n setWindowWidth(window.innerWidth);\n };\n\n // Attach the listener function to the window's resize event\n window.addEventListener('resize', handleResize);\n\n // Clean up the listener when the component unmounts\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []); // Empty dependency array to run the effect only once\n\n return windowWidth;\n};\n\nexport default useWindowWith;\n","import React, { useState, useRef, ReactNode } from 'react';\nimport styled from 'styled-components';\n\n// Tipos para as props\ninterface PopoverProps {\n triggerContent: ReactNode;\n popoverContent: ReactNode;\n}\n\n// Estilização com styled-components\nconst PopoverContainer = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst PopoverTrigger = styled.div`\n display: inline-block;\n cursor: pointer;\n`;\n\nconst PopoverContent = styled.div<{ isVisible: boolean }>`\n position: absolute;\n top: 120%; /* Ajuste conforme necessário */\n left: 50%;\n\n background-color: white;\n border: 1px solid #ccc;\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n padding: 10px;\n border-radius: 5px;\n z-index: 10;\n white-space: nowrap;\n opacity: ${(props) => (props.isVisible ? 1 : 0)};\n visibility: ${(props) => (props.isVisible ? 'visible' : 'hidden')};\n transition: opacity 0.2s ease, visibility 0.2s ease;\n\n &::before {\n content: '';\n position: absolute;\n top: -10px;\n left: 50%;\n\n border-style: solid;\n border-color: transparent transparent white transparent;\n }\n`;\n\n// Componente Popover\nconst Popover: React.FC = ({\n triggerContent,\n popoverContent\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n\n const showPopover = () => setIsVisible(true);\n const hidePopover = () => setIsVisible(false);\n\n return (\n \n {triggerContent}\n {popoverContent}\n \n );\n};\n\nexport default Popover;\n","import React, {\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useState\n} from 'react';\nimport { Link } from 'react-router-dom';\nimport {\n FiHome,\n FiUserCheck,\n FiUsers,\n FiPlusSquare,\n FiCalendar,\n FiBookOpen,\n FiPieChart,\n FiMapPin,\n FiMonitor,\n FiShield,\n FiAlertCircle,\n FiAlertOctagon,\n FiMenu,\n FiFolder\n} from 'react-icons/fi';\nimport { MdInfo } from \"react-icons/md\";\nimport { RiTaskFill } from \"react-icons/ri\";\nimport { BiMessageDetail } from 'react-icons/bi'\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { MdMessage } from 'react-icons/md';\nimport { GoTasklist } from \"react-icons/go\";\n\nimport { MdNotificationsActive } from \"react-icons/md\";\n\nimport { RiChat4Line, RiChatSettingsLine } from 'react-icons/ri'\nimport { useHistory } from 'react-router-dom';\nimport { WorkOutlineOutlined } from '@material-ui/icons';\nimport jwt from 'jsonwebtoken';\nimport { useCookies } from 'react-cookie';\nimport Monograma from '../../images/Monograma.png';\nimport logo from '../../images/feghome.com.png'\nimport miniLogo from '../../images/miniLogoFeg.png'\nimport Loginbutton from '../LoginButton';\nimport Notifications from '../Notifications';\nimport Tooltip from './Tooltip';\nimport axios from '../../services/axios';\nimport PrivacyPolitc from '../PrivacyPolicy';\nimport PasswordExpired from '../PasswordExpired';\nimport useWindowWith from 'src/utils/width';\nimport { useLocation } from 'react-router-dom';\nimport { MdApps } from 'react-icons/md';\nimport Popover from '../Popover';\n\n\nconst SideBar = (props: any) => {\n const nav = useHistory();\n const [actived, setActived] = useState(window.location.pathname);\n const [cookies, ,] = useCookies(['token']);\n const token: any = cookies.token;\n const repeatTooltip: any = cookies.repeatTooltip;\n const [firstAccess, setFirstAccess] = useState(false);\n const [passwordExpired, setPasswordExpired] = useState(false);\n const [privacyPolicy, setPrivacyPolicy] = useState(true);\n const [superAdmin, setSuperAdmin] = useState(false);\n const width = useWindowWith();\n const [fegpt, setFegpt] = useState(true);\n const [activedDown, setActivedDown] = useState('');\n const [admin, setAdmin] = useState(true);\n const [activedDownAdmin, setActivedDownAdmin] = useState('');\n const location = useLocation();\n\n const [permissions, setPermissions] = useState({\n announcements: { list: false, read: false, write: false },\n events: { list: false, read: false, write: false },\n groups: { list: false, read: false, write: false },\n locations: { list: false, read: false, write: false },\n users: { list: false, read: false, write: false },\n analytics: { list: false, read: false, write: false }\n });\n const [permissions2, setPermissions2] = useState({\n home_page: { view: false, add: false, edit: false, delete: false },\n announcements: { view: false, add: false, edit: false, delete: false },\n user_validation: { view: false, add: false, edit: false, delete: false },\n user_management: { view: false, add: false, edit: false, delete: false },\n location: { view: false, add: false, edit: false, delete: false },\n events: { view: false, add: false, edit: false, delete: false },\n analytics: { view: false, add: false, edit: false, delete: false },\n shortcuts: { view: false, add: false, edit: false, delete: false },\n admin_trivia: { view: false, add: false, edit: false, delete: false },\n permissions_management: {\n view: false,\n add: false,\n edit: false,\n delete: false\n },\n map_jobtitle: { view: false, add: false, edit: false, delete: false },\n chat_feg: { view: false, add: false, edit: false, delete: false },\n chat_feg_docs: { view: false, add: false, edit: false, delete: false },\n chat_feg_logs: { view: false, add: false, edit: false, delete: false },\n chat_feg_repository: { view: false, add: false, edit: false, delete: false },\n });\n useEffect(() => {\n handlePermissions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n function openNav(act: string) {\n setFegpt(!fegpt)\n activedDown === act ? setActivedDown(\"\") : setActivedDown(act)\n\n }\n function openNavAdmin(act: string) {\n setAdmin(!admin)\n activedDownAdmin === act ? setActivedDownAdmin(\"\") : setActivedDownAdmin(act)\n\n }\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n console.log(decoded);\n localStorage.setItem('location_id', decoded.location_id)\n setPermissions(decoded.modules);\n setPermissions2(decoded.roles);\n\n const customer_id = localStorage.getItem('id');\n const response = await axios\n .get(`api/v1/accounts/${customer_id}`)\n .then((response) => response.data.results);\n if (response.group_id === '128e5e58-3c0a-4e63-9be1-d0b6fc2f871e') {\n setSuperAdmin(true);\n }\n setFirstAccess(response.first_access);\n setPasswordExpired(response.password_expired_time);\n setPrivacyPolicy(response.accepted_privacy_policy);\n if (response.first_access) {\n axios.put(`api/v1/accounts/${customer_id}/user/first_access`);\n } else if (repeatTooltip === 'true') {\n setFirstAccess(true);\n }\n }\n }\n );\n return;\n }\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n setPermissions(decoded.modules);\n setPermissions2(decoded.roles);\n\n const customer_id = localStorage.getItem('id');\n const first_access = await axios\n .get(`api/v1/accounts/${customer_id}`)\n .then((response) => response.data.results.first_access);\n setFirstAccess(first_access);\n if (first_access) {\n axios.put(`api/v1/accounts/${customer_id}/user/first_access`);\n } else if (repeatTooltip === 'true') {\n setFirstAccess(true);\n }\n }\n }\n );\n }\n const handleNav = (url: any) => {\n setActived(url);\n nav.push(url);\n setActivedDownAdmin('')\n setActivedDown('')\n props.setSidebarOpen(false)\n };\n function handleOpenSidebar() {\n\n if (!props.sidebarOpen) {\n setAdmin(false)\n setFegpt(false)\n }\n if (props.sidebarOpen) {\n console.log('test sidebar')\n setAdmin(false)\n setFegpt(false)\n setActivedDown('')\n setActivedDown('')\n }\n }\n\n function setTooltipPathName(name: string) {\n if (name) setActived(name);\n }\n\n function handleAccessPermissions() {\n console.log('test tooltip')\n /*if (!privacyPolicy) {\n return ;\n }*/\n if (passwordExpired) {\n return ;\n }\n /*if (firstAccess) {\n return ;\n }*/\n\n return <>;\n }\n useEffect(() => {\n handleOpenSidebar()\n console.log('test tooltip sidebar', props.sidebarOpen)\n }, [\n props.sidebarOpen,\n ])\n\n return (\n <>\n \n
    \n\n \n nav.push('/new-home')} style={{ cursor: 'pointer' }} className={`${!props.sidebarOpen && 'actived'}`} src={props.sidebarOpen ? logo : miniLogo} alt='FEG LOGO' />\n\n {\n props.setSidebarOpen(!props.sidebarOpen)\n }}\n />\n \n\n handleNav('/list-shortcuts')}\n className={`short ${location.pathname === '/list-shortcuts' ? 'active opt' : 'opt'}`}\n > \n

    FEG Apps

    \n } popoverContent={
    FEG Apps
    } />\n
    \n\n\n handleNav('/announcements')}\n className={`short ${location.pathname === '/announcements' ? 'active opt' : ''}`}\n >\n \n

    Announcements

    \n } popoverContent={
    Announcements
    } />\n \n\n\n\n\n\n handleNav('/chat-fegpt')}\n className={`short ${location.pathname === '/chat-fegpt' ? 'active opt' : ''}`}\n style={{\n display: permissions2.chat_feg.view ? 'flex' : 'none'\n }}\n > \n\n

    Ask FEG

    \n } popoverContent={
    Chat
    } />\n \n\n\n handleNav('/knowledgebase')}\n className={`short ${location.pathname === '/knowledgebase' ? 'active opt' : ''}`}\n style={{\n display: permissions2.chat_feg_repository.view ? 'flex' : 'none'\n }}\n >\n \n\n

    Knowledge Base

    \n } popoverContent={
    Knowledge Base
    } />\n \n\n\n handleNav('/trivia')}\n className={`short ${location.pathname === '/trivia' ? 'active opt' : ''}`}\n > \n

    Trivia

    \n } popoverContent={
    Trivia
    } />\n \n\n\n\n {\n props.sidebarOpen && (\n openNavAdmin('/admin')}\n className={`short ${activedDownAdmin === '/admin' ? 'active opt' : ''}`}\n > \n

    Admin

    \n\n {activedDownAdmin === '/admin' ? : }\n \n )\n }\n\n {\n admin && (\n <>\n handleNav('/settings-fegpt')}\n className={`short ${location.pathname === '/settings-fegpt' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.chat_feg_docs.add ? 'flex' : 'none'\n }}\n >\n \n

    Knowledge Base Upload

    \n } popoverContent={
    Knowledge base Upload
    } />\n \n\n handleNav('/chat/logs')}\n className={`short ${location.pathname === '/chat/logs' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.chat_feg_logs.view ? 'flex' : 'none'\n }}\n >\n \n

    Chat Analytics

    \n } popoverContent={
    Chat Analytics
    } />\n \n\n handleNav('/announcements/new')}\n className={`short ${location.pathname === '/announcements/new' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.announcements.add ? 'flex' : 'none'\n }}\n >\n \n

    New Announcement

    \n } popoverContent={
    New Announcement
    } />\n \n\n\n handleNav('/locations')}\n className={`short ${location.pathname === '/locations' ? 'active opt down' : 'down'}`}\n > \n

    Location Management

    \n } popoverContent={
    Location Management
    } />\n \n\n handleNav('/calendar')}\n className={`short ${location.pathname === '/calendar' ? 'active opt down' : 'down'}`}\n > \n

    Company Calendar

    \n } popoverContent={
    Company Calendar
    } />\n \n\n handleNav('/admin-trivia')}\n className={`short ${location.pathname === '/admin-trivia' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.admin_trivia.view ? 'flex' : 'none'\n }}\n >\n \n

    Admin Trivia

    \n } popoverContent={
    Admin Trivia
    } />\n \n handleNav('/analytics')}\n className={`short ${location.pathname === '/analytics' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.analytics.view ? 'flex' : 'none'\n }}\n >\n \n

    Analytics

    \n } popoverContent={
    Analytics
    } />\n \n handleNav('/shortcuts')}\n className={`short ${location.pathname === '/shortcuts' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.shortcuts.view ? 'flex' : 'none'\n }}\n >\n \n

    Shortcuts config

    \n } popoverContent={
    Shortcuts config
    } />\n \n handleNav('/mapJobtitle')}\n className={`short ${location.pathname === '/mapJobtitle' ? 'active opt down' : 'down'}`}\n style={{\n display: superAdmin ? 'flex' : 'none'\n }}\n >\n \n

    Job title

    \n } popoverContent={
    Job title
    } />\n \n handleNav('/permissions')}\n className={`short ${location.pathname === '/permissions' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.permissions_management.view ? 'flex' : 'none'\n }}\n >\n \n

    Permissions

    \n } popoverContent={
    Permissions
    } />\n \n handleNav('/user')}\n className={`short ${location.pathname === '/user' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.user_validation.view ? 'flex' : 'none'\n }}\n >\n \n

    User Validations

    \n } popoverContent={
    User Validations
    } />\n \n handleNav('/management')}\n className={`short ${location.pathname === '/management' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.user_management.view ? 'flex' : 'none'\n }}\n >\n \n

    Users Management

    \n } popoverContent={
    Users Management
    } />\n \n handleNav('/notify-dashboard')}\n className={`short ${location.pathname === '/notify-dashboard' ? 'active opt down' : 'down'}`}\n style={{\n display: permissions2.user_management.view ? 'flex' : 'none'\n }}\n >\n \n

    Notification Admin

    \n } popoverContent={
    Users Management
    } />\n \n \n )\n }\n\n\n {props.sidebarOpen && (\n
    \n \n
    \n )}\n\n \n\n
    props.setSidebarOpen(!props.sidebarOpen)}>
    \n \n\n\n
    {handleAccessPermissions()}
    \n \n );\n};\n\nexport default SideBar;\n","import React, { useState } from 'react';\nimport { FiMail, FiFile } from 'react-icons/fi';\nimport axios from '../../../services/axios';\nimport Monograma from '../../../images/Monograma.png';\nimport Loader from '../../Loader';\n\nimport { useCookies } from 'react-cookie';\n\nconst ProfileInfo = () => {\n const image = localStorage.getItem('image_url');\n const [update, setUpdate] = useState(false);\n const [updateFirstName, setUpdateFirstName] = useState(false);\n const [updateLastName, setUpdateLastName] = useState(false);\n const [updatePicture, setPicture] = useState(false);\n const [name, setName] = useState('');\n const [nameLast, setNameLast] = useState('');\n const [imageFile, setImageFile] = useState({\n selectedFile: '',\n type: ''\n });\n const [imageName, setImageName] = useState('');\n const [loaded, setLoaded] = useState(false);\n const firstName = localStorage.getItem('firstName');\n const lastName = localStorage.getItem('lastName');\n const userID = localStorage.getItem('id');\n const email = localStorage.getItem('email');\n\n const [, setCookie] = useCookies(['token']);\n\n function fileSelect(props: any) {\n if (props[0] === undefined) {\n setImageName('');\n setImageFile({\n selectedFile: '',\n type: ''\n });\n return;\n }\n setImageName(props[0].name);\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setImageFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n\n function updateBtn() {\n if (update === false) setUpdate(true);\n else {\n setUpdate(false);\n }\n }\n\n function showFirstName() {\n if (updateFirstName === false) setUpdateFirstName(true);\n else {\n setUpdateFirstName(false);\n }\n }\n\n function showLastName() {\n if (updateLastName === false) setUpdateLastName(true);\n else {\n setUpdateLastName(false);\n }\n }\n\n function showPicture() {\n if (updatePicture === false) setPicture(true);\n else {\n setPicture(false);\n }\n }\n\n function handleLogout() {\n // alert('Disconnected User')\n setTimeout(() => {\n localStorage.clear();\n if (process.env.REACT_APP_ACCOUNT_URL) {\n window.location.href = `${process.env.REACT_APP_ACCOUNT_URL}/logout`;\n } else {\n window.location.href = 'https://account.systemfeg.com/logout';\n }\n }, 1000);\n }\n\n async function handleUpdate(id: string) {\n if (name === '') {\n setName(firstName!);\n }\n\n if (nameLast === '') {\n setNameLast(lastName!);\n }\n\n if (name !== '' && nameLast !== '') {\n const data = {\n firstName: name,\n lastName: nameLast,\n image: imageFile\n };\n try {\n setLoaded(true);\n const response = await axios.put(`/api/v1/accounts/${id}`, data);\n // console.log(response.data)\n await setCookie('token', response.data.token);\n localStorage.clear();\n localStorage.setItem('token', response.data.token);\n window.location.reload();\n } catch (error) {\n alert('Error updating user');\n console.log(error);\n setLoaded(false);\n }\n }\n }\n\n const changeFirstName = (\n <>\n {/*

    Name

    */}\n setName(e.target.value)}\n />\n \n );\n\n const changeLastName = (\n <>\n {/*

    Name

    */}\n setNameLast(e.target.value)}\n />\n \n );\n\n const changePicture = (\n <>\n {/*

    Name

    */}\n \n +\n \n = 1 && imageName !== undefined ? '' : 'none',\n fontSize: '17px'\n }}\n htmlFor='inputFileImg'\n >\n {imageName}\n \n fileSelect(event.target.files)}\n />\n \n );\n\n const updateOn = (\n <>\n
    \n
    \n

    First Name

    \n
    \n

    {firstName}

    \n \n {updateFirstName ? changeFirstName : <>}\n
    \n\n

    Last Name

    \n
    \n

    {lastName}

    \n \n {updateLastName ? changeLastName : <>}\n
    \n\n

    Picture

    \n
    \n FEG LOGO\n \n {updatePicture ? changePicture : <>}\n
    \n {loaded ? (\n \n ) : (\n \n )}\n
    \n \n );\n\n return (\n
    \n FEG LOGO\n
    \n

    \n {firstName} {lastName}\n

    \n
    \n \n

    {email}

    \n
    \n \n\n\n
    \n\n
    \n\n
    \n \n
    \n

    \n {firstName} {lastName}\n

    \n
    \n

    Update your settings

    \n \n
    \n
    \n
    \n {update ? updateOn : <>}\n
    \n );\n};\n\nexport default ProfileInfo;\n\nfunction state(state: any) {\n throw new Error('Function not implemented.');\n}\n","import React, { useState } from 'react';\nimport { FiSettings } from 'react-icons/fi';\nimport ProfileInfo from './ProfileInfo';\n\nconst LoginButton = (props: any) => {\n const [extended, setExtended] = useState(false);\n\n function openNav() {\n setExtended(true);\n }\n\n function closeNav() {\n setExtended(false);\n }\n\n return (\n <>\n \n \n ×\n \n

    User Profile

    \n \n \n\n \n \n );\n};\n\nexport default LoginButton;\n","export default function formatDate(dateProp: string): string {\n const date = new Date(dateProp);\n\n const options: Intl.DateTimeFormatOptions = {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n };\n\n const americanFormatWithTime = date.toLocaleString('en-US', options);\n\n return americanFormatWithTime;\n}\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport formatDate from 'src/utils/formatDate';\nimport { FiBell } from 'react-icons/fi';\n\nimport api from '../../services/axios';\n\nimport { Theme } from 'src/styles/Theme';\ninterface notifyProps {\n id: string;\n content: string;\n user_id_receptor: string;\n createdAt: string;\n type: string;\n is_open: boolean;\n link_desktop?: string;\n}\n\nconst Notifications = (props: any) => {\n const [modal, setModal] = useState(false);\n const screen = window.screen.width;\n const [notify, setNotify] = useState([]);\n const idUser = localStorage.getItem('id');\n const nav = useHistory();\n useEffect(() => {\n api.get(`/api/v1/notify/find/${idUser}`).then((response) => {\n setNotify(response.data);\n });\n }, []);\n\n function clearAll() {\n api.get(`/api/v1/notify/clear/${idUser}`).then(() => {\n setNotify([]);\n });\n }\n function clearOne(notifyUser: notifyProps) {\n api\n .post('/api/v1/notify/clear-one', {\n id: notifyUser.id,\n user_id_receptor: notifyUser.user_id_receptor\n })\n .then(() => {\n setNotify(notify.filter((notify) => notify.id !== notifyUser.id));\n });\n if (notifyUser.link_desktop) {\n const devBaseUrl = 'https://develop.fegsystem.com';\n const prodBaseUrl = 'https://www.systemfeg.com';\n\n const baseUrl = window.location.origin.includes('develop')\n ? devBaseUrl\n : prodBaseUrl;\n\n if (notifyUser.link_desktop.startsWith(baseUrl)) {\n const newPath = notifyUser.link_desktop.replace(baseUrl, '');\n nav.push(newPath);\n } else {\n console.warn(\n 'A URL não corresponde à URL principal esperada:',\n notifyUser.link_desktop\n );\n }\n }\n }\n\n const myModal2 = (\n
    \n
    \n {notify.map((notify) => (\n clearOne(notify)}\n key={notify.id}\n className={`notification ${notify.is_open ? 'notification-open' : ''\n }`}\n >\n

    {notify.content}

    \n

    \n {formatDate(notify.createdAt)}\n

    \n
    \n
    \n ))}\n
    \n {notify.length > 0 ? (\n \n ) : (\n <>\n
    No Notification
    \n \n \n )}\n \n );\n\n return (\n
    \n {\n if (screen < 700) {\n props.handleClickCloseSidebar();\n }\n if (modal) {\n clearAll();\n }\n\n setModal(!modal);\n }}\n title='Notifications'\n className={`${notify.length > 0 ? 'image' : ''}`}\n >\n \n \n\n {myModal2}\n
    \n );\n};\nexport default Notifications;\n","import React, { useEffect, useState } from 'react';\nimport jwt from 'jsonwebtoken';\nimport LoginButton from '../LoginButton';\nimport Notifications from '../Notifications';\nimport { useCookies } from 'react-cookie';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { FiMenu } from 'react-icons/fi';\nimport { Theme } from 'src/styles/Theme';\nimport { FaSearch } from \"react-icons/fa\";\nimport { FaAngleDown } from \"react-icons/fa\";\nimport Search from './Search';\nimport { Avatar } from '@material-ui/core';\n\n\nconst Header = (props: any | 0) => {\n const [loaded, setLoaded] = useState();\n const [impersonate, setImpersonate] = useState();\n const [info, setInfo] = useState();\n const [cookies, setCookies, removeCookies] = useCookies(['token']);\n const history = useHistory();\n const image = localStorage.getItem('image_url');\n const location = useLocation();\n const currentPath = location.pathname;\n let firstName = '';\n let lastName = '';\n useEffect(() => {\n onLoaded();\n handlePermissions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n console.log('pathname', location.pathname);\n }\n , [location.pathname]);\n\n function onLoaded() {\n setTimeout(() => {\n const firstName = localStorage.getItem('firstName');\n const lastName = localStorage.getItem('lastName');\n setInfo(`${firstName} ${lastName}`);\n }, props.timeout);\n }\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n if (decoded.impersonate && decoded.impersonate === true)\n setImpersonate(decoded.impersonate);\n }\n }\n );\n return;\n }\n }\n\n function handleChange() {\n while (firstName === undefined || lastName === undefined) {\n setLoaded(true);\n }\n }\n\n function exitToUser() {\n // Determina o domínio com base no ambiente\n let domain = '';\n const hostname = window.location.hostname;\n\n if (hostname.includes('localhost')) {\n domain = 'localhost'; // Ambiente local\n } else if (hostname.includes('fegsystem')) {\n domain = '.fegsystem.com'; // Ambiente de homologação\n } else {\n domain = '.systemfeg.com'; // Produção\n }\n\n // Define o token original do sessionStorage no cookie\n const originalToken = sessionStorage.getItem('originalToken');\n if (originalToken) {\n setCookies('token', originalToken, { domain });\n }\n\n // Limpa o sessionStorage\n sessionStorage.clear();\n\n // Redireciona e recarrega\n history.push('/');\n window.location.reload();\n }\n\n return (\n <>\n
    \n \n {loaded ? (\n

    Welcome

    \n ) : (\n
    \n {!props.sidebarOpen && (\n props.setSidebarOpen(!props.sidebarOpen)}\n />\n )}\n {/*\n
    \n \n
    \n */}\n\n\n \n Exit to my user\n \n
    \n )}\n\n
    \n {\n image ? : {firstName[0]}\n }\n\n
    \n

    {info}

    \n
    \n\n \n \n\n\n
    \n \n \n );\n};\n\nexport default Header;\n","import React, { useEffect, useState } from 'react';\nimport { FiImage, FiPaperclip, FiEdit, FiTrash } from 'react-icons/fi';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useCookies } from 'react-cookie'\nimport Select from 'react-select';\nimport Formatter from 'src/components/CompanyAnnouncements/Formatter';\nimport Loader from 'src/components/Loader';\nimport axios from '../../services/axios';\nimport jwt from 'jsonwebtoken'\n\nconst SpecialEvent: React.FC = () => {\n type ParamTypes = {\n id: string;\n };\n interface imageFormat {\n selectedFile: '';\n type: '';\n }\n interface imageArray extends Array {}\n\n const owner_id = localStorage.getItem('owner_id');\n const [loaded, setLoaded] = useState(true);\n const [specialEvent, setSpecialEvent] = useState({});\n const [newComment, setNewComment] = useState('');\n const [imageFile, setImageFile] = useState();\n const { id } = useParams();\n const history = useHistory();\n const [usersData, setUsersData] = useState([]);\n const [additionalFollowers, setAdditionalFollowers] = useState([]);\n const [additionalFollowersIds, setAdditionalFollowersIds] = useState({})\n const [editMode, setEditMode] = useState([]);\n const [confirmation, setConfirmation] = useState(false);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [modalLoading, setModalLoading] = useState(false);\n const [title, setTitle] = useState('');\n const [description, setDescription] = useState('');\n const [address, setAddress] = useState('');\n const [eventStart, setEventStart] = useState('');\n const [eventEnd, setEventEnd] = useState('');\n const [editComment, setEditComment] = useState('');\n const [updatedComment, setUpdatedComment] = useState('');\n const [permissions, setPermissions] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n })\n const [cookies, ,] = useCookies(['token']);\n const token = cookies.token\n\n\n const handleLoaded = async () => {\n try {\n const response: any = await axios.get(`/api/v1/events/${id}`);\n // const filteredEvent = mockEventsData.filter((e) => e.id === id);\n // if (filteredEvent.length <= 0) history.push('/calendar');\n if (response.data.results.length <= 0) history.push('/calendar');\n await setSpecialEvent(response.data.results);\n const additionalFollowers: any = [];\n if (response.data.results.additional_users) {\n await response.data.results.additional_users.forEach((user: any) => {\n additionalFollowers.push({\n value: user.customer_id,\n label: user.label\n });\n });\n }\n await setAdditionalFollowers(additionalFollowers);\n await setAdditionalFollowersIds(additionalFollowers)\n await setLoaded(false);\n } catch (error) {\n alert('Failed to fetch the event, try again later.');\n console.log(error);\n }\n };\n\n function fileSelect(props: any) {\n function multiImages(props: any, size: any) {\n const reader = new FileReader();\n reader.readAsDataURL(props[size]);\n reader.onload = (e: any) => {\n setImageFile((prevState: any) => [\n ...prevState,\n {\n selectedFile: e?.target?.result,\n type: props[size].type\n }\n ]);\n };\n }\n\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n reader.onload = (e: any) => {\n setImageFile([\n {\n selectedFile: e?.target?.result,\n type: props[0].type\n }\n ]);\n };\n setTimeout(() => {\n for (let i = 1; i < props.length; i++) {\n multiImages(props, i);\n }\n }, 500);\n }\n\n const changeEditModeOfInputs = (field: string) => {\n if (editMode.indexOf(field) === -1) {\n setEditMode([...editMode, field]);\n } else {\n setEditMode(editMode.filter((val) => val !== field));\n }\n };\n\n const createComment = async () => {\n const data = {\n event_id: id,\n owner_id,\n message: newComment,\n files: imageFile\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const updateFollowersData = {\n event_id: id,\n customer_ids: additionalFollowers\n ? additionalFollowers.map((a: any) => a.value)\n : []\n };\n\n try {\n await axios.post(`/api/v1/events/special/comments`, data);\n // await axios.put(\n // '/api/v1/events/special/additional_users',\n // updateFollowersData\n // );\n alert('Comment created successfully.');\n window.location.reload();\n } catch (error) {\n alert('Error while creating a comment, please try again.');\n handleLoaded();\n }\n };\n\n const fetchUsers = async (input: string) => {\n if (input.length >= 3) {\n const users: any = [];\n const { data } = await axios.get(`/api/v1/accounts?full_name=${input}`);\n data.results.forEach((user: any) => {\n users.push({\n value: user.id,\n label: `${user.first_name} ${user.last_name} | ${user.email}`\n });\n });\n setUsersData(users);\n }\n };\n\n const updateEvent = async () => {\n const data = {\n event_title: title || specialEvent?.event_title,\n event_description: description || specialEvent?.event_description,\n event_address: address || specialEvent?.event_address,\n event_start: eventStart || specialEvent?.event_start,\n event_end: eventEnd || specialEvent?.event_end\n };\n\n try {\n setLoaded(true);\n await axios.put(`/api/v1/events/special/${id}`, data);\n alert('Event updated successfully.');\n setEditMode([]);\n handleLoaded();\n } catch (error) {\n alert(\n 'Error while updating the event, please reload the page and try again.'\n );\n setLoaded(false);\n }\n };\n\n const deleteEvent = async () => {\n try {\n setLoaded(true);\n await axios.delete(`/api/v1/events/${id}`);\n alert('The event was deleted successfully.');\n history.push('/calendar');\n } catch (error) {\n alert(\n 'Error while deleting the event, please reload the page and try again.'\n );\n setLoaded(false);\n }\n };\n\n const deleteConfirmationModal = (\n \n
    \n
    \n setConfirmation(false)} className='close'>\n ×\n \n

    \n This event will be deleted for all users, not just on your calendar.\n This exclusion is irreversible. Do you wish to continue?\n

    \n
    \n
    \n
    \n {modalLoading ? (\n \n ) : (\n <>\n \n Yes\n \n setConfirmation(false)}\n className='deletebtn'\n >\n No\n \n \n \n )}\n \n
    \n
    \n \n );\n\n useEffect(() => {\n handleLoaded();\n handlePermissions()\n }, []);\n\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.events.view === false) {\n alert('Permission denied')\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {\n setPermissions(decoded.roles.events)\n }\n }\n }\n )\n } else {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.events.view === false) {\n alert('Permission denied');\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {\n setPermissions(decoded.roles.events)\n }\n }\n }\n )\n }\n }\n\n\n function saveAdditionalFollowers() {\n let customerIds = []\n\n if (additionalFollowersIds.length > 0) {\n for (let x of additionalFollowersIds) {\n customerIds.push(x.value)\n }\n }\n\n const updateFollowersData = {\n event_id: id,\n customer_ids: customerIds\n }\n\n axios.post('/api/v1/events/special/additional_users', updateFollowersData).then(() => {\n setAdditionalFollowers(additionalFollowersIds)\n })\n }\n\n return loaded ? (\n \n ) : (\n <>\n
    \n

    \n changeEditModeOfInputs('title')}\n />\n  \n {/* {specialEvent?.event_title} */}\n setTitle(e.target.value)}\n className='specialEventTitle'\n />\n

    \n
    \n
    \n
    \n
    \n Event type:\n
    \n

    {specialEvent?.event_type}

    \n
    \n
    \n
    \n Creator:\n
    \n

    {specialEvent?.created_by.full_name}

    \n
    \n
    \n
    \n changeEditModeOfInputs('description')}\n />\n  \n Description:\n
    \n setDescription(e.target.value)}\n />\n
    \n
    \n
    \n changeEditModeOfInputs('address')}\n />\n  \n Address, meeting link, or file link:\n
    \n setAddress(e.target.value)}\n />\n
    \n updateEvent()}\n className='specialEventUpdateButton'\n style={{ display: editMode.length >= 1 ? '' : 'none' }}\n >\n Save changes\n \n
    \n\n
    \n
    \n Created at:\n

    \n {specialEvent?.createdAt.split('').splice(0, 10).join('')} \n {Formatter(\n specialEvent?.createdAt.split('').splice(11, 2).join(''),\n specialEvent?.createdAt.split('').splice(13, 3).join('')\n )}\n

    \n
    \n
    \n Last updated at:\n

    \n {specialEvent?.updatedAt\n ? specialEvent?.updatedAt.split('').splice(0, 10).join('')\n : specialEvent?.createdAt.split('').splice(0, 10).join('')}\n  \n {specialEvent?.updatedAt\n ? Formatter(\n specialEvent?.updatedAt.split('').splice(11, 2).join(''),\n specialEvent?.updatedAt.split('').splice(13, 3).join('')\n )\n : Formatter(\n specialEvent?.createdAt.split('').splice(11, 2).join(''),\n specialEvent?.createdAt.split('').splice(13, 3).join('')\n )}\n

    \n
    \n
    \n changeEditModeOfInputs('start_time')}\n />\n  \n Start time:\n
    \n setEventStart(e.target.value)}\n />\n
    \n
    \n changeEditModeOfInputs('end_time')}\n />\n  \n End time:\n
    \n setEventEnd(e.target.value)}\n />\n
    \n
    \n\n
    \n

    \n Followers (groups):\n \n

    \n

    \n Additional followers:\n {\n if (e) {\n setAdditionalFollowersIds(e)\n } else {\n setAdditionalFollowersIds({})\n }\n }}\n options={usersData}\n className='specialEventMultiSelect'\n classNamePrefix='select'\n onInputChange={(e: any) => {\n fetchUsers(e);\n }}\n />\n

    \n
    \n saveAdditionalFollowers()}\n disabled={additionalFollowers === additionalFollowersIds}\n >\n Save\n \n setConfirmation(true)}\n className='specialEventDeleteButton'\n >\n Delete event\n \n
    \n
    \n
    \n\n

    Comments

    \n
    \n
    \n setNewComment(e.target.value)}\n />\n
    \n \n \n \n fileSelect(e.target.files)}\n className='form-control mb-3'\n accept='.jpg,.png'\n multiple\n />\n createComment()}\n className='btn btn-custom'\n >\n Reply\n \n
    \n
    \n\n
    \n {specialEvent.comments &&\n specialEvent?.comments.map((singleComment: any, key: any) => (\n
    \n
    \n \n #{key + 1}\n \n  \n setUpdatedComment(e.target.value)}\n />\n {/*

    {singleComment.message}

    */}\n {singleComment.files.map((link: any) => (\n <>\n \n \n \n  \n \n ))}\n
    \n
    \n {\n try {\n setLoaded(true);\n await axios.put(\n `/api/v1/events/special/comments/${singleComment.id}`,\n {\n message: updatedComment\n }\n );\n window.location.reload();\n } catch (error) {\n alert(\n 'Error while deleting this comment, please reload the page and try again.'\n );\n setLoaded(false);\n }\n }}\n >\n Confirm Updates\n \n {\n setEditComment(singleComment.id);\n setUpdatedComment(singleComment.message);\n }}\n />\n {\n const confirmation = window.confirm(\n 'Please confirm your decision. This action is permanent.'\n );\n if (confirmation == true) {\n try {\n setLoaded(true);\n await axios.delete(\n `/api/v1/events/special/comments/${singleComment.id}`\n );\n window.location.reload();\n } catch (error) {\n alert(\n 'Error while deleting this comment, please reload the page and try again.'\n );\n setLoaded(false);\n }\n }\n }}\n />\n \n

    \n {singleComment.created_by.full_name}\n  \n {new Date(singleComment.createdAt).toLocaleString(\n 'en-US',\n {\n timeZone: 'US/Central'\n }\n )}\n  \n

    \n
    \n
    \n ))}\n
    \n
    \n
    \n {deleteConfirmationModal}\n \n );\n};\n\nexport default SpecialEvent;\n","import React, { useState, useEffect } from 'react';\nimport {\n TextField,\n Button,\n Table,\n TableContainer,\n TableHead,\n TableRow,\n TableCell,\n TableBody,\n Paper,\n IconButton\n} from '@material-ui/core';\nimport {\n Delete,\n Edit,\n ArrowRight,\n ArrowRightSharp,\n ArrowLeft,\n ArrowLeftSharp,\n ToggleOff\n} from '@material-ui/icons';\nimport jwt from 'jsonwebtoken';\nimport axios from '../../services/axios';\nimport { useCookies } from 'react-cookie';\nimport { useHistory } from 'react-router-dom';\nimport Loader from 'src/components/Loader';\nimport GooglePlacesAutocomplete from 'react-google-places-autocomplete';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Theme } from 'src/styles/Theme';\n\nconst LocationManagement: React.FC = () => {\n const [value, ,] = useState();\n const [loaded, setLoaded] = useState(false);\n const [defaultSearch, setDefaultSearch] = useState('');\n const [locations, setLocations] = useState([]);\n const [locationTarget, setLocationTarget] = useState<{\n id?: string;\n name?: string;\n display_name?: string;\n store_id?: string;\n address?: string;\n phone?: string;\n }>({});\n const [cookies, ,] = useCookies(['token']);\n const [triggerModal, setTriggerModal] = useState(false);\n const [triggerDeleteModal, setTriggerDeleteModal] = useState(false);\n const [limit, setLimit] = useState(0);\n const [ordered, setOrdered] = useState('');\n const [permissions, setPermissions] = useState({\n view: false,\n add: false,\n edit: false,\n delete: false\n });\n\n const token = cookies.token;\n const history = useHistory();\n\n const TableHeadContainer = withStyles(() => ({\n root: {\n backgroundColor: Theme.primary\n }\n }))(TableHead);\n\n const TableHeaderCell = withStyles(() => ({\n root: {\n color: 'white',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n }))(TableCell);\n\n const TableBodyCell = withStyles(() => ({\n root: {\n color: '#808285'\n }\n }))(TableCell);\n\n const handlePermissions = () => {\n if (token) {\n jwt.verify(\n token.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n (err: any, decoded: any) => {\n if (err) {\n history.push('/');\n } else {\n if (decoded.roles.location.view !== true) {\n history.push('/');\n } else {\n setPermissions(decoded.roles.location);\n }\n }\n }\n );\n }\n };\n\n const handleLoad = () => {\n setLoaded(false);\n axios.get(`/api/v1/locations?active=both`).then((locationsResponse) => {\n setLocations(locationsResponse.data);\n setLoaded(true);\n });\n };\n\n const handleSearchLocation = (name: string) => {\n setDefaultSearch(name);\n if (name.length > 3) {\n axios\n .get(`/api/v1/locations?search_for=${name}`)\n .then((locationsResponse) => {\n setLocations(locationsResponse.data);\n setLimit(0);\n });\n } else if (name.length === 0) {\n axios.get(`/api/v1/locations?active=both`).then((locationsResponse) => {\n setLocations(locationsResponse.data);\n setLimit(0);\n });\n }\n };\n\n const handleDeleteLocation = (id?: string) => {\n setLoaded(true);\n try {\n axios.delete(`/api/v1/locations/${id}`).then(() => {\n setTriggerDeleteModal(false);\n handleLoad();\n });\n } catch (error) {\n alert('Error deleting a location, please try again.');\n handleLoad();\n }\n };\n\n const handleOrderBy = (columnKey: string) => {\n setLoaded(false);\n setTimeout(() => {\n let orderedLocations = locations;\n if (ordered === columnKey) {\n orderedLocations = orderedLocations.reverse();\n setLocations(orderedLocations);\n setLoaded(true);\n } else {\n orderedLocations = locations.sort((a, b) =>\n a[columnKey] > b[columnKey] ? 1 : b[columnKey] > a[columnKey] ? -1 : 0\n );\n setOrdered(columnKey);\n setLocations(orderedLocations);\n setLoaded(true);\n }\n }, 200);\n };\n\n const makeLocationAction = () => {\n const data = {\n name: locationTarget.name,\n display_name: locationTarget.display_name,\n store_id: locationTarget.store_id,\n address: locationTarget.address,\n phone: locationTarget.phone\n };\n if (triggerModal === 'create') {\n axios\n .post(`/api/v1/locations`, data)\n .then((response) => {\n handleLoad();\n setTriggerModal(false);\n })\n .catch((error) => {\n if (error.response.data.code === '23505') {\n const regExp = /\\(([^)]+)\\)/;\n const errorMessage: any = regExp.exec(error.response.data.detail);\n alert(\n `The ${errorMessage[1].replace(\n '_',\n ' '\n )} value set already exists.`\n );\n } else {\n alert(\n 'Error while creating a new location, please refresh the page and try again.'\n );\n }\n });\n }\n if (triggerModal === 'edit') {\n axios\n .put(`/api/v1/locations/${locationTarget.id}`, data)\n .then((response) => {\n handleLoad();\n setTriggerModal(false);\n })\n .catch((error) => {\n if (error.response.data.code === '23505') {\n const regExp = /\\(([^)]+)\\)/;\n const errorMessage: any = regExp.exec(error.response.data.detail);\n alert(\n `The ${errorMessage[1].replace(\n '_',\n ' '\n )} value set already exists.`\n );\n } else {\n alert(\n 'Error while updating a new location, please refresh the page and try again.'\n );\n }\n });\n }\n };\n\n const handleLimit = (newLimit: number) => {\n setLoaded(false);\n setTimeout(() => {\n setLimit(newLimit);\n setLoaded(true);\n }, 800);\n };\n\n useEffect(() => {\n handlePermissions();\n handleLoad();\n }, []);\n\n const locationModal = (\n
    \n
    \n
    \n setTriggerModal(false)} className='close'>\n ×\n \n

    \n FEG Home Locations\n

    \n
    \n
    \n {!loaded ? (\n \n ) : (\n <>\n
    \n {\n setLocationTarget({\n ...locationTarget,\n name: e.target.value\n });\n }}\n placeholder='Enter the name:'\n inputProps={{ maxLength: 80 }}\n />\n {\n setLocationTarget({\n ...locationTarget,\n display_name: e.target.value\n });\n }}\n placeholder='Enter the display name:'\n inputProps={{ maxLength: 80 }}\n />\n
    \n
    \n
    \n {\n setLocationTarget({\n ...locationTarget,\n store_id: e.target.value.replace(/\\D/g, '')\n });\n }}\n placeholder='Enter the store ID:'\n inputProps={{ maxLength: 4 }}\n />\n
    \n
    \n {\n setLocationTarget({\n ...locationTarget,\n address: e.label\n });\n }\n }}\n />\n
    \n
    \n
    \n {\n setLocationTarget({\n ...locationTarget,\n phone: e.target.value\n .replace(/\\D+/g, '')\n .replace(/(\\d{3})(\\d)/, '($1) $2')\n .replace(/(\\d{3})(\\d)/, '$1-$2')\n .replace(/(\\d{4})-(\\d)(\\d{4})/, '$1$2-$3')\n .replace(/(-\\d{4})\\d+?$/, '$1')\n });\n }}\n placeholder='Enter the phone:'\n inputProps={{ maxLength: 20 }}\n />\n
    \n
    \n makeLocationAction()}\n >\n SAVE\n \n
    \n \n )}\n
    \n
    \n
    \n );\n\n const deleteLocationModal = (\n \n
    \n
    \n setTriggerDeleteModal(false)} className='close'>\n ×\n \n

    \n FEG Home Locations\n

    \n
    \n
    \n {!loaded ? (\n \n ) : (\n <>\n
    \n

    \n You are deleting a location from the system. This action\n cannot be reversed. Do you want to proceed?\n

    \n
    \n \n handleDeleteLocation(locationTarget.id)}\n >\n YES\n \n setTriggerDeleteModal(false)}\n >\n NO\n \n
    \n \n )}\n
    \n \n \n );\n\n return !loaded ? (\n \n ) : (\n
    \n
    \n

    FEG Home Locations

    \n
    \n handleSearchLocation(e.target.value)}\n className='searchLocation'\n />\n {\n setLocationTarget({});\n setTriggerModal('create');\n }}\n >\n Add New\n \n
    \n
    \n \n \n \n \n handleOrderBy('name')}\n >\n Name\n \n handleOrderBy('display_name')}\n >\n Display Name\n \n handleOrderBy('store_id')}\n >\n Store ID\n \n handleOrderBy('address')}\n >\n Address\n \n handleOrderBy('phone')}\n >\n Phone\n \n handleOrderBy('status')}\n >\n Status\n \n \n \n \n \n {locations\n .slice(limit, limit + 10)\n .map((location: any, key) => (\n \n \n {location.name}\n \n \n {location.display_name}\n \n \n {location.store_id}\n \n \n {location.address}\n \n \n {location.phone}\n \n \n {location.active === true ? 'Activated' : 'Deactivated'}\n \n \n {\n setLoaded(true);\n try {\n axios\n .post(`/api/v1/locations/${location.id}/toggle`)\n .then(() => {\n handleLoad();\n });\n } catch (error) {\n alert(\n 'Error activating/deactivating a location, please try again.'\n );\n handleLoad();\n }\n }}\n aria-label='Activate/Deactivate Location'\n >\n \n \n {\n setLocationTarget(location);\n setTriggerModal('edit');\n }}\n aria-label='edit'\n >\n \n \n {\n setLocationTarget(location);\n setTriggerDeleteModal(true);\n }}\n aria-label='delete'\n >\n \n \n \n \n ))}\n \n
    \n
    \n
    \n
    \n
    \n

    \n {limit} to{' '}\n {limit < locations.length - 10 ? limit + 10 : locations.length},\n total of {locations.length} locations\n

    \n
    \n
    \n handleLimit(0)}\n disabled={limit === 0}\n >\n \n \n handleLimit(limit - 10)}\n disabled={limit === 0}\n >\n \n \n handleLimit(limit + 10)}\n disabled={limit >= locations.length - 10}\n >\n \n \n handleLimit(locations.length - 10)}\n disabled={limit >= locations.length - 10}\n >\n \n \n
    \n
    \n
    \n {locationModal}\n {deleteLocationModal}\n
    \n );\n};\n\nexport default LocationManagement;\n","import React, { useEffect, useRef, useState } from 'react';\nimport axios from '../../services/axios';\nimport Monograma from '../../images/Monograma.png';\nimport Loader from 'src/components/Loader';\nimport Formatter from 'src/components/CompanyAnnouncements/Formatter';\nimport { useCookies } from 'react-cookie';\n\nconst MyProfile: React.FC = () => {\n const owner_id = localStorage.getItem('owner_id');\n const [userData, setUserData] = useState({});\n const imageFileInput = useRef(null);\n const [loaded, setLoaded] = useState(true);\n const [activities, setActivities] = useState([]);\n const [imageFile, setImageFile] = useState({\n selectedFile: '',\n type: ''\n });\n const [, setCookie] = useCookies(['token']);\n\n const fileHandler = () => {\n imageFileInput.current.click();\n };\n\n const fileSelect = (props: any) => {\n if (props[0] === undefined) {\n setImageFile({\n selectedFile: '',\n type: ''\n });\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setImageFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n\n setUserData({ ...userData, url_image: URL.createObjectURL(props[0]) });\n };\n\n const fetchData = async () => {\n setLoaded(true);\n const res = await axios.get(`/api/v1/accounts/${owner_id}`);\n setUserData(res.data.results);\n const sortedActivities: any = res.data.results.activities.sort(function (\n a: any,\n b: any\n ) {\n return new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime();\n });\n setActivities(sortedActivities.reverse().slice(0, 10));\n setLoaded(false);\n };\n\n const filterActivities = (dateLimit: string) => {\n setLoaded(true);\n const sortedActivities: any = userData.activities.sort(function (\n a: any,\n b: any\n ) {\n return new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime();\n });\n const today = new Date();\n\n if (dateLimit === 'week') {\n setTimeout(() => {\n const dater = sortedActivities.filter(\n (activity: any) =>\n new Date(activity.createdAt).getTime() >\n new Date().setDate(today.getDate() - today.getDay() - 7)\n );\n setActivities(dater.reverse());\n setLoaded(false);\n }, 800);\n }\n\n if (dateLimit === 'month') {\n setTimeout(() => {\n const dater = sortedActivities.filter(\n (activity: any) =>\n new Date(activity.createdAt).getTime() >\n new Date().setDate(today.getDate() - today.getDay() - 30)\n );\n setActivities(dater.reverse());\n setLoaded(false);\n }, 800);\n }\n\n if (dateLimit === 'months') {\n setTimeout(() => {\n const dater = sortedActivities.filter(\n (activity: any) =>\n new Date(activity.createdAt).getTime() >\n new Date().setDate(today.getDate() - today.getDay() - 30 * 3)\n );\n setActivities(dater.reverse());\n setLoaded(false);\n }, 800);\n }\n };\n\n const submitProfileUpdates = async () => {\n if (userData.first_name === '') return alert(\"First name can't be blank.\");\n if (userData.last_name === '') return alert(\"Last name can't be blank.\");\n if (userData.phone_number === '')\n return alert(\"Phone number can't be blank.\");\n\n const data = {\n first_name: userData.first_name,\n last_name: userData.last_name,\n phone_number: userData.phone_number,\n image: imageFile\n };\n\n try {\n setLoaded(true);\n const res = await axios.put(`/api/v1/accounts/${owner_id}`, data);\n await setCookie('token', res.data.token);\n localStorage.setItem('token', res.data.token);\n window.location.reload();\n } catch (error) {\n alert(\n 'Failed updating your profile. Please, reload the page and try again'\n );\n }\n };\n\n useEffect(() => {\n fetchData();\n }, []);\n\n return loaded ? (\n \n ) : (\n
    \n \n fileSelect(event.target.files)}\n />\n

    My profile

    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n

    Your last activities

    \n
    \n
    \n

    filterActivities('months')}>\n Three months\n

    \n

    filterActivities('month')}>\n One month\n

    \n

    filterActivities('week')}>\n A week\n

    \n

    Filter by:

    \n
    \n
    \n
    \n {activities.length >= 1 ? (\n activities.map((activity: any, key: any) => {\n if (activity.announcement_created) {\n return (\n
    \n

    \n {activity.createdAt} You created an{' '}\n announcement.\n

    \n
    \n );\n }\n if (activity.announcement_benefits_created) {\n return (\n
    \n

    \n {activity.createdAt} You created a{' '}\n benefits target announcement.\n

    \n
    \n );\n }\n if (activity.event_created) {\n return (\n
    \n

    \n \n {new Date(activity.createdAt)\n .toString()\n .split('')\n .splice(4, 17)\n .join('')}\n {' '}\n You created an event.\n

    \n
    \n );\n }\n if (activity.event_commented) {\n return (\n
    \n

    \n \n {new Date(activity.createdAt)\n .toString()\n .split('')\n .splice(4, 17)\n .join('')}\n {' '}\n You made a comment on a special event.\n

    \n
    \n );\n }\n })\n ) : (\n

    \n You haven't done any activities so far.\n

    \n )}\n
    \n
    \n );\n};\n\nexport default MyProfile;\n","import styled from 'styled-components';\nimport { Theme } from '../../styles/Theme';\n\nexport const MapJobtitle = styled.div`\n width: 80%;\n align-items: center;\n margin: 30px auto;\n div.content-groups {\n display: flex;\n }\n button {\n margin: 10px;\n }\n div.div-content {\n margin: 0 auto;\n max-width: 900px;\n width: 100%;\n background-color: white;\n min-height: 800px;\n border-radius: 16px;\n @media (max-width: 1200px) {\n width: auto;\n }\n .title {\n display: flex;\n margin: 10px;\n justify-content: space-between;\n align-items: center;\n }\n\n h1 {\n color: ${Theme.primary};\n margin: 12px;\n }\n hr {\n color: ${Theme.primary};\n margin-top: 6px;\n }\n .groups-content {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n justify-content: space-between;\n align-items: center;\n margin: 10px 60px;\n @media (max-width: 1200px) {\n grid-template-columns: 1fr 1fr;\n }\n .MuiFormControl-root {\n width: 100%;\n max-width: 200px;\n }\n select {\n width: 400px;\n }\n }\n }\n`;\n","import React, { ChangeEvent, useEffect, useState } from 'react';\nimport useWindowWith from 'src/utils/width';\nimport axios from '../../services/axios';\nimport * as S from './styled';\nimport {\n Button,\n FormControl,\n InputLabel,\n MenuItem,\n Select\n} from '@material-ui/core';\n\ninterface jobsTitleProps {\n group_title: string | unknown;\n paylocity_jobtitle: string;\n}\n\ninterface Group {\n id: string;\n name: string;\n profile_id: string;\n}\ninterface SubmitProps {\n newJobtitle: boolean;\n index: number;\n}\n\nconst MapJobtitle: React.FC = () => {\n const [jobTitles, setJobTitles] = useState([]);\n const [newJobtitles, setNewJobtitles] = useState([]);\n const [nav, setNav] = useState(true);\n const [groups, setGroups] = useState([]);\n const [relod, setRelod] = useState(true);\n const [selectedGroups, setSelectedGroups] = useState([]);\n const width = useWindowWith();\n\n useEffect(() => {\n axios.get(`api/v1/groups`).then((res) => {\n setGroups(res.data);\n console.log('groups', res.data);\n });\n axios.get(`api/v1/groups/unexpected`).then((res) => {\n console.log(res.data);\n setNewJobtitles(res.data);\n });\n axios.get(`api/v1/groups/mapjobtitle`).then((res) => {\n console.log(res.data);\n setJobTitles(res.data);\n });\n setRelod(false);\n }, [relod]);\n\n const changeElement = ({ value }: { value: unknown | string }) => {\n const newArray = [...jobTitles];\n newArray[0].group_title = value;\n setJobTitles(newArray);\n };\n\n const submitPutGroup = ({ index, newJobtitle }: SubmitProps): any => {\n if (!selectedGroups[index]) {\n return;\n }\n const data = {\n paylocity_jobtitle: newJobtitle\n ? newJobtitles[index].paylocity_jobtitle\n : jobTitles[index].paylocity_jobtitle,\n group_title: selectedGroups[index]\n };\n console.log(data);\n axios\n .post('api/v1/groups/new/group_title', { ...data })\n .then((res) => setRelod(true))\n .catch((e) => console.log(e));\n };\n\n return (\n \n
    \n {nav ? (\n
    \n
    \n

    All Paylocity JobTitles

    \n setNav(false)}\n >\n New Paylocity JobTitles\n \n
    \n
    \n\n
    \n {jobTitles.map((job, index) => (\n
    \n {width > 1200 &&

    {job.paylocity_jobtitle}

    }\n \n \n {job.paylocity_jobtitle}\n \n ) => {\n const updatedGroups = [...selectedGroups];\n updatedGroups[index] = e.target.value as Group;\n setSelectedGroups(updatedGroups);\n }}\n >\n {groups?.map((item) => (\n {item.name}\n ))}\n \n \n \n submitPutGroup({ index, newJobtitle: false })\n }\n >\n Update\n \n
    \n ))}\n
    \n
    \n ) : (\n
    \n
    \n

    New Paylocity JobTitles

    \n setNav(true)}\n >\n Paylocity JobTitles\n \n
    \n
    \n\n
    \n {newJobtitles.map((job, index) => (\n
    \n {width > 1200 &&

    {job.paylocity_jobtitle}

    }\n \n \n {job.paylocity_jobtitle}\n \n ) => {\n const updatedGroups = [...selectedGroups];\n updatedGroups[index] = e.target.value as Group;\n setSelectedGroups(updatedGroups);\n }}\n >\n {groups?.map((item) => (\n {item.name}\n ))}\n \n \n submitPutGroup({ index, newJobtitle: true })}\n >\n Update\n \n
    \n ))}\n
    \n
    \n )}\n
    \n
    \n );\n};\n\nexport default MapJobtitle;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const Container = styled.div`\n background-color: ${Theme.light};\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n margin-top: 70px;\n transition: 0.2s;\n z-index: 999;\n overflow: scroll;\n .short {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 30px;\n border-bottom: 1px solid ${Theme.grey};\n\n svg {\n color: ${Theme.primary};\n }\n }\n .ask-fegpt {\n margin: 10px 0;\n padding: 0;\n }\n div.list-short {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 30px;\n\n border-bottom: 1px solid ${Theme.grey};\n :first-of-type {\n border-top: 1px solid ${Theme.grey};\n }\n svg {\n color: ${Theme.primary};\n }\n label {\n width: 5px;\n height: 30px;\n background: ${Theme.primary};\n }\n label.act {\n width: 5px;\n height: 30px;\n background: purple;\n }\n }\n div.list {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 30px;\n\n border-bottom: 1px solid ${Theme.grey};\n :first-of-type {\n border-top: 1px solid ${Theme.grey};\n }\n\n label.act {\n width: 5px;\n height: 30px;\n background: ${Theme.primary};\n }\n svg {\n color: ${Theme.primary};\n }\n }\n`;\n\nexport const AppContainer = styled.div`\n div#config {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n display: flex;\n z-index: 99999;\n top: 0;\n width: 100%;\n align-items: center;\n height: 70px;\n position: fixed;\n background-color: ${Theme.light};\n div.app-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 2px 20px;\n img {\n width: 50px;\n height: 50px;\n }\n }\n`;\n","import React from 'react';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Typography from '@material-ui/core/Typography';\nimport InputBase from '@material-ui/core/InputBase';\nimport Badge from '@material-ui/core/Badge';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Menu from '@material-ui/core/Menu';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport SearchIcon from '@material-ui/icons/Search';\nimport AccountCircle from '@material-ui/icons/AccountCircle';\nimport MailIcon from '@material-ui/icons/Mail';\nimport Loginbutton from '../LoginButton';\nimport NotificationsIcon from '@material-ui/icons/Notifications';\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport sss from '../../images/Monograma.png';\nimport Notifications from '../Notifications/index';\nimport { FiMenu, FiSettings } from 'react-icons/fi';\nimport ProfileInfo from '../LoginButton/ProfileInfo';\nimport { Theme as ThemeColor } from 'src/styles/Theme';\nimport { AppContainer } from './styled';\nimport Monograma from '../../images/miniLogoFeg.png';\nimport { MdClose } from 'react-icons/md';\n\ninterface MyComponentProps {\n handleSidebarOpen: () => void;\n handleDrawerOpen: () => void;\n drawer: () => void;\n sidebarStatus: boolean;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n grow: {\n flexGrow: 1\n },\n menuButton: {\n marginRight: theme.spacing(2)\n },\n title: {\n display: 'none',\n [theme.breakpoints.up('sm')]: {\n display: 'block'\n }\n },\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.common.white,\n '&:hover': {\n backgroundColor: theme.palette.common.white\n },\n marginRight: theme.spacing(2),\n marginLeft: 0,\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(3),\n width: 'auto'\n }\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 [theme.breakpoints.up('md')]: {\n width: '20ch'\n }\n },\n sectionDesktop: {\n display: 'none',\n [theme.breakpoints.up('md')]: {\n display: 'flex'\n }\n },\n sectionMobile: {\n display: 'flex',\n [theme.breakpoints.up('md')]: {\n display: 'none'\n }\n }\n })\n);\nexport const PrimarySearchAppBar: React.FC = ({\n handleDrawerOpen,\n handleSidebarOpen,\n drawer,\n sidebarStatus\n}) => {\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [\n mobileMoreAnchorEl,\n setMobileMoreAnchorEl\n ] = React.useState(null);\n const [extended, setExtended] = React.useState(false);\n\n const handleClick: React.MouseEventHandler = (event) => {\n handleSidebarOpen();\n drawer();\n };\n\n const handleClickCloseSidebar = () => {\n handleSidebarOpen();\n };\n\n const isMenuOpen = Boolean(anchorEl);\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\n\n const handleProfileMenuOpen = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleMobileMenuClose = () => {\n setMobileMoreAnchorEl(null);\n };\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n handleMobileMenuClose();\n };\n\n const handleMobileMenuOpen = (event: React.MouseEvent) => {\n setMobileMoreAnchorEl(event.currentTarget);\n };\n\n const menuId = 'primary-search-account-menu';\n const renderMenu = (\n \n Profile\n My account\n \n );\n\n const mobileMenuId = 'primary-search-account-menu-mobile';\n const renderMobileMenu = (\n \n \n \n \n \n \n \n

    Notifications

    \n
    \n \n \n \n \n

    Profile

    \n
    \n \n );\n\n function openNav() {\n setExtended(true);\n }\n\n function closeNav() {\n setExtended(false);\n }\n\n return (\n <>\n
    \n \n
    \n \n \n {sidebarStatus ? : }\n \n \n Feg Home\n \n\n \n
    \n \n
    \n \n {\n handleClickCloseSidebar();\n closeNav();\n }}\n >\n ×\n \n

    User Profile

    \n \n
    \n\n {\n handleClickCloseSidebar();\n openNav();\n }}\n type='button'\n style={{\n background: `${ThemeColor.light}`,\n border: 'none',\n cursor: 'pointer'\n }}\n >\n \n \n \n
    \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport {\n createStyles,\n makeStyles,\n useTheme,\n Theme\n} from '@material-ui/core/styles';\nimport Drawer from '@material-ui/core/Drawer';\nimport List from '@material-ui/core/List';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport Typography from '@material-ui/core/Typography';\nimport Divider from '@material-ui/core/Divider';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport InboxIcon from '@material-ui/icons/MoveToInbox';\nimport MailIcon from '@material-ui/icons/Mail';\nimport { PrimarySearchAppBar } from './appbar';\nimport { WorkOutlineOutlined } from '@material-ui/icons';\nimport jwt from 'jsonwebtoken';\nimport { useCookies } from 'react-cookie';\nimport Monograma from '../../images/Monograma.png';\nimport Loginbutton from '../LoginButton';\nimport Notifications from '../Notifications';\nimport Tooltip from '../SideBar/Tooltip';\nimport axios from '../../services/axios';\nimport PrivacyPolitc from '../PrivacyPolicy';\nimport PasswordExpired from '../PasswordExpired';\nimport { Link, useHistory } from 'react-router-dom';\nimport { useLocation } from 'react-router-dom';\nimport { Container } from './styled';\nimport { RiChat4Line, RiChatSettingsLine } from 'react-icons/ri';\nimport { FaAngleDown, FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { FiBookOpen, FiCalendar, FiFolder, FiHome, FiMapPin, FiMonitor, FiPieChart, FiPlusSquare, FiShield, FiUserCheck, FiUsers } from 'react-icons/fi';\nimport { MdMessage } from 'react-icons/md';\n\nconst drawerWidth = 240;\ninterface BasicMenuProps {\n children: React.ReactNode;\n}\n\n\n\nexport default function MiniDrawer({ children }: BasicMenuProps) {\n const theme = useTheme();\n const nav = useHistory();\n const [open, setOpen] = React.useState(true);\n const [drawer, setDrawer] = useState(false);\n const [sidebarOpen, setSidebarOpen] = React.useState(false);\n\n const handleDrawerOpen = () => {\n setOpen(!open);\n };\n const changeDrawer = () => {\n setDrawer(!drawer);\n };\n\n const handleSidebarOpen = () => {\n setSidebarOpen(!sidebarOpen);\n };\n\n const handleDrawerClose = () => {\n setSidebarOpen(false);\n setDrawer(false);\n };\n const [actived, setActived] = useState(window.location.pathname);\n const [cookies, ,] = useCookies(['token']);\n const token: any = cookies.token;\n const repeatTooltip: any = cookies.repeatTooltip;\n const [firstAccess, setFirstAccess] = useState(false);\n const [passwordExpired, setPasswordExpired] = useState(false);\n const [privacyPolicy, setPrivacyPolicy] = useState(true);\n const [superAdmin, setSuperAdmin] = useState(false);\n const [permissions, setPermissions] = useState({\n announcements: { list: false, read: false, write: false },\n events: { list: false, read: false, write: false },\n groups: { list: false, read: false, write: false },\n locations: { list: false, read: false, write: false },\n users: { list: false, read: false, write: false },\n analytics: { list: false, read: false, write: false }\n });\n const [fegpt, setFegpt] = useState(false);\n const [activedDown, setActivedDown] = useState('');\n const [permissions2, setPermissions2] = useState({\n home_page: { view: false, add: false, edit: false, delete: false },\n announcements: { view: false, add: false, edit: false, delete: false },\n user_validation: { view: false, add: false, edit: false, delete: false },\n user_management: { view: false, add: false, edit: false, delete: false },\n location: { view: false, add: false, edit: false, delete: false },\n events: { view: false, add: false, edit: false, delete: false },\n analytics: { view: false, add: false, edit: false, delete: false },\n shortcuts: { view: false, add: false, edit: false, delete: false },\n permissions_management: {\n view: false,\n add: false,\n edit: false,\n delete: false\n },\n map_jobtitle: { view: false, add: false, edit: false, delete: false }\n });\n useEffect(() => {\n handlePermissions();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n function openNav(act: string) {\n setFegpt(!fegpt)\n activedDown === act ? setActivedDown(\"\") : setActivedDown(act)\n\n }\n const location = useLocation();\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n console.log(decoded);\n setPermissions(decoded.modules);\n setPermissions2(decoded.roles);\n\n const customer_id = localStorage.getItem('id');\n const response = await axios\n .get(`api/v1/accounts/${customer_id}`)\n .then((response) => response.data.results);\n setFirstAccess(response.first_access);\n setPasswordExpired(response.password_expired_time);\n setPrivacyPolicy(response.accepted_privacy_policy);\n if (response.first_access) {\n axios.put(`api/v1/accounts/${customer_id}/user/first_access`);\n } else if (repeatTooltip === 'true') {\n setFirstAccess(true);\n }\n if (response.group_id === '128e5e58-3c0a-4e63-9be1-d0b6fc2f871e') {\n setSuperAdmin(true);\n }\n }\n }\n );\n return;\n }\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err);\n } else {\n setPermissions(decoded.modules);\n setPermissions2(decoded.roles);\n\n const customer_id = localStorage.getItem('id');\n const first_access = await axios\n .get(`api/v1/accounts/${customer_id}`)\n .then((response) => response.data.results.first_access);\n setFirstAccess(first_access);\n if (first_access) {\n axios.put(`api/v1/accounts/${customer_id}/user/first_access`);\n } else if (repeatTooltip === 'true') {\n setFirstAccess(true);\n }\n }\n }\n );\n }\n const handleNav = (url: any) => {\n nav.push(url)\n setActived(url)\n setSidebarOpen(false)\n setDrawer(false)\n };\n\n function setTooltipPathName(name: string) {\n handleDrawerClose();\n if (name) setActived(name);\n }\n\n function handleAccessPermissions() {\n /*if (!privacyPolicy) {\n return ;\n }*/\n if (passwordExpired) {\n return ;\n }\n /*if (firstAccess) {\n return ;\n }*/\n return <>;\n }\n\n return (\n
    \n \n \n \n
    \n handleNav('/')}\n className='list'\n >\n \n

    Home

    \n \n
    \n handleNav('/new-home')}\n className='list'\n >\n \n

    New Home

    \n \n
    \n handleNav('/list-shortcuts')}\n className='list'\n >\n \n

    New FEG App

    \n \n \n {\n drawer && (\n openNav('/chat-fegpt')}\n className={`short ${activedDown === '/chat-fegpt' ? 'active opt' : ''}`}\n > \n

    Ask FEG

    \n\n {activedDown === '/chat-fegpt' ? : }\n \n )\n }\n {\n fegpt && (\n <>\n handleNav('/chat-fegpt')}\n className='list-short'\n >\n \n

    Chat

    \n \n \n\n handleNav('/settings-fegpt')}\n className='list-short'\n >\n \n

    Upload Document

    \n \n \n handleNav('/knowledgebase')}\n className='list-short'\n >\n \n

    Repository

    \n \n \n \n )\n }\n handleNav('/announcements')}\n >\n \n

    Company Announ...

    \n \n \n\n handleNav('/user')}\n style={{\n display: permissions2.user_validation.view ? 'flex' : 'none'\n }}\n >\n \n

    Users Validations

    \n \n \n\n handleNav('/management')}\n style={{\n display: permissions2.user_management.view ? 'flex' : 'none'\n }}\n >\n \n

    Users Management

    \n \n \n\n handleNav('/announcements/new')}\n\n >\n \n

    New Announcement

    \n \n \n\n handleNav('/locations')}\n >\n \n

    Location Management

    \n \n \n\n handleNav('/calendar')}\n >\n \n

    Company Calendar

    \n \n \n\n handleNav('/analytics')}\n style={{ display: permissions2.analytics.view ? 'flex' : 'none' }}\n >\n \n

    Analytics

    \n \n \n\n handleNav('/shortcuts')}\n style={{ display: permissions2.shortcuts.view ? 'flex' : 'none' }}\n >\n \n

    FEG Apps

    \n \n \n {superAdmin && (\n handleNav('/mapJobtitle')}\n\n >\n \n

    JobTitle

    \n \n \n )}\n\n\n\n\n handleNav('/permissions')}\n style={{\n display: permissions2.permissions_management.view ? 'flex' : 'none'\n }}\n >\n \n

    Permissions

    \n \n \n {\n
    \n \n
    \n }\n \n \n\n\n {children}\n\n \n );\n}\n\n\n\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n background-color: white;\n flex-direction: column;\n border-radius: 8px;\n max-width: 500px;\n margin-left: 52px;\n div.title {\n display: flex;\n margin: 10px 18px;\n justify-content: space-between;\n align-items: center;\n button {\n cursor: pointer;\n border: none;\n border-radius: 50%;\n height: 30px;\n width: 30px;\n }\n }\n div.sources {\n margin: 18px;\n gap: 18px;\n display: flex;\n flex-direction: column;\n a {\n padding: 10px;\n background-color: #f5f5f5;\n border-radius: 8px;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport { Container } from './styled';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\n\nconst DocumentSources = (props) => {\n const [open, setOpen] = useState(true);\n\n return (\n \n
    \n

    Documents Sources

    {' '}\n \n
    \n {open && (\n <>\n
    \n {props.sources.map((source) => {\n return (\n \n {source.filename}\n \n );\n })}\n {props.children}\n
    \n \n )}\n
    \n );\n};\nexport default DocumentSources;\n","import React, { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { Theme } from 'src/styles/Theme';\nimport { BeatLoader } from 'react-spinners';\nimport { AiOutlineMenuFold, AiOutlineMenuUnfold } from 'react-icons/ai';\nimport api from 'src/services/axios';\nimport DocumentSources from 'src/components/DocumentSources';\n\nconst ChatContainer = styled.div`\n width: 70%;\n max-width: 1100px;\n margin: 30px auto;\n -webkit-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n -moz-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n\n overflow: hidden;\n div.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n background-color: ${Theme.light};\n button {\n width: 100px;\n height: 38px;\n border: none;\n background: white;\n color: ${Theme.primary};\n border-radius: 5px;\n font-weight: bold;\n margin-right: 8px;\n cursor: pointer;\n }\n }\n div.content-menu {\n display: flex;\n margin: auto 0;\n button.btn-menu {\n width: min-content;\n padding: 4px;\n }\n }\n div.header div.title {\n display: flex;\n gap: 30px;\n padding: 25px 10px;\n align-items: center;\n height: 50px;\n h1 {\n color: ${Theme.primary};\n @media (max-width: 700px) {\n font-size: 18px;\n }\n }\n img {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n }\n }\n @media (max-width: 500px) {\n margin-top: 30px;\n width: 100%;\n }\n @media (max-width: 700px) {\n width: 100%;\n max-width: 400px;\n }\n`;\n\nconst ChatLog = styled.div`\n height: 450px;\n padding: 10px;\n overflow-y: scroll;\n display: flex;\n flex-direction: column;\n width: 100%;\n word-wrap: break-word;\n`;\n\nconst ChatMessage = styled.div`\n display: flex;\n word-wrap: break-word;\n width: 100%;\n .active {\n margin: 0 0 0 auto;\n div {\n background-color: ${(props) =>\n props.role === 'user' ? `${Theme.primary}` : '#fff'};\n color: ${Theme.secondary};\n flex-direction: row-reverse;\n }\n }\n div {\n display: flex;\n gap: 20px;\n word-wrap: break-word;\n flex-direction: ${(props) =>\n props.role === 'user' ? 'initial' : 'row-reverse'};\n div {\n display: flex;\n background-color: #e53935;\n width: 100%;\n margin: 10px 0;\n word-wrap: break-word;\n max-width: max-content;\n background-color: ${Theme.light};\n padding: 10px;\n border-radius: ${(props) =>\n props.role === 'user' ? '10px 10px 0 10px' : '10px 10px 10px 0'};\n }\n img {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n }\n }\n`;\n\nconst ErrorMessage = styled.div`\n color: #fff;\n background-color: #e53935;\n padding: 8px;\n border-radius: 5px;\n margin-top: 5px;\n`;\n\nconst UserInput = styled.div`\n display: flex;\n align-items: center;\n background-color: #f5f5f5;\n padding: 10px;\n`;\n\nconst TextInput = styled.input`\n flex-grow: 1;\n padding: 8px;\n border: none;\n border-radius: 5px;\n`;\n\nconst SendButton = styled.button`\n padding: 8px 16px;\n background-color: ${Theme.primary};\n color: #fff;\n border: none;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n\n &:hover {\n opacity: 0.9;\n }\n`;\nconst SugestedBtn = styled.button`\n padding: 8px 16px;\n background-color: ${Theme.primary};\n color: #fff;\n border: none;\n margin-top: 5px;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n`;\nconst SugestedContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ChatSubContainer = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n div.log-message {\n width: 100%;\n }\n div.history-message {\n background-color: #f5f5f5;\n width: 185px;\n display: flex;\n align-items: center;\n flex-direction: column;\n overflow-y: scroll;\n overflow-x: hidden;\n height: 502px;\n\n transition: 1s;\n button {\n margin: 10px 105px;\n width: 90%;\n height: max-content;\n text-overflow: clip;\n padding: 10px;\n cursor: pointer;\n font-weight: bold;\n border: none;\n\n border-radius: 9px;\n background-color: white;\n color: ${Theme.primary};\n :last-of-type {\n margin-bottom: 12px;\n }\n }\n }\n`;\n\nconst Popover = styled.div`\n position: absolute;\n background-color: ${Theme.primary};\n margin-top: 5px;\n color: white;\n padding: 8px;\n border-top-right-radius: 12px;\n border-bottom-right-radius: 12px;\n border-bottom-left-radius: 12px;\n transition: 1s;\n`;\n\nconst App = () => {\n const [messages, setMessages] = useState([]);\n const [userMessage, setUserMessage] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [loading, setLoading] = useState(false);\n const [sources, setSources] = useState([]);\n\n const [sugested, setSugested] = useState([]);\n const image = localStorage.getItem('image_url');\n const [openModal, setOpenModal] = useState(false);\n const [allMessages, setAllMessages] = useState([]);\n const [idHistory, setidHistory] = useState(0);\n const [isHovered, setIsHovered] = useState(false);\n const [token, setToken] = useState('');\n const [streamedData, setStreamedData] = useState('');\n const [historyMessage, setHistoryMessage] = useState([]);\n const [headersHistory, setHeadersHistory] = useState('');\n const [followUP, setFollowUP] = useState([]);\n const [loadingSources, setLoadingSources] = useState(false);\n const contentRef = useRef(null);\n\n function newChat() {\n setMessages([]);\n setStreamedData('');\n setHistoryMessage([]);\n setUserMessage('');\n setSources([]);\n setSugested([]);\n setidHistory(0);\n setFollowUP([]);\n setLoading(false);\n setLoadingSources(false);\n }\n\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n function getAllMessages() {\n api\n .get('https://openai.fegsystem.com/conversations?per_page=1000')\n .then((resData) => setAllMessages(resData.data.data));\n }\n async function getHistory() {\n await api\n .get('https://openai.fegsystem.com/conversations?per_page=1000')\n .then((resData) => setAllMessages(resData.data.data));\n }\n useEffect(() => {\n getHistory();\n\n setToken(localStorage.getItem('token'));\n }, []);\n\n useEffect(() => {\n api\n .get(`https://openai.fegsystem.com/conversations/${idHistory}`)\n .then((resData) => {\n setHistoryMessage([]);\n setStreamedData('');\n setSources([]);\n setFollowUP([]);\n setMessages(resData.data.messages);\n })\n .catch((e) => console.log(e));\n }, [idHistory]);\n\n const scrollToDiv = () => {\n const elemento = contentRef.current;\n if (elemento) {\n elemento.scrollTo({\n top: Number.MAX_SAFE_INTEGER,\n behavior: 'smooth'\n });\n }\n };\n\n function transformarLinksEmHTML(texto) {\n // Expressão regular para encontrar links\n var regex = /(https?:\\/\\/[^\\s]+)/g;\n var regexEmail = /([\\w.-]+@[a-zA-Z_-]+?\\.[a-zA-Z]{2,6})/g;\n\n // Substitui os links encontrados pelo texto formatado\n var textoFormatado = texto.replace(regex, '$1');\n const dataFormated = textoFormatado.replace(\n regexEmail,\n '$1'\n );\n\n return dataFormated;\n }\n\n async function fetchDataFromStream() {\n scrollToDiv();\n if (userMessage === '') {\n return;\n }\n let userMessageRecover = userMessage;\n let idHeaderHistory;\n let firstMessage = false;\n let idMessageResponse;\n setFollowUP([]);\n setSources([]);\n setUserMessage('');\n setLoadingSources(true);\n if (!streamedData) {\n setHistoryMessage((prevHistory) => [\n ...prevHistory,\n { content: userMessageRecover, role: 'user' }\n ]);\n }\n if (streamedData) {\n setHistoryMessage((prevHistory) => [\n ...prevHistory,\n { content: streamedData, role: 'assistent' },\n { content: userMessageRecover, role: 'user' }\n ]);\n setStreamedData('');\n }\n const response = await fetch(\n `https://openai.fegsystem.com/conversations${\n headersHistory !== 0 ? `/${headersHistory}` : ''\n } `,\n {\n method: 'POST',\n body: JSON.stringify({\n prompt: userMessageRecover\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const reader = response.body.getReader();\n const headers = response.headers;\n\n // Converte os headers para um objeto\n const headersObj = {};\n headers.forEach((value, name) => {\n headersObj[name] = value;\n });\n idHeaderHistory = headersObj['fegpt-conversation-id'];\n idMessageResponse = headersObj['fegpt-response-message-id'];\n if (Number(headersObj['fegpt-conversation-id']) !== headersHistory) {\n setHeadersHistory(headersObj['fegpt-conversation-id']);\n firstMessage = true;\n }\n let textDataFilter = '';\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n const text = new TextDecoder().decode(value);\n textDataFilter += text;\n setStreamedData((prevData) => prevData + text);\n }\n if (firstMessage) {\n api\n .get(\n `https://openai.fegsystem.com/conversations/${idHeaderHistory}/name`\n )\n .then((r) => getHistory());\n }\n setStreamedData(transformarLinksEmHTML(textDataFilter));\n api\n .get(\n `https://openai.fegsystem.com/conversations/${idHeaderHistory}/follow-ups`\n )\n .then((res) => setFollowUP(res.data));\n api\n .get(\n `https://openai.fegsystem.com/conversations/${idHeaderHistory}/messages/${idMessageResponse}`\n )\n .then((res) => {\n setSources(res.data.sources);\n });\n setLoadingSources(false);\n }\n\n return (\n \n
    \n
    \n \n

    Ask FEG

    \n
    \n
    \n \n {\n getAllMessages();\n setOpenModal(!openModal);\n }}\n >\n {openModal ? (\n <>\n \n {isHovered && Close chat history}\n \n ) : (\n <>\n \n {isHovered && Open chat history}\n \n )}\n \n
    \n
    \n \n
    \n \n \n
    \n \n

    Hi there! How can I help?

    \n
    \n \n
    \n \n\n {messages.map((message, index) => (\n <>\n \n \n \n \n {message.url && (\n <>\n \n Documentation:\n

    \n \n {message.url}\n \n \n )}\n \n {message.role !== 'user' && (\n \n )}\n {message.role === 'user' && (\n \n )}\n \n
    \n {message.sources.length > 0 && (\n \n )}\n \n ))}\n {sugested.length !== 0\n ? sugested.map((suges, index) => (\n \n {\n setUserMessage(suges);\n }}\n >\n {suges}\n \n \n ))\n : ''}\n {historyMessage.map((message) => {\n return (\n <>\n \n \n \n \n \n {message.role !== 'user' && (\n \n )}\n {message.role === 'user' && (\n \n )}\n \n \n \n );\n })}\n {streamedData ? (\n \n
    \n \n

    \n

    \n\n \n \n
    \n ) : (\n ''\n )}\n {sources.length > 0 && (\n \n {followUP.map((suges) => {\n return (\n \n {\n setUserMessage(suges);\n }}\n >\n {suges}\n \n \n );\n })}\n \n )}\n {loadingSources && (\n

    \n Document Sources Loading...\n \n

    \n )}\n\n {errorMessage && {errorMessage}}\n \n \n {\n scrollToDiv();\n setUserMessage(e.target.value);\n }}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n fetchDataFromStream();\n }\n }}\n placeholder='Type your question here...'\n />\n \n {loading ? : 'Send'}\n \n \n \n {openModal && (\n
    \n {allMessages.map((item, index) => {\n return (\n {\n setHeadersHistory(item.id);\n setidHistory(item.id);\n }}\n >\n {item.name}\n \n );\n })}\n
    \n )}\n
    \n
    \n );\n};\n\nexport default App;\n","import React, { useState, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport axios from 'axios';\nimport Monograma from '../../images/Monograma.png';\nimport { Theme } from 'src/styles/Theme';\nimport { FiChevronDown, FiChevronUp } from 'react-icons/fi';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n font-weight: bold;\n div.trt {\n transition: 0.5s;\n opacity: 0;\n }\n background-color: ${Theme.grey45};\n color: ${Theme.grey};\n padding: 12px 14px;\n width: 80%;\n margin: 0 auto;\n transition: 0.5s;\n :hover {\n transition: 0.2s;\n cursor: pointer;\n }\n p.title {\n font-size: 18;\n }\n hr {\n color: white;\n height: 0.5px;\n }\n`;\nconst ContainerBar = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n`;\ninterface DrawerProps {\n open: boolean;\n title: string;\n setOpen: () => void;\n children: React.ReactNode;\n}\n\nconst App: React.FC = ({\n open,\n title,\n setOpen,\n children\n}: DrawerProps) => {\n return (\n \n setOpen()}>\n

    {title}

    \n\n {open ? : }\n
    \n \n {open && children}\n \n
    \n );\n};\n\nexport default App;\n","import React, { ChangeEvent, useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport axios from 'axios';\nimport Monograma from '../../images/logoChat.jpeg';\nimport { Theme } from 'src/styles/Theme';\nimport Drawer from '../../components/Drawer';\nimport api from 'src/services/axios';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { formaterTextSlug } from 'src/utils/formatSlug';\nimport 'react-toastify/dist/ReactToastify.css';\nimport { BeatLoader, CircleLoader, SyncLoader } from 'react-spinners';\n// Then use it like this (assuming 'cloneElement' is the default export):\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n\n width: 70%;\n margin: 0 auto;\n margin-top: 50px;\n\n padding-bottom: 20px;\n margin-bottom: 40px;\n min-height: 800px;\n hr {\n margin-top: 10px;\n }\n @media (max-width: 500px) {\n width: 100%;\n margin-top: 20px;\n }\n`;\nconst Header = styled.div`\n width: 100%;\n background-color: ${Theme.primary};\n text-align: center;\n padding: 20px;\n color: ${Theme.secondary};\n\n div {\n .mySelect {\n font-size: 18px;\n color: ${Theme.primary};\n padding: 3px;\n background-color: #fff;\n border: none;\n }\n .myOption {\n color: green;\n }\n }\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 56px;\n background-color: ${Theme.light};\n\n height: max-content;\n @media (max-width: 500px) {\n width: 100%;\n margin-top: 20px;\n }\n button {\n width: 100px;\n background-color: ${Theme.secondary};\n color: ${Theme.primary};\n border: none;\n font-weight: bold;\n padding: 10px;\n margin-top: 10px;\n cursor: pointer;\n }\n`;\n\nconst DrawerContent = styled.div`\n padding: 28px 0;\n display: flex;\n flex-direction: column;\n .inp-text {\n padding: 10px;\n }\n .btn-choose {\n width: 100%;\n }\n`;\n\nconst Paragrah = styled.p`\n margin: 8px 0;\n font-size: 16px;\n`;\n\nconst InputTextTitle = styled.input`\n padding: 10px;\n width: 160px;\n border: none;\n background-color: #9f9f9fcc;\n`;\ninterface Categories {\n id: string;\n name: string;\n slug: string;\n}\nconst Modal = styled.div`\n display: flex;\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100vh;\n z-index: 99999;\n background-color: #9f9f9fcc;\n div.content {\n display: flex;\n flex-direction: column;\n text-align: center;\n align-items: center;\n width: 500px;\n margin: 0 auto;\n background-color: #fff;\n height: 200px;\n border-radius: 14px;\n margin-top: 80px;\n padding: 0;\n .title {\n width: 100%;\n background-color: ${Theme.primary};\n color: white;\n border-top-right-radius: 8px;\n border-top-left-radius: 8px;\n padding: 5px;\n }\n p {\n padding: 20px;\n }\n div.buttons-container {\n gap: 10px;\n\n padding: 10px;\n\n button {\n border: none;\n padding: 10px;\n cursor: pointer;\n }\n .closed {\n background-color: ${Theme.primary};\n color: white;\n }\n .delete {\n margin-left: 20px;\n background-color: red;\n color: white;\n }\n }\n }\n`;\n\nconst App: React.FC = () => {\n const [openFile, setOpenFile] = useState(false);\n const [openText, setOpenText] = useState(false);\n const [openUrl, setOpenUrl] = useState(false);\n const [openNewRepo, setOpenNewRepo] = useState(false);\n const [selectedValue, setSelectedValue] = useState('');\n const [errCheckRepository, setErrCheckRepository] = useState(false);\n const [newRepositoryInpt, setNewRepositoryInpt] = useState('');\n const [errLocal, setErrLocal] = useState('');\n const [categories, setCategories] = useState([]);\n const [selectedFile, setSelectedFile] = useState(null);\n const [loadingUploadFile, setLoadingUploadFile] = useState(false);\n const [filenameInput, setFilenameInput] = useState('');\n const [textInput, setTextInput] = useState('');\n const [url, setUrl] = useState('');\n const [urlLoading, setUrlLoading] = useState(false);\n const [textLoading, setTextLoading] = useState(false);\n\n const handleChange = (e: ChangeEvent) => {\n setErrCheckRepository(false);\n setSelectedValue(e.target.value);\n };\n\n function checkRepository(local: string) {\n if (selectedValue === '') {\n setErrLocal(local);\n return setErrCheckRepository(true);\n }\n\n if (local === 'FILE') {\n return uploadFileFunc();\n } else if (local === 'TEXT') {\n return uploadTextFunc();\n } else if (local === 'URL') {\n return uploadUrl();\n }\n }\n function uploadTextFunc() {\n setTextLoading(true);\n if (textInput === '' || filenameInput === '') {\n toast.error('fill in all fields');\n return;\n }\n api\n .post('https://openai.fegsystem.com/documents', {\n category_id: selectedValue,\n text: textInput,\n filename: filenameInput\n })\n .then((r) => {\n setTextLoading(false);\n setTextInput('');\n setFilenameInput('');\n toast.success(\n 'Success! Your Text is currently being indexed. You can view the status of the upload in the repository.'\n );\n })\n .catch((e) => {\n setTextLoading(false);\n toast.error('err');\n });\n }\n function uploadFileFunc() {\n if (!selectedFile) {\n console.error('Nenhum arquivo selecionado');\n return;\n }\n setLoadingUploadFile(true);\n const formData = new FormData();\n formData.append('file', selectedFile);\n formData.append('category_id', selectedValue);\n formData.append('timeout', '0');\n\n api\n .post('https://openai.fegsystem.com/documents', formData)\n .then((r) => {\n setSelectedFile(null);\n toast.success(\n 'Success! Your Document is currently being indexed. You can view the status of the upload in the repository.'\n );\n setLoadingUploadFile(false);\n })\n .catch((e) => {\n toast.error('Err');\n setLoadingUploadFile(false);\n });\n }\n function uploadUrl() {\n setUrlLoading(true);\n api\n .post(\n 'https://openai.fegsystem.com/documents',\n {\n category_id: selectedValue,\n url: url\n },\n { timeout: 0 }\n )\n .then((r) => {\n setUrlLoading(false);\n toast.success(\n 'Success! Your Scribe link is currently being indexed. You can view the status of the upload in the repository.'\n );\n setUrl('');\n })\n .catch((e) => {\n setUrlLoading(false);\n toast.error('err');\n });\n }\n function getCategories() {\n api\n .get('https://openai.fegsystem.com/categories?per_page=1000', {\n timeout: 0\n })\n .then((r) => {\n setCategories(r.data.data);\n });\n }\n\n function addRepository() {\n api\n .post('https://openai.fegsystem.com/categories', {\n name: newRepositoryInpt,\n slug: formaterTextSlug(newRepositoryInpt)\n })\n .then((r) => {\n toast.success('New Knowledge Base Created');\n setNewRepositoryInpt('');\n getCategories();\n });\n }\n\n useEffect(() => {\n getCategories();\n }, []);\n\n const handleFileChange = (event: ChangeEvent) => {\n if (event.target.files && event.target.files[0]) {\n console.log(event.target.files[0]);\n setSelectedFile(event.target.files[0]);\n }\n };\n\n return (\n \n \n \n
    \n

    Add Documents Ask FEG

    \n
    \n \n {\n setErrCheckRepository(false);\n setOpenFile(!openFile);\n }}\n >\n
    \n \n \n Upload a document to add it to the knowledge base\n \n \n\n checkRepository('FILE')}\n disabled={loadingUploadFile}\n style={{ backgroundColor: `${Theme.light}` }}\n >\n {loadingUploadFile ? (\n \n ) : (\n 'Submit'\n )}\n \n \n Your document will be saved in:{' '}\n {categories ? categories[Number(selectedValue) - 1]?.name : ''}\n {errCheckRepository && errLocal === 'FILE' && (\n
    \n \n You need to choose a repository before adding a document.\n

    \n setOpenNewRepo(true)}\n style={{ backgroundColor: `${Theme.light}` }}\n >\n click here to choose a Knowledge Base.\n \n
    \n )}\n
    \n
    \n \n\n {/*\n urlLoading && (\n \n
    \n
    \n

    Loading

    \n
    \n

    \n Processing your submitted URL. Please wait patiently while we\n complete the indexing.\n

    \n \n
    \n
    \n )*/}\n\n {\n setErrCheckRepository(false);\n setOpenText(!openText);\n }}\n >\n
    \n \n \n Add new text content and click on the button submit\n \n

    Filename

    \n setFilenameInput(e.target.value)}\n />\n

    Content

    \n setTextInput(e.target.value)}\n >\n checkRepository('TEXT')}\n disabled={textLoading}\n style={{ backgroundColor: `${Theme.light}` }}\n >\n {textLoading ? (\n \n ) : (\n 'Submit'\n )}\n \n \n Your document will be saved in:{' '}\n {categories ? categories[Number(selectedValue) - 1]?.name : ''}\n \n {errCheckRepository && errLocal === 'TEXT' && (\n
    \n \n You need to choose a repository before adding a document.\n

    \n setOpenNewRepo(true)}\n style={{ backgroundColor: `${Theme.light}` }}\n >\n click here to choose a repository.\n \n
    \n )}\n
    \n \n\n {\n setErrCheckRepository(false);\n setOpenUrl(!openUrl);\n }}\n >\n
    \n \n \n Add a URL, select your Knowledge Base and click on Submit\n \n setUrl(e.target.value)}\n />\n checkRepository('URL')}\n disabled={urlLoading}\n style={{ backgroundColor: `${Theme.light}` }}\n >\n {urlLoading ? (\n \n ) : (\n 'Submit'\n )}\n \n \n Your document will be saved in:{' '}\n {categories ? categories[Number(selectedValue) - 1]?.name : ''}\n \n {errCheckRepository && errLocal === 'URL' && (\n
    \n \n You need to choose a knowledge base before adding a\n document.\n

    \n setOpenNewRepo(true)}\n style={{ backgroundColor: `${Theme.light}` }}\n >\n click here to choose a repository.\n \n
    \n )}\n
    \n \n\n setOpenNewRepo(!openNewRepo)}\n >\n
    \n \n Assign to Existing Knowledge Base: \n \n \n \n\n {categories.map((category) => {\n return (\n \n );\n })}\n \n \n Or\n setNewRepositoryInpt(e.target.value)}\n type='text'\n placeholder='Type the name of your new repository'\n />\n addRepository()}\n >\n Create New Knowledge Base\n \n \n \n
    \n
    \n
    \n );\n};\n\nexport default App;\n","export function formaterTextSlug(texto: string) {\n // Remove acentos\n texto = texto.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n\n // Substitui espaços por hífens\n texto = texto.replace(/\\s+/g, '-');\n\n // Converte para caixa baixa (minúsculas)\n texto = texto.toLowerCase();\n\n return texto;\n}\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\nimport { Button } from '@material-ui/core';\nimport api from 'src/services/axios';\nimport { BeatLoader } from 'react-spinners';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nconst ContainerSettings = styled.div`\n width: 80%;\n margin: 0 auto;\n margin-bottom: 52px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst ContainerGrid = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 20px;\n h1 {\n font-size: 22px;\n }\n button.btn-outlined {\n color: ${Theme.primary};\n background: white;\n border: none;\n :hover {\n color: ${Theme.secondary};\n background-color: ${Theme.primary};\n }\n }\n`;\n\nconst Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 26px 0;\n`;\n\nconst Title = styled.h1`\n text-align: center;\n color: ${Theme.primary};\n font-size: 38px;\n margin-bottom: 6px;\n`;\n\ninterface Categories {\n id: string;\n name: string;\n slug: string;\n}\n\nexport default function SettingsChatBot(): React.ReactElement {\n const history = useHistory();\n const [categories, setCategories] = useState([]);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n setLoading(true);\n api\n .get('https://openai.fegsystem.com/categories?per_page=1000', {\n timeout: 0\n })\n .then((r) => {\n console.log(r.data.data);\n setCategories(r.data.data);\n setLoading(false);\n })\n .catch((err) => setLoading(false));\n }, []);\n\n return (\n \n \n
    \n Knowledge Base\n

    \n Click on each folder below to find relevant documents in regards to\n your department\n

    \n {loading && (\n \n )}\n
    \n\n \n {categories.map((category) => {\n return (\n <>\n \n history.push(`/knowledgebase/${category.id}/${category.slug}`)\n }\n >\n

    {category.name}

    \n \n \n );\n })}\n
    \n
    \n );\n}\n","import React, { useMemo } from 'react';\nimport { useTable, useGlobalFilter } from 'react-table';\nimport styled from 'styled-components';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, react/prop-types\n\nconst Container = styled.div`\n /* Estilizando a tabela */\n width: 100%;\n input {\n padding: 6px;\n }\n table {\n border-collapse: collapse;\n width: 100%;\n margin: 20px 0;\n font-family: Arial, sans-serif;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n }\n\n /* Estilizando o cabeçalho da coluna */\n th {\n background-color: #f2f2f2;\n color: #333;\n font-weight: bold;\n text-align: left;\n padding: 10px;\n }\n\n /* Estilizando as células da tabela */\n td {\n padding: 10px;\n text-align: left;\n }\n\n /* Estilizando as linhas alternadas para melhor legibilidade */\n tr:nth-child(even) {\n background-color: #f5f5f5;\n }\n\n /* Estilizando as linhas ao passar o mouse */\n tr:hover {\n background-color: #e0e0e0;\n }\n`;\n\nconst TableX = ({ columns, data }) => {\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n state: { globalFilter },\n setGlobalFilter\n } = useTable(\n {\n columns,\n data\n },\n useGlobalFilter\n );\n\n const handleFilterChange = (e) => {\n const value = e.target.value || undefined;\n setGlobalFilter(value);\n };\n\n return (\n \n \n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n ))}\n \n ))}\n \n \n {rows.map((row) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => {\n return (\n \n );\n })}\n \n );\n })}\n \n
    \n {column.render('Header')}\n
    \n {cell.render('Cell')}\n
    \n
    \n );\n};\n\nexport default TableX;\n","import React, { useEffect, useState } from 'react';\nimport { Divider, MenuItem, Input } from '@material-ui/core';\n\nimport styled from 'styled-components';\nimport { Theme } from 'src/styles/Theme';\nimport { useHistory, useParams } from 'react-router-dom';\nimport BasicMenu from '../UsersManagement/menu';\nimport { MenuStyle } from '../UsersManagement/styled';\n\nimport { AiFillDelete } from 'react-icons/ai';\nimport { BeatLoader } from 'react-spinners';\nimport { FaExchangeAlt } from 'react-icons/fa';\nimport { RiDeleteBin5Line } from 'react-icons/ri';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport api from 'src/services/axios';\nimport TableX from './table';\nimport formatDate from 'src/utils/formatDate';\n\nconst Container = styled.div`\n width: 80%;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\nconst Modal = styled.div`\n display: flex;\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100vh;\n z-index: 99999;\n background-color: #9f9f9fcc;\n div.content {\n display: flex;\n flex-direction: column;\n text-align: center;\n align-items: center;\n width: 500px;\n margin: 0 auto;\n background-color: #fff;\n height: 300px;\n border-radius: 14px;\n margin-top: 80px;\n padding: 0;\n .title {\n width: 100%;\n background-color: ${Theme.primary};\n color: white;\n border-top-right-radius: 8px;\n border-top-left-radius: 8px;\n padding: 10px;\n }\n p {\n margin: 10px;\n margin-top: 40px;\n }\n div.buttons-container {\n gap: 10px;\n\n padding: 10px;\n\n button {\n border: none;\n padding: 10px;\n cursor: pointer;\n }\n .closed {\n background-color: ${Theme.primary};\n color: white;\n }\n .delete {\n margin-left: 20px;\n background-color: red;\n color: white;\n }\n }\n }\n`;\nconst Header = styled.div`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n margin: 20px 0;\n color: ${Theme.primary};\n div.title-container {\n display: flex;\n button {\n border: none;\n background: none;\n cursor: pointer;\n margin-left: 6px;\n }\n }\n button.return {\n border: none;\n background-color: ${Theme.primary};\n color: ${Theme.secondary};\n cursor: pointer;\n padding: 12px;\n cursor: pointer;\n border-radius: 5px;\n }\n`;\n\ninterface Category {\n id: string;\n name: string;\n slug: string;\n filename: string;\n path: string;\n url: string;\n created_at: string;\n}\n\nconst TableCategories: React.FC = () => {\n const { idParam } = useParams<{ idParam: string }>();\n const [category, setCategory] = useState();\n const [dataCategory, setDataCategory] = useState([]);\n const history = useHistory();\n const [openModal, setOpenModal] = useState(false);\n const [reload, setReload] = useState(false);\n const [openModalRename, setOpenModalRename] = useState(false);\n const [loading, setLoading] = useState(false);\n const [modalNewRenameId, setModalNewRenameId] = useState(0);\n const [renameText, setRenameText] = useState('');\n const superAdmin =\n localStorage.getItem('group_id') === '128e5e58-3c0a-4e63-9be1-d0b6fc2f871e';\n useEffect(() => {\n setReload(false);\n api\n .get(`https://openai.fegsystem.com/categories/${idParam}`, { timeout: 0 })\n .then((r) => {\n setCategory(r.data);\n setLoading(false);\n api\n .get(`https://openai.fegsystem.com/documents?per_page=1000`, {\n params: { category_id: r.data.id },\n timeout: 0\n })\n .then((r) => {\n setDataCategory(r.data.data);\n });\n });\n }, [reload]);\n function deleteCategory() {\n api\n .delete(`https://openai.fegsystem.com/categories/${category?.id}`)\n .then(() => {\n toast.success('delete category');\n setOpenModal(false);\n history.push('/knowledgebase');\n });\n }\n\n function deleteDocument(id: string) {\n api.delete(`https://openai.fegsystem.com/documents/${id}`).then(() => {\n toast.success('delete document');\n setReload(true);\n });\n }\n /*\n function downloadDocument(id: string) {\n api\n .get(`https://openai.fegsystem.com/documents/${id}/download`)\n .then((r) => {\n toast.success('donwloa document');\n });\n } */\n\n const columns = [\n {\n id: 'idUnique', // add unique id here\n Header: 'Id',\n accessor: 'id'\n },\n {\n Header: 'Filename ',\n accessor: 'filename',\n // eslint-disable-next-line react/display-name, react/prop-types, @typescript-eslint/no-unused-vars\n Cell: ({\n row: { original }\n }: {\n row: { original: { filename: string; url: string } };\n }) => {\n const { filename, url } = original;\n return (\n \n );\n }\n },\n {\n Header: 'Last Uploaded',\n accessor: 'created_at',\n Cell: ({ value }: { value: string }) => {\n return formatDate(value);\n }\n },\n {\n id: 'func', // add unique id here\n Header: 'Actions',\n accessor: 'id',\n // eslint-disable-next-line react/display-name, react/prop-types, @typescript-eslint/no-unused-vars\n Cell: ({ cell: { value } }: { cell: { value: string } }) => {\n return (\n <>\n {superAdmin && (\n \n \n \n \n deleteDocument(value)}\n >\n \n

    Delete Document

    \n \n
    \n
    \n \n \n \n {\n setModalNewRenameId(Number(value));\n setOpenModalRename(true);\n }}\n >\n \n

    Rename Document

    \n \n
    \n
    \n \n
    \n )}\n \n );\n }\n }\n ];\n\n function handleRename() {\n api\n .put(`https://openai.fegsystem.com/documents/${modalNewRenameId}`, {\n rename: renameText\n })\n .then(() => {\n toast.success('rename document');\n setOpenModalRename(false);\n setReload(true);\n setRenameText('');\n })\n .catch((e) => console.log(e));\n }\n\n return (\n \n \n {openModal && (\n \n
    \n
    \n

    {category?.name}

    \n
    \n

    \n Before you hit the {\"'delete'\"} button, remember that this action\n might be irreversible. Double-check that {\"you're\"} deleting the\n correct item and consider making a backup. Proceed with caution.\n

    \n\n
    \n \n {superAdmin && (\n \n )}\n
    \n
    \n
    \n )}\n {openModalRename && (\n \n
    \n
    \n

    Rename Document

    \n
    \n

    \n Please enter the new name for your document below. After\n submitting, allow a few moments for the system to reupload the\n file to our Ask FEG database.\n

    \n\n setRenameText(e.target.value)}\n value={renameText}\n />\n
    \n setOpenModalRename(false)}\n >\n Cancel\n \n {\n handleRename();\n }}\n >\n Confirm\n \n
    \n
    \n
    \n )}\n\n
    \n
    \n

    {category?.name}

    \n {superAdmin && (\n \n )}\n
    \n\n history.push('/knowledgebase')}\n >\n Return\n \n
    \n\n \n {loading && (\n \n )}\n
    \n );\n};\n\nexport default TableCategories;\n","import styled from 'styled-components';\nimport React, { useEffect, useState } from 'react';\nimport { Theme } from 'src/styles/Theme';\nimport { BeatLoader } from 'react-spinners';\nimport { AiOutlineMenuFold, AiOutlineMenuUnfold } from 'react-icons/ai';\nimport api from 'src/services/axios';\nimport { useHistory } from 'react-router-dom';\n\nconst ChatContainer = styled.div`\n width: 70%;\n max-width: 300px;\n margin: 30px auto;\n border: 1px solid #ccc;\n border-radius: 5px;\n background-color: #f5f5f0;\n position: fixed;\n bottom: 60px;\n right: 20px;\n overflow: hidden;\n z-index: 99;\n div.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: ${Theme.primary};\n button {\n width: 100px;\n height: 38px;\n border: none;\n background: white;\n color: ${Theme.primary};\n border-radius: 5px;\n font-weight: bold;\n margin-right: 8px;\n cursor: pointer;\n }\n }\n div.content-menu {\n display: flex;\n margin: auto 0;\n button.btn-menu {\n width: min-content;\n padding: 4px;\n }\n }\n div.header div.title {\n display: flex;\n gap: 30px;\n padding: 25px 10px;\n align-items: center;\n height: 50px;\n h1 {\n color: ${Theme.secondary};\n }\n img {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n }\n }\n @media (max-width: 500px) {\n margin-top: 30px;\n width: 100%;\n }\n @media (max-width: 700px) {\n width: 100%;\n max-width: 400px;\n }\n`;\n\nconst ChatFloat = styled.div`\n position: fixed;\n z-index: 99;\n bottom: 20px;\n right: 80px;\n border-radius: 50%;\n padding: 10px;\n display: flex;\n justify-content: center;\n align-items: center;\n button {\n width: 50px;\n height: 50px;\n cursor: pointer;\n border-radius: 50%;\n border: 2px solid ${Theme.grey};\n }\n img {\n width: 100%;\n border-radius: 50%;\n }\n`;\n\nconst ChatLog = styled.div`\n height: 300px;\n padding: 10px;\n overflow-y: scroll;\n display: flex;\n flex-direction: column;\n width: 100%;\n word-wrap: break-word;\n`;\n\nconst ChatMessage = styled.div`\n display: flex;\n word-wrap: break-word;\n width: 100%;\n .active {\n margin: 0 0 0 auto;\n div {\n background-color: ${(props) =>\n props.role === 'user' ? `${Theme.primary}` : '#fff'};\n color: ${Theme.secondary};\n flex-direction: row-reverse;\n }\n }\n div {\n display: flex;\n gap: 20px;\n word-wrap: break-word;\n flex-direction: ${(props) =>\n props.role === 'user' ? 'initial' : 'row-reverse'};\n div {\n display: flex;\n background-color: #e53935;\n width: 100%;\n margin: 10px 0;\n word-wrap: break-word;\n max-width: max-content;\n background-color: ${(props) =>\n props.role === 'user' ? '#dcf8c6' : '#fff'};\n padding: 10px;\n border-radius: ${(props) =>\n props.role === 'user' ? '10px 10px 0 10px' : '10px 10px 10px 0'};\n }\n img {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n }\n }\n`;\n\nconst ErrorMessage = styled.div`\n color: #fff;\n background-color: #e53935;\n padding: 8px;\n border-radius: 5px;\n margin-top: 5px;\n`;\n\nconst UserInput = styled.div`\n display: flex;\n align-items: center;\n background-color: #f5f5f5;\n padding: 10px;\n`;\n\nconst TextInput = styled.input`\n flex-grow: 1;\n padding: 8px;\n border: none;\n border-radius: 5px;\n`;\n\nconst SendButton = styled.button`\n padding: 8px 16px;\n background-color: ${Theme.primary};\n color: #fff;\n border: none;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\nconst ChatSubContainer = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n div.log-message {\n width: 100%;\n }\n div.history-message {\n position: absolute;\n width: 100%;\n background-color: #f5f5f0;\n display: flex;\n align-items: center;\n flex-direction: column;\n overflow-y: scroll;\n overflow-x: hidden;\n height: 400px;\n transition: 1s;\n button {\n margin: 10px 105px;\n width: 90%;\n\n height: 100%;\n min-height: 50px;\n cursor: pointer;\n font-weight: bold;\n border: none;\n border-radius: 9px;\n background-color: white;\n color: ${Theme.primary};\n :last-of-type {\n margin-bottom: 12px;\n }\n }\n }\n`;\nconst SugestedBtn = styled.button`\n padding: 8px 16px;\n background-color: ${Theme.primary};\n color: #fff;\n border: none;\n margin-top: 5px;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n`;\nconst SugestedContainer = styled.div`\n display: flex;\n align-items: center;\n margin-left: 52px;\n`;\n\nconst Chat = () => {\n const [messages, setMessages] = useState([]);\n const [userMessage, setUserMessage] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [loading, setLoading] = useState(false);\n const [sources, setSources] = useState([]);\n const [sugested, setSugested] = useState([]);\n const image = localStorage.getItem('image_url');\n const [openModal, setOpenModal] = useState(false);\n const [allMessages, setAllMessages] = useState([]);\n const [idHistory, setidHistory] = useState(0);\n const [isHovered, setIsHovered] = useState(false);\n const [openChat, setOpenChat] = useState(false);\n const [larguraDaJanela, setLarguraDaJanela] = useState(window.innerWidth);\n const [token, setToken] = useState('');\n const [streamedData, setStreamedData] = useState('');\n const [historyMessage, setHistoryMessage] = useState([]);\n const [headersHistory, setHeadersHistory] = useState('');\n const [followUP, setFollowUP] = useState([]);\n const history = useHistory();\n\n async function fetchDataFromStream() {\n let userMessageRecover = userMessage;\n let idHeaderHistory;\n let firstMessage = false;\n setFollowUP([]);\n setUserMessage('');\n if (!streamedData) {\n setHistoryMessage((prevHistory) => [\n ...prevHistory,\n { content: userMessageRecover, role: 'user' }\n ]);\n }\n if (streamedData) {\n setHistoryMessage((prevHistory) => [\n ...prevHistory,\n { content: streamedData, role: 'assistent' },\n { content: userMessageRecover, role: 'user' }\n ]);\n setStreamedData('');\n }\n const response = await fetch(\n `https://openai.fegsystem.com/conversations${\n headersHistory !== 0 ? `/${headersHistory}` : ''\n } `,\n {\n method: 'POST',\n body: JSON.stringify({\n prompt: userMessageRecover\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const reader = response.body.getReader();\n const headers = response.headers;\n\n // Converte os headers para um objeto\n const headersObj = {};\n headers.forEach((value, name) => {\n headersObj[name] = value;\n });\n idHeaderHistory = headersObj['fegpt-conversation-id'];\n if (Number(headersObj['fegpt-conversation-id']) !== headersHistory) {\n setHeadersHistory(headersObj['fegpt-conversation-id']);\n firstMessage = true;\n console.log(headersObj['fegpt-conversation-id']);\n }\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n const text = new TextDecoder().decode(value);\n setStreamedData((prevData) => prevData + text);\n }\n if (firstMessage) {\n api\n .get(\n `https://openai.fegsystem.com/conversations/${idHeaderHistory}/name`,\n { timeout: 0 }\n )\n .then((r) => getHistory());\n }\n api\n .get(\n `https://openai.fegsystem.com/conversations/${idHeaderHistory}/follow-ups`,\n { timeout: 0 }\n )\n .then((res) => {\n setFollowUP(res.data);\n });\n }\n\n function newChat() {\n setMessages([]);\n setStreamedData('');\n setHistoryMessage([]);\n setUserMessage('');\n setSources([]);\n setSugested([]);\n setidHistory(0);\n setFollowUP([]);\n }\n useEffect(() => {\n function handleResize() {\n setLarguraDaJanela(window.innerWidth);\n }\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n async function getHistory() {\n await api\n .get('https://openai.fegsystem.com/conversations?per_page=1000', {\n timeout: 0\n })\n .then((resData) => setAllMessages(resData.data.data))\n .catch((e) => console.log(e));\n }\n useEffect(() => {\n getHistory();\n setToken(localStorage.getItem('token'));\n }, []);\n\n useEffect(() => {\n api\n .get(`https://openai.fegsystem.com/conversations/${idHistory}`, {\n timeout: 0\n })\n .then((resData) => setMessages(resData.data.messages))\n .catch((e) => console.log(e));\n }, [idHistory]);\n\n function handleChatFloat() {\n if (larguraDaJanela < 700) {\n history.push('/chat-fegpt');\n } else {\n setOpenChat(!openChat);\n }\n }\n\n return (\n <>\n \n \n \n {openChat && (\n \n
    \n
    \n \n
    \n
    \n \n\n {\n setOpenModal(!openModal);\n }}\n >\n {openModal ? (\n <>\n \n \n ) : (\n <>\n \n \n )}\n \n
    \n
    \n \n
    \n \n \n
    \n \n

    Hi there! How can I help?

    \n
    \n \n
    \n \n\n {errorMessage && {errorMessage}}\n \n \n setUserMessage(e.target.value)}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n fetchDataFromStream();\n }\n }}\n placeholder='Type your question here...'\n />\n \n {loading ? : 'Send'}\n \n \n \n {openModal && (\n
    \n {allMessages.map((item, index) => {\n // eslint-disable-next-line react/jsx-key\n return (\n {\n setOpenModal(false);\n setidHistory(item.id);\n }}\n >\n {item.name}\n \n );\n })}\n
    \n )}\n
    \n
    \n )}\n \n );\n};\n\nexport default Chat;\n","import React, { useState, useEffect } from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport Loader from '../../Loader';\nimport axios from '../../../services/axios';\nimport Formatter from '../../CompanyAnnouncements/Formatter';\n\nconst Content = () => {\n const [loaded, setLoaded] = useState(true);\n const [have, setHave] = useState(false);\n const [announcements, setAnnouncements] = useState({\n id: '',\n subject: '',\n info: '',\n url_image: '',\n createdAt: ''\n });\n\n const defaultImg =\n 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/annoucements/1x1-00000000.png';\n\n useEffect(() => {\n loadUsersValidate();\n console.log(announcements.url_image);\n console.log(announcements.url_image.length);\n }, []);\n\n async function loadUsersValidate() {\n try {\n await axios.get(`/api/v1/announcements/last`).then((response) => {\n if (response.data.results.length !== 1) {\n setAnnouncements(response.data.results);\n console.log(response.data.results);\n setHave(true);\n setLoaded(true);\n }\n });\n } catch (error) {\n // history.push(`/announcements`)\n console.log(error);\n }\n }\n\n const history = useHistory();\n\n function handleRedirect(e: any) {\n e.preventDefault();\n history.push(`/announcements`);\n }\n\n return (\n
    \n \n

    Company Announcements

    \n \n {have ? (\n
    \n

    \n {announcements.createdAt.split('').splice(0, 11).join('')}{' '}\n {Formatter(\n announcements.createdAt.split('').splice(12, 2).join(''),\n announcements.createdAt.split('').splice(14, 3).join('')\n )}\n

    \n {/* \n setLoaded(false)}\n alt='Announcement'\n />\n {loaded ? : <>}\n
    */}\n \n {announcements.subject}\n \n {/*

    {announcements.info}

    */}\n ')\n .replace(/

    <\\/p>/g, '
    ')\n }}\n />\n \n

    \n ) : (\n <>\n
    \n

    No announcements to display

    \n \n )}\n \n );\n};\n\nexport default Content;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 86%;\n margin: 0 auto;\n padding-bottom: 50px;\n`;\n\nexport const ContainerWelcome = styled.div`\n background: rgb(8, 5, 117);\n\n border-radius: 18px;\n padding: 26px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n\n @media (max-width: 1100px) {\n display: flex;\n flex-direction: column;\n padding: 8px;\n }\n .welcome-title {\n gap: 18px;\n display: flex;\n width: 50%;\n justify-content: center;\n align-items: center;\n @media (max-width: 900px) {\n justify-content: start;\n width: 100%;\n padding: 20px;\n h1 {\n font-size: 18px;\n padding: 8px 0;\n }\n p {\n font-size: 11px;\n }\n }\n\n img {\n width: 90px;\n height: 90px;\n border: 2px solid ${Theme.secondary};\n padding: 3px;\n border-radius: 50%;\n }\n div.welcome-title-container {\n max-width: 70%;\n h1 {\n color: ${Theme.secondary};\n }\n p {\n color: ${Theme.secondary};\n }\n }\n }\n .welcome-icons {\n width: 50%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n justify-content: center;\n gap: 22px;\n a {\n color: none;\n text-decoration: none;\n color: ${Theme.primary};\n width: 100%;\n }\n div.welcome-text {\n display: flex;\n flex-direction: column;\n p {\n font-size: 10px;\n margin: 0;\n padding: 0;\n }\n @media (max-width: 700px) {\n small {\n display: none;\n }\n }\n }\n @media (max-width: 1100px) {\n width: 100%;\n gap: 4px;\n }\n\n button {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-around;\n padding: 10px;\n cursor: pointer;\n height: 90px;\n background-color: ${Theme.secondary};\n color: ${Theme.primary};\n border: none;\n border-radius: 18px;\n\n @media (max-width: 1100px) {\n width: 100%;\n height: 60px;\n padding: 6px;\n margin: 0;\n }\n img {\n width: 40px;\n height: 40px;\n @media (max-width: 1100px) {\n width: 30px;\n height: 30px;\n }\n }\n p {\n font-size: 18px;\n font-weight: bold;\n @media (max-width: 1100px) {\n font-size: 12px;\n }\n }\n }\n }\n`;\n\nexport const ContainerContent = styled.div`\n width: 100%;\n display: flex;\n div.blog {\n width: 45%;\n }\n @media (max-width: 1100px) {\n flex-direction: column;\n }\n`;\n\nexport const FirstContainerContent = styled.div`\n width: 70%;\n padding-right: 28px;\n @media (max-width: 1100px) {\n width: 100%;\n padding: 0;\n }\n h1.carousel {\n color: ${Theme.primary};\n\n @media (max-width: 1100px) {\n margin: 4px 0;\n }\n }\n\n div.title-fav {\n display: flex;\n align-items: center;\n\n justify-content: space-between;\n margin: 24px 0;\n h1 {\n color: ${Theme.primary};\n }\n p {\n color: ${Theme.primary};\n font-weight: bold;\n cursor: pointer;\n }\n }\n`;\n\nexport const SecondContainerContent = styled.div`\n width: 30%;\n display: flex;\n flex-direction: column;\n @media (max-width: 1100px) {\n width: 100%;\n padding: 0;\n }\n h1 {\n margin: 24px 0;\n color: ${Theme.primary};\n }\n`;\nexport const ContainerIdea = styled.div`\n display: flex;\n align-items: center;\n justify-content: initial;\n margin-top: 20px;\n margin-bottom: 20px;\n width: 100%;\n gap: 20px;\n\n h1 {\n width: max-content;\n }\n @media (max-width: 1100px) {\n flex-direction: column;\n margin-bottom: 20px;\n gap: 6px;\n }\n`;\nexport const BtnContainerIdea = styled.button`\n border-radius: 34px;\n border: none;\n background-color: ${Theme.primary};\n color: white;\n padding: 15px;\n min-width: 240px;\n min-height: 40px;\n height: 40px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n font-size: 14px;\n font-family: 'Roboto', sans-serif;\n @media (max-width: 1100px) {\n min-height: auto;\n min-width: auto;\n padding: 12px;\n font-size: 16px;\n margin: 0;\n }\n`;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\nexport const MainContainer = styled.div`\n width: 90%;\n margin: 0 auto;\n`;\n\nexport const Container = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n\n gap: 16px;\n\n @media (max-width: 700px) {\n gap: 8px;\n justify-content: space-evenly;\n flex-wrap: wrap;\n }\n svg {\n align-self: flex-end;\n cursor: pointer;\n margin-right: 15px;\n margin-top: 10px;\n position: absolute;\n }\n div.list {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n max-width: 140px;\n background: ${Theme.light};\n border-radius: 14px;\n min-height: 130px;\n\n width: 100%;\n list-style-type: none;\n\n img {\n width: 50px;\n height: 50px;\n margin-top: 16px;\n border: 2px solid ${Theme.primary};\n padding: 2px;\n border-radius: 50%;\n }\n p {\n color: #151515;\n\n font-weight: bold;\n text-transform: uppercase;\n text-align: center;\n padding: 2px 5px;\n }\n button {\n width: 100%;\n padding: 8px;\n margin: 0;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n background-color: transparent;\n border: none;\n text-transform: uppercase;\n background-color: #ddd;\n color: ${Theme.primary};\n font-weight: bold;\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Container, MainContainer } from './styled';\nimport axios, { api } from '../../services/axios';\nimport { FaHeart, FaRegHeart } from 'react-icons/fa';\nimport { useHistory } from 'react-router-dom';\n\ninterface ShortcutInterface {\n id: string;\n name: string;\n display_name1: string;\n display_name2: string;\n desktop_image: string;\n mobile_image: string;\n link_desktop: string;\n link_mobile: string;\n createdAt: string;\n updatedAt?: Date;\n order: number;\n group_ids: string[];\n favorite: boolean;\n}\nexport const CardFav = (props: any): JSX.Element => {\n const [shortcuts, setShortcuts] = useState([]);\n const [favShortcut, setFavShortcut] = useState([]);\n\n function filterArrFav(arrFav: ShortcutInterface[]) {\n const arrayFav = arrFav.filter((item) => item.favorite === true);\n return arrayFav;\n }\n\n function getShortcuts() {\n const customer_id = localStorage.getItem('id');\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n });\n axios\n .get(`/api/v1/accounts/favorite_shortcut/${customer_id}`)\n .then((shortcutsResponse) => {\n setFavShortcut(shortcutsResponse.data);\n });\n }\n function favoriteShortCurt(short: ShortcutInterface) {\n const target: any = shortcuts.find((shortcut) => shortcut.id === short.id);\n\n if (target) {\n target.mobile_image = {\n selectedFile: '',\n type: ''\n };\n target.desktop_image = {\n selectedFile: '',\n type: ''\n };\n const customer_id = localStorage.getItem('id');\n api\n .put(`/api/v1/accounts/${customer_id}/favorite_shortcut`, target)\n .then((res) => {\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n });\n axios\n .get(`/api/v1/accounts/favorite_shortcut/${customer_id}`)\n .then((shortcutsResponse) => {\n setFavShortcut(shortcutsResponse.data);\n });\n })\n .catch((e) => console.log(e));\n }\n }\n useEffect(() => {\n getShortcuts();\n }, []);\n\n function renderFav() {\n const result = shortcuts.filter((element) =>\n favShortcut?.includes(element.id)\n );\n return result;\n }\n return (\n \n
    \n

    FEG Apps

    \n
    \n \n {renderFav()?.map((item) => {\n return (\n
    \n favoriteShortCurt(item)} />\n\n FEG LOGO\n

    {item.display_name1}

    \n \n
    \n );\n })}\n
    \n
    \n );\n};\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n button {\n width: 100%;\n height: 25px;\n color: white;\n border: none;\n background-color: ${Theme.primary};\n cursor: pointer;\n }\n\n p {\n padding: 10px;\n }\n div.text {\n position: absolute;\n top: 0;\n width: 250px;\n color: white;\n background-color: #303030;\n opacity: 0.7;\n :hover {\n opacity: 1;\n }\n }\n ul {\n display: none !important;\n }\n img {\n max-height: 500px;\n width: 100%;\n height: 100%;\n object-fit: cover; /* ou 'contain' dependendo do efeito desejado */\n }\n video {\n max-height: 500px;\n width: 100%;\n height: 100%;\n align-self: center;\n margin: 0 auto;\n }\n`;\nexport const PreviewContainer = styled.div`\n display: flex;\n margin-top: 20px;\n gap: 20px;\n margin-bottom: 20px;\n align-items: center;\n h1 {\n color: ${Theme.primary};\n }\n button {\n color: white;\n border: none;\n padding: 15px;\n font-weight: bold;\n border-radius: 34px;\n background-color: ${Theme.primary};\n cursor: pointer;\n }\n`;\nexport const Btn = styled.button`\n margin-top: 10px;\n color: white;\n border: none;\n padding: 15px;\n font-weight: bold;\n border-radius: 34px;\n background-color: ${Theme.primary};\n cursor: pointer;\n`;\nexport const SubContainer = styled.div`\n display: grid;\n margin-top: 15px;\n grid-template-columns: 1fr 1fr;\n gap: 15px;\n\n @media (max-width: 1000px) {\n grid-template-columns: 1fr;\n }\n\n img {\n border-radius: 16px;\n height: auto;\n width: 150px;\n object-fit: cover; /* ou 'contain' dependendo do efeito desejado */\n }\n div.space {\n display: flex;\n max-height: 100px;\n gap: 15px;\n padding: 10px;\n background-color: ${Theme['secondary-light']};\n }\n div.legend {\n height: 100%;\n overflow: auto;\n cursor: pointer;\n }\n`;\nexport const FixendCompo = styled.div`\n position: fixed;\n z-index: 5000;\n top: 0;\n right: 0;\n border: 0;\n left: 0;\n height: 100%;\n width: 100%;\n background-color: #f5f5f5cc;\n`;\nexport const FixedContainer = styled.div`\n width: 40%;\n display: grid;\n grid-template-columns: 1fr 1fr;\n margin: auto;\n background-color: #f5f5f4;\n -webkit-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n -moz-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n margin-top: 150px;\n border-radius: 10px;\n height: 500px;\n img {\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n width: 100%;\n height: 100%;\n object-fit: cover; /* ou 'contain' dependendo do efeito desejado */\n }\n p,\n small,\n label {\n margin: 0;\n padding: 0;\n }\n .container-message {\n .close {\n align-self: end;\n margin: 0;\n color: #336699;\n padding: 0;\n background-color: none;\n border: none;\n position: relative;\n right: 0;\n z-index: 50000;\n }\n max-height: 600px;\n background-color: #fcfcfc;\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n }\n`;\n\nexport const CommmentsContainer = styled.div`\n .list {\n display: flex;\n }\n`;\n\nexport const ChatLog = styled.div`\n padding: 0 10px;\n margin: 0;\n overflow-y: scroll;\n display: flex;\n flex-direction: column;\n width: 100%;\n ::-webkit-scrollbar {\n width: 0; /* Esconde a barra de rolagem do navegador Chrome/Safari */\n }\n\n word-wrap: break-word;\n .loader {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n`;\n\nexport const ChatMessage = styled.div`\n display: flex;\n word-wrap: break-word;\n width: 100%;\n margin: 10px;\n .active {\n margin: 0 0 0 auto;\n div.msg {\n background-color: ${(props) =>\n props.role === 'active' ? `${Theme.primary}` : '#fff'};\n color: ${Theme.secondary};\n flex-direction: row-reverse;\n }\n }\n\n div {\n display: flex;\n word-wrap: break-word;\n flex-direction: ${(props) =>\n props.role === 'active' ? 'initial' : 'row-reverse'};\n div.msg {\n display: flex;\n width: 100%;\n margin: 0 0;\n word-wrap: break-word;\n max-width: max-content;\n background-color: ${Theme.secondary};\n padding: 6px;\n border-radius: ${(props) =>\n props.role === 'active'\n ? '10px 10px 0 10px'\n : props.role === 'activeT'\n ? '0'\n : '10px 10px 10px 0px'};\n }\n img {\n max-width: 300px;\n max-height: 250px;\n }\n img.logo-img {\n width: 45px;\n height: 45px;\n padding: 2px;\n border-radius: 50%;\n border: 2px solid ${Theme.secondary};\n }\n }\n .activeT {\n margin: 0 auto;\n padding: 2px;\n div {\n background-color: white;\n color: ${Theme.primary};\n }\n }\n`;\n\nexport const UserInput = styled.div`\n display: flex;\n align-items: center;\n background-color: #f5f5f5;\n padding: 10px;\n`;\n\nexport const TextInput = styled.input`\n flex-grow: 1;\n padding: 8px;\n width: 100%;\n border: none;\n border-radius: 5px;\n`;\n\nexport const SendButton = styled.button`\n padding: 8px 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n gap: 7px;\n background-color: ${Theme.primary};\n color: #fff;\n border: none;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\nexport const CloseButton = styled.button`\n padding: 8px 16px;\n background-color: red;\n color: #fff;\n border: none;\n margin: 0 10px;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\nexport const ChatSubContainer = styled.div`\n display: flex;\n width: 100%;\n max-height: 500px;\n height: 100%;\n @media (max-width: 600px) {\n height: 100%;\n max-height: calc(90vh - 100px);\n min-height: calc(90vh - 100px);\n }\n div.log-message {\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n div.history-message {\n background-color: #f5f5f5;\n width: 185px;\n display: flex;\n align-items: center;\n flex-direction: column;\n overflow-y: scroll;\n overflow-x: hidden;\n height: 502px;\n\n transition: 1s;\n button {\n margin: 10px 105px;\n width: 90%;\n height: max-content;\n text-overflow: clip;\n padding: 10px;\n cursor: pointer;\n font-weight: bold;\n border: none;\n\n border-radius: 9px;\n background-color: white;\n color: ${Theme.primary};\n :last-of-type {\n margin-bottom: 12px;\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Carousel } from 'react-responsive-carousel';\nimport 'react-responsive-carousel/lib/styles/carousel.min.css';\nimport axios, { api } from 'src/services/axios';\nimport { Container, SubContainer, PreviewContainer, Btn } from './styled';\nimport { useHistory } from 'react-router-dom';\nimport { Theme } from 'src/styles/Theme';\n\ninterface Item {\n id: string;\n active: boolean;\n createdAt: string;\n title: string;\n prev_legend: string;\n full_legend: string;\n video_url: string;\n thumbnail_url: string;\n image_url: string;\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const CarouselCompoponent = ({ close }: any): React.ReactElement => {\n //const image = localStorage.getItem('image_url');\n const [latestNews, setLatestNews] = useState([]);\n const history = useHistory();\n const [latestNewsWithComments, setLatestNewsWithComments] = useState([]);\n const [showMoreLatestNews, setShowMoreLatestNews] = useState(true);\n\n async function fetchCommentsForNews() {\n const newsWithComments = await Promise.all(\n latestNews.map(async (newsItem: any) => {\n const commentsResponse = await api.get(\n `/api/v1/comments-latest-news/find/${newsItem.id}/most-liked`\n );\n return { ...newsItem, comments: commentsResponse.data };\n })\n );\n setLatestNewsWithComments(newsWithComments);\n }\n\n useEffect(() => {\n fetchCommentsForNews();\n }, [latestNews]);\n\n const isDateValid = (date: any) => {\n if (!date) {\n return true;\n }\n const today = new Date();\n return date <= today.toISOString();\n };\n function getLatestNews() {\n axios.get('/api/v1/latest-news').then((res) => {\n const filterLatestNews = res.data.filter(\n (image: any) => image.active === true && isDateValid(image.publish_date)\n );\n\n setLatestNews(filterLatestNews);\n });\n }\n const sortItemsByActiveAndDate = (items: Item[]): Item[] => {\n return items.sort((a, b) => {\n if (a.active === b.active) {\n return (\n new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()\n );\n }\n return a.active ? -1 : 1;\n });\n };\n function handleLatestNewsFilter() {\n if (showMoreLatestNews) {\n return sortItemsByActiveAndDate(latestNewsWithComments).slice(0, 6);\n } else {\n return sortItemsByActiveAndDate(latestNewsWithComments);\n }\n }\n\n useEffect(() => {\n getLatestNews();\n return () => {\n const videos = document.querySelectorAll('video');\n videos.forEach((video) => {\n video.play();\n });\n };\n }, []);\n return (\n <>\n {latestNewsWithComments.length > 0 && (\n console.log(index, item)}\n showThumbs={false}\n autoPlay={true}\n infiniteLoop={true}\n interval={3000}\n >\n {latestNewsWithComments &&\n handleLatestNewsFilter().map((image: any, index: number) => {\n if (image.active === false) {\n return <>;\n }\n return (\n \n {image.image_url ? (\n \n ) : (\n \n )}\n
    \n

    {image.prev_legend}

    \n \n history.push(`/announcements?id=${image.id}`)\n }\n >\n Read More\n \n
    \n
    \n );\n })}\n \n )}\n \n

    Previous Articles

    \n \n
    \n \n {latestNews &&\n handleLatestNewsFilter().map((image: any) => {\n if (image.active === false) {\n return <>;\n }\n return (\n
    \n {image.image_url ? (\n \n ) : image.thumbnail_url ? (\n \n ) : (\n \n )}\n history.push(`/announcements?id=${image.id}`)}\n >\n

    {image.prev_legend}

    \n Read More\n {(image.comments?.length ?? 0) > 0 && (\n

    \n {image.comments?.length}{' '}\n {image.comments?.length === 1 ? 'comment' : 'comments'}\n

    \n )}\n
    \n \n );\n })}\n
    \n {\n {\n history.push('/announcements');\n }}\n >\n Show More\n \n }\n \n );\n};\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nconst CardContainer = styled.div`\n width: 90%;\n margin: 0 auto;\n margin-top: 10px;\n display: flex;\n border-radius: 12px;\n img.img-one {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 300px;\n height: 300px;\n }\n img.img-two {\n position: absolute;\n bottom: 0;\n right: 90px;\n width: 250px;\n height: 250px;\n }\n`;\n\nconst QuestionContainer = styled.div`\n width: 100%;\n\n height: min-content;\n margin: 0 auto;\n display: flex;\n backdrop-filter: blur(10px);\n border-radius: 12px;\n background-color: #f8f9fa;\n flex-direction: column;\n .task {\n display: flex;\n flex-direction: column;\n h1 {\n background-color: ${Theme.primary};\n color: ${Theme['secondary-light']};\n padding-bottom: 16px;\n margin-bottom: 10px;\n }\n width: 100%;\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n }\n p.text-correction-true {\n color: #39e75f;\n font-size: 13px;\n font-weight: bold;\n padding: 18px;\n padding-top: 0;\n }\n p.text-correction-false {\n color: tomato;\n font-size: 13px;\n font-weight: bold;\n margin: 20px 5px;\n padding: 18px;\n padding-bottom: 0;\n }\n h1 {\n font-size: 22px;\n font-weight: bold;\n padding: 22px;\n margin: 0;\n margin-bottom: 0;\n color: ${Theme.primary};\n border-radius: 12px 12px 0 0;\n }\n .card-responses {\n display: grid;\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 20px;\n padding-top: 0;\n width: 100%;\n }\n .responses {\n background-color: white;\n padding: 20px;\n width: 100%;\n border-radius: 12px;\n border: 2px solid #efefef;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n color: #333;\n font-size: 14px;\n }\n .responses.selected {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid green !important;\n }\n .responses.correct {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n }\n\n .responses.incorrect {\n background-color: #f1f1f1f1; /* Light red /\n border: 1px solid #fefefe;\n }\n\n .responses.blueTest {\n background-color: #fabec0; /* Light blue for selected */\n color: #e43d40;\n border: 1px solid #f85c70 !important;\n }\n li {\n text-decoration: none;\n list-style: none;\n }\n`;\nconst NoHavePollContainer = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n padding: 20px;\n align-items: center;\n flex-direction: column;\n text-align: center;\n button {\n background-color: ${Theme.primary};\n color: ${Theme['secondary-light']};\n border: none;\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n h1 {\n font-size: 24px;\n color: #333;\n }\n`;\n\nexport { CardContainer, QuestionContainer, NoHavePollContainer };\n","import React, { useEffect, useState } from 'react';\nimport {\n CardContainer,\n NoHavePollContainer,\n QuestionContainer\n} from './styled';\nimport api from 'src/services/axios';\nimport troph from 'src/images/troph.png';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { useHistory } from 'react-router-dom';\n\ninterface Options {\n option: string;\n id: string;\n}\n\ninterface Question {\n id: string;\n question_answer: string;\n options: Options[];\n correct_option_id: string;\n date: string;\n active: boolean;\n}\ninterface ResponseQuestion {\n user_id: string;\n task_id: string;\n responses_task_id: string;\n}\n\ninterface Ranking {\n name: string;\n correct: number;\n total: number;\n url_image: string;\n}\nexport const CardTask = () => {\n const [trivia, setTrivia] = useState();\n const [answers, setAnswers] = useState();\n const [responseTrivia, setResponseTrivia] = useState(false);\n const [userScore, setUserScore] = useState(0);\n const [ranking, setRanking] = useState([]);\n const [userRanking, setUserRanking] = useState(0);\n const [realCorrectOption, setRealCorrectOption] = useState('');\n const [userResponseHistory, setUserResponseHistory] = useState('');\n const [userId, setUserId] = useState('');\n const [historyQuestion, setHistoryQuestion] = useState(false);\n const [noHaveQuestion, setNoHaveQuestion] = useState(false);\n const nav = useHistory();\n function getTrivia(userIdParam: string) {\n api\n .post('/api/v1/trivia/question', {\n customers_id: userIdParam ? userIdParam : userId\n })\n .then((res) => {\n if (res.data?.history_question?.id) {\n setHistoryQuestion(true);\n setTrivia(res.data.question);\n setRealCorrectOption(res.data.question.correct_option_id);\n setUserResponseHistory(\n res.data.history_question.response_user_question_id\n );\n } else if (res.data.question) {\n setTrivia(res.data.question);\n } else {\n setNoHaveQuestion(true);\n }\n });\n }\n function getTriviaStatus() {\n api.post('/api/v1/trivia/status', { user_id: 'test' }).then((res) => {\n setUserScore(res.data.user_score);\n setRanking(res.data.pontuation);\n setUserRanking(res.data.user_rank);\n console.log('Ranking:', res.data);\n });\n }\n useEffect(() => {\n async function getUserId() {\n const userId = await localStorage.getItem('id');\n if (userId) {\n getTrivia(userId);\n setUserId(userId);\n }\n }\n getUserId();\n getTriviaStatus();\n }, []);\n\n const handleOptionChange = (questionId: string, optionId: string) => {\n setAnswers({\n user_id: 'test',\n task_id: questionId,\n responses_task_id: optionId\n });\n };\n\n const handleSubmit = () => {\n setResponseTrivia(true);\n console.log('answers:', answers);\n api\n .post('/api/v1/trivia/pontuation-user', {\n response_user_question_id: answers?.responses_task_id,\n question_id: trivia?.id,\n customers_id: userId\n })\n .then((res) => {\n getTriviaStatus();\n setRealCorrectOption(res.data.correct_question);\n });\n };\n const item = {\n hidden: { y: 20, opacity: 0 },\n visible: {\n y: 0,\n opacity: 1\n }\n };\n const container = {\n hidden: { opacity: 1, scale: 0 },\n visible: {\n opacity: 1,\n scale: 1,\n transition: {\n delayChildren: 0.3,\n staggerChildren: 0.26\n }\n }\n };\n function QuestionListEnum(num: number) {\n let questEnum = '';\n switch (num) {\n case 0:\n questEnum = 'A';\n break;\n case 1:\n questEnum = 'B';\n break;\n case 2:\n questEnum = 'C';\n break;\n case 3:\n questEnum = 'D';\n break;\n default:\n }\n return questEnum;\n }\n\n const hasSelectedOption = answers?.responses_task_id !== undefined;\n return (\n \n

    Daily Trivia

    \n \n {historyQuestion ? (\n <>\n \n {trivia ? (\n <>\n
    \n \n {trivia?.question_answer}\n \n \n {trivia.options.map((option, index) => (\n \n

    \n {QuestionListEnum(index)} - {option.option}\n

    \n \n ))}\n \n {realCorrectOption === userResponseHistory ? (\n

    \n Congrats! You got the question correct and 1 point. Come\n back tomorrow for a new Trivia question.\n

    \n ) : (\n

    \n Sorry, you got it wrong! Come back tomorrow for a new\n Trivia question!\n

    \n )}\n
    \n \n ) : (\n

    loading questions...

    \n )}\n
    \n \n ) : (\n <>\n \n {trivia ? (\n <>\n
    \n \n {trivia?.question_answer}\n \n \n {trivia.options.map((option, index) => (\n \n handleOptionChange(trivia.id, option.id)\n }\n >\n

    \n {QuestionListEnum(index)} - {option.option}\n

    \n \n ))}\n \n {responseTrivia &&\n realCorrectOption === answers?.responses_task_id ? (\n

    \n Congrats! You got the question correct and 1 point. Come\n back tomorrow for a new Trivia question.\n

    \n ) : responseTrivia && answers?.responses_task_id ? (\n

    \n Sorry, you got it wrong! Come back tomorrow for a new\n Trivia question!\n

    \n ) : (\n ''\n )}\n {hasSelectedOption && !responseTrivia && (\n \n Send Responses 🎊\n \n )}\n
    \n \n ) : noHaveQuestion ? (\n \n

    \n There are no questions available at the moment. Come back\n tomorrow!\n

    \n \n
    \n ) : (\n

    loading questions...

    \n )}\n
    \n \n )}\n
    \n
    \n );\n};\n","import styled from 'styled-components'\nimport { Theme } from '../../styles/Theme'\n\nexport const Container = styled.div`\n width: 50%;\n background-color: white;\n position: fixed;\n margin: 0 auto;\n top: 0;\n min-height: 500px;\n max-height: max-content;\n border-radius: 10px;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n z-index: 9999;\n box-shadow: 0 0 10px 0 rgba(0, 0, 0, .6);\n\n`\nexport const header = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 10px;\n padding-bottom: 0;\n display: flex;\n align-items: center;\n border-radius: 10px 10px 0 0;\n`\nexport const Title = styled.h1`\n color: ${Theme.primary};\n`\nexport const Icon = styled.div`\n color: black;\n cursor: pointer;\n`\nexport const Form = styled.div`\n color: black;\n padding: 30px;\n\n display: flex;\n flex-direction: column;\n input {\n padding: 10px;\n border-radius: 5px;\n width: 300px;\n background-color: #efefef;\n border:none;\n margin: 10px 0;\n }\n`\n\nexport const Button = styled.div`\n padding: 10px;\n background-color: ${Theme.primary};\n color: white;\n border-radius: 5px;\n text-align: center;\n cursor: pointer;\n margin-top: 10px;\n width: 100px;\n\n`\n\n","//Components with modal for latest news\nimport React, { useState } from 'react';\nimport * as S from './styled';\nimport { useHistory } from 'react-router-dom';\nimport { EditorState, convertToRaw } from 'draft-js';\nimport { Editor } from 'react-draft-wysiwyg';\nimport draftToHtml from 'draftjs-to-html';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport axios from '../../services/axios';\nimport { AiOutlineFullscreenExit } from \"react-icons/ai\";\nimport { Theme } from 'src/styles/Theme';\n\nexport default function IdeaLatestNews({close}: any) {\n const [imageFile, setImageFile] = useState({\n selectedFile: '',\n type: ''\n });\n const nav = useHistory();\n const [imageName, setImageName] = useState('');\n const [title, setTitle] = useState('');\n const [fullLegend, setFullLegend] = useState(EditorState.createEmpty());\n const [prevLegend, setPrevLegend] = useState('');\n const [confirmation, setConfirmation] = useState(false);\n const [file, setFile] = useState(null);\n\n const customerId = localStorage.getItem('id');\n\n async function createAnnouncement() {\n const htmlDescription = draftToHtml(\n convertToRaw(fullLegend.getCurrentContent())\n );\n const dataFile = new FormData();\n console.log(file)\n if (file) {\n dataFile.append('file', file);\n }\n\n await axios.post('/api/v1/latest-news/uploadFile', dataFile, {timeout: 0}).then( res => {\n const data = {\n image: res.data.type === 'image' ? res.data.url : '',\n video: res.data.type === 'video' ? res.data.url : '',\n prev_legend: prevLegend,\n full_legend: htmlDescription,\n title: title,\n idea: true,\n customer_id: customerId\n };\n axios\n .post('/api/v1/latest-news/create', data, { headers: {\n ContentType: 'multipart/form-data'\n }, timeout: 0})\n .then((res) => {\n setTitle('');\n setPrevLegend('');\n setImageName('');\n setImageFile({\n selectedFile: '',\n type: ''\n });\n setFullLegend('');\n setConfirmation(false);\n alert('Latest News created');\n nav.push('/announcements');\n })\n .catch((err) => {\n console.log(err);\n });\n })\n\n }\n const handleFileChange = (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n setFile(event.target.files[0]);\n }\n };\n\n return (\n \n \n Latest News - Idea Submission\n close()}>\n \n\n \n \n \n

    Title

    \n setTitle(e.target.value)}\n />\n

    Preview Field

    \n setPrevLegend(e.target.value)}\n />\n \n

    Picture or Video

    \n \n {file?.name}\n \n

    The system does not accept files larger than 1TB.

    \n

    Full Article

    \n\n {\n setFullLegend(e);\n }}\n />\n createAnnouncement()}>\n Publish\n \n
    \n\n \n
    \n )\n}","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nconst CardContainer = styled.div`\n width: 90%;\n margin: 0 auto;\n margin-top: 0;\n small {\n margin-bottom: 10px;\n }\n display: flex;\n border-radius: 8px;\n img.img-one {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 300px;\n height: 300px;\n }\n img.img-two {\n position: absolute;\n bottom: 0;\n right: 90px;\n width: 250px;\n height: 250px;\n }\n`;\n\nconst QuestionContainer = styled.div`\n width: 100%;\n\n height: min-content;\n margin: 0 auto;\n display: flex;\n backdrop-filter: blur(10px);\n border-radius: 8px;\n background-color: #f8f9fa;\n flex-direction: column;\n .task {\n display: flex;\n flex-direction: column;\n h1 {\n background-color: ${Theme.primary};\n color: ${Theme['secondary-light']};\n padding-bottom: 16px;\n }\n width: 100%;\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n }\n p.text-correction-true {\n color: #39e75f;\n font-size: 13px;\n font-weight: bold;\n padding: 18px;\n padding-top: 0;\n }\n p.text-correction-false {\n color: tomato;\n font-size: 13px;\n font-weight: bold;\n margin: 20px 5px;\n padding: 18px;\n padding-bottom: 0;\n }\n h1 {\n color: ${Theme.primary};\n font-size: 20px;\n padding: 22px;\n padding-bottom: 0;\n margin: 0;\n margin-bottom: 0px;\n\n border-radius: 8px 8px 0 0;\n }\n .card-responses {\n display: grid;\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 20px;\n padding-top: 0;\n width: 100%;\n }\n .responses {\n background-color: white;\n padding: 20px;\n width: 100%;\n border-radius: 12px;\n border: 2px solid #efefef;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n color: #333;\n font-size: 14px;\n }\n .responses.selected {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid green !important;\n }\n .responses.correct {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n }\n\n .responses.incorrect {\n background-color: #f1f1f1f1; /* Light red /\n border: 1px solid #fefefe;\n }\n\n .responses.blueTest {\n background-color: #fabec0; /* Light blue for selected */\n color: #e43d40;\n border: 1px solid #f85c70 !important;\n }\n li {\n text-decoration: none;\n list-style: none;\n }\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 0 auto;\n margin-bottom: 12px;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n`;\nconst NoHavePollContainer = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n padding: 20px;\n align-items: center;\n h1 {\n font-size: 24px;\n color: #333;\n }\n`;\n\nexport { CardContainer, QuestionContainer, NoHavePollContainer };\n","import React, { useEffect, useState } from 'react';\nimport {\n CardContainer,\n NoHavePollContainer,\n QuestionContainer\n} from './styled';\nimport api from 'src/services/axios';\nimport troph from 'src/images/troph.png';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport styled from 'styled-components';\nimport { Theme } from 'src/styles/Theme';\nimport {\n FormControlLabel,\n Radio,\n RadioProps,\n withStyles\n} from '@material-ui/core';\n\ninterface Options {\n option: string;\n id: string;\n count?: number;\n percentage?: string;\n}\n\ninterface Polls {\n id: string;\n polls_answer: string;\n options: Options[];\n date_start: string;\n date_end: string;\n active: boolean;\n}\ninterface ResponseQuestion {\n user_id: string;\n task_id: string;\n responses_task_id: string;\n}\n\ninterface Ranking {\n name: string;\n correct: number;\n total: number;\n url_image: string;\n}\nconst Card = styled.div`\n display: flex;\n flex-direction: column;\n\n justify-content: space-between;\n gap: 10px;\n padding: 18px;\n width: 100%;\n margin-bottom: 15px;\n`;\n\nconst Item = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n border: 2px solid #ccc;\n padding: 8px;\n border-radius: 8px;\n &.correct {\n border: 2px solid ${Theme.primary};\n }\n`;\n\nconst Label = styled.label`\n font-size: 18px;\n font-weight: 600;\n`;\n\nconst ProgressBar = styled.div`\n background-color: #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n width: 94%;\n margin: 0 auto;\n`;\nconst GreenRadio = withStyles({\n root: {\n color: '#ccc',\n '&$checked': {\n color: Theme.primary\n }\n },\n checked: {}\n})((props: RadioProps) => );\n\ninterface ProgressProps {\n percent: number;\n}\n\nconst Progress = styled.div`\n height: 8px;\n background-color: #4caf50;\n width: ${({ percent }) => percent}%;\n transition: width 0.3s ease;\n`;\n\nconst ContainerTaskDescription = styled.div`\n display: flex;\n justify-content: space-between;\n span {\n text-align: center;\n justify-content: center;\n align-self: center;\n }\n`;\nexport const PollsCard = () => {\n const [polls, setPolls] = useState();\n const [answers, setAnswers] = useState();\n const [responseTrivia, setResponseTrivia] = useState(false);\n const [userScore, setUserScore] = useState(0);\n const [ranking, setRanking] = useState([]);\n const [userRanking, setUserRanking] = useState(0);\n const [realCorrectOption, setRealCorrectOption] = useState('');\n const [rankingOptions, setRankingOptions] = useState([]);\n const [userId, setUserId] = useState('');\n const [historyQuestion, setHistoryQuestion] = useState(false);\n const languages = [\n { id: 1, name: 'HTML', votes: 25 },\n { id: 2, name: 'Java', votes: 15 },\n { id: 3, name: 'Python', votes: 40 },\n { id: 4, name: 'jQuery', votes: 20 }\n ];\n const [votes, setVotes] = useState(languages);\n const [selected, setSelected] = useState();\n const [noHavePolls, setNoHavePolls] = useState(false);\n const totalVotes = votes.reduce((sum, lang) => sum + lang.votes, 0);\n\n function getPolls(userIdParam: string) {\n api\n .post('/api/v1/polls/question', {\n customers_id: userIdParam\n })\n .then((res) => {\n if (res.data?.polls?.existsPontuation) {\n setHistoryQuestion(true);\n setRealCorrectOption(\n res.data?.polls.existsPontuation.response_user_polls_id\n );\n setRankingOptions(res.data.polls.options);\n setPolls(res.data?.polls.question);\n } else if (res.data?.polls?.question) {\n setPolls(res.data?.polls.question);\n } else {\n setNoHavePolls(true);\n }\n });\n }\n\n useEffect(() => {\n async function getUserId() {\n const userId = await localStorage.getItem('id');\n if (userId) {\n console.log(userId);\n getPolls(userId);\n setUserId(userId);\n }\n }\n getUserId();\n }, []);\n\n const handleSubmit = () => {\n setResponseTrivia(true);\n console.log('answers:', answers);\n const data = {\n response_user_polls_id: selected,\n polls_id: polls?.id,\n customers_id: userId\n };\n console.log(data);\n api\n .post('/api/v1/polls/user-pontuation', {\n response_user_polls_id: selected,\n polls_id: polls?.id,\n customers_id: userId\n })\n .then((res) => {\n alert('Response sent successfully!');\n window.location.reload();\n });\n };\n\n return (\n \n

    Polls

    \n\n \n {historyQuestion ? (\n <>\n \n {polls ? (\n <>\n
    \n \n {polls?.polls_answer}\n \n \n {rankingOptions.map((option, index) => (\n \n \n \n \n {option.percentage?.split('.')[0]}%\n \n \n \n \n \n \n ))}\n \n
    \n \n ) : noHavePolls ? (\n

    Nao tem question

    \n ) : (\n

    Loading Question

    \n )}\n
    \n \n ) : (\n <>\n \n {polls ? (\n <>\n End: {polls.date_end.split('T')[0]}\n
    \n \n {polls?.polls_answer}\n \n\n \n {polls.options.map((option, index) => (\n \n \n \n \n \n \n ))}\n \n
    \n {selected && (\n \n Send Responses 🎊\n \n )}\n \n ) : noHavePolls ? (\n \n No question for this date.\n \n ) : (\n

    Loading Question

    \n )}\n
    \n \n )}\n
    \n
    \n );\n};\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\nexport const MainContainer = styled.div`\n width: 90%;\n margin: 0 auto;\n\n div.itens {\n display: flex;\n gap: 20px;\n }\n`;\n\nexport const Container = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n\n gap: 16px;\n\n @media (max-width: 700px) {\n gap: 8px;\n justify-content: space-evenly;\n flex-wrap: wrap;\n }\n svg {\n align-self: flex-end;\n cursor: pointer;\n margin-right: 15px;\n margin-top: 10px;\n position: absolute;\n }\n div.list {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n max-width: 140px;\n background: ${Theme.light};\n border-radius: 14px;\n min-height: 130px;\n min-width: 140px;\n width: 100%;\n list-style-type: none;\n\n img {\n width: auto;\n max-width: 120px;\n min-width: 120px;\n margin-top: 16px;\n border: 2px solid ${Theme.primary};\n padding: 8px;\n }\n p {\n color: #151515;\n\n font-weight: bold;\n text-transform: uppercase;\n text-align: center;\n padding: 2px 5px;\n }\n button {\n width: 100%;\n padding: 8px;\n margin: 0;\n margin-top: 10px;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n cursor: pointer;\n background-color: transparent;\n border: none;\n text-transform: uppercase;\n background-color: #ddd;\n color: ${Theme.primary};\n font-weight: bold;\n }\n }\n`;\n","import React from 'react';\nimport { Container, MainContainer } from './styled';\nimport app from '../../images/qrapp.png';\nimport play from '../../images/qrplaystore.png';\n\nexport const CardDownload = (): JSX.Element => {\n return (\n \n
    \n

    Download FEG App

    \n
    \n
    \n \n
    \n FEG APPLE APP\n \n window.open(\n 'https://play.google.com/store/apps/details?id=com.fegapp',\n '_blank'\n )\n }\n >\n ANDROID\n \n
    \n
    \n \n
    \n FEG APPLE APP\n \n window.open(\n 'https://apps.apple.com/us/app/feg-home/id6670215730',\n '_blank'\n )\n }\n >\n APPLE\n \n
    \n
    \n
    \n
    \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport ReactGA from 'react-ga';\nimport { Grid, IconButton, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@material-ui/core';\nimport Shortcut from '../../components/Home/Shortcuts';\nimport CompanyAnnoun from '../../components/Home/CompanyAnnoun';\nimport Calendar from '../../components/Home/Calendar';\nimport axios from '../../services/axios';\nimport Loader from 'src/components/Loader';\nimport {\n ArrowLeft,\n ArrowLeftSharp,\n ArrowRight,\n ArrowRightSharp,\n Edit,\n Reorder\n} from '@material-ui/icons';\nimport jwt from 'jsonwebtoken'\nimport { useCookies } from 'react-cookie'\nimport { DragDropContext, Draggable, DraggableProvided, DraggableStateSnapshot, Droppable, DroppableProvided, DropResult, ResponderProvided } from 'react-beautiful-dnd';\nimport { withStyles } from '@material-ui/styles';\nimport { Theme } from 'src/styles/Theme';\nimport { BtnContainerIdea, ContainerContent, ContainerIdea, ContainerWelcome, FirstContainerContent, Container as HomeContainer, SecondContainerContent } from './styled';\nimport { CardFav } from 'src/components/CardFav';\nimport { CarouselCompoponent } from 'src/components/Carousel';\nimport { CardTask } from 'src/components/CardTask';\nimport { CardJobs } from 'src/components/CardsJobs';\nimport { CardTest } from 'src/components/CardTest';\nimport chatBTN from 'src/images/icons/iconFeg/1.png'\nimport ServiceRequest from 'src/images/icons/iconFeg/2.png'\nimport PowerBi from 'src/images/icons/iconFeg/3.png'\nimport { useHistory } from 'react-router-dom';\nimport IdeaLatestNews from 'src/components/IdeaLatestNews';\nimport { PollsCard } from 'src/components/PollsCard';\nimport { CardDownload } from 'src/components/CardDownload';\n\n\nconst bgColor = Theme.primary\nconst textColor = '#808285';\n\nconst TableHeadContainer = withStyles(() => ({\n root: {\n backgroundColor: bgColor\n }\n}))(TableHead);\n\nconst TableHeaderCell = withStyles(() => ({\n root: {\n color: 'white'\n }\n}))(TableCell);\n\nconst TableBodyCell = withStyles(() => ({\n root: {\n color: textColor\n }\n}))(TableCell);\n\ninterface ShortcutInterface {\n id: string;\n name: string;\n display_name1: string;\n display_name2: string;\n desktop_image: string;\n mobile_image: string;\n link_desktop: string;\n link_mobile: string;\n createdAt: string;\n updatedAt?: Date;\n order: number;\n group_ids: string[];\n}\n\nconst NewHome: React.FC = () => {\n const [cookies,] = useCookies(['token'])\n const [loaded, setLoaded] = useState(false);\n const [shortcuts, setShortcuts] = useState([]);\n const [shortcutsOrdered, setShortcutsOrdered] = useState([]);\n const [limit, setLimit] = useState(0);\n const [width, setWidth] = useState(window.innerWidth);\n const [customerId, setCustomerId] = useState('')\n const [userGroupId, setUserGroupId] = useState('')\n const [editOrder, setEditOrder] = useState(false)\n const [shortcutOrder, setShortcutOrder] = useState([])\n const [firstAccess, setFirstAccess] = useState(false)\n const token = cookies.token\n const [viewAllsFav, setViewAllsFav] = useState(true);\n const image = localStorage.getItem('image_url');\n const firstName = localStorage.getItem('firstName');\n const history = useHistory();\n const [openIdeaLatestNews, setOpenIdeaLatestNews] = useState(false)\n\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n /*if (decoded.roles.home_page.view === false) {\n alert('Permission denied')\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {*/\n setUserGroupId(decoded.group_id)\n setCustomerId(decoded.id)\n\n axios.get(`/api/v1/shortcuts/personalOrder/${decoded.id}`).then(response => {\n setShortcutOrder(response.data.shortcuts_order)\n\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n changeShortcutOrder(shortcutsResponse.data, response.data.shortcuts_order, decoded.group_id)\n setLoaded(true)\n })\n })\n /*}*/\n }\n }\n )\n } else {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.home_page.view === false) {\n alert('Permission denied');\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {\n setUserGroupId(decoded.group_id)\n setCustomerId(decoded.id)\n\n axios.get(`/api/v1/shortcuts/personalOrder/${decoded.id}`).then(response => {\n setShortcutOrder(response.data.shortcuts_order)\n\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n changeShortcutOrder(shortcutsResponse.data, response.data.shortcuts_order, decoded.group_id)\n setLoaded(true)\n })\n })\n }\n }\n }\n )\n }\n }\n\n const handleWindowSizeChange = () => {\n setWidth(window.innerWidth);\n };\n\n\n\n function verifyOrder(table_order: number[], personal_order: number[]) {\n let newOrder: number[] = []\n let result = ''\n\n if (personal_order) {\n\n table_order.map((number, index) => {\n if (!personal_order.includes(number)) {\n result = 'table order have more card'\n // add card in the end of personal order\n newOrder = personal_order\n newOrder.push(number)\n }\n })\n\n personal_order.map((number, index) => {\n if (!table_order.includes(number)) {\n result = 'personal order have more card'\n // remove card from the personal order\n newOrder = personal_order\n newOrder.splice(index, 1)\n }\n })\n\n if (result === '') newOrder = personal_order\n\n } else {\n newOrder = table_order\n }\n\n return newOrder\n }\n\n function changeShortcutOrder(shortcuts: ShortcutInterface[], order: number[], group_id: string) {\n const shortcuts_filtered = shortcuts.filter((shortcut) => shortcut.group_ids?.includes(group_id))\n let orderedShorts: ShortcutInterface[] = []\n\n verifyOrder(shortcuts_filtered.map(shortcut => shortcut.order), order)\n\n if (order && order.length > 0) {\n order.map(order => {\n shortcuts.forEach((shortcut) => {\n if (shortcut.order === order) {\n orderedShorts.push(shortcut)\n }\n })\n })\n setShortcutsOrdered(orderedShorts)\n setShortcutOrder(order)\n } else {\n setShortcutsOrdered(shortcuts_filtered)\n }\n }\n\n const handleSearch = (e: string) => {\n if (e.length >= 3) {\n setLoaded(false);\n axios.get(`/api/v1/shortcuts/byName/${e}`).then((shortcutsResponse) => {\n setLimit(0);\n setShortcuts(shortcutsResponse.data);\n setLoaded(true);\n });\n } else if (e.length === 0) {\n setLoaded(false);\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n setLoaded(true);\n });\n }\n };\n\n const handleLimit = (newLimit: number) => {\n setLoaded(false);\n setTimeout(() => {\n setLimit(newLimit);\n setLoaded(true);\n }, 800);\n };\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1');\n ReactGA.pageview(window.location.pathname + window.location.search);\n handlePermissions()\n // handleLoad();\n window.addEventListener('resize', handleWindowSizeChange);\n return () => {\n window.removeEventListener('resize', handleWindowSizeChange);\n };\n }, []);\n\n const displayShortcuts = () => {\n if (shortcutsOrdered.length >= 6) {\n return (\n <>\n \n {shortcutsOrdered\n .slice(limit, limit + 10)\n .map((shortcut: ShortcutInterface, key) => {\n if (shortcuts.indexOf(shortcut) === 3) {\n return (\n <>\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n width > 768\n ? /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n : /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.mobile_image\n )\n ? shortcut.mobile_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n \n \n \n \n );\n } else if (shortcutsOrdered.indexOf(shortcut) === 5) {\n return (\n <>\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n width > 768\n ? /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n : /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.mobile_image\n )\n ? shortcut.mobile_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n \n \n \n \n );\n } else {\n return (\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n width > 768\n ? /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n : /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.mobile_image\n )\n ? shortcut.mobile_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n );\n }\n })}\n \n
    \n
    \n handleLimit(0)}\n disabled={limit === 0}\n >\n \n \n handleLimit(limit - 10)}\n disabled={limit === 0}\n >\n \n \n handleLimit(limit + 10)}\n disabled={limit >= shortcuts.length - 10}\n >\n \n \n handleLimit(shortcuts.length - 10)}\n disabled={limit >= shortcuts.length - 10}\n >\n \n \n
    \n
    \n \n );\n } else if (shortcutsOrdered.length >= 1 && shortcutsOrdered.length < 6) {\n return (\n \n {shortcutsOrdered\n .slice(limit, limit + 10)\n .map((shortcut: ShortcutInterface, key) => {\n return (\n <>\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n \n );\n })}\n \n \n \n \n \n \n \n );\n } else if (shortcutsOrdered.length === 0) {\n return (\n \n \n \n \n \n \n \n \n );\n }\n };\n\n function moveArrayElement(arr: any, from: any, to: any) {\n var el = arr[from];\n arr.splice(from, 1);\n arr.splice(to, 0, el);\n };\n\n const handleDragEnd = async (result: DropResult, provided?: ResponderProvided) => {\n if (!result.destination) return\n if (result.destination.index === result.source.index) return\n\n let order: number[] = shortcutsOrdered.map(shortcut => shortcut.order)\n const old_order = [...order]\n moveArrayElement(order, result.source.index, result.destination?.index)\n\n changeShortcutOrder(shortcutsOrdered, order, userGroupId)\n await axios.put(`api/v1/shortcuts/personalOrder/${customerId}`, { order })\n .then(r => { })\n .catch(error => {\n changeShortcutOrder(shortcutsOrdered, old_order, userGroupId)\n })\n }\n\n const orderModal = (\n
    \n
    \n
    \n setEditOrder(false)}>×\n\n

    Personal order

    \n
    \n\n
    \n \n \n \n \n  \n Shortcut Name\n Display Name 01\n Display Name 02\n Order\n \n \n \n \n {(droppableProvided: DroppableProvided) => (\n \n {shortcutsOrdered.map((shortcut, index: number) => (\n \n {(\n draggableProvided: DraggableProvided,\n snapshot: DraggableStateSnapshot\n ) => {\n return (\n \n \n
    \n \n
    \n
    \n {shortcut.name}\n {shortcut.display_name1}\n {shortcut.display_name2}\n {shortcut.order}\n \n );\n }}\n \n ))}\n {droppableProvided.placeholder}\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n\n return (\n \n \n
    \n
    \n \n
    \n\n
    \n

    Welcome, {firstName}

    \n\n

    Your one-stop shop for Family Entertainment Group’s questions, resources, latest news, company announcements, training, internal communications & more!

    \n
    \n\n
    \n\n \n
    \n \n \n\n \n

    Latest News

    \n\n
    \n\n {openIdeaLatestNews && (\n setOpenIdeaLatestNews(false)} />\n )\n }\n {\n console.log('close')\n setOpenIdeaLatestNews(true)\n }} />\n\n
    \n\n\n \n\n \n \n\n \n \n \n\n
    \n\n
    \n );\n};\n\nexport default NewHome;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const Container = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n gap: 10px;\n @media (max-width: 1400px) {\n grid-template-columns: 1fr 1fr 1fr;\n }\n @media (max-width: 1000px) {\n grid-template-columns: 1fr 1fr;\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 460px) {\n grid-template-columns: 1fr;\n }\n`;\nexport const TitleShortcuts = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n gap: 36px;\n justify-content: space-between;\n margin-bottom: 14px;\n h1 {\n color: ${Theme.primary};\n width: 100%;\n @media (max-width: 700px) {\n display: none;\n }\n }\n input {\n padding: 10px;\n border: 1px solid ${Theme.primary};\n border-radius: 14px;\n width: 100%;\n max-width: 380px;\n margin-right: 12px;\n }\n div {\n width: 100%;\n display: flex;\n justify-content: end;\n }\n`;\n\nexport const GridShortcut = styled.div`\n background-color: ${Theme.light}cc;\n border-radius: 50px;\n margin: 10px;\n padding: 20px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n width: 100%;\n min-height: 140px;\n height: max-content;\n max-height: 200px;\n max-width: 340px;\n text-align: center;\n\n a {\n display: none;\n }\n p {\n color: black;\n font-weight: bold;\n font-size: 16px;\n }\n &.active {\n background-color: #cccccccc;\n\n p {\n display: none;\n }\n a {\n font-size: 13px;\n text-decoration: none;\n }\n a {\n display: flex;\n }\n }\n\n @media (max-width: 700px) {\n margin: 0;\n height: 100%;\n\n width: 100%;\n\n padding: 10px;\n gap: 4px;\n div.legend {\n display: flex;\n flex-direction: column;\n }\n }\n\n div.legend {\n width: 100%;\n }\n\n div.div-heart {\n height: 30px;\n width: 30px;\n min-width: 30px;\n position: relative;\n bottom: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n border: 1px solid purple;\n cursor: pointer;\n\n @media (max-width: 700px) {\n height: 25px;\n width: 25px;\n min-width: 25px;\n bottom: 00px;\n }\n }\n img {\n width: 80px;\n height: 80px;\n border-radius: 4px;\n @media (max-width: 700px) {\n width: 50px !important;\n height: 50px;\n }\n }\n\n p {\n color: #151515;\n font-weight: bold;\n }\n a {\n color: ${Theme.grey};\n text-decoration: none;\n }\n @media (max-width: 460px) {\n p {\n font-size: 12px;\n }\n a {\n font-size: 12px;\n }\n }\n`;\n","/* eslint-disable react/prop-types */\nimport React, { useState } from 'react';\nimport { Container, GridShortcut } from './styled';\nimport { FaHeart, FaRegHeart } from 'react-icons/fa';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, react/prop-types\nconst ListaOrdenada = ({\n dados,\n formatString,\n favoriteShortCurt,\n checkFav\n}) => {\n // Ordena os dados por alguma propriedade, por exemplo, 'nome'\n // eslint-disable-next-line react/prop-types\n const dadosOrdenados = dados.sort((a, b) =>\n a.display_name1.localeCompare(b.display_name1)\n );\n\n // Cria um objeto para armazenar os dados separados por letra\n const dadosSeparadosPorLetra = {};\n\n // Itera sobre os dados ordenados e os agrupa por letra\n dadosOrdenados.forEach((item) => {\n const primeiraLetra = item.display_name1.charAt(0).toUpperCase();\n if (!dadosSeparadosPorLetra[primeiraLetra]) {\n dadosSeparadosPorLetra[primeiraLetra] = [];\n }\n dadosSeparadosPorLetra[primeiraLetra].push(item);\n });\n const [hoveredIndex, setHoveredIndex] = useState(null);\n\n const handleHover = (index) => {\n setHoveredIndex(index);\n };\n\n // Gera a renderização com as listas separadas por letra\n return (\n
    \n {Object.keys(dadosSeparadosPorLetra).map((letra, indexKey) => (\n
    \n

    {letra}

    \n \n {dadosSeparadosPorLetra[letra].map((shortcut, index) => (\n \n handleHover({ index: index, indexKey: indexKey })\n }\n onMouseLeave={() => handleHover(null)}\n className={`\n ${hoveredIndex?.index === index &&\n hoveredIndex?.indexKey === indexKey &&\n 'active'\n } \n `}\n >\n \n \n favoriteShortCurt(shortcut)}\n >\n {checkFav(shortcut.id) ? (\n \n ) : (\n \n )}\n
    \n \n ))}\n \n
    \n ))}\n \n );\n};\n\nexport default ListaOrdenada;\n","import React, { useEffect, useState } from 'react';\nimport ReactGA from 'react-ga';\nimport { Grid, IconButton, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@material-ui/core';\nimport Shortcut from '../../components/Home/Shortcuts';\nimport CompanyAnnoun from '../../components/Home/CompanyAnnoun';\nimport Calendar from '../../components/Home/Calendar';\nimport axios, { api } from '../../services/axios';\nimport Loader from 'src/components/Loader';\nimport { FaHeart, FaRegHeart } from \"react-icons/fa\";\n\n\nimport {\n ArrowLeft,\n ArrowLeftSharp,\n ArrowRight,\n ArrowRightSharp,\n Edit,\n Reorder\n} from '@material-ui/icons';\nimport jwt from 'jsonwebtoken'\nimport { useCookies } from 'react-cookie'\nimport { DragDropContext, Draggable, DraggableProvided, DraggableStateSnapshot, Droppable, DroppableProvided, DropResult, ResponderProvided } from 'react-beautiful-dnd';\nimport { withStyles } from '@material-ui/styles';\nimport { Theme } from 'src/styles/Theme';\nimport { Container, GridShortcut, TitleShortcuts } from './styled';\nimport ListaOrdenada from './list';\n\nconst bgColor = Theme.primary\nconst textColor = '#808285';\n\nconst TableHeadContainer = withStyles(() => ({\n root: {\n backgroundColor: bgColor\n }\n}))(TableHead);\n\nconst TableHeaderCell = withStyles(() => ({\n root: {\n color: 'white'\n }\n}))(TableCell);\n\nconst TableBodyCell = withStyles(() => ({\n root: {\n color: textColor\n }\n}))(TableCell);\n\ninterface ShortcutInterface {\n id: string;\n name: string;\n display_name1: string;\n display_name2: string;\n desktop_image: string;\n mobile_image: string;\n link_desktop: string;\n link_mobile: string;\n createdAt: string;\n updatedAt?: Date;\n order: number;\n group_ids: string[];\n favorite: boolean\n}\n\nconst Shortcuts: React.FC = () => {\n const [cookies,] = useCookies(['token'])\n const [loaded, setLoaded] = useState(false);\n const [shortcuts, setShortcuts] = useState([]);\n const [favShortcut, setFavShortcut] = useState([]);\n const [shortcutsOrdered, setShortcutsOrdered] = useState([]);\n const [limit, setLimit] = useState(0);\n const [width, setWidth] = useState(window.innerWidth);\n const [customerId, setCustomerId] = useState('')\n const [userGroupId, setUserGroupId] = useState('')\n const [editOrder, setEditOrder] = useState(false)\n const [shortcutOrder, setShortcutOrder] = useState([])\n const [firstAccess, setFirstAccess] = useState(false)\n const token = cookies.token\n const [heart, setHeart] = useState(false);\n const [currentLetr, setCurrentLetr] = useState(0);\n\n\n // useEffect(() => {\n // ReactGA.initialize('UA-189380132-1');\n // ReactGA.pageview(window.location.pathname + window.location.search);\n // handlePermissions()\n // });\n function orderForName(objetos: ShortcutInterface[] | undefined) {\n\n if (objetos) {\n return objetos.sort((a, b) => {\n const nameA = a.display_name2.toUpperCase();\n const nameB = b.display_name2.toUpperCase();\n\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n } else {\n return []\n }\n }\n\n function checkFav(id: string) {\n if (!favShortcut) {\n return\n }\n if (favShortcut === null || favShortcut === undefined) {\n return\n }\n if (favShortcut.length > 0) {\n return favShortcut.find(item => item === id)\n }\n\n }\n function handlePermissions() {\n if (localStorage.getItem('token')) {\n jwt.verify(\n localStorage.getItem('token')!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n /*if (decoded.roles.home_page.view === false) {\n alert('Permission denied')\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {*/\n setUserGroupId(decoded.group_id)\n setCustomerId(decoded.id)\n\n axios.get(`/api/v1/shortcuts/personalOrder/${decoded.id}`).then(response => {\n setShortcutOrder(response.data.shortcuts_order)\n const customer_id = localStorage.getItem('id');\n axios.get(`/api/v1/accounts/favorite_shortcut/${customer_id}`).then((shortcutsResponse) => {\n setFavShortcut(shortcutsResponse.data)\n })\n\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n changeShortcutOrder(shortcutsResponse.data, response.data.shortcuts_order, decoded.group_id)\n setLoaded(true)\n })\n })\n /*}*/\n }\n }\n )\n } else {\n jwt.verify(\n token!.toString(),\n '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb',\n async (err: any, decoded: any) => {\n if (err) {\n alert(err)\n } else {\n if (decoded.roles.home_page.view === false) {\n alert('Permission denied');\n if (process.env.REACT_APP_URL) {\n window.location.href = `${process.env.REACT_APP_URL}`\n }\n } else {\n setUserGroupId(decoded.group_id)\n setCustomerId(decoded.id)\n\n axios.get(`/api/v1/shortcuts/personalOrder/${decoded.id}`).then(response => {\n setShortcutOrder(response.data.shortcuts_order)\n\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n changeShortcutOrder(shortcutsResponse.data, response.data.shortcuts_order, decoded.group_id)\n setLoaded(true)\n })\n })\n }\n }\n }\n )\n }\n }\n\n const handleWindowSizeChange = () => {\n setWidth(window.innerWidth);\n };\n\n\n function verifyOrder(table_order: number[], personal_order: number[]) {\n let newOrder: number[] = []\n let result = ''\n\n if (personal_order) {\n\n table_order.map((number, index) => {\n if (!personal_order.includes(number)) {\n result = 'table order have more card'\n // add card in the end of personal order\n newOrder = personal_order\n newOrder.push(number)\n }\n })\n\n personal_order.map((number, index) => {\n if (!table_order.includes(number)) {\n result = 'personal order have more card'\n // remove card from the personal order\n newOrder = personal_order\n newOrder.splice(index, 1)\n }\n })\n\n if (result === '') newOrder = personal_order\n\n } else {\n newOrder = table_order\n }\n\n return newOrder\n }\n\n function changeShortcutOrder(shortcuts: ShortcutInterface[], order: number[], group_id: string) {\n const shortcuts_filtered = shortcuts.filter((shortcut) => shortcut.group_ids?.includes(group_id))\n let orderedShorts: ShortcutInterface[] = []\n\n verifyOrder(shortcuts_filtered.map(shortcut => shortcut.order), order)\n\n if (order && order.length > 0) {\n order.map(order => {\n shortcuts.forEach((shortcut) => {\n if (shortcut.order === order) {\n orderedShorts.push(shortcut)\n }\n })\n })\n setShortcutsOrdered(orderedShorts)\n setShortcutOrder(order)\n } else {\n setShortcutsOrdered(shortcuts_filtered)\n }\n }\n\n\n\n const handleSearch = (e: string) => {\n\n if (e.length >= 3) {\n setLoaded(false);\n axios.get(`/api/v1/shortcuts/byName/${e}`).then((shortcutsResponse) => {\n setLimit(0);\n setShortcuts((shortcutsResponse.data));\n setLoaded(true);\n });\n } else if (e.length === 0) {\n setLoaded(false);\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n setLoaded(true);\n });\n }\n };\n\n const handleLimit = (newLimit: number) => {\n setLoaded(false);\n setTimeout(() => {\n setLimit(newLimit);\n setLoaded(true);\n }, 800);\n };\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1');\n ReactGA.pageview(window.location.pathname + window.location.search);\n handlePermissions()\n // handleLoad();\n window.addEventListener('resize', handleWindowSizeChange);\n return () => {\n window.removeEventListener('resize', handleWindowSizeChange);\n };\n }, []);\n\n const displayShortcuts = () => {\n if (shortcutsOrdered.length >= 6) {\n return (\n <>\n \n {shortcutsOrdered\n .slice(limit, limit + 10)\n .map((shortcut: ShortcutInterface, key) => {\n if (shortcuts.indexOf(shortcut) === 3) {\n return (\n <>\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n width > 768\n ? /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n : /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.mobile_image\n )\n ? shortcut.mobile_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n \n \n \n \n );\n } else if (shortcutsOrdered.indexOf(shortcut) === 5) {\n return (\n <>\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n width > 768\n ? /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n : /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.mobile_image\n )\n ? shortcut.mobile_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n \n \n \n \n );\n } else {\n return (\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n width > 768\n ? /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n : /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.mobile_image\n )\n ? shortcut.mobile_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n );\n }\n })}\n \n
    \n
    \n handleLimit(0)}\n disabled={limit === 0}\n >\n \n \n handleLimit(limit - 10)}\n disabled={limit === 0}\n >\n \n \n handleLimit(limit + 10)}\n disabled={limit >= shortcuts.length - 10}\n >\n \n \n handleLimit(shortcuts.length - 10)}\n disabled={limit >= shortcuts.length - 10}\n >\n \n \n
    \n
    \n \n );\n } else if (shortcutsOrdered.length >= 1 && shortcutsOrdered.length < 6) {\n return (\n \n {shortcutsOrdered\n .slice(limit, limit + 10)\n .map((shortcut: ShortcutInterface, key) => {\n return (\n <>\n \n 768 ? shortcut.link_desktop : shortcut.link_mobile}\n images={\n /(jpg|gif|png|JPG|GIF|PNG|JPEG|jpeg)$/.test(\n shortcut.desktop_image\n )\n ? shortcut.desktop_image\n : 'https://s3.us-east-2.amazonaws.com/systemfeg.com/image/static/feghome.com.webp'\n }\n alt={shortcut.name}\n actions={shortcut.display_name1}\n title={shortcut.display_name2}\n />\n \n \n );\n })}\n \n \n \n \n \n \n \n );\n } else if (shortcutsOrdered.length === 0) {\n return (\n \n \n \n \n \n \n \n \n );\n }\n };\n\n function moveArrayElement(arr: any, from: any, to: any) {\n var el = arr[from];\n arr.splice(from, 1);\n arr.splice(to, 0, el);\n };\n\n const handleDragEnd = async (result: DropResult, provided?: ResponderProvided) => {\n if (!result.destination) return\n if (result.destination.index === result.source.index) return\n\n let order: number[] = shortcutsOrdered.map(shortcut => shortcut.order)\n const old_order = [...order]\n moveArrayElement(order, result.source.index, result.destination?.index)\n\n changeShortcutOrder(shortcutsOrdered, order, userGroupId)\n await axios.put(`api/v1/shortcuts/personalOrder/${customerId}`, { order })\n .then(r => { })\n .catch(error => {\n changeShortcutOrder(shortcutsOrdered, old_order, userGroupId)\n })\n }\n const [hoveredIndex, setHoveredIndex] = useState(0);\n\n const handleHover = (index: any) => {\n setHoveredIndex(index);\n };\n\n\n const orderModal = (\n
    \n
    \n
    \n setEditOrder(false)}>×\n\n

    Personal order

    \n
    \n\n
    \n \n \n \n \n  \n Shortcut Name\n Display Name 01\n Display Name 02\n Order\n \n \n \n \n {(droppableProvided: DroppableProvided) => (\n \n {shortcutsOrdered.map((shortcut, index: number) => (\n \n {(\n draggableProvided: DraggableProvided,\n snapshot: DraggableStateSnapshot\n ) => {\n return (\n \n \n
    \n \n
    \n
    \n {shortcut.name}\n {shortcut.display_name1}\n {shortcut.display_name2}\n {shortcut.order}\n \n );\n }}\n \n ))}\n {droppableProvided.placeholder}\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n function formatString(str: string) {\n if (str.length > 18) {\n return `${str.slice(0, 18)}...`\n } else {\n return str\n }\n }\n function favoriteShortCurt(short: ShortcutInterface) {\n let target: any = shortcuts.find(shortcut => shortcut.id === short.id)\n\n\n if (target) {\n target.mobile_image = {\n \"selectedFile\": \"\",\n \"type\": \"\"\n }\n target.desktop_image = {\n \"selectedFile\": \"\",\n \"type\": \"\"\n }\n const customer_id = localStorage.getItem('id');\n api.put(`/api/v1/accounts/${customer_id}/favorite_shortcut`, target).then(res => {\n axios.get(`/api/v1/shortcuts`).then((shortcutsResponse) => {\n setShortcuts(shortcutsResponse.data);\n })\n axios.get(`/api/v1/accounts/favorite_shortcut/${customer_id}`).then((shortcutsResponse) => {\n setFavShortcut(shortcutsResponse.data)\n })\n\n }\n\n ).catch(e => console.log(e))\n }\n\n }\n\n function renderFav() {\n console.log(favShortcut?.length)\n console.log(favShortcut)\n if (!favShortcut) {\n return []\n }\n if (favShortcut === null || favShortcut === undefined) {\n return []\n }\n if (shortcuts.length > 0 && favShortcut?.length > 0) {\n const result = shortcuts.filter((element) =>\n favShortcut.includes(element.id)\n )\n return result;\n } else {\n return []\n }\n\n\n\n }\n function removeFav() {\n if (!favShortcut) {\n return shortcuts\n }\n if (favShortcut === null || favShortcut === undefined) {\n return shortcuts\n }\n if (shortcuts.length > 0 && favShortcut.length > 0) {\n const result = shortcuts.filter(objeto => !favShortcut.includes(objeto.id));\n return result;\n } else if (shortcuts.length > 0) {\n console.log('aqui')\n return shortcuts\n }\n\n }\n return (\n
    \n
    \n\n \n

    FEG Apps

    \n
    \n handleSearch(e.target.value)}\n />\n
    \n
    \n\n {loaded ? (\n
    \n

    Favorites

    \n \n {/* order for name and remove non favorites */}\n {orderForName(renderFav()).map((shortcut, index) => {\n return (\n \n handleHover(index + 1)\n }\n onMouseLeave={() => handleHover(0)}\n className={`\n ${hoveredIndex === index + 1 &&\n 'active'\n } \n `}>\n \"\"\n
    \n
    \n\n

    {shortcut.display_name1}

    \n {shortcut.display_name2}\n
    \n
    \n
    favoriteShortCurt(shortcut)}>\n {checkFav(shortcut.id) ? : }\n
    \n
    \n )\n })\n }\n
    \n {}\n
    \n )\n\n : }\n
    \n {orderModal}\n
    \n );\n};\n\nexport default Shortcuts;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const Container = styled.div`\n width: 86%;\n margin: 0 auto;\n height: 500px;\n display: grid;\n grid-template-columns: 1fr 4fr auto;\n border: 2px solid ${Theme.secondary};\n background-color: ${Theme.secondary};\n -webkit-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n -moz-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n h1 {\n margin-bottom: 16px;\n }\n`;\nexport const FilterContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${Theme.light};\n border-bottom: 3px solid ${Theme.secondary};\n max-height: 50px;\n display: flex;\n\n div {\n color: ${Theme.primary};\n box-shadow: none;\n font-size: 26px;\n font-weight: bold;\n max-height: 47px;\n height: 100%;\n border-radius: 0;\n }\n\n align-items: center;\n input {\n border: 1px solid ${Theme.grey};\n padding: 6px;\n }\n`;\n\nexport const ListLocations = styled.div`\n width: 100%;\n height: 100%;\n background-color: ${Theme.light};\n color: ${Theme.grey};\n overflow-y: scroll;\n`;\nexport const Header = styled.div`\n width: 100%;\n border-bottom: 3px solid ${Theme.secondary};\n background-color: ${Theme.primary};\n\n color: ${Theme.secondary};\n font-size: 18px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n max-height: 50px;\n height: 100%;\n h1 {\n margin: 0;\n font-size: 20px;\n }\n`;\n\nexport const LocationGroup = styled.div`\n border-bottom: 3px solid ${Theme.secondary};\n padding: 10px;\n display: flex;\n align-items: center;\n cursor: pointer;\n img {\n border-radius: 50%;\n width: 40px;\n height: 40px;\n border: 1px solid ${Theme.primary};\n padding: 2px;\n margin-right: 8px;\n }\n\n background-color: ${Theme.light};\n svg {\n color: ${Theme.primary};\n }\n :hover {\n background: #003366;\n color: white;\n }\n`;\nexport const ChatUserLocation = styled.div`\n background-color: ${Theme.light};\n border-left: 3px solid ${Theme.secondary};\n max-height: 500px;\n`;\n\nexport const HeaderChat = styled.div`\n background-color: white;\n border-bottom: 3px solid ${Theme.secondary};\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-height: 50px;\n height: 100%;\n padding: 0 16px;\n gap: 12px;\n h1 {\n margin: 0;\n color: ${Theme.primary};\n }\n img {\n border-radius: 50%;\n width: 40px;\n height: 40px;\n border: 1px solid ${Theme.light};\n padding: 2px;\n }\n`;\n\nexport const Informations = styled.div`\n width: 100%;\n min-width: 200px;\n background-color: ${Theme.light};\n border-left: 3px solid ${Theme.secondary};\n max-height: 500px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\nexport const InformationsContent = styled.div`\n width: 100%;\n background-color: ${Theme.light};\n padding: 10px;\n max-height: 500px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n img {\n margin-top: 12px;\n border-radius: 50%;\n width: 60px;\n height: 60px;\n border: 1px solid ${Theme.light};\n padding: 2px;\n margin-right: 8px;\n }\n div.user-description {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n h1 {\n color: ${Theme.primary};\n }\n }\n`;\n","/* eslint-disable react/prop-types */\nimport { Avatar, Button } from '@material-ui/core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport axios from 'src/services/axios';\nimport { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\nimport io from 'socket.io-client';\nimport moment from 'moment';\nimport { IoMdSend } from \"react-icons/io\";\n\nconst ChatLog = styled.div`\n padding: 10px;\n overflow-y: scroll;\n display: flex;\n flex-direction: column;\n width: 100%;\n ::-webkit-scrollbar {\n width: 0; /* Esconde a barra de rolagem do navegador Chrome/Safari */\n }\n\n word-wrap: break-word;\n .loader {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n`;\n\nconst ChatMessage = styled.div`\n display: flex;\n word-wrap: break-word;\n width: 100%;\n margin: 10px;\n .active {\n margin: 0 0 0 auto;\n div.msg {\n background-color: ${(props) =>\n props.role === 'active' ? `${Theme.primary}` : '#fff'};\n color: ${Theme.secondary};\n flex-direction: row-reverse;\n }\n }\n\n div {\n display: flex;\n\n \n gap: 7px;\n word-wrap: break-word;\n flex-direction: ${(props) =>\n props.role === 'active' ? 'initial' : 'row-reverse'};\n div.msg {\n display: flex;\n width: 100%;\n margin: 0 0;\n word-wrap: break-word;\n max-width: max-content;\n background-color: ${Theme.secondary};\n padding: 6px;\n border-radius: ${(props) =>\n props.role === 'active'\n ? '10px 10px 0 10px'\n : props.role === 'activeT'\n ? '0'\n : '10px 10px 10px 0px'};\n }\n img {\n max-width: 300px;\n max-height: 250px;\n }\n img.logo-img {\n width: 45px;\n height: 45px;\n padding: 2px;\n border-radius: 50%;\n border: 2px solid ${Theme.secondary};\n }\n }\n .activeT {\n margin: 0 auto;\n padding: 2px;\n div {\n background-color: white;\n color: ${Theme.primary};\n }\n }\n`;\n\nconst UserInput = styled.div`\n display: flex;\n align-items: center;\n background-color: #f5f5f5;\n padding: 10px;\n`;\n\nconst TextInput = styled.input`\n flex-grow: 1;\n padding: 8px;\n width: 100%;\n border: none;\n border-radius: 5px;\n`;\n\nconst SendButton = styled.button`\n padding: 8px 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n gap: 7px;\n background-color: ${Theme.primary};\n color: #fff;\n border: none;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\nconst CloseButton = styled.button`\n padding: 8px 16px;\n background-color: red;\n color: #fff;\n border: none;\n margin: 0 10px;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.3s ease-in-out;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\nconst ChatSubContainer = styled.div`\n display: flex;\n width: 100%;\n height: 442px;\n @media (max-width: 600px) {\n height: 100%;\n max-height: calc(90vh - 100px);\n min-height: calc(90vh - 100px);\n }\n div.log-message {\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n div.history-message {\n background-color: #f5f5f5;\n width: 185px;\n display: flex;\n align-items: center;\n flex-direction: column;\n overflow-y: scroll;\n overflow-x: hidden;\n height: 502px;\n\n transition: 1s;\n button {\n margin: 10px 105px;\n width: 90%;\n height: max-content;\n text-overflow: clip;\n padding: 10px;\n cursor: pointer;\n font-weight: bold;\n border: none;\n\n border-radius: 9px;\n background-color: white;\n color: ${Theme.primary};\n :last-of-type {\n margin-bottom: 12px;\n }\n }\n }\n`;\ninterface Location {\n id: string;\n location_name: string;\n visible?: boolean;\n}\n\ninterface Props {\n user?: string;\n id?: string;\n location?: Location;\n admin?: boolean;\n //socket: SocketIOClient.Socket\n}\ninterface Message {\n id: string;\n id_remetente: string;\n id_location: string;\n content: string;\n createdAt: string;\n full_name_remetente: string;\n image_url?: string;\n}\ntype MessageFilter = Record;\n\nconst UserMessagesChat: React.FC = ({\n id,\n location,\n admin,\n user /*socket*/\n}) => {\n const image = localStorage.getItem('image_url');\n const [data, setData] = useState();\n const contentRef = useRef(null);\n const [page, setPage] = useState(0);\n const [text, setText] = useState('');\n const [loading, setLoading] = useState(false);\n const email = localStorage.getItem('email');\n const idUser = localStorage.getItem('id');\n const firstName = localStorage.getItem('firstName');\n const lastName = localStorage.getItem('lastName');\n const [socket, setSocket] = useState();\n\n const [previewMobile, setPreviewMobile] = useState('');\n const [imageMobileName, setImageMobileName] = useState('');\n const [imageMobileFile, setImageMobileFile] = useState({\n selectedFile: '',\n type: ''\n });\n useEffect(() => {\n disableZoom();\n }, []);\n\n const disableZoom = () => {\n const viewportMetaTag = document.querySelector('meta[name=\"viewport\"]');\n if (viewportMetaTag) {\n viewportMetaTag.setAttribute(\n 'content',\n 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0'\n );\n }\n };\n function fileSelectMobile(props: any) {\n if (props[0] === undefined) {\n setImageMobileName('');\n setImageMobileFile({\n selectedFile: '',\n type: ''\n });\n return;\n }\n setPreviewMobile(URL.createObjectURL(props[0]));\n setImageMobileName(props[0].name);\n const reader = new FileReader();\n reader.readAsDataURL(props[0]);\n\n reader.onload = (e: any) => {\n setImageMobileFile({\n selectedFile: e?.target?.result,\n type: props[0].type\n });\n };\n }\n useEffect(() => {\n const intervalId = setInterval(() => {\n handleMessaging();\n }, 7000);\n\n // Retorne uma função de limpeza para limpar o intervalo quando o componente é desmontado\n return () => clearInterval(intervalId);\n }, [id]);\n useEffect(() => {\n handleMessaging();\n }, [id]);\n\n const messageDateFilter = () => {\n const dadosSeparadosPorLetra: any = {};\n data.forEach((item: any) => {\n const primeiraLetra = item.createdAt.slice(0, 10);\n if (!dadosSeparadosPorLetra[primeiraLetra]) {\n dadosSeparadosPorLetra[primeiraLetra] = [];\n }\n dadosSeparadosPorLetra[primeiraLetra].push(item);\n });\n return dadosSeparadosPorLetra;\n };\n\n function handleMessaging() {\n axios.get(`/api/v1/location-messaging/filter/${id}`).then((res) => {\n setData(res.data);\n \n });\n }\n\n useEffect(() => {\n // Connect to the socket server\n const newsocket = io(`${process.env.REACT_APP_API_URL}`, {\n transports: ['websocket', 'polling', 'flashsocket'],\n upgrade: true\n });\n setSocket(newsocket);\n // Event listener for when the connection is established\n newsocket.on('connect', () => {\n console.log('Connected to the socket server');\n });\n\n // Event listener for custom events from the server\n newsocket.on('newMessage', (data: any) => {\n setData((prevState: any) => [...prevState, data]);\n scrollToDiv();\n });\n\n // Send a message to the server\n const messageToSend = 'Hello, Server!';\n newsocket.emit('client-event', messageToSend);\n\n // Clean up the socket connection when the component is unmounted\n return () => {\n newsocket.disconnect();\n };\n }, []);\n function dateFormat(date: any) {\n const dateMomemnt = moment(date);\n const today = moment();\n if (dateMomemnt.isSame(today, 'day')) {\n return 'Today';\n } else {\n return date;\n }\n }\n\n function sendMessage() {\n if (socket) {\n if (imageMobileName) {\n socket.emit('sendMessage', {\n id: id,\n user: idUser,\n room: 'test',\n email: email,\n location: location,\n content: '',\n type: 'IMAGE',\n full_name: `${firstName} ${lastName}`,\n image_url: imageMobileFile\n });\n }\n if (!imageMobileName) {\n socket.emit('sendMessage', {\n id: id,\n user: idUser,\n room: 'test',\n location: location,\n email: email,\n content: text,\n type: 'TEXT',\n full_name: `${firstName} ${lastName}`\n });\n }\n }\n\n setText('');\n setImageMobileName('');\n setPreviewMobile('');\n setImageMobileFile({\n selectedFile: '',\n type: ''\n });\n }\n const scrollToDiv = () => {\n const elemento = contentRef.current;\n if (elemento) {\n elemento.scrollTo({\n top: Number.MAX_SAFE_INTEGER,\n behavior: 'smooth'\n });\n }\n };\n\n return (\n \n
    \n handleScroll()}\n style={{ scrollBehavior: 'smooth' }}\n >\n {/*loading &&
    */}\n\n {data && (\n <>\n {Object.keys(messageDateFilter()).map((dataT) => (\n
    \n \n
    \n \n

    {dateFormat(dataT.slice(0, 10))}

    \n
    \n
    \n \n {messageDateFilter()[dataT].map((message: Message) => (\n <>\n \n \n \n {' '}\n {message.image_url && (\n \n )}\n \n \n {message?.full_name_remetente}\n \n

    {message.content}

    \n \n {moment(message.createdAt).format(\n 'hh:mm A'\n )}\n \n
    \n {message.id_remetente !== 'ME1' && (\n {message?.full_name_remetente[0]}\n )}\n \n {message.id_remetente === 'ME1' && (\n {message?.full_name_remetente[0]}\n )}\n \n \n \n ))}\n
    \n \n ))}\n \n )}\n \n {(!admin || email=== 'fegmaster@fegllc.com') && (\n \n
    \n fileSelectMobile(event.target.files)}\n style={{ display: `${imageMobileName ? 'initial' : 'none'}` }}\n />\n \n
    \n {imageMobileName && (\n {\n setImageMobileName('');\n setPreviewMobile('');\n setImageMobileFile({\n selectedFile: '',\n type: ''\n });\n }}\n >\n CANCEL\n \n )}\n {!imageMobileName && (\n <>\n setText(e.target.value)}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n sendMessage();\n }\n }}\n />\n \n )}\n sendMessage()}>Send \n \n
    \n )}\n \n
    \n );\n};\n\nexport default UserMessagesChat;\n","import React, { useEffect, useState } from 'react';\nimport {\n Container,\n ListLocations,\n LocationGroup,\n HeaderChat,\n ChatUserLocation,\n FilterContainer,\n Informations,\n InformationsContent\n} from './styled';\nimport axios from 'src/services/axios';\n\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport UserMessagesChat from 'src/components/userMessagesChat';\n\nimport { Avatar, Button, MenuItem, Select } from '@material-ui/core';\n\ninterface User {\n user: string;\n id: string;\n location: string[];\n first_name: string;\n last_name: string;\n email: string;\n user_email?: string;\n}\ninterface Location {\n id: string;\n location_name: string;\n users: User[];\n}\n\nconst UserLocationChat: React.FC = () => {\n const history = useHistory();\n const { id } = useParams();\n const [currentMessage, setCurrentMessage] = useState();\n const [currentLocation, setCurrentLocation] = useState();\n const [locationName, setLocationName] = useState('');\n const [informationOpen, setInformationOpen] = useState(false);\n const [locations, setLocations] = useState([]);\n const email = localStorage.getItem('email');\n\n const [admin, setAdmin] = useState(false);\n const [users, setUsers] = useState([]);\n\n useEffect(() => {\n setCurrentLocation(locations[0]);\n const locationId = localStorage.getItem('location_id');\n axios\n .get(`/api/v1/location-messaging/users/${email}/${locationId}`, {\n timeout: 0\n })\n .then((res) => {\n setAdmin(res.data.admin);\n setLocations(res.data.locations);\n });\n }, []);\n\n useEffect(() => {\n if (id === '0') {\n } else {\n setLocationName(id === '0' ? locations[0].id : id);\n setCurrentLocation(\n id === '0'\n ? locations[0]\n : locations.find((location) => `${location.id}` === id)\n );\n console.log(locations[0]);\n axios\n .get(\n `/api/v1/location-messaging/location/find/${\n id === '0'\n ? locations[0].id\n : locations?.find((location) => `${location.id}` === id)?.id\n }`,\n {\n timeout: 0\n }\n )\n .then((res) => {\n setUsers(res.data);\n });\n }\n }, [id]);\n\n useEffect(() => {\n if (locations.length > 0) {\n setLocationName(id === '0' ? locations[0].id : id);\n\n setCurrentLocation(\n id === '0'\n ? locations[0]\n : locations.find((location) => `${location.id}` === id)\n );\n\n axios\n .get(\n `/api/v1/location-messaging/location/find/${\n id === '0'\n ? locations[0].id\n : locations?.find((location) => `${location.id}` === id)?.id\n }`,\n {\n timeout: 0\n }\n )\n .then((res) => {\n setUsers(res.data);\n });\n }\n }, [locations]);\n\n const handleSelectChange = async (event: any) => {\n const target = locations.find(\n (locationTarget) => locationTarget.id === event.target.value\n );\n history.push(`/locations/chat/${event.target.value}`);\n };\n\n return (\n \n \n \n \n {locations?.map((item) => (\n \n {item.location_name}: {item.id}\n \n ))}\n \n \n \n {currentLocation?.users\n ?.filter(\n (user: any) => user.active === 1 || user.user_status === 'ACTIVE'\n )\n ?.map((user: any) => {\n return (\n {\n setCurrentMessage(user);\n setInformationOpen(!informationOpen);\n }}\n >\n {user.first_name[0]}\n
    \n

    \n {user.first_name} {user.last_name}\n

    \n
    \n \n );\n })}\n\n {users\n ?.filter(\n (user: any) => user.active === 1 || user.user_status === 'ACTIVE'\n )\n ?.map((user: any) => {\n return (\n {\n setCurrentMessage(user);\n setInformationOpen(!informationOpen);\n }}\n >\n {user.first_name[0]}\n \n
    \n

    \n {user.first_name} {user.last_name}\n

    \n
    \n \n );\n })}\n
    \n\n \n \n

    {currentLocation?.location_name}

    \n {/**/}\n
    \n \n
    \n {informationOpen && (\n \n \n
    \n {currentMessage?.first_name[0]&& currentMessage?.first_name[0]}\n

    {currentMessage?.first_name}

    \n
    \n

    Location: {currentLocation?.location_name}

    \n

    \n Email: {currentMessage?.email || currentMessage?.user_email}\n

    \n
    \n
    \n
    \n \n
    \n )}\n
    \n );\n};\n\nexport default UserLocationChat;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const Container = styled.div`\n width: 86%;\n margin: 0 auto;\n display: flex;\n gap: 10px;\n flex-direction: column;\n`;\n\nexport const SubContainer = styled.div`\n border: 1px solid #ccc;\n .header {\n display: flex;\n justify-content: space-between;\n cursor: pointer;\n svg {\n color: ${Theme.primary};\n }\n }\n label {\n color: ${Theme.primary};\n font-weight: bold;\n }\n padding: 10px;\n`;\n\nexport const Btn = styled.button`\n background-color: ${Theme.primary};\n border: none;\n color: white;\n padding: 8px;\n cursor: pointer;\n margin-bottom: 10px;\n`;\n","import React, { useMemo } from 'react';\nimport { useTable, useGlobalFilter } from 'react-table';\nimport styled from 'styled-components';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, react/prop-types\n\nconst Container = styled.div`\n /* Estilizando a tabela */\n width: 100%;\n input {\n padding: 6px;\n }\n table {\n border-collapse: collapse;\n width: 100%;\n margin: 20px 0;\n font-family: Arial, sans-serif;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n }\n\n /* Estilizando o cabeçalho da coluna */\n th {\n background-color: #f2f2f2;\n color: #333;\n font-weight: bold;\n text-align: left;\n padding: 10px;\n }\n\n /* Estilizando as células da tabela */\n td {\n padding: 10px;\n text-align: left;\n }\n\n /* Estilizando as linhas alternadas para melhor legibilidade */\n tr:nth-child(even) {\n background-color: #f5f5f5;\n }\n\n /* Estilizando as linhas ao passar o mouse */\n tr:hover {\n background-color: #e0e0e0;\n }\n`;\n\nconst TableX = ({ columns, data }) => {\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n state: { globalFilter },\n setGlobalFilter\n } = useTable(\n {\n columns,\n data\n },\n useGlobalFilter\n );\n\n const handleFilterChange = (e) => {\n const value = e.target.value || undefined;\n setGlobalFilter(value);\n };\n\n return (\n \n \n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n ))}\n \n ))}\n \n \n {rows.map((row) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => {\n return (\n \n );\n })}\n \n );\n })}\n \n
    \n {column.render('Header')}\n
    \n {cell.render('Cell')}\n
    \n
    \n );\n};\n\nexport default TableX;\n","import { Pagination } from \"@material-ui/lab\";\nimport React from \"react\";\n\n\nexport interface PropsMetaData {\n first: number;\n before: number;\n current: number;\n next: number;\n last: number;\n}\nexport interface Props {\n meta: PropsMetaData;\n setState: (prop : number) => void;\n}\n\nexport function PaginationComp ({meta, setState}: Props): React.ReactElement {\n\n\n\n return (\n setState(p)} />\n )\n}","import React, { useEffect, useState } from 'react';\nimport { Btn, Container } from './styled';\nimport api from 'src/services/axios';\nimport { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\nimport TableX from './table';\nimport { BeatLoader } from 'react-spinners';\nimport { PaginationComp, Props, PropsMetaData } from 'src/components/Pagination';\nconst image = localStorage.getItem('image_url');\n\nconst ChatLog = styled.div`\n height: 450px;\n padding: 10px;\n overflow-y: scroll;\n display: flex;\n flex-direction: column;\n width: 100%;\n word-wrap: break-word;\n display: none;\n &.active {\n display: flex;\n }\n -webkit-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n -moz-box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.75);\n`;\ninterface DataLogs {\n content: string;\n conversation: Conversation;\n id: string;\n created_at: string;\n}\ninterface Messages {\n role_id: number;\n content: string;\n}\n\ninterface Conversation {\n name: string;\n messages: Messages[];\n}\ntype PropsStyle = {\n role: any;\n};\n\nconst ChatMessage = styled.div`\n display: flex;\n word-wrap: break-word;\n width: 100%;\n .active {\n margin: 0 0 0 auto;\n div {\n background-color: ${(props: PropsStyle) =>\n props.role === 1 ? `${Theme.primary}` : '#fff'};\n color: ${Theme.secondary};\n flex-direction: row-reverse;\n }\n }\n div {\n display: flex;\n gap: 20px;\n word-wrap: break-word;\n flex-direction: ${(props: PropsStyle) =>\n props.role === 1 ? 'initial' : 'row-reverse'};\n div {\n display: flex;\n background-color: #e53935;\n width: 100%;\n margin: 10px 0;\n word-wrap: break-word;\n max-width: max-content;\n background-color: ${Theme.light};\n padding: 10px;\n border-radius: ${(props) =>\n props.role === 1 ? '10px 10px 0 10px' : '10px 10px 10px 0'};\n }\n img {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n }\n }\n`;\n\nexport default function LogsAskFEG(): React.ReactElement {\n const [data, setData] = useState();\n const [openTable, setOpenTable] = useState([]);\n const [loading, setLoading] = useState(false)\n const [metaData, setMetaData] = useState({before: 0, current: 1, first: 0, last: 0, next: 0})\n const [currentPage, seCurrentPage] = useState(1)\n\n\n \n function getLogs() {\n setLoading(true)\n api\n .get(\n `https://openai.fegsystem.com/unsatisfactory-answers/?per_page=50&page=${currentPage}`,\n { timeout: 0 }\n )\n .then((res) => {\n setData(res.data.data.reverse());\n setMetaData({\n first: res.data.meta.first_page,\n last: res.data.meta.last_page,\n current: res.data.meta.current_page,\n next: res.data.meta.next_page\n })\n setLoading(false)\n });\n }\n \n function handleTable(index: number) {\n const filtered = openTable.find((value) => value === index);\n\n if (filtered) {\n const removeIndex = openTable.filter((value) => value !== index);\n if (removeIndex) {\n setOpenTable([...removeIndex]);\n }\n } else {\n setOpenTable([index, ...openTable]);\n }\n }\n\n function checkVisibleTable(index: number) {\n const isVisible = openTable.find((value) => value === index);\n\n if (isVisible) {\n return true;\n } else {\n return false;\n }\n }\n\n function transformarLinksEmHTML(texto: string) {\n // Expressão regular para encontrar links\n const regex = /(https?:\\/\\/[^\\s]+)/g;\n const regexEmail = /([\\w.-]+@[a-zA-Z_-]+?\\.[a-zA-Z]{2,6})/g;\n\n // Substitui os links encontrados pelo texto formatado\n const textoFormatado = texto.replace(regex, '$1');\n const dataFormated = textoFormatado.replace(\n regexEmail,\n '$1'\n );\n\n return dataFormated;\n }\n\n useEffect(() => {\n getLogs();\n }, [currentPage]);\n const columns = [\n {\n id: 'idUnique', // add unique id here\n Header: 'Id',\n accessor: 'id'\n },\n {\n id: 'CreatedDate', // add unique id here\n Header: 'Created',\n accessor: 'created_at',\n Cell: ({ cell: { value } }: { cell: { value: string } }) => {\n return <>{value.split('T')[0]};\n }\n },\n {\n id: 'Content', // add unique id here\n Header: 'content',\n accessor: 'content'\n },\n {\n Header: 'Chat',\n accessor: 'conversation',\n // eslint-disable-next-line react/display-name, react/prop-types, @typescript-eslint/no-unused-vars\n Cell: ({ cell: { value, row } }: { cell: { value: any, row:any } }) => {\n return (\n <>\n \n handleTable(row.id)}>\n {checkVisibleTable(row.id) ? 'Close' : 'View'}\n \n handleTable(row.id)}\n className={checkVisibleTable(row.id) ? 'active' : ''}\n >\n {value.messages.map((message: any) => {\n return (\n <>\n \n \n \n \n \n {message.role_id !== 1 && (\n \n )}\n {message.role_id === 1 && (\n \n )}\n \n \n \n );\n })}\n \n \n );\n }\n }\n ];\n\n return (\n \n

    Chat Analytics

    \n {loading && (\n \n )}\n\n \n\n {data && }\n
    \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nconst CardContainer = styled.div`\n width: 90%;\n margin: 40px auto;\n min-height: 100%;\n display: flex;\n min-height: 80vh;\n gap: 40px;\n @media (max-width: 768px) {\n flex-direction: column;\n }\n img.img-one {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 300px;\n height: 300px;\n }\n img.img-two {\n position: absolute;\n bottom: 0;\n right: 90px;\n width: 250px;\n height: 250px;\n }\n`;\n\nconst QuestionContainer = styled.div`\n width: 50%;\n padding: 20px 26px;\n margin: 0 50px;\n display: flex;\n height: min-content;\n\n backdrop-filter: blur(10px);\n border-radius: 8px;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n flex-direction: column;\n align-items: center;\n justify-content: center;\n @media (max-width: 768px) {\n width: 90%;\n margin: 0 auto;\n margin-top: 20px;\n }\n .task {\n display: flex;\n flex-direction: column;\n\n width: 100%;\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n }\n p.text-correction-true {\n color: #39e75f;\n font-size: 16px;\n font-weight: bold;\n margin: 20px 5px;\n }\n p.text-correction-false {\n color: tomato;\n font-size: 16px;\n font-weight: bold;\n margin: 20px 5px;\n }\n h1 {\n color: ${Theme.primary};\n font-size: 24px;\n margin-bottom: 32px;\n }\n .card-responses {\n display: grid;\n grid-template-columns: 1fr;\n gap: 18px;\n width: 100%;\n }\n .responses {\n background-color: white;\n padding: 20px;\n width: 100%;\n border-radius: 12px;\n border: 2px solid #efefef;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n color: #333;\n font-size: 20px;\n }\n .responses.selected {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid green !important;\n }\n .responses.correct {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n }\n\n .responses.incorrect {\n background-color: #f1f1f1f1; /* Light red /\ncolor: #721c24; / Dark red text */\n border: 1px solid #fefefe;\n }\n\n .responses.blueTest {\n background-color: #fabec0; /* Light blue for selected */\n color: #e43d40;\n border: 1px solid #f85c70 !important;\n }\n li {\n text-decoration: none;\n list-style: none;\n }\n`;\n\nconst PontuationContainer = styled.div`\n width: 50%;\n margin: 0 50px;\n display: flex;\n height: min-content;\n flex-direction: column;\n align-items: center;\n border-radius: 8px;\n backdrop-filter: blur(10px);\n\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n padding: 26px;\n\n @media (max-width: 768px) {\n width: 90%;\n margin-top: 20px;\n margin: 0 auto;\n }\n .img-pontuation {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n gap: 26px;\n\n div.position-place {\n position: relative;\n p {\n background-color: #d4edda;\n padding: 0;\n margin: 0 auto;\n border-radius: 50%;\n width: 27px;\n height: 27px;\n font-weight: bold;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -5px;\n font-size: 20px;\n color: white;\n }\n\n img {\n width: 60px;\n height: 60px;\n padding: 4px;\n border-radius: 50%;\n border: 4px solid #d4edda;\n }\n }\n div.place-1 {\n p {\n background-color: gold !important;\n font-size: 24px;\n }\n img {\n border: 4px solid gold;\n width: 65px;\n height: 65px;\n }\n }\n div.place-2 {\n p {\n background-color: silver !important;\n font-size: 22px;\n }\n img {\n border: 4px solid silver;\n width: 55px;\n height: 55px;\n }\n }\n div.place-3 {\n p {\n background-color: #cd7f32 !important;\n font-size: 20px;\n }\n img {\n border: 4px solid #cd7f32;\n width: 50px;\n height: 50px;\n }\n }\n }\n .header-pontuation {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n margin-bottom: 16px;\n img.img-troph {\n width: 80px;\n height: 80px;\n margin: 0 16px;\n @media (max-width: 768px) {\n width: 55px;\n height: 55px;\n }\n }\n }\n div.header-information {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n p {\n font-size: 14px;\n color: #333;\n }\n }\n h1.score-board-header {\n color: ${Theme.primary};\n font-size: 42px;\n margin-bottom: 8px;\n @media (max-width: 768px) {\n font-size: 24px;\n }\n }\n .scoreboard-container {\n background-color: #f5f5f5; /* Light grey background */\n width: 100%;\n\n border-radius: 8px;\n }\n td.name-td {\n font-size: 14px;\n font-weight: bold;\n }\n tr {\n font-weight: bold;\n font-size: 16px;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n }\n\n .header {\n background-color: #000080; /* Navy blue header */\n color: #ffffff; /* White text */\n width: 100%;\n margin: 0;\n\n display: flex;\n align-items: center;\n\n text-align: center;\n }\n\n .user-score {\n background-color: #e0f7fa; /* Light teal */\n color: #000080; /* Navy blue text */\n padding: 10px;\n border-radius: 5px;\n\n text-align: center;\n margin-top: 0px;\n }\n\n .score-table {\n width: 100%;\n background-color: #ffffff; /* White table background */\n color: #333333; /* Dark grey text */\n border-radius: 8px;\n overflow: hidden;\n }\n\n .score-table th {\n background-color: #000080; /* Navy blue header */\n color: #ffffff; /* White text */\n padding: 10px;\n @media (max-width: 768px) {\n }\n }\n\n .score-table th,\n .score-table td {\n padding: 10px;\n\n text-align: center;\n }\n\n .score-table td {\n padding: 10px;\n text-align: center;\n }\n\n .score-table tbody tr:nth-child(even) {\n background-color: #f2f2f2; /* Light grey for even rows */\n }\n\n .score-table tbody tr:nth-child(odd) {\n background-color: #ffffff; /* White for odd rows */\n }\n`;\n\nexport { CardContainer, QuestionContainer, PontuationContainer };\n","import React, { useEffect, useState } from 'react';\nimport {\n CardContainer,\n PontuationContainer,\n QuestionContainer\n} from './styled';\nimport api from 'src/services/axios';\nimport troph from 'src/images/troph.png';\nimport { AnimatePresence, motion } from 'framer-motion';\n\ninterface Options {\n option: string;\n id: string;\n}\n\ninterface Question {\n id: string;\n question_answer: string;\n options: Options[];\n correct_option_id: string;\n date: string;\n active: boolean;\n}\ninterface ResponseQuestion {\n user_id: string;\n task_id: string;\n responses_task_id: string;\n}\n\ninterface Ranking {\n name: string;\n correct: number;\n total: number;\n url_image: string;\n polls_answered: number;\n}\nexport default function Trivia(): JSX.Element {\n const [trivia, setTrivia] = useState();\n const [answers, setAnswers] = useState();\n const [responseTrivia, setResponseTrivia] = useState(false);\n const [userScore, setUserScore] = useState(0);\n const [ranking, setRanking] = useState([]);\n const [realCorrectOption, setRealCorrectOption] = useState('');\n const [userResponseHistory, setUserResponseHistory] = useState('');\n const [userId, setUserId] = useState('');\n const [historyQuestion, setHistoryQuestion] = useState(false);\n const [noHaveQuestion, setNoHaveQuestion] = useState(false);\n\n function getTrivia(userIdParam: string) {\n api\n .post('/api/v1/trivia/question', {\n customers_id: userIdParam ? userIdParam : userId\n })\n .then((res) => {\n if (res.data?.history_question?.id) {\n setHistoryQuestion(true);\n setTrivia(res.data.question);\n setRealCorrectOption(res.data.question.correct_option_id);\n setUserResponseHistory(\n res.data.history_question.response_user_question_id\n );\n } else if (res.data.question) {\n setTrivia(res.data.question);\n } else {\n setNoHaveQuestion(true);\n }\n });\n }\n function getTriviaStatus(userId: string) {\n api.post('/api/v1/trivia/status', { user_id: userId }).then((res) => {\n setUserScore(res.data.usersRanking.position);\n setRanking(res.data.usersRanking.ranking);\n });\n }\n useEffect(() => {\n async function getUserId() {\n const userId = await localStorage.getItem('id');\n if (userId) {\n getTrivia(userId);\n setUserId(userId);\n getTriviaStatus(userId);\n }\n }\n getUserId();\n }, []);\n const currentDate = new Date();\n\n // Função para calcular o último dia do mês a partir de uma data\n const getLastDayOfMonth = (date: Date) => {\n const year = date.getFullYear();\n const month = date.getMonth() + 1; // Os meses começam em 0 no objeto Date\n const lastDate = new Date(year, month, 0); // Dia 0 do próximo mês é o último dia do mês atual\n return lastDate.toISOString().split('T')[0]; // Retorna a data no formato YYYY-MM-DD\n };\n\n // Calcula o último dia do mês atual\n const lastDay = getLastDayOfMonth(currentDate);\n\n const handleOptionChange = (questionId: string, optionId: string) => {\n setAnswers({\n user_id: 'test',\n task_id: questionId,\n responses_task_id: optionId\n });\n };\n\n const handleSubmit = () => {\n api\n .post('/api/v1/trivia/pontuation-user', {\n response_user_question_id: answers?.responses_task_id,\n question_id: trivia?.id,\n customers_id: userId\n })\n .then((res) => {\n window.location.reload();\n });\n };\n const item = {\n hidden: { y: 20, opacity: 0 },\n visible: {\n y: 0,\n opacity: 1\n }\n };\n const container = {\n hidden: { opacity: 1, scale: 0 },\n visible: {\n opacity: 1,\n scale: 1,\n transition: {\n delayChildren: 0.3,\n staggerChildren: 0.26\n }\n }\n };\n function QuestionListEnum(num: number) {\n let questEnum = '';\n switch (num) {\n case 0:\n questEnum = 'A';\n break;\n case 1:\n questEnum = 'B';\n break;\n case 2:\n questEnum = 'C';\n break;\n case 3:\n questEnum = 'D';\n break;\n case 4:\n questEnum = 'E';\n break;\n case 5:\n questEnum = 'F';\n break;\n default:\n }\n return questEnum;\n }\n\n const hasSelectedOption = answers?.responses_task_id !== undefined;\n return (\n \n \n {historyQuestion ? (\n <>\n \n {trivia ? (\n <>\n
    \n \n {trivia?.question_answer}\n \n \n {trivia.options.map((option, index) => (\n \n

    \n {QuestionListEnum(index)} - {option.option}\n

    \n \n ))}\n \n {realCorrectOption === userResponseHistory ? (\n

    \n Congrats! You got the question correct and 1 point. Come\n back tomorrow for a new Trivia question.\n

    \n ) : (\n

    \n Sorry, you got it wrong! Come back tomorrow for a new\n Trivia question!\n

    \n )}\n
    \n \n ) : noHaveQuestion ? (\n

    No questions available

    \n ) : (\n

    loading questions...

    \n )}\n
    \n \n ) : (\n <>\n \n {trivia ? (\n <>\n
    \n \n {trivia?.question_answer}\n \n \n {trivia.options.map((option, index) => (\n \n handleOptionChange(trivia.id, option.id)\n }\n >\n

    \n {QuestionListEnum(index)} - {option.option}\n

    \n \n ))}\n \n {responseTrivia &&\n realCorrectOption === answers?.responses_task_id ? (\n

    \n Congrats! You got the question correct and 1 point. Come\n back tomorrow for a new Trivia question.\n

    \n ) : responseTrivia && answers?.responses_task_id ? (\n

    \n Sorry, you got it wrong! Come back tomorrow for a new\n Trivia question!\n

    \n ) : (\n ''\n )}\n {hasSelectedOption && !responseTrivia && (\n \n Send Responses 🎊\n \n )}\n
    \n \n ) : noHaveQuestion ? (\n

    No questions available

    \n ) : (\n

    loading questions...

    \n )}\n
    \n \n )}\n\n \n
    \n
    \n

    Scoreboard

    \n

    This scoreboard expires on {lastDay}

    \n
    \n\n \n
    \n\n
    \n
    \n

    FEG HOME SCOREBOARD

    \n
    \n

    Your Rank: {userScore}

    \n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n {ranking &&\n Object.values(ranking).map((data, index) => (\n \n \n
    \n

    {index + 1}

    \n \n
    \n
    \n {data.name}\n {data.polls_answered}\n {data.correct}\n\n {data.total}\n \n ))}\n
    \n
    POSUSER NAMEPOLLSPTSTotal
    \n
    \n
    \n
    \n
    \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const CreateQuestionContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 50%;\n input.answer {\n width: 100%;\n margin-top: 8px;\n }\n input.input-create-question {\n padding: 8px;\n\n border: none;\n border-radius: 8px;\n background-color: #efefef;\n }\n label {\n font-weight: bold;\n }\n input.calendar-select-date {\n width: 100%;\n padding: 8px;\n background-color: #efefef;\n border: none;\n margin-top: 8px;\n }\n div.input-option {\n width: 100%;\n display: flex;\n gap: 8px;\n margin-top: 8px;\n input.input-create-question {\n flex: 1;\n }\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 9px;\n }\n }\n button.btn-new-option {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n margin-top: 8px;\n border-radius: 9px;\n }\n`;\n\nexport const CalendarTrivia = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\nexport const SelectOption = styled.div`\n display: flex;\n\n width: 86%;\n margin: 20px auto;\n\n @media (max-width: 768px) {\n padding-top: 20px;\n width: 98%;\n }\n gap: 8px;\n font-family: 'Roboto', sans-serif;\n div {\n display: flex;\n gap: 26px;\n\n @media (max-width: 1268px) {\n gap: 15px;\n flex-wrap: wrap;\n }\n }\n button {\n color: #909090;\n background-color: white;\n font-family: 'Roboto', sans-serif;\n border: none;\n font-weight: bold;\n padding: 10px;\n border-radius: 8px;\n margin: 0;\n width: max-content;\n cursor: pointer;\n h1 {\n font-size: 20px;\n }\n &.active {\n color: white;\n background-color: ${Theme.primary};\n }\n @media (max-width: 768px) {\n h1 {\n margin: 0;\n padding: 0;\n font-size: 14px;\n }\n }\n }\n`;\n\nexport const QuestionContainer = styled.div`\n width: 50%;\n\n height: min-content;\n margin: 0 auto;\n display: flex;\n backdrop-filter: blur(10px);\n border-radius: 12px;\n background-color: #f8f9fa;\n flex-direction: column;\n margin-bottom: 80px;\n @media (max-width: 768px) {\n width: 100%;\n }\n .task {\n display: flex;\n flex-direction: column;\n h1 {\n background-color: ${Theme.primary};\n color: ${Theme['secondary-light']};\n padding-bottom: 16px;\n margin-bottom: 10px;\n }\n width: 100%;\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n }\n p.text-correction-true {\n color: #39e75f;\n font-size: 13px;\n font-weight: bold;\n padding: 18px;\n padding-top: 0;\n }\n p.text-correction-false {\n color: tomato;\n font-size: 13px;\n font-weight: bold;\n margin: 20px 5px;\n padding: 18px;\n padding-bottom: 0;\n }\n h1 {\n font-size: 22px;\n font-weight: bold;\n padding: 22px;\n margin: 0;\n margin-bottom: 0;\n color: ${Theme.primary};\n border-radius: 12px 12px 0 0;\n }\n .card-responses {\n display: grid;\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 20px;\n padding-top: 0;\n width: 100%;\n }\n .responses {\n background-color: white;\n padding: 20px;\n width: 100%;\n border-radius: 12px;\n border: 2px solid #efefef;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n color: #333;\n font-size: 14px;\n }\n .responses.selected {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid green !important;\n }\n .responses.correct {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n }\n\n .responses.incorrect {\n background-color: #f1f1f1f1; /* Light red /\n border: 1px solid #fefefe;\n }\n\n .responses.blueTest {\n background-color: #fabec0; /* Light blue for selected */\n color: #e43d40;\n border: 1px solid #f85c70 !important;\n }\n li {\n text-decoration: none;\n list-style: none;\n }\n div.btn-actions {\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n max-width: 200px;\n margin: 0 auto;\n margin: 8px;\n }\n button.btn-delete {\n background-color: red;\n color: white;\n }\n }\n`;\nexport const AdminTriviaContainer = styled.div`\n display: flex;\n width: 86%;\n margin: 0 auto;\n\n @media (max-width: 768px) {\n display: flex;\n width: 94%;\n flex-direction: column;\n margin: 0 auto;\n }\n width: 86%;\n margin: 0 auto;\n gap: 20px;\n .react-calendar {\n width: 100%;\n }\n`;\nexport const CallendarFull = styled.div`\n width: 50%;\n @media (max-width: 768px) {\n width: 100%;\n }\n .fc {\n width: 100%;\n height: 100%;\n max-height: 600px;\n }\n\n .task-question {\n width: 100%;\n background: #1260a7;\n font-weight: bold;\n border: none;\n padding: 5px;\n color: white;\n }\n .task-poll {\n width: 100%;\n background: #b400bd;\n border: none;\n font-weight: bold;\n padding: 5px;\n }\n .task-news {\n width: 100%;\n background: #e7262b;\n color: white;\n border: none;\n font-weight: bold;\n padding: 5px;\n }\n .fc-daygrid-event-dot {\n display: none;\n }\n`;\nexport const DivisorScoreboard = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 50%;\n @media (max-width: 768px) {\n width: 100%;\n }\n div.score {\n width: 50%;\n height: 100%;\n background-color: #f8f9fa;\n border-radius: 12px;\n padding: 20px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n }\n`;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const CreateQuestionContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 20px;\n input.answer {\n width: 100%;\n margin-top: 8px;\n }\n label {\n font-weight: bold;\n }\n input.input-create-question {\n padding: 8px;\n background-color: #efefef;\n border: none;\n border-radius: 8px;\n }\n input.calendar-select-date {\n width: 100%;\n padding: 8px;\n background-color: #efefef;\n border: none;\n margin-top: 8px;\n border-radius: 8px;\n }\n div.input-option {\n width: 100%;\n display: flex;\n gap: 8px;\n\n margin-top: 8px;\n input.input-create-question {\n flex: 1;\n }\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n }\n }\n button.btn-new-option {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n margin-top: 8px;\n border-radius: 8px;\n }\n`;\n","import React, { useState } from 'react';\n\nimport { CreateQuestionContainer } from './styled';\nimport api from 'src/services/axios';\ninterface Options {\n option: string;\n id: string;\n}\ninterface Option {\n id: number | string;\n text: string;\n}\ninterface Polls {\n id?: string;\n polls_answer: string;\n options: Options[];\n date_end: string;\n date_start: string;\n active: boolean;\n}\nexport default function CreatePoll() {\n const [question, setQuestion] = useState('');\n const [options, setOptions] = useState([{ id: 1, text: '' }]);\n const [correctAnswer, setCorrectAnswer] = useState(\n null\n );\n const [date, setDate] = useState('');\n const [selectedQuestion, setSelectedQuestion] = useState();\n const [isEditing, setIsEditing] = useState(false);\n const [dateStart, setDateStart] = useState('');\n const [dateEnd, setDateEnd] = useState('');\n function formatedOption() {\n if (isEditing) {\n return options;\n } else {\n return options.map((opt) => {\n return { option: opt.text };\n });\n }\n }\n const handleAddOption = () => {\n setOptions([...options, { id: options.length + 1, text: '' }]);\n };\n const handleSaveQuestion = () => {\n const newQuestion = {\n polls_answer: question,\n options: formatedOption(),\n date_end: dateEnd,\n date_start: dateStart\n };\n api\n .post('/api/v1/polls/create', newQuestion)\n .then(() => {\n clearInputs();\n window.location.reload();\n })\n .catch((error) => {\n console.log(error);\n });\n setIsEditing(false);\n };\n\n const handleRemoveOption = (id: number | string) => {\n setOptions(options.filter((opt) => opt.id !== id));\n };\n\n const clearInputs = () => {\n setQuestion('');\n setOptions([{ id: 1, text: '' }]);\n setCorrectAnswer(null);\n setDate('');\n setIsEditing(false);\n };\n\n return (\n \n

    Polls

    \n\n
    \n \n setQuestion(e.target.value)}\n className='answer input-create-question'\n />\n
    \n\n
    \n \n {options.map((option, index) => (\n
    \n {\n const newOptions = options.map((item) =>\n item.id === option.id\n ? { ...item, text: e.target.value }\n : item\n );\n setOptions(newOptions);\n }}\n className='input-create-question'\n placeholder={`Option ${index + 1}`}\n />\n\n {!isEditing && (\n handleRemoveOption(option.id)}\n className='remove-btn'\n >\n Remove\n \n )}\n
    \n ))}\n\n \n
    \n {!isEditing && (\n
    \n \n setDateStart(e.target.value)}\n className='calendar-select-date'\n />\n
    \n )}\n {!isEditing && (\n
    \n \n setDateEnd(e.target.value)}\n className='calendar-select-date'\n />\n
    \n )}\n\n \n Publish/Shedule Poll\n \n\n {isEditing && }\n
    \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const CreateQuestionContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 20px;\n input.answer {\n width: 100%;\n margin-top: 8px;\n }\n button.gradiente {\n background: rgb(255, 255, 0);\n background: linear-gradient(\n 310deg,\n rgba(255, 255, 0, 1) 0%,\n rgba(248, 45, 151, 1) 35%,\n rgba(1, 196, 231, 1) 100%\n );\n font-weight: bold;\n font-family: Roboto, sans-serif;\n padding: 10px;\n margin-top: 20px;\n font-size: 17px;\n color: white;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n gap: 10px;\n box-shadow: 1px 1px 5px 1px rgba(0, 0, 0, 0.2);\n }\n input.input-create-question {\n padding: 8px;\n\n border: none;\n border-radius: 8px;\n background-color: #efefef;\n }\n label {\n font-weight: bold;\n }\n input.calendar-select-date {\n width: 100%;\n padding: 8px;\n background-color: #efefef;\n border: none;\n margin-top: 8px;\n }\n div.input-option {\n width: 100%;\n display: flex;\n gap: 8px;\n margin-top: 8px;\n input.input-create-question {\n flex: 1;\n }\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 9px;\n }\n }\n button.btn-new-option {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n margin-top: 8px;\n border-radius: 9px;\n }\n .react-calendar__month-view__days__day--weekend {\n background-color: white; /* Altere a cor de fundo */\n color: black; /* Cor do texto */\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { FaWandMagicSparkles } from 'react-icons/fa6';\n\nimport { CreateQuestionContainer } from './styled';\nimport DatePicker from 'react-date-picker';\nimport api from 'src/services/axios';\nimport { Theme } from 'src/styles/Theme';\nimport { BeatLoader } from 'react-spinners';\ninterface Option {\n id: number | string;\n text: string;\n}\n\nexport default function CreateQuestion(): JSX.Element {\n const [question, setQuestion] = useState('');\n const [options, setOptions] = useState([{ id: 1, text: '' }]);\n const [correctAnswer, setCorrectAnswer] = useState(\n null\n );\n const [loading, setLoading] = useState(false);\n const [iaGenerated, setIaGenerated] = useState('');\n const [date, setDate] = useState(undefined);\n const [notAvaliableDates, setNotAvaliableDates] = useState([\n new Date()\n ]);\n const [GenerateIaQuestion, setGenerateIaQuestion] = useState(false);\n\n const handleAddOption = () => {\n setOptions([...options, { id: options.length + 1, text: '' }]);\n };\n\n const handleOptionChange = (id: number | string, text: string) => {\n setOptions(options.map((opt) => (opt.id === id ? { ...opt, text } : opt)));\n };\n\n const formatedOption = () => {\n return options.map((opt) => ({ option: opt.text }));\n };\n\n const handleSaveQuestion = () => {\n if (!date) {\n alert('Please, select a date to publish the question');\n return;\n }\n if (question === '') {\n alert('Please, type a question answer');\n return;\n }\n if (options.length < 2) {\n alert('Please, add at least 2 options');\n return;\n }\n if (correctAnswer === null) {\n alert('Please, select a correct answer');\n return;\n }\n\n const newQuestion = {\n question: {\n question_answer: question,\n options: formatedOption(),\n correct_option_id: correctAnswer?.toString() || ''\n },\n date: date.toISOString()\n };\n\n api.post('/api/v1/trivia/create', newQuestion).then(() => {\n clearInputs();\n window.location.reload();\n });\n };\n\n function generateIaQuestion() {\n setLoading(true);\n api\n .get('https://openai.fegsystem.com/trivia', { timeout: 0 })\n .then((res) => {\n setLoading(false);\n if (res.data.result.answer) {\n setGenerateIaQuestion(true);\n setIaGenerated(res.data.result.answer);\n }\n })\n .catch((err) => {\n setLoading(false);\n console.log(err);\n });\n }\n useEffect(() => {\n api.get('/api/v1/trivia/not-avaliable-dates').then((res) => {\n const dates = res.data.dates?.map((date: string) => new Date(date));\n console.log(dates);\n setNotAvaliableDates(dates);\n });\n }, []);\n\n const handleRemoveOption = (id: number | string) => {\n setOptions(options.filter((opt) => opt.id !== id));\n if (correctAnswer === id) {\n setCorrectAnswer(null);\n }\n };\n\n const clearInputs = () => {\n setQuestion('');\n setOptions([{ id: 1, text: '' }]);\n setCorrectAnswer(null);\n setDate(undefined);\n };\n\n const disableDates = ({ date }: any) => {\n // Função para adicionar um dia à data\n\n // Verifica se a data está na lista de datas bloqueadas (com 1 dia a mais)\n return notAvaliableDates.some((blockedDate) => {\n const blockedDateWithOneMoreDay = new Date(blockedDate);\n return (\n date.getFullYear() === blockedDateWithOneMoreDay.getFullYear() &&\n date.getMonth() === blockedDateWithOneMoreDay.getMonth() &&\n date.getDate() === blockedDateWithOneMoreDay.getDate()\n );\n });\n };\n\n return (\n \n

    Trivia

    \n\n
    \n \n setQuestion(e.target.value)}\n placeholder='Type your question here'\n />\n
    \n\n
    \n \n {options.map((option, index) => (\n
    \n handleOptionChange(option.id, e.target.value)}\n placeholder={`Option ${index + 1}`}\n />\n {\n setCorrectAnswer(index + 1);\n }}\n />\n\n handleRemoveOption(option.id)}\n className='remove-btn'\n >\n Remove\n \n
    \n ))}\n\n \n
    \n\n
    \n

    Date to Publish:

    \n {\n if (value instanceof Date) {\n setDate(value);\n }\n }}\n tileDisabled={disableDates}\n tileClassName={({ date, view }) => {\n if (view === 'month') {\n // Garante que estamos na visão mensal\n const day = date.getDay();\n if (day === 0 || day === 6) {\n return 'weekend'; // Adiciona uma classe personalizada\n }\n }\n return null;\n }}\n />\n
    \n
    \n \n {loading && }\n
    \n {GenerateIaQuestion && (\n
    \n

    \n {iaGenerated.split('\\n').map((line, index) => (\n \n {line}\n
    \n
    \n ))}\n

    \n\n {!loading && (\n generateIaQuestion()}\n >\n Re-Generate\n \n )}\n
    \n )}\n \n Publish/Schedule Question\n \n
    \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const CreateQuestionContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n\n input.answer {\n width: 100%;\n margin-top: 8px;\n }\n input.input-create-question {\n padding: 8px;\n\n border: none;\n border-radius: 8px;\n background-color: #efefef;\n }\n label {\n font-weight: bold;\n }\n input.calendar-select-date {\n width: 100%;\n padding: 8px;\n background-color: #efefef;\n border: none;\n margin-top: 8px;\n }\n div.input-option {\n width: 100%;\n display: flex;\n gap: 8px;\n margin-top: 8px;\n input.input-create-question {\n flex: 1;\n }\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 9px;\n }\n }\n button.btn-new-option {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n margin-top: 8px;\n border-radius: 9px;\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { CreateQuestionContainer } from './styled';\nimport api from 'src/services/axios';\nimport { set } from 'react-ga';\n\ninterface Option {\n id: number | string;\n text: string;\n}\n\ninterface Options {\n option: string;\n id: string;\n}\ninterface Question {\n id: string;\n question_answer: string;\n options: Options[];\n correct_option_id: string;\n date: string;\n active: boolean;\n}\n\ninterface CreateQuestionProps {\n questionEdit?: Question;\n}\n\nexport default function UpdateQuestion({\n questionEdit\n}: CreateQuestionProps): JSX.Element {\n const [question, setQuestion] = useState('');\n const [options, setOptions] = useState([{ id: 1, text: '' }]);\n const [correctAnswer, setCorrectAnswer] = useState(\n null\n );\n const [date, setDate] = useState('');\n\n const handleAddOption = () => {\n setOptions([...options, { id: options.length + 1, text: '' }]);\n };\n\n const handleOptionChange = (id: number | string, text: string) => {\n setOptions(options.map((opt) => (opt.id === id ? { ...opt, text } : opt)));\n };\n\n useEffect(() => {\n if (!questionEdit) return;\n setQuestion(questionEdit.question_answer || '');\n setOptions(\n questionEdit?.options.map((opt) => ({\n id: opt.id,\n text: opt.option\n }))\n );\n setCorrectAnswer(questionEdit?.correct_option_id || '');\n setDate(questionEdit?.date || '');\n }, [questionEdit]);\n\n const handleUpdateQuestion = () => {\n const updatedQuestion = {\n question: {\n id: questionEdit?.id,\n question_answer: question,\n options: options,\n correct_option_id: correctAnswer?.toString() || ''\n },\n date: date\n };\n console.log(updatedQuestion);\n\n api.post('/api/v1/trivia/update', updatedQuestion).then(() => {\n alert('Quizz Updated');\n window.location.reload();\n });\n };\n\n const clearInputs = () => {\n setQuestion('');\n setOptions([{ id: 1, text: '' }]);\n setCorrectAnswer(null);\n setDate('');\n };\n\n return (\n \n

    Trivia

    \n\n
    \n \n setQuestion(e.target.value)}\n placeholder='Type your question here'\n />\n
    \n\n
    \n \n {options.map((option, index) => (\n
    \n handleOptionChange(option.id, e.target.value)}\n placeholder={`Option ${index + 1}`}\n />\n setCorrectAnswer(option.id)}\n />\n
    \n ))}\n\n \n
    \n
    \n \n Cancel\n \n \n Update Question\n \n
    \n
    \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const QuestionContainer = styled.div`\n width: 100%;\n height: min-content;\n margin: 0 auto;\n display: flex;\n backdrop-filter: blur(10px);\n border-radius: 12px;\n background-color: #f8f9fa;\n flex-direction: column;\n margin-bottom: 80px;\n .task {\n display: flex;\n width: 100%;\n flex-direction: column;\n h1 {\n background-color: ${Theme.primary};\n color: ${Theme['secondary-light']};\n padding-bottom: 16px;\n margin-bottom: 10px;\n }\n width: 100%;\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n }\n p.text-correction-true {\n color: #39e75f;\n font-size: 13px;\n font-weight: bold;\n padding: 18px;\n padding-top: 0;\n }\n p.text-correction-false {\n color: tomato;\n font-size: 13px;\n font-weight: bold;\n margin: 20px 5px;\n padding: 18px;\n padding-bottom: 0;\n }\n h1 {\n font-size: 22px;\n font-weight: bold;\n padding: 22px;\n margin: 0;\n margin-bottom: 0;\n color: ${Theme.primary};\n border-radius: 12px 12px 0 0;\n }\n .card-responses {\n display: grid;\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 20px;\n padding-top: 0;\n width: 100%;\n }\n .responses {\n background-color: white;\n padding: 20px;\n width: 100%;\n border-radius: 12px;\n border: 2px solid #efefef;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n color: #333;\n font-size: 14px;\n }\n .responses.selected {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid green !important;\n }\n .responses.correct {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n }\n\n .responses.incorrect {\n background-color: #f1f1f1f1; /* Light red /\n border: 1px solid #fefefe;\n }\n\n .responses.blueTest {\n background-color: #fabec0; /* Light blue for selected */\n color: #e43d40;\n border: 1px solid #f85c70 !important;\n }\n li {\n text-decoration: none;\n list-style: none;\n }\n div.btn-actions {\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n max-width: 200px;\n margin: 0 auto;\n margin: 8px;\n }\n button.btn-delete {\n background-color: red;\n color: white;\n }\n }\n .reschedule {\n margin-left: 15px;\n display: flex;\n button.save {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n max-width: 200px;\n margin: 0 auto;\n margin: 8px;\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { QuestionContainer } from './styled';\nimport { motion } from 'framer-motion';\nimport api from 'src/services/axios';\nimport DatePicker from 'react-date-picker';\ninterface Options {\n option: string;\n id: string;\n}\ninterface Option {\n id: number | string;\n text: string;\n}\ninterface Question {\n id: string;\n question_answer: string;\n options: Options[];\n correct_option_id: string;\n date: string;\n active: boolean;\n}\nexport default function ViewQuestion({\n selectedQuestion,\n handleEditQuestion\n}: {\n selectedQuestion: Question | undefined;\n handleEditQuestion: () => void;\n}): JSX.Element {\n const [scheduleDate, setScheduleDate] = useState(undefined);\n const [notAvaliableDates, setNotAvaliableDates] = useState([\n new Date()\n ]);\n const [reschedule, setReschedule] = React.useState(false);\n const handleDeleteQuestion = () => {\n console.log('Pergunta selecionada:', selectedQuestion);\n if (selectedQuestion) {\n api.delete(`/api/v1/trivia/delete/${selectedQuestion.id}`).then(() => {\n alert('Quizz Deleted');\n window.location.reload();\n });\n }\n };\n const formatedOption = () => {\n return selectedQuestion?.options.map((opt) => ({ option: opt.option }));\n };\n\n const handleSaveQuestion = () => {\n const correctOption = selectedQuestion?.options.findIndex(\n (obj) => obj.id === selectedQuestion?.correct_option_id\n );\n if (correctOption === undefined) return;\n const newQuestion = {\n question: {\n question_answer: selectedQuestion?.question_answer,\n options: formatedOption(),\n correct_option_id: correctOption + 1\n },\n date: scheduleDate\n };\n\n api.post('/api/v1/trivia/create', newQuestion).then(() => {\n window.location.reload();\n });\n };\n useEffect(() => {\n api.get('/api/v1/trivia/not-avaliable-dates').then((res) => {\n const dates = res.data.dates.map((date: string) => new Date(date));\n setNotAvaliableDates(dates);\n });\n }, []);\n\n const disableDates = ({ date }: any) => {\n // Função para adicionar um dia à data\n\n // Verifica se a data está na lista de datas bloqueadas (com 1 dia a mais)\n return notAvaliableDates.some((blockedDate) => {\n const blockedDateWithOneMoreDay = new Date(blockedDate);\n return (\n date.getFullYear() === blockedDateWithOneMoreDay.getFullYear() &&\n date.getMonth() === blockedDateWithOneMoreDay.getMonth() &&\n date.getDate() === blockedDateWithOneMoreDay.getDate()\n );\n });\n };\n\n return (\n <>\n \n
    \n \n {selectedQuestion?.question_answer}\n \n \n {selectedQuestion?.options.map((option, index) => (\n \n

    {option.option}

    \n \n ))}\n \n
    \n {reschedule && (\n
    \n
    \n

    New Date to Publish:

    \n {\n if (value instanceof Date) {\n setScheduleDate(value);\n }\n }}\n tileDisabled={disableDates}\n />\n
    \n \n
    \n )}\n
    \n \n \n \n
    \n
    \n \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nconst PontuationContainer = styled.div`\n width: 100%;\n margin: 0 0;\n display: flex;\n height: min-content;\n flex-direction: column;\n align-items: center;\n border-radius: 8px;\n\n padding: 26px;\n padding-top: 0;\n @media (max-width: 768px) {\n width: 100%;\n padding: 0;\n margin-top: 20px;\n margin: 0 auto;\n }\n\n .box-profile {\n display: flex;\n align-items: center;\n gap: 20px;\n img {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n }\n }\n table {\n overflow-y: scroll;\n }\n .img-pontuation {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n gap: 26px;\n\n div.position-place {\n position: relative;\n p {\n background-color: #d4edda;\n padding: 0;\n margin: 0 auto;\n border-radius: 50%;\n width: 27px;\n height: 27px;\n font-weight: bold;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -5px;\n font-size: 20px;\n color: white;\n }\n\n img {\n width: 60px;\n height: 60px;\n padding: 4px;\n border-radius: 50%;\n border: 4px solid #d4edda;\n }\n }\n }\n .header-pontuation {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n margin-bottom: 16px;\n }\n div.header-information {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n p {\n font-size: 14px;\n color: #333;\n }\n }\n h1.score-board-header {\n color: ${Theme.primary};\n font-size: 22px;\n margin-bottom: 8px;\n @media (max-width: 768px) {\n font-size: 24px;\n }\n }\n .scoreboard-container {\n background-color: #f5f5f5; /* Light grey background */\n width: 100%;\n height: 300px;\n border-radius: 8px;\n overflow-y: scroll;\n }\n td.name-td {\n font-size: 14px;\n font-weight: bold;\n }\n tr {\n font-weight: bold;\n font-size: 16px;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n }\n\n .header {\n background-color: #000080; /* Navy blue header */\n color: #ffffff; /* White text */\n width: 100%;\n margin: 0;\n\n display: flex;\n align-items: center;\n\n text-align: center;\n }\n\n .user-score {\n background-color: #e0f7fa; /* Light teal */\n color: #000080; /* Navy blue text */\n padding: 10px;\n border-radius: 5px;\n\n text-align: center;\n margin-top: 0px;\n }\n\n .score-table {\n width: 100%;\n background-color: #ffffff; /* White table background */\n color: #333333; /* Dark grey text */\n border-radius: 8px;\n }\n\n .score-table th {\n background-color: #000080; /* Navy blue header */\n color: #ffffff; /* White text */\n padding: 10px;\n @media (max-width: 768px) {\n }\n }\n\n .score-table th,\n .score-table td {\n padding: 10px;\n }\n\n .score-table td {\n padding: 10px;\n }\n\n .score-table tbody tr:nth-child(even) {\n background-color: #f2f2f2; /* Light grey for even rows */\n }\n\n .score-table tbody tr:nth-child(odd) {\n background-color: #ffffff; /* White for odd rows */\n }\n`;\n\nexport { PontuationContainer };\n\nexport const QuestionContainer = styled.div`\n width: 100%;\n\n height: min-content;\n margin: 0 auto;\n display: flex;\n backdrop-filter: blur(10px);\n border-radius: 12px;\n background-color: #f8f9fa;\n flex-direction: column;\n margin-bottom: 80px;\n .task {\n display: flex;\n flex-direction: column;\n h1 {\n background-color: ${Theme.primary};\n color: ${Theme['secondary-light']};\n padding-bottom: 16px;\n margin-bottom: 10px;\n }\n width: 100%;\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n }\n p.text-correction-true {\n color: #39e75f;\n font-size: 13px;\n font-weight: bold;\n padding: 18px;\n padding-top: 0;\n }\n p.text-correction-false {\n color: tomato;\n font-size: 13px;\n font-weight: bold;\n margin: 20px 5px;\n padding: 18px;\n padding-bottom: 0;\n }\n h1 {\n font-size: 22px;\n font-weight: bold;\n padding: 22px;\n margin: 0;\n margin-bottom: 0;\n color: ${Theme.primary};\n border-radius: 12px 12px 0 0;\n }\n .card-responses {\n display: grid;\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 20px;\n padding-top: 0;\n width: 100%;\n }\n .responses {\n background-color: white;\n padding: 20px;\n width: 100%;\n border-radius: 12px;\n border: 2px solid #efefef;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n color: #333;\n font-size: 14px;\n }\n .responses.selected {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid green !important;\n }\n .responses.correct {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n }\n\n .responses.incorrect {\n background-color: #f1f1f1f1; /* Light red /\n border: 1px solid #fefefe;\n }\n\n .responses.blueTest {\n background-color: #fabec0; /* Light blue for selected */\n color: #e43d40;\n border: 1px solid #f85c70 !important;\n }\n li {\n text-decoration: none;\n list-style: none;\n }\n div.btn-actions {\n margin-left: 20px;\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n max-width: 200px;\n margin: 0 auto;\n margin: 8px;\n }\n button.btn-delete {\n background-color: red;\n color: white;\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { motion } from 'framer-motion';\nimport styled from 'styled-components';\nimport { QuestionContainer, PontuationContainer } from './styled';\nimport { Theme } from 'src/styles/Theme';\nimport api from 'src/services/axios';\ninterface Options {\n option: string;\n id: string;\n count?: number;\n percentage?: string;\n}\ninterface Option {\n id: number | string;\n text: string;\n}\n\ninterface Polls {\n id: string;\n polls_answer: string;\n options: Options[];\n date_start: string;\n date_end: string;\n totalUsers?: number;\n}\nconst Card = styled.div`\n display: flex;\n flex-direction: column;\n\n justify-content: space-between;\n gap: 10px;\n padding: 18px;\n width: 100%;\n margin-bottom: 15px;\n`;\ninterface ProgressProps {\n percent: number;\n}\nconst Progress = styled.div`\n height: 8px;\n background-color: #4caf50;\n width: ${({ percent }) => percent}%;\n transition: width 0.3s ease;\n`;\n\nconst ContainerTaskDescription = styled.div`\n display: flex;\n justify-content: space-between;\n span {\n text-align: center;\n justify-content: center;\n align-self: center;\n }\n`;\nconst Item = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n border: 2px solid #ccc;\n padding: 8px;\n border-radius: 8px;\n &.correct {\n border: 2px solid ${Theme.primary};\n }\n`;\n\nconst Label = styled.label`\n font-size: 18px;\n font-weight: 600;\n`;\n\nconst ProgressBar = styled.div`\n background-color: #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n width: 94%;\n margin: 0 auto;\n`;\n\nexport default function ViewPoll({\n selectedPoll,\n handleEditPoll\n}: {\n selectedPoll: Polls | undefined;\n handleEditPoll: () => void;\n}) {\n const [usersPontuation, setUsersPontuation] = useState([]);\n const handleDeletePoll = () => {\n if (selectedPoll) {\n api.delete(`/api/v1/polls/delete/${selectedPoll.id}`).then(() => {\n alert('Poll Deleted');\n });\n }\n };\n const getUsersPontuation = () => {\n api\n .get(`/api/v1/polls/find/${selectedPoll?.id}`)\n .then((response) => {\n setUsersPontuation(response.data);\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n useEffect(() => {\n if (!selectedPoll) return;\n getUsersPontuation();\n }, [selectedPoll]);\n const optionUser = (id: string) => {\n const index = selectedPoll?.options.findIndex((obj) => obj.id === id);\n switch (index) {\n case 0:\n return 'A';\n case 1:\n return 'B';\n case 2:\n return 'C';\n case 3:\n return 'D';\n case 4:\n return 'E';\n default:\n return 'A';\n }\n };\n return (\n \n \n \n {selectedPoll?.polls_answer}
    \n
    \n\n {selectedPoll?.options.map((option, index) => (\n \n \n \n \n {option.percentage?.split('.')[0]}%\n \n \n \n \n \n \n ))}\n
    \n\n
    \n \n \n
    \n

    Total Votes: {usersPontuation.length}

    \n {usersPontuation.length > 0 && (\n \n
    \n \n \n \n \n \n \n \n \n {usersPontuation.map(\n (\n user: {\n url_image: string;\n full_name: string;\n response_user_polls_id: string;\n },\n index: number\n ) => (\n \n \n
    \n \n

    {user?.full_name}

    \n
    \n
    \n \n {optionUser(user.response_user_polls_id)}\n \n \n )\n )}\n
    \n
    USER NAMEANSWER
    \n
    \n
    \n )}\n
    \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const QuestionContainer = styled.div`\n width: 100%;\n\n height: min-content;\n margin: 0 auto;\n display: flex;\n backdrop-filter: blur(10px);\n border-radius: 12px;\n background-color: #f8f9fa;\n flex-direction: column;\n margin-bottom: 80px;\n .task {\n display: flex;\n flex-direction: column;\n h1 {\n background-color: ${Theme.primary};\n color: ${Theme['secondary-light']};\n padding-bottom: 16px;\n margin-bottom: 10px;\n }\n width: 100%;\n .submit-button {\n background-color: orange;\n color: white;\n border: none;\n\n padding: 20px 36px;\n cursor: pointer;\n margin: 26px auto;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3);\n }\n }\n p.text-correction-true {\n color: #39e75f;\n font-size: 13px;\n font-weight: bold;\n padding: 18px;\n padding-top: 0;\n }\n p.text-correction-false {\n color: tomato;\n font-size: 13px;\n font-weight: bold;\n margin: 20px 5px;\n padding: 18px;\n padding-bottom: 0;\n }\n h1 {\n font-size: 22px;\n font-weight: bold;\n padding: 22px;\n margin: 0;\n margin-bottom: 0;\n color: ${Theme.primary};\n border-radius: 12px 12px 0 0;\n }\n .card-responses {\n display: grid;\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 20px;\n padding-top: 0;\n width: 100%;\n }\n .responses {\n background-color: white;\n padding: 20px;\n width: 100%;\n border-radius: 12px;\n border: 2px solid #efefef;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n color: #333;\n font-size: 14px;\n }\n .responses.selected {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid green !important;\n }\n .responses.correct {\n background-color: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n }\n\n .responses.incorrect {\n background-color: #f1f1f1f1; /* Light red /\n border: 1px solid #fefefe;\n }\n\n .responses.blueTest {\n background-color: #fabec0; /* Light blue for selected */\n color: #e43d40;\n border: 1px solid #f85c70 !important;\n }\n li {\n text-decoration: none;\n list-style: none;\n }\n div.btn-actions {\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n max-width: 200px;\n margin: 0 auto;\n margin: 8px;\n }\n button.btn-delete {\n background-color: red;\n color: white;\n }\n }\n`;\nexport const CreateQuestionContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n input.answer {\n width: 100%;\n margin-top: 8px;\n }\n label {\n font-weight: bold;\n }\n input.input-create-question {\n padding: 8px;\n background-color: #efefef;\n border: none;\n border-radius: 8px;\n }\n input.calendar-select-date {\n width: 100%;\n padding: 8px;\n background-color: #efefef;\n border: none;\n margin-top: 8px;\n border-radius: 8px;\n }\n div.input-option {\n width: 100%;\n display: flex;\n gap: 8px;\n\n margin-top: 8px;\n input.input-create-question {\n flex: 1;\n }\n button {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n border-radius: 8px;\n }\n }\n button.btn-new-option {\n background-color: ${Theme.primary};\n color: white;\n padding: 12px;\n border: none;\n cursor: pointer;\n margin-top: 8px;\n border-radius: 8px;\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { motion } from 'framer-motion';\nimport styled from 'styled-components';\nimport { QuestionContainer, CreateQuestionContainer } from './styled';\nimport { Theme } from 'src/styles/Theme';\nimport api from 'src/services/axios';\nimport { set } from 'react-ga';\ninterface Options {\n option: string;\n id: string;\n}\ninterface Option {\n id: number | string;\n text: string;\n}\n\ninterface Polls {\n id: string;\n polls_answer: string;\n options: Options[];\n date_start: string;\n date_end: string;\n}\nconst Card = styled.div`\n display: flex;\n flex-direction: column;\n\n justify-content: space-between;\n gap: 10px;\n padding: 18px;\n width: 100%;\n margin-bottom: 15px;\n`;\ninterface ProgressProps {\n percent: number;\n}\nconst Progress = styled.div`\n height: 8px;\n background-color: #4caf50;\n width: ${({ percent }) => percent}%;\n transition: width 0.3s ease;\n`;\n\nconst ContainerTaskDescription = styled.div`\n display: flex;\n justify-content: space-between;\n span {\n text-align: center;\n justify-content: center;\n align-self: center;\n }\n`;\nconst Item = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n border: 2px solid #ccc;\n padding: 8px;\n border-radius: 8px;\n &.correct {\n border: 2px solid ${Theme.primary};\n }\n`;\n\nconst Label = styled.label`\n font-size: 18px;\n font-weight: 600;\n`;\n\nconst ProgressBar = styled.div`\n background-color: #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n width: 94%;\n margin: 0 auto;\n`;\n\nexport default function UpdatePoll({\n selectedPoll\n}: {\n selectedPoll: Polls | undefined;\n}) {\n const [poll, setPoll] = useState('');\n const [options, setOptions] = useState([{ id: 1, text: '' }]);\n\n const [dateStart, setDateStart] = useState('');\n const [dateEnd, setDateEnd] = useState('');\n\n const handleOptionChange = (id: number | string, text: string) => {\n setOptions(options.map((opt) => (opt.id === id ? { ...opt, text } : opt)));\n };\n\n useEffect(() => {\n if (!selectedPoll) return;\n setPoll(selectedPoll.polls_answer || '');\n setOptions(\n selectedPoll?.options.map((opt) => ({\n id: opt.id,\n text: opt.option\n }))\n );\n //pegar apenas 10 primeira letras\n setDateEnd(selectedPoll.date_end.slice(0, 10));\n setDateStart(selectedPoll.date_start.slice(0, 10));\n }, [selectedPoll]);\n\n const handleUpdateQuestion = () => {\n const updatedQuestion = {\n id: selectedPoll?.id,\n question_answer: poll,\n options: options,\n date_start: dateStart,\n date_end: dateEnd\n };\n console.log(updatedQuestion);\n\n api.put('/api/v1/polls/update', updatedQuestion).then(() => {\n alert('Quizz Updated');\n window.location.reload();\n });\n };\n\n return (\n \n

    Polls

    \n\n
    \n \n setPoll(e.target.value)}\n className='answer input-create-question'\n />\n
    \n\n
    \n \n {options.map((option, index) => (\n
    \n {\n handleOptionChange(option.id, e.target.value);\n }}\n className='input-create-question'\n placeholder={`Option ${index + 1}`}\n />\n
    \n ))}\n
    \n\n
    \n \n setDateStart(e.target.value)}\n className='calendar-select-date'\n />\n
    \n\n
    \n \n setDateEnd(e.target.value)}\n className='calendar-select-date'\n />\n
    \n\n handleUpdateQuestion()}\n >\n Update Question\n \n
    \n );\n}\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nconst PontuationContainer = styled.div`\n width: 100%;\n margin: 0 0;\n display: flex;\n height: min-content;\n flex-direction: column;\n align-items: center;\n border-radius: 8px;\n\n padding: 26px;\n\n @media (max-width: 768px) {\n width: 100%;\n padding: 0;\n margin-top: 20px;\n margin: 0 auto;\n }\n select {\n padding: 10px;\n font-size: 16px;\n border: 1px solid #ccc;\n border-radius: 5px;\n margin-bottom: 20px;\n background-color: #fff;\n }\n .img-pontuation {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n gap: 26px;\n\n div.position-place {\n position: relative;\n p {\n background-color: #d4edda;\n padding: 0;\n margin: 0 auto;\n border-radius: 50%;\n width: 27px;\n height: 27px;\n font-weight: bold;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -5px;\n font-size: 20px;\n color: white;\n }\n\n img {\n width: 60px;\n height: 60px;\n padding: 4px;\n border-radius: 50%;\n border: 4px solid #d4edda;\n }\n }\n div.place-1 {\n p {\n background-color: gold !important;\n font-size: 24px;\n }\n img {\n border: 4px solid gold;\n width: 65px;\n height: 65px;\n }\n }\n div.place-2 {\n p {\n background-color: silver !important;\n font-size: 22px;\n }\n img {\n border: 4px solid silver;\n width: 55px;\n height: 55px;\n }\n }\n div.place-3 {\n p {\n background-color: #cd7f32 !important;\n font-size: 20px;\n }\n img {\n border: 4px solid #cd7f32;\n width: 50px;\n height: 50px;\n }\n }\n }\n .header-pontuation {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n margin-bottom: 16px;\n img.img-troph {\n width: 80px;\n height: 80px;\n margin: 0 16px;\n @media (max-width: 768px) {\n width: 55px;\n height: 55px;\n }\n }\n }\n div.header-information {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 40px;\n\n p {\n font-size: 14px;\n color: #333;\n }\n }\n h1.score-board-header {\n color: ${Theme.primary};\n font-size: 42px;\n margin-bottom: 8px;\n @media (max-width: 768px) {\n font-size: 24px;\n }\n }\n .scoreboard-container {\n background-color: #f5f5f5; /* Light grey background */\n width: 100%;\n\n border-radius: 8px;\n }\n td.name-td {\n font-size: 14px;\n font-weight: bold;\n }\n tr {\n font-weight: bold;\n font-size: 16px;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n }\n\n .header {\n background-color: #000080; /* Navy blue header */\n color: #ffffff; /* White text */\n width: 100%;\n margin: 0;\n\n display: flex;\n align-items: center;\n\n text-align: center;\n }\n\n .user-score {\n background-color: #e0f7fa; /* Light teal */\n color: #000080; /* Navy blue text */\n padding: 10px;\n border-radius: 5px;\n\n text-align: center;\n margin-top: 0px;\n }\n\n .score-table {\n width: 100%;\n background-color: #ffffff; /* White table background */\n color: #333333; /* Dark grey text */\n border-radius: 8px;\n overflow: hidden;\n }\n\n .score-table th {\n background-color: #000080; /* Navy blue header */\n color: #ffffff; /* White text */\n padding: 10px;\n @media (max-width: 768px) {\n }\n }\n\n .score-table th,\n .score-table td {\n padding: 10px;\n\n text-align: center;\n }\n\n .score-table td {\n padding: 10px;\n text-align: center;\n }\n\n .score-table tbody tr:nth-child(even) {\n background-color: #f2f2f2; /* Light grey for even rows */\n }\n\n .score-table tbody tr:nth-child(odd) {\n background-color: #ffffff; /* White for odd rows */\n }\n`;\n\nexport { PontuationContainer };\n","import React, { useState, useEffect } from 'react';\nimport api from 'src/services/axios';\nimport { PontuationContainer } from './styled';\nimport { motion } from 'framer-motion';\nimport troph from 'src/images/troph.png';\n\ninterface RankingItem {\n name: string;\n polls_answered: number;\n total: number;\n correct: number;\n url_image: string;\n}\nexport default function Scoreboard(): JSX.Element {\n const [ranking, setRanking] = useState([]);\n const currentMonth = new Date().getMonth() + 1; // Mês atual em formato numérico (1 a 12)\n\n const [selectedMonth, setSelectedMonth] = useState(String(currentMonth));\n const fetchRanking = async () => {\n api.get(`/api/v1/trivia/status-admin/${selectedMonth}`).then((response) => {\n if (response.data.pontuation.length > 0) {\n setRanking(response.data.pontuation);\n console.log(response.data);\n } else {\n setRanking([]);\n }\n });\n };\n\n // Atualiza o ranking quando a opção muda\n useEffect(() => {\n fetchRanking();\n }, [selectedMonth]);\n const months = [\n { value: '1', label: 'January' },\n { value: '2', label: 'February' },\n { value: '3', label: 'March' },\n { value: '4', label: 'April' },\n { value: '5', label: 'May' },\n { value: '6', label: 'June' },\n { value: '7', label: 'July' },\n { value: '8', label: 'August' },\n { value: '9', label: 'September' },\n { value: '10', label: 'October' },\n { value: '11', label: 'November' },\n { value: '12', label: 'December' }\n ];\n const handleMonthChange: React.ChangeEventHandler = async (\n e\n ) => {\n const selectedValue: string = e.target.value;\n setSelectedMonth(selectedValue); // Atualiza o estado com o mês selecionado\n };\n return (\n \n
    \n
    \n

    Scoreboard

    \n\n \n {months.map((month) => (\n \n ))}\n \n
    \n\n \n
    \n\n
    \n
    \n

    FEG HOME SCOREBOARD

    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n {ranking &&\n ranking?.map((data, index) => (\n \n \n
    \n

    {index + 1}

    \n \n
    \n
    \n {data.name}\n {data.polls_answered}\n {data.correct}\n {data.total}\n \n ))}\n
    \n
    POSUSER NAMEPOLLSQUESTIONTOTAL
    \n
    \n
    \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport 'react-calendar/dist/Calendar.css';\nimport FullCalendar from '@fullcalendar/react';\nimport listPlugin from '@fullcalendar/list';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport interactionPlugin from '@fullcalendar/interaction';\n\nimport {\n AdminTriviaContainer,\n CallendarFull,\n DivisorScoreboard,\n SelectOption\n} from './styled';\n\nimport api from 'src/services/axios';\nimport CreatePoll from 'src/components/AdminTriviaComp/CreatePoll';\nimport CreateQuestion from 'src/components/AdminTriviaComp/CreateQuestion';\nimport UpdateQuestion from 'src/components/AdminTriviaComp/UpdateQuestion';\nimport ViewQuestion from 'src/components/AdminTriviaComp/ViewQuestion';\nimport ViewPoll from 'src/components/AdminTriviaComp/ViewPoll';\nimport UpdatePoll from 'src/components/AdminTriviaComp/UpdatePoll';\nimport Scoreboard from 'src/components/AdminTriviaComp/Scoreboard';\n\ninterface Options {\n option: string;\n id: string;\n count?: number;\n percentage?: string;\n}\n\ninterface Question {\n id: string;\n question_answer: string;\n options: Options[];\n correct_option_id: string;\n date: string;\n active: boolean;\n}\ninterface Polls {\n id: string;\n polls_answer: string;\n options: Options[];\n date_start: string;\n date_end: string;\n totalUsers?: number;\n}\n\nconst AdminTriviaPage: React.FC = () => {\n const [selectedQuestion, setSelectedQuestion] = useState();\n const [isEditing, setIsEditing] = useState(false);\n const [questions, setQuestions] = useState([]);\n const [typeForm, setTypeForm] = useState('trivia');\n const [polls, setPolls] = useState([]);\n const [selectedPolls, setSelectedPolls] = useState();\n const [latestNews, setLatestNews] = useState([]);\n\n const formatedEvents = () => {\n const formatEvent = questions.map((q) => ({\n title: q.question_answer,\n start: q.date,\n end: q.date,\n id: q.id,\n type: 'question'\n }));\n const formatPolls = polls?.map((p) => ({\n title: p.polls_answer,\n start: p.date_start,\n end: p.date_end,\n id: p.id,\n type: 'poll'\n }));\n const formatLatestNews = latestNews.map((news) => ({\n title: news.title,\n start: news.createdAt,\n end: news.createdAt,\n id: news.id,\n type: 'news'\n }));\n\n return formatEvent.concat(formatPolls, formatLatestNews);\n };\n\n const getQuestion = () => {\n api.get('/api/v1/trivia/month').then((res) => {\n setQuestions(res.data.question);\n });\n };\n\n const getPolls = () => {\n api.get('/api/v1/polls/calendar').then((res) => {\n setPolls(res.data.polls);\n });\n };\n\n function getLatestNews() {\n api.get('/api/v1/latest-news').then((res) => {\n setLatestNews(res.data);\n });\n }\n\n useEffect(() => {\n getQuestion();\n getPolls();\n getLatestNews();\n }, []);\n\n const handleEditQuestion = () => {\n if (selectedQuestion) {\n setTypeForm('edit_question');\n setIsEditing(true);\n }\n };\n const handleEditPoll = () => {\n if (selectedPolls) {\n setTypeForm('edit_poll');\n setIsEditing(true);\n }\n };\n\n const handleEventClick = (info: any) => {\n const event = info.event;\n setSelectedQuestion(undefined);\n setSelectedPolls(undefined);\n setIsEditing(false);\n if (event.extendedProps.type === 'question') {\n setTypeForm('view_question');\n setSelectedQuestion(questions.find((q) => q.id === event.id));\n setSelectedPolls(undefined);\n console.log(questions.find((q) => q.id === event.id));\n } else if (event.extendedProps.type === 'poll') {\n setTypeForm('view_poll');\n setSelectedPolls(polls.find((p) => p.id === event.id));\n setSelectedQuestion(undefined);\n console.log(polls.find((p) => p.id === event.id));\n }\n };\n\n const getEventClassNames = (eventInfo: any) => {\n switch (eventInfo.event.extendedProps.type) {\n case 'question':\n return 'task-question';\n case 'poll':\n return 'task-poll';\n case 'news':\n return 'task-news';\n default:\n return '';\n }\n };\n const handleContent = () => {\n switch (typeForm) {\n case 'trivia':\n return ;\n case 'polls':\n return ;\n case 'edit_question':\n return ;\n case 'edit_poll':\n return ;\n case 'view_question':\n return (\n \n );\n case 'view_poll':\n return (\n \n );\n case 'ranking':\n return ;\n default:\n return ;\n }\n };\n\n return (\n <>\n \n
    \n {\n setIsEditing(false);\n setTypeForm('trivia');\n }}\n className={`${typeForm === 'trivia' && 'active'}`}\n >\n

    Create a Trivia Question

    \n \n\n {\n setIsEditing(false);\n setTypeForm('polls');\n }}\n >\n

    Create a Poll Question

    \n \n {\n setIsEditing(false);\n setTypeForm('ranking');\n }}\n className={`${typeForm === 'ranking' && 'active'}`}\n >\n

    View Rankings

    \n \n {isEditing && typeForm === 'edit_question' && (\n setTypeForm('edit_question')}\n >\n

    Editing Question

    \n \n )}\n {typeForm === 'view_question' && (\n \n )}\n {typeForm === 'view_poll' && (\n \n )}\n {isEditing && typeForm === 'edit_poll' && (\n \n )}\n
    \n
    \n\n \n {handleContent()}\n\n \n \n \n \n \n );\n};\n\nexport default AdminTriviaPage;\n","import { Theme } from 'src/styles/Theme';\nimport styled from 'styled-components';\n\nexport const Container = styled.div`\n width: 86%;\n margin: 0 auto;\n`;\nexport const DivisorContent = styled.div`\n display: flex;\n gap: 10px;\n width: 100%;\n @media (max-width: 768px) {\n flex-direction: column;\n }\n .event-content {\n width: 50%;\n @media (max-width: 768px) {\n width: 100%;\n }\n button.btn-create-content {\n padding: 12px;\n background-color: ${Theme.primary};\n color: white;\n border: none;\n border-radius: 8px;\n font-weight: bold;\n cursor: pointer;\n }\n }\n`;\n\nexport const CallendarFull = styled.div`\n width: 50%;\n @media (max-width: 768px) {\n width: 100%;\n }\n .fc {\n width: 100%;\n height: 100%;\n max-height: 600px;\n }\n\n .task-question {\n width: 100%;\n background: #1260a7;\n font-weight: bold;\n border: none;\n padding: 5px;\n color: white;\n }\n .task-poll {\n width: 100%;\n background: #b400bd;\n border: none;\n font-weight: bold;\n padding: 5px;\n }\n .task-news {\n width: 100%;\n background: #e7262b;\n color: white;\n border: none;\n font-weight: bold;\n padding: 5px;\n }\n .fc-daygrid-event-dot {\n display: none;\n }\n`;\nexport const DivisorScoreboard = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 50%;\n @media (max-width: 768px) {\n width: 100%;\n }\n div.score {\n width: 50%;\n height: 100%;\n background-color: #f8f9fa;\n border-radius: 12px;\n padding: 20px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { CallendarFull, Container, DivisorContent } from './styled';\nimport FullCalendar from '@fullcalendar/react';\nimport listPlugin from '@fullcalendar/list';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport interactionPlugin from '@fullcalendar/interaction';\nimport GridLatestNews from '../../components/GridLatestNews';\nimport api from 'src/services/axios';\nimport ViewPoll from 'src/components/AdminTriviaComp/ViewPoll';\nimport { Poll } from '@material-ui/icons';\nimport ViewQuestion from 'src/components/AdminTriviaComp/ViewQuestion';\nimport CreateQuestion from 'src/components/AdminTriviaComp/CreateQuestion';\nimport LatestNews from 'src/components/LatestNews';\nimport CreatePoll from 'src/components/AdminTriviaComp/CreatePoll';\ninterface Options {\n option: string;\n id: string;\n count?: number;\n percentage?: string;\n}\n\ninterface Question {\n id: string;\n question_answer: string;\n options: Options[];\n correct_option_id: string;\n date: string;\n active: boolean;\n}\ninterface Polls {\n id: string;\n polls_answer: string;\n options: Options[];\n date_start: string;\n date_end: string;\n totalUsers?: number;\n}\nexport default function NewCalendar(): JSX.Element {\n const [polls, setPolls] = useState([]);\n const [latestNews, setLatestNews] = useState([]);\n const [questions, setQuestions] = useState([]);\n const [selectedEvent, setSelectedEvent] = useState(null);\n const [poll, setPoll] = useState();\n const [question, setQuestion] = useState();\n const [createEvent, setCreateEvent] = useState('question');\n const formatedDateLatest = (item: any) => {\n if (item.publish_date) {\n return item.publish_date;\n } else {\n return item.createdAt;\n }\n };\n const formatedEvents = () => {\n const formatEvent = questions.map((q) => ({\n title: q.question_answer,\n start: q.date,\n end: q.date,\n id: q.id,\n type: 'question',\n data: { ...q }\n }));\n const formatPolls = polls?.map((p) => ({\n title: p.polls_answer,\n start: p.date_start,\n end: p.date_end,\n id: p.id,\n type: 'poll',\n data: {\n id: p.id,\n question_answer: p.polls_answer,\n options: p.options,\n correct_option_id: '',\n date: p.date_start,\n active: true\n }\n }));\n const formatLatestNews = latestNews.map((news) => ({\n title: news.title || 'Latest News',\n start: formatedDateLatest(news),\n end: formatedDateLatest(news),\n id: news.id,\n type: 'news',\n data: {\n id: news.id,\n question_answer: news.title,\n options: [],\n correct_option_id: '',\n date: formatedDateLatest(news),\n active: true\n }\n }));\n\n return formatEvent.concat(formatPolls).concat(formatLatestNews);\n };\n const getQuestion = () => {\n api.get('/api/v1/trivia/month').then((res) => {\n setQuestions(res.data.question);\n });\n };\n\n const getPolls = () => {\n api.get('/api/v1/polls/calendar').then((res) => {\n console.log(res.data);\n setPolls(res.data.polls);\n });\n };\n\n function getLatestNews() {\n api.get('/api/v1/latest-news').then((res) => {\n setLatestNews(res.data);\n });\n }\n\n useEffect(() => {\n getQuestion();\n getPolls();\n getLatestNews();\n }, []);\n\n const getEventClassNames = (eventInfo: any) => {\n switch (eventInfo.event.extendedProps.type) {\n case 'question':\n return 'task-question';\n case 'poll':\n return 'task-poll';\n case 'news':\n return 'task-news';\n default:\n return '';\n }\n };\n const handleEventClick = (info: any) => {\n setSelectedEvent(info.event);\n if (info.event.extendedProps.type === 'poll') {\n api.get(`/api/v1/polls/find-poll/${info.event.id}`).then((response) => {\n console.log(response.data);\n setPoll(response.data);\n return;\n });\n }\n if (info.event.extendedProps.type === 'question') {\n api.get(`/api/v1/trivia/find/${info.event.id}`).then((response) => {\n console.log(response.data);\n setQuestion(response.data.question);\n return;\n });\n }\n };\n const contentEvent = () => {\n if (!selectedEvent) return '';\n\n if (selectedEvent) {\n switch (selectedEvent.extendedProps.type) {\n case 'question':\n return (\n console.log()}\n selectedQuestion={question}\n />\n );\n case 'poll':\n return (\n {\n console.log('Edit Poll');\n }}\n />\n );\n case 'news':\n return ;\n default:\n return
    ;\n }\n }\n };\n\n return (\n \n \n
    \n \n setCreateEvent(e.target.value)}\n value={createEvent}\n >\n \n \n \n \n \n \n {createEvent === 'question' && }\n {createEvent === 'poll' && }\n {createEvent === 'news' && }\n\n
    {contentEvent()}
    \n
    \n\n \n \n \n
    \n
    \n );\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n min-height: 70vh;\n width: 90%;\n margin: 0 auto;\n`;\n\nexport const Form = styled.form`\n max-width: 600px;\n min-width: 500px;\n display: flex;\n flex-direction: column;\n\n align-items: center;\n input,\n .MuiTextField-root,\n .MuiInputBase-root,\n .basic-multi-select,\n button {\n width: 300px;\n }\n gap: 10px;\n`;\n\nexport const Divisor = styled.div`\n display: grid;\n grid-template-columns: 1fr 5px 1fr;\n div.border {\n height: 100%;\n\n width: 5px;\n background-color: #000;\n }\n`;\n","import {\n Button,\n Checkbox,\n FormControlLabel,\n FormLabel,\n TextField\n} from '@material-ui/core';\nimport React from 'react';\nimport { useState } from 'react';\nimport * as S from './styled';\nimport api from '../../services/axios';\nimport Select from 'react-select';\n\nexport default function NotifyDashboard(): React.ReactElement {\n const [form, setForm] = useState({\n title: '',\n legend: '',\n url: '',\n locations: false,\n group: false,\n every: false\n });\n const [formDesktop, setFormDesktop] = useState({\n content: '',\n url: '',\n locations: false,\n group: false,\n every: false\n });\n\n const [locationsInfo, setLocationsInfo] = useState([]);\n const [rolesInfo, setRolesInfo] = useState([]);\n const [group, setGroup] = useState([]);\n const [profile, setProfile] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loadingDesktop, setLoadingDesktop] = useState(false);\n const [groupDesktop, setGroupDesktop] = useState([]);\n const [profileDesktop, setProfileDesktop] = useState([]);\n\n const fetchLocations = async () => {\n const data = await api.get('/api/v1/contacts/locations');\n setLocationsInfo(data.data);\n };\n\n const fetchGroups = async () => {\n const data = await api.get('/api/v1/contacts/roles');\n setRolesInfo(data.data);\n };\n const handleSelectGroup = (event: any) => {\n setGroup(event);\n };\n\n const handleSelectProfile = (event: any) => {\n setProfile(event);\n };\n\n const handleSelectGroupDesktop = (event: any) => {\n setGroupDesktop(event);\n };\n\n const handleSelectProfileDesktop = (event: any) => {\n setProfileDesktop(event);\n };\n\n const locations = (\n
    \n \n
    \n );\n const groups = (\n
    \n \n
    \n );\n\n const locationsDesktop = (\n
    \n \n
    \n );\n const groupsDesktop = (\n
    \n \n
    \n );\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setLoading(true);\n api\n .post(\n '/api/v1/notify/mobile-notify',\n {\n title: form.title,\n legend: form.legend,\n url: form.url,\n locations: profile,\n groups: group,\n every: form.every\n },\n {\n timeout: 0\n }\n )\n .then(() => {\n alert('Notification Sent');\n setLoading(false);\n setForm({\n title: '',\n legend: '',\n url: '',\n locations: false,\n group: false,\n every: false\n });\n setProfile([]);\n setGroup([]);\n })\n .catch(() => {\n setLoading(false);\n });\n };\n\n const handleSubmitDesktop = (e: React.FormEvent) => {\n e.preventDefault();\n setLoadingDesktop(true);\n api\n .post(\n '/api/v1/notify/desktop-notify',\n {\n content: formDesktop.content,\n url: formDesktop.url,\n locations: profileDesktop,\n groups: groupDesktop,\n every: formDesktop.every\n },\n {\n timeout: 0\n }\n )\n .then(() => {\n alert('Notification Sent');\n setLoadingDesktop(false);\n setFormDesktop({\n content: '',\n url: '',\n locations: false,\n group: false,\n every: false\n });\n setProfileDesktop([]);\n setGroupDesktop([]);\n })\n .catch(() => {\n setLoadingDesktop(false);\n });\n };\n\n const routeOptions = [\n {\n value: 'Shortcuts',\n label: 'FEG Apps'\n },\n {\n value: 'company',\n label: 'Announcements'\n },\n {\n value: 'Trivia',\n label: 'Trivia'\n },\n {\n value: 'Ask FEG',\n label: 'Ask FEG'\n },\n {\n value: 'Home',\n label: 'Home'\n }\n ];\n\n return (\n \n \n \n

    Mobile Notification

    \n ) =>\n setForm({ ...form, title: e.target.value })\n }\n />\n ) =>\n setForm({ ...form, legend: e.target.value })\n }\n />\n \n

    Redirect User To:

    \n
    \n {\n if (e) {\n setForm({ ...form, url: e.value });\n }\n }}\n />\n\n
    \n }\n label='Everyone'\n color='primary'\n onChange={() => {\n setForm({ ...form, every: !form.every });\n }}\n value={form.every}\n />\n\n <>\n }\n label='Groups'\n color='primary'\n onClick={fetchGroups}\n onChange={() => setForm({ ...form, group: !form.group })}\n value={form.group}\n />\n }\n label='Locations'\n color='primary'\n onClick={fetchLocations}\n onChange={() =>\n setForm({ ...form, locations: !form.locations })\n }\n value={form.locations}\n />\n \n
    \n\n <>\n {form.locations && locations}\n\n {form.group && groups}\n \n\n \n {loadingDesktop ? 'Sending...' : 'Send'}\n \n
    \n
    .
    \n \n

    Desktop Notification

    \n ) =>\n setFormDesktop({ ...formDesktop, content: e.target.value })\n }\n />\n\n \n

    Redirect User To:

    \n
    \n {\n if (e) {\n setFormDesktop({ ...formDesktop, url: e.value });\n }\n }}\n />\n\n
    \n }\n label='Everyone'\n color='primary'\n onChange={() => {\n setFormDesktop({ ...formDesktop, every: !formDesktop.every });\n }}\n value={formDesktop.every}\n />\n\n <>\n \n }\n label='Groups'\n color='primary'\n onClick={fetchGroups}\n onChange={() =>\n setFormDesktop({\n ...formDesktop,\n group: !formDesktop.group\n })\n }\n value={formDesktop.group}\n />\n \n }\n label='Locations'\n color='primary'\n onClick={fetchLocations}\n onChange={() =>\n setFormDesktop({\n ...formDesktop,\n locations: !formDesktop.locations\n })\n }\n value={formDesktop.locations}\n />\n \n
    \n\n {formDesktop.locations && locationsDesktop}\n\n {formDesktop.group && groupsDesktop}\n\n \n {loadingDesktop ? 'Sending...' : 'Send'}\n \n
    \n
    \n
    \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n BrowserRouter,\n Route,\n Switch,\n useLocation,\n withRouter\n} from 'react-router-dom';\nimport * as ROUTES from './routerList';\n\nimport Home from '../../pages/Home';\nimport UserValidation from '../../pages/UserValidation';\nimport Profile from '../../pages/UserValidation/Profile';\nimport Announcements from '../../pages/Announcements';\nimport Management from '../../pages/UsersManagement';\nimport NewAnnouncement from '../../pages/NewAnnouncement';\nimport CompanyAnnouncement from '../../pages/CompanyAnnouncement';\nimport Calendar from '../../pages/CompanyCalendar';\nimport Analytics from '../../pages/Analytics';\nimport ShortcutManagement from '../../pages/ShortcutManagement';\nimport Permission from '../../pages/Permission';\nimport ReactGA from 'react-ga';\nimport SideBar from '../../components/SideBar';\nimport Header from '../../components/Header';\nimport PaylocityAnnouncement from '../../pages/PaylocityAnnouncement';\nimport BenefitsAnnouncement from '../../pages/BenefitsAnnouncement';\nimport SpecialEvent from 'src/pages/SpecialEvent';\nimport LocationManagement from 'src/pages/LocationManagement';\nimport MyProfile from 'src/pages/MyProfile';\nimport MapJobtitle from 'src/components/MapJobtitle';\nimport MiniDrawer from 'src/components/MuiSidebar';\nimport useWindowWith from 'src/utils/width';\nimport ChatBot from 'src/pages/ChatBot';\nimport ChatBotSettings from 'src/pages/ChatBotSettings';\nimport SettingsChatBot from 'src/pages/SettingsChatBot';\nimport TableCategories from 'src/components/RepositorySettings';\nimport Chat from 'src/components/Chat';\nimport NewHome from 'src/pages/NewHome';\nimport Shortcuts from 'src/pages/Shortcuts';\nimport UserLocationChat from 'src/pages/UserLocationChat';\nimport LogsAskFEG from 'src/pages/LogsAskFEG';\nimport { useCookies } from 'react-cookie';\nimport Trivia from 'src/pages/Trivia';\nimport PollPage from 'src/pages/Polls';\nimport AdminTriviaPage from 'src/pages/AdminTrivia';\nimport NewCalendar from 'src/pages/NewCalendar';\nimport NotifyDashboard from 'src/pages/NotifyDashboard';\n\nconst PrivateRoutes: React.FC = () => {\n const width = useWindowWith();\n const [cookies, , removeCookie] = useCookies(['token']);\n const redirect: any = cookies.redirectLocation;\n const [sidebarOpen, setSidebarOpen] = useState(false);\n\n const location = useLocation();\n const currentPath = location.pathname;\n\n useEffect(() => {\n ReactGA.initialize('UA-189380132-1');\n ReactGA.pageview(window.location.pathname + window.location.search);\n });\n\n useEffect(() => {\n if (redirect) {\n const redirectFiltered = decodeURIComponent(redirect).replace(\n /%2F/g,\n '/'\n );\n removeCookie('redirectLocation');\n if (currentPath !== redirectFiltered) {\n removeCookie('redirectLocation');\n console.log(location.pathname);\n if (\n redirectFiltered !== '/' &&\n redirectFiltered !== '/logout' &&\n redirectFiltered !== '/locations/chat/0'\n ) {\n //window.location.href = redirectFiltered;\n return;\n }\n }\n }\n }, []);\n\n return (\n \n {width > 700 && (\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 {width < 700 && (\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\nexport default withRouter(PrivateRoutes);\n","import React, { useEffect, useState } from 'react'\nimport jwt from 'jsonwebtoken'\nimport { useCookies } from 'react-cookie'\nimport SignRoutes from './signRoutes'\nimport PrivateRoutes from './privateRoutes'\n// import socketIOClient from 'socket.io-client'\n\nconst Routes: React.FC = () => {\n const [token2, setToken] = useState(null)\n const [cookies, , removeCookie] = useCookies([\"token\"])\n const token: any = cookies.token\n\n useEffect(() => {\n handleLogin()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function handleLogin() {\n\n if (window.location.href === `${process.env.REACT_APP_ACCOUNT_URL}/ap/` ) {\n return \n }\n else if (localStorage.getItem('token')) {\n console.log('have local token')\n try {\n jwt.verify(localStorage.getItem('token')!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n localStorage.clear()\n if (process.env.REACT_APP_ACCOUNT_URL) {\n window.location.href = `${process.env.REACT_APP_ACCOUNT_URL}/logout`\n }\n console.log(err)\n } else {\n setToken(token)\n console.log(decoded)\n localStorage.setItem('id', decoded.id)\n localStorage.setItem('location_id', decoded.location_id)\n localStorage.setItem('firstName', decoded.first_name)\n localStorage.setItem('lastName', decoded.last_name)\n localStorage.setItem('email', decoded.email)\n localStorage.setItem('image_url', decoded.url_image)\n localStorage.setItem('group_id', decoded.group_id)\n localStorage.setItem('owner_id', decoded.addresses.owner_id)\n }\n })\n } catch (error) {\n console.log(error)\n removeCookie(\"token\")\n localStorage.clear()\n if (process.env.REACT_APP_ACCOUNT_URL) {\n window.location.href = `${process.env.REACT_APP_ACCOUNT_URL}/logout`\n }\n }\n return\n }\n else if (token !== undefined && token !== null) {\n console.log('have cookie token')\n try {\n jwt.verify(token!.toString(), '8Zz5tw0Ionm3XPZZfN0NOml3z9FMfmpgXwovR9fp6ryDIoGRM8EPHAB6iHsc0fb', (err: any, decoded: any) => {\n if (err) {\n localStorage.clear()\n if (process.env.REACT_APP_ACCOUNT_URL) {\n window.location.href = `${process.env.REACT_APP_ACCOUNT_URL}/logout`\n }\n console.log(err)\n } else {\n setToken(token)\n localStorage.setItem('token', token)\n localStorage.setItem('id', decoded.id)\n localStorage.setItem('location_id', decoded.location_id)\n localStorage.setItem('firstName', decoded.first_name)\n localStorage.setItem('lastName', decoded.last_name)\n localStorage.setItem('email', decoded.email)\n localStorage.setItem('image_url', decoded.url_image)\n localStorage.setItem('group_id', decoded.group_id)\n localStorage.setItem('owner_id', decoded.addresses.owner_id)\n\n // const socket = socketIOClient(process.env.REACT_APP_API_URL || '', {\n // query: {token}, transports: ['websocket', 'polling', 'flashsocket']\n // })\n // socket.on(\"FromAPI\", (data: any) => {})\n }\n })\n } catch (error) {\n console.log(error)\n removeCookie(\"token\")\n localStorage.clear()\n if (process.env.REACT_APP_ACCOUNT_URL) {\n window.location.href = `${process.env.REACT_APP_ACCOUNT_URL}/logout`\n }\n }\n } \n else {\n console.log(\"removing token\")\n removeCookie(\"token\")\n localStorage.clear()\n }\n }\n\n if (token2) {\n return \n }\n\n localStorage.clear()\n return \n}\n\nexport default Routes\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void\n onUpdate?: (registration: ServiceWorkerRegistration) => void\n}\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister()\n })\n .catch((error) => {\n console.error(error.message)\n })\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { BrowserRouter } from 'react-router-dom'\n//import dotenv from 'dotenv-safe'\nimport Routes from './config/routers/index'\nimport * as serviceWorker from './serviceWorker'\nimport './index.scss'\n//import * as dotenv from 'dotenv'\n//dotenv.config()\n\n//dotenv.config()\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n\n// Setting lazy loading, all imagens static of system\n\n/*\n \n \n ,\n*/\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}