{"version":3,"sources":["Utils/Settings.ts","Models/BookmarkModels.tsx","Utils/localizerHook.ts","Models/Notifications.ts","Components/Shared/PowerBI/EmbedReport/EmbedReport.module.scss","Components/PublicPages/Shared/DigitalLine/DigitalLine.module.scss","Models/ProfileModels.ts","Components/Shared/UI/Toast/Toast.module.scss","Models/CommonModels.ts","Store/Features/ChatSlice.ts","Config/RoutesConstants.ts","Components/ResearchersPages/Shared/Tabs/Tabs.module.scss","Components/Shared/Offline/Offline.module.scss","Utils/Resources.ts","Components/Shared/UI/NoData/NoData.tsx","Components/Shared/UI/Select/Select.tsx","Components/Shared/UI/InputLabel/InputLabel.tsx","Store/Features/ConfirmSlice.ts","Models/ContentVerificationModels.ts","Services/OrgProfileService.ts","Store/Features/PostSlice.ts","Services/PostService.ts","Utils/ThrowException.tsx","Services/PublicContentService.ts","Store/Features/BookmarkSlice.ts","Store/Features/ViewWorkSlice.ts","Components/Shared/HeaderImageBanner/HeaderImageBanner.tsx","Components/Layouts/PublicSubPagesLayout.tsx","Utils/stringLocalizer.tsx","Services/BookmarkService.ts","Assets/Images/Identity/JOIP_logomark_color.png","Assets/Images/Illustrations/Start-Illustration.png","Services/NotificationService.ts","Components/PublicPages/Splash/Splash.tsx","Utils/wrapPromise.ts","Apis/Apis.js","Apis/ProtectedApis.ts","Services/Core/BaseService.tsx","Assets/Images/NCI Templates/JOIP-line_gold3.png","Services/CommonService.ts","Utils/direction.tsx","Store/Features/Notifications/NotificationSlice.ts","Config/userManagerConfig.tsx","Utils/userManager.tsx","Store/Features/UserSlice.ts","Services/UserService.ts","Assets/Images/Profile/NoProfileAvailable.png","Assets/Images/Profile/02-User.png","Assets/Images/Profile/02-Org.png","Assets/Images/Profile/02-Work.png","Assets/Images/NCI Templates/Header-Image-Template.jpg","Components/Shared/UI/Select/Select.module.scss","Config/i18n.js","Utils/Icon.tsx","Utils/Utilites.ts","Components/Shared/UI/Toast/Toast.tsx","Utils/Auth.ts","Components/PublicPages/Shared/DigitalLine/DigitalLine.tsx","Utils/constants.ts","Store/Features/OrgsSlice.ts","Store/index.ts","Store/reducers.ts","Store/configureStore.ts","Components/Shared/PowerBI/EmbedReport/EmbedReport.tsx","Services/DashboardsService.ts","Components/ResearchersPages/Pages/Dashboards/MyReports/MyReportsContainer.tsx","Components/ResearchersPages/Pages/Dashboards/MyReports/MyWorksReport.tsx","Components/ResearchersPages/Pages/Dashboards/JoipReports/JoipReportsContainer.tsx","Components/ResearchersPages/Pages/Dashboards/JoipReports/Top10ISAsReport.tsx","Services/OrgDashboardsService.ts","Components/OrganizationsPages/Pages/Dashboards/MyOrgReports/MyOrgReportsContainer.tsx","Components/OrganizationsPages/Pages/Dashboards/MyOrgReports/MyOrgWorksReport.tsx","Components/OrganizationsPages/Pages/Dashboards/MyOrgReports/OrgAffiliationsReport.tsx","Components/OrganizationsPages/Pages/Dashboards/MyOrgReports/MyOrgNetworksReport.tsx","Components/PublicPages/UserSuspended/UserSuspended.tsx","Config/routes.tsx","Hubs/NotificationHub.tsx","Components/Shared/UI/Toast/NotificationToast.tsx","Services/InitialData/Settings.tsx","Components/Shared/Offline/Offline.tsx","Services/ChatsService.ts","Services/InitialData/Chats.tsx","ClearCache.js","Components/Shared/SessionExpired/SessionExpired.tsx","Utils/CheckUser.tsx","Services/PortalVisitService.ts","Utils/Meta/MetaPixel.tsx","App.tsx","registerServiceWorker.ts","Utils/ScrollToTop.tsx","index.tsx","Utils/languge.ts","Components/Shared/UI/InputLabel/InputLabel.module.scss","Components/Shared/TopBorderedContainer/TopBorderedContainer.tsx","Components/ResearchersPages/Shared/Tabs/Tabs.tsx"],"names":["getSetting","key","configs","store","get","process","undefined","Settings","authority","clientAppId","redirectUri","automationSilentRenew","Boolean","accessTokenExpiringNotificationTime","Number","silentRedirectUri","responseType","scope","loadResourcesPath","window","location","protocol","host","apiBaseUri","profileImageUrl_100x100","profileImageUrl_200x200","profileImageUrl_coverImage","workFileMaxSize","networksDefaultPageSize","bookmarksDefaultPageSize","postsTimelineDefaultPageSize","postsFeedsDefaultPageSize","commentsDefaultPageSize","signalR_HubEndpoint","cacheTimeProfile","likesDefaultPageSize","publicPageCacheTime","notificationDelay","resourcesCacheTime","resourcesVersion","String","searchSuggestionsResultSize","sentrydsn","joipVersion","identityVerificationMaxDocuments","googleSiteKey","contentVerificationDefaultPageSize","chatMediaSize","isCacheCleanerRuning","emailVerificationCodeTimer","bibtexFileExtensions","minYearSelect","joipForumUrl","dashboardsUserMyWorksReport","dashboardsOrgMyWorksReport","dashboardsJoipTop10ISAsReport","JoipHelpCenterURI","JoipHelpCenterURI_AR","workDefaultPageSize","conferenceDefaultPageSize","submissionsDefaultPageSize","postImagesMaxNumber","BOOKMARK_TYPE","translate","nameSpace","t","useTranslation","toLowerCase","NETWORK_NOTIFICATION_TYPE","GENERAL_NOTIFICATION_TYPE","ORG_GENERAL_NOTIFICATION_TYPE","GENERAL_NOTIFICATION_SOURCE","module","exports","PROFILE_ACTION","GENDER","PROFILE_ATTRIBUTE","VERIFICATION_DOC_TYPE","VERIFICATION_STATUS","ACTIVITY_CATEGORY","ACTIVITY_TYPE","PRIVACY","NETWORK_TYPE","SOURCE","VIEWER_TYPE","GUIDES_TYPE","PROFILE_TYPE","MATCHING_CRITERIA","INPUT_FIELD_TYPE","chatSlice","createSlice","name","initialState","client","clientStatus","conversations","selectedConversation","activeMessageObj","activeMessages","participant","user","activeConversations","convLoading","showEmptyMessage","usersTyping","isActiveMessgeLoading","reducers","addClient","state","action","payload","changeClientStatus","addConversations","forEach","async","item","_lastMessage","lastMessage","addConversation","conversation","find","c","sid","badgeCount","unshift","addSelectedConversation","addActiveMessages","appendActiveMessages","concat","AddActiveMessageObj","messageAdded","message","conversatioins","conversationIndex","findIndex","index","dateCreated","sortedConversations","sort","a","b","moment","format","messageDeleted","filter","setReciverParticipant","setReciverUser","setActiveConversationsSids","push","setConLoading","addUserTyping","removeUserTyping","p","resetActiveConversation","updateMessage","messageIndex","setActiveMessgeLoading","actions","setReciverUserInfo","jrin","dispatch","getstate","getParticipants","identity","userObj","getUser","sortConversations","convs","sortedReslult","localConversations","chat","getBadgeCount","resetMessageNotifications","count","getUnreadMessagesCount","addMessageNotificationsCount","incrementConversationBadgeCount","conv","activeConversation","decrementConversationBadgeCount","resetConversationBadgeCount","defaultRoute","pattern","route","home","messages","publicSearch","suspendUser","help","about","joipNewsDetail","individuals","organizations","researcher","post","patterns","routes","researcherProfile","resercherSentRequests","resercherRecievedRequests","resercherFollowing","resercherOrgFollowing","resercherFollowers","researcherEasyMatch","researcherContact","researcherOverview","researcherSocialLinks","researcherInnovationInterests","researcherAddWork","researcherNetwork","researcherDistinction","researcherEducation","researcherEmployment","researcherInvitedPosition","researcherMembership","researcherQualification","researcherService","researcherIdentityVerification","researcherSearch","resercherSentReferralRequests","resercherReceivedReferralRequests","researcherReferrals","researcherSentWorkFileShareRequests","researcherReceivedWorkFileShareRequests","researcherWorkFileShare","researcherContentVerificationRequest","researcherRingGoldSearch","resercherWorksReport","resercherTop10ISAsReport","chairmanConferences","chairmanConferencesSubmissions","chairmanConferenceSubmissionDetails","chairmanReviewerQuestionsManagement","chairmanConferenceQuestionsManagement","chairmanConferenceDocumentsManagement","reviewerConferencesSubmissions","reviewerConferenceSubmissionDetails","researcherConferencesSubmissions","organizationProfile","organizationOverview","organizationContact","organizationSocialLinks","organizationWorks","organizationIds","organizationProductsServices","organizationCustomers","organizationIdentityVerification","organizationReceivedWorkFileShareRequests","organizationContentVerification","organizationContentVerificationRequest","organizationWorksReport","organizationAffiliationsReport","organizationNetworksReport","organizationConferences","orgConferenceSubmissions","orgConferenceQuestionsManagement","orgReviewerQuestionsManagement","orgConferenceDocumentsManagement","Routes","authCallback","silentCallback","userSuspended","policy","faq","aboutJoip","whoWeAre","joipServices","joipNews","joipEvents","patnerWithJoip","accessdenied","errorRoute","notDound","researcherIdsGuides","researcherMyIds","researcherVerificationGuides","emailVerify","orgEmailVerify","researcherOutputAndWorksGuide","researcherReportGuides","organizationIdsGuides","organizationOutputAndWorksGuide","organizationInnovationInterests","organizationFollowers","organizationNotifications","organizationVerificationGuides","organizationViews","researcherCurriculumVitae","researcherContentVerification","researcherProfileViews","organizationContentVerificationGuides","researcherContentVerificationGuides","researcherActivityLog","refresh","organizationReportGuides","organizationProfileAdmins","ButtonSave","ButtonCancel","ButtonClose","ButtonSearch","ButtonConfirm","MenuIndividuals","MenuOrganizations","MenuAbout","MenuHelp","SortRecentlyAdded","SortFirstName","SortLastName","SortName","ButtonSubmit","RejectButton","AcceptButton","ButtonConnect","ButtonRemoveConnection","ButtonCancelConnectionRequest","ButtonAcceptConnectionRequest","ButtonRejectConnectionRequest","ButtonFollow","ButtonUnfollow","WorkVersionOf","WorkPartOf","WorkFundedBy","WorkViaORCID","WorkViaJOIP","ViewWorkModalTitle","NetworkError","ServerValidationException","GeneralSreverError","UnupdatableOrcidDataException","GeneralServerContentNotFoundMsg","OrcidUnupdatableTooltip","OrcidUndeletableTooltip","GeneralPrivacyUpdatedSuccessfully","NoResults","IdentityVerifiedTooltip","ContentVerifiedTooltip","PrivacyPublic","PrivacyMynetwork","PrivacyOnlyme","AcceptedYourConnectionRequest","SentYouConnectionRequest","StartedFollowingYou","NotificationCommentOnMyPost","NotificationLikeOnMyPost","NotificationSystem","AskedForReferral","WroteYouReferral","RequestedWorkFileShare","SharedWorkFiles","MentionProfile","ContentVerificationAccepted","ContentVerificationDeclined","NotificationWorkContribute","NotificationAddOrgProfileAdmin","NotificationDeleteOrgProfileAdmin","AccessDenied","Source","DateTo","SourceViaORCID","SourceViaJOIP","Present","CommonOf","NoInputs","RequestStatusPending","RequestStatusVerified","RequestStatusDeclined","RequestStatusUnanswered","RequestStatusAccepted","RequestStatusApproved","ProfileActivitiesDepartmentLabel","ProfileActivitiesDepartmentPlaceholder","ProfileActivitiesDepartmentTitle","ProfileActivitiesUrlLabel","ProfileActivitiesUrlPlaceholder","ProfileActivitiesUrlTitle","ProfileActivitesProfessionLabel","ProfileActivitesProfessionDefaultValue","ProfileActivitesProfessionTitle","ProfileActivitesProfessionSubTypeLabel","ProfileActivitesProfessionSubTypeDefaultValue","ProfileActivitesProfessionSubTypeTitle","OrgNameRequiredValidationMsg","CountryRequiredValidationMsg","CityRequiredValidationMsg","DateRangeValidationMsg","UrlValidationMsg","ContentVerificationTitleLabel","ContentVerificationDepartmentLabel","ContentVerificationFieldAlreadyVerfied","ContentVerificationFieldAlreadyHasPendingRequest","ContentVerificationRequestSentSuccessfully","ISAsSectionTitle","ISAsEmptyStateMsg","noAvailableISAsButtoText","defaultIsaDomainSelect","isaDeleteConfirmMessage","isaDeleteConfirmTitle","TitleName","SubmissionKeywords","SubmissionInstitution","SubmissionMobileNumber","SubmissionEmail","SubmissionCoAuthors","SubmissionCountryName","ThematicAreas","StatusLabel","DownloadTooltip","ActivityTitleLabel","PaperTitleLabel","NoData","text","buttonText","buttonOnClickAction","children","show","setShow","React","className","iconname","style","cursor","onClick","Select","props","Spinner","styles","role","label","hint","isRequired","loading","selectStyles","disabled","errors","ref","reg","onChange","event","onChangeHandler","onBlurCapture","onBlurHandler","value","values","map","option","i","hidden","isTruncateOff","numbering","tooltipText","localizedHint","T","classes","Asterisk","InputLabel","FontSize","title","dir","getDirectionFromText","data-tip","fontSize","next","prev","_","isEqual","confirmDeleteSlice","isLoading","showConfirm","hideConfirm","setLoading","confirmDelete","CONTENT_VERIFICATION_STATUS","CONTENT_VERIFICATION_TYPE","OrgProfileService","BaseService","orgId","url","this","ProtectedApi","then","response","data","catch","error","orgProfile","throwException","delete","join","params","JOIN","orgSocialLinks","reult","personalLinks","d","type","WEBSITE","socialLinks","term","profileName","profileImage","replace","Error","imageName","profileImageName","firstName","put","typeId","fdate","foundationDate","alterName","id","itemId","OrgId","recId","obj","res","documents","RingGoldDataSearch","searchTerm","pageIndex","country","city","postCode","ringGold","ringgoldId","userProfileId","profileId","_postService","PostService","postSlice","posts","paginationToken","isPostsLoading","isError","fetchPosts","items","token","clearState","errorStatus","AddPost","EditPost","content","plainText","privacy","linkPreview","schemaVersion","imagesUrls","deletePost","likePost","postId","likeId","isLiked","likesIncrement","likesCount","unlikePost","likesDecrement","fetchPostComments","comments","newComments","uniqBy","orderBy","highlightComment","commentsPaginationToken","addPostComment","commentsCount","updatePostComment","comment","deletePostComment","commentId","setPostLoading","setCommentLoading","isCommentsFetching","setPageName","pageName","setLoadingError","status","listTimelinePostsAsync","pageSize","listTimelinePosts","itemsWithComments","finally","listOrgTimelinePostsAsync","listOrgTimelinePosts","listFeedsPostsAsync","listFeedsPosts","getPostAsync","getPost","itemWithComments","AddPostAsync","hideSharedPost","addPost","err","AddOrgPostAsync","addOrgPost","EditPostAsync","updatePost","likePostAsync","ownerId","isOrgPost","unlikePostAsync","listPostCommentsAsync","listPostComments","addPostCommentAsync","postOwnerId","addComment","updatePostCommentAsync","updateComment","selectPosts","selectPost","selectPaginationToken","selectIsPostLoading","isLoadingError","selectErrorStatus","newToken","length","Post","rawText","taggedProfiles","postMentions","taggedISAs","taggedWorks","taggedOrgProfiles","sharedPostId","errorCode","msgKey","commentOwnerId","link","images","overwrite","setError","GetLocalizedMessage","i18next","PublicContentService","Api","screenName","Res","_bookmarkService","BookmarkService","bookmarkSlice","bookmarks","currBookamrk","isBusy","fetchBookmarks","addBookmark","deleteBookmark","setBusy","reducer","listBookmarksAsync","listBookmarks","selectBookmarks","bookmark","selectBookmark","selectIsBusy","viewWorkSlice","workId","isOwner","isOrgWork","showViewWork","hideViewWork","viewWork","isRtl","require","HeaderImageBanner","banner","setBanner","titleAr","imageUrl","constants","urls","headerImagePlaceholder","_publicContentService","useQuery","getScreenName","cacheTime","DigitalLines","DigitalLine","DirAware","size","float","space","color","height","opacity","width","src","Localizer","lineGold","transform","getDir","Dir","RTL","minHeight","position","left","top","right","StringLocalizer","en","ar","lng","getLang","Languge","AR","totalCount","hasNextPage","totalPages","bookmarkItem","bookmarkType","USER_PROFILE","bookmarkedProfileId","ORG_PROFILE","bookmarkedOrgProfileId","WORK","bookmarkedWorkId","ORG_WORK","bookmarkedOrgWorkId","bookmarkedItemId","pinToTop","NotificationService","ids","Footer","backgroundColor","logo","alt","bottom","wrapPromise","promise","result","suspender","r","e","read","instance","axios","create","baseURL","headers","defaults","common","interceptors","request","use","config","console","log","Promise","reject","userMgr","expired","signinSilent","auth","login","access_token","constructor","CommonService","Store","setDefaultDir","LTR","loadStyleFiles","_dir","links","document","querySelectorAll","styleSheet","href","endsWith","createElement","rel","head","appendChild","removeChild","body","setAttribute","_notificationService","_userService","resources","LikeOnMyPost","CommentOnMyPost","SystemNotification","AcceptedYourConnectionRequestTitle","SentYouConnectionRequestTitle","StartedFollowingYouTitle","LikeOnMyPostTitle","CommentOnMyPostTitle","ProfileIdentityVerification","SystemNotificationIdentityRequestAccepted","SystemNotificationIdentityRequestDeclined","AskedForReferralTitle","WroteYouReferralTitle","RequestedWorkFileShareTitle","SharedWorkFilesTitle","MentionProfileTitle","ContentVerification","NotificationContentVerificationAccepted","NotificationContentVerificationDeclined","SentMessage","NotificationWorkContributor","NotificationWorkContributorTitle","NotificationAddOrgAdmin","NotificationAddOrgAdminTitle","NotificationDeleteOrgAdmin","NotificationDeleteOrgAdminTitle","NotificationAddChairmanTitle","NotificationDeleteChairmanTitle","NotificationAddReviewerTitle","NotificationDeleteReviewerTitle","NotificationReviewerAcceptActionTitle","NotificationReviewerRejectActionTitle","NotificationNewSubmissionTitle","NotificationAcceptSubmissionTitle","NotificationRejectSubmissionTitle","NotificationAddChairman","NotificationDeleteChairman","NotificationAddReviewer","NotificationDeleteReviewer","NotificationReviewerAcceptAction","NotificationReviewerRejectAction","NotificationNewSubmission","NotificationAcceptSubmission","NotificationRejectSubmission","NotificationMissingWorkFileRequestTitle","NotificationMissingWorkFileRequest","NotificationSharedPost","NotificationSharedPostTitle","notificationSlice","messageNotificationCount","networkNotificationCount","otherNotificationCount","notificationsStack","addNetworkNotificationStack","NetworkNotificationType","AcceptedConnection","ConnectionRequest","NewFollower","model","Id","date","initiatorPicture","InitiatorPicture","initiatorFullName","InitiatorFullName","URL","pupa","JRIN","targetProfileId","TargetProfileId","addMessageNotificationStack","dynamicData","JSON","parse","Data","addGeneralNotificationStack","reflectNotifiactionCountInPageTitle","Type","PostId","CommentId","Status","Accepted","RequestId","ReferralRequest","ReferralReceived","ReferralId","WorkFileShareRequest","WorkFileShareReceived","ProfileMentioned","verified","ContentId","ContentType","WorkContributor","JDOI","OrgWorkContributor","AddOrgProfileAdmin","DeleteOrgProfileAdmin","AddChairman","InitiatorId","ConfId","DeleteChairman","AddReviewer","SubmissionId","DeleteReviewer","ReviewerAcceptAction","ReviewerId","ReviewerRejectAction","AcceptSubmission","RejectSubmission","NewSubmission","MissingWorkFileRequest","JoipId","SharePost","removerNetworkNotificationStack","resetNetworkNotifications","resetGeneralNotifications","addNotificationsCount","unreadNotificationsCounts","getUnreadNotificationsCount","AddOrgAdmin","getState","getOrgsByAdminId","addOrgs","updateUser","orgs","notification","client_id","redirect_uri","automaticSilentRenew","silent_redirect_uri","response_type","userStore","WebStorageStateStore","localStorage","monitorSession","userManager","makeUserManager","events","addAccessTokenExpired","userSlice","familyName","profilePicName","addUser","isWelcomeMessageDismessed","isIdentityVerified","isEmailVerified","isSuspended","paperSubmission","isChairman","isReviewer","isSubmitter","set","getUserInfo","updateUserChairmanPermission","updateUserReviewerPermission","setUserFromLocalStorge","currUser","UserService","backendOptions","crossDomain","expirationTime","defaultVersion","prefix","overrideMimeType","i18n","ChainedBackend","LanguageDetector","initReactI18next","init","Lang","initImmediate","fallbackLng","debug","react","wait","useSuspense","keySeparator","interpolation","escapeValue","backend","backends","LocalStorageBackend","Backend","loadPath","getIconByName","isDirAware","iconName","IconElements","Object","keys","Icons","icon","iconKey","iconEl","Icon","DirAwareIcon","profileCoverPic","image","CoverImgPlaceholder","profilePic100","profilePlaceHolder","profilePic200","orgProfilePic100","OrgProfilePlaceHolder","orgProfilePic200","mobileNumberTruncate","phoneNo","code","phoneNumber","startsWith","substr","isValidUrl","match","isEmail","prependHTTP","test","getOrganizationId","joinParts","split","getUserProfileId","jrinParts","textDir","removeSpaces","str","validateStartBeforeEnd","startYear","start","startMonth","startDay","end","endYear","endMonth","endDay","startDate","endDate","isAfter","getIconSize","getFileNameFromUrl","urlString","slice","checkFileExt","file","exec","mobileNumberOnkeyPressHandler","charCode","which","keyCode","fromCharCode","preventDefault","getFileExt","pop","getFileExtPDF","fileName","toLocaleLowerCase","processFile","reader","FileReader","readAsArrayBuffer","resolve","onload","array","Uint8Array","Buffer","from","toString","getLocalDate","isValid","parseZone","local","preventEnterKeyDefault","analyzeImages","arrayLength","numberOfPortraits","numberOfLandscapes","analyzedImages","isPortraitImage","analyzedImage","assignWindowTopPadding","numberOfImages","imageContainerStyle","inset","wrapperStyle","paddingTop","rootStyle","assignStyleToImages","selectedStyle","styleOption","styleGroup","styleOptionResult","styleAssignedImages","styleAssigned","titleCase","toUpperCase","SuccessMsg","toastProps","msg","isIn","toastId","deleteToast","transition","draggablePercent","closeToast","hideProgressBar","autoClose","progressStyle","progressClassName","closeOnClick","draggableDirection","pauseOnFocusLoss","pauseOnHover","bodyStyle","bodyClassName","rtl","closeButton","updateId","rest","Style","Toast_sucess","WarningMsg","Toast_warning","ErrorMsg","Toast_error","toast","draggable","progress","setWarning","setSuccess","success","Logout","remove","signoutRedirect","Auth","signinRedirect","isAuthenticated","_componetn","getAll","SuspendUser","SilentCallback","signinSilentCallback","getUserToken","tokenObj","getUserJrin","profile","addUserSignedOut","SIZES","sizeClass","SMALL","containerSmall","containerLarge","floatStyle","getStyle","assign","circle","column","CardImagePlaceholder","ProfilePlaceHolder","NoProfilePlaceHoler","NoProfileAvailable","WorkIcon","orgSlice","orgAdmins","firstTimeCalled","profileViewsCount","orgState","addNewOrg","addNewOrgAdmin","orgAdminState","deleteOrg","deleteOrgAdmin","updateOrg","orgindex","updateNotificationToRead","notificationCount","updateBadgeOrgProfileViews","adminOrgs","org","orgProfileAdmins","orgProfileViewsCount","orgslice","confirmSlice","configStore","history","middleware","getDefaultMiddleware","serializableCheck","immutableCheck","routerMiddleware","rootReducer","combineReducers","router","connectRouter","configureStore","preloadedState","devTools","memo","reportId","settings","pages","defaultPageId","getEmbedReport","getReportApiEndPoint","ReportConfigObj","tokenType","models","TokenType","Embed","DashboardsSelectReportSelectLabel","report","setReport","useState","reportHasRenderd","setReportHasRenderd","pageId","setPageId","scheduleTokenTimerId","setScheduleTokenTimerId","reportConfig","setReportConfig","useEffect","clearTimeout","eventHandlersMap","Map","detail","level","TraceType","Fatal","CommonErrorCodes","TokenExpired","detailedMessage","resetPageAfterReloadReport","_tryCounter","tryCounter","setPage","setTimeout","scheduleGenerateNewEmbedToken","secondsToExpire","scheduleGenerateNewEmbedTokenTimerId","generateEmbededToken","accessToken","embedUrl","embeddingUrl","embedToken","expiry","SignIn","powerBiPageId","displayNameEn","PageId","inputPageChangeHandler","target","Skeleton","animation","borderRadius","Styles","ReportBtn","reload","print","fullscreen","embedConfig","eventHandlers","cssClassName","report_style_class","getEmbeddedComponent","embedObject","on","page","newPage","prevProps","nextProps","DashboardsService","groupName","MyWorksReportTabName","TopBorderedContainer","Tabs","_DashboardsService","getReportPages","getUserEmbedReport","bind","panes","visible","filters","expanded","syncSlicers","pageNavigation","Top10ISAsReportTabName","getJoipTop10ISAsEmbedReport","OrgDashboardsService","useHistory","useParams","orgsList","useSelector","isVerifiedOrg","MyOrgWorksReportTabName","OrgAffiliationsReportTabName","OrgNetworksReport","OrgNotVerifiedNoDataPlaceholderMsg","OrgNotVerifiedNoDataPlaceholderActionButtonLabel","_OrgDashboardsService","getMyOrgEmbedReport","UserSuspended","PublicSubPagesLayout","to","errorImg","BaseLayout","loadable","BasePublicPagesLayout","ResearcherTwoColumnsLayout","ResearcherThreeColumnsLayout","OrganizationTwoColumnsLayout","Home","Messages","NotFound","Policy","Help","ErrorMessage","About","StaticContent","ContactUs","JoipNews","JoipNewsDetail","JoipEvents","EmailVerify","OrgEmailVerify","ResearcherSearch","FAQ","PublicSearch","Refresh","ResearchersHome","ResearcherProfile","ResearcherContact","ResearcherOverView","ResearcherSocialLinks","ResearcherInnovationInterests","ResearcherOutputAndWorksGuide","ResearcherAddWork","MyIDs","IDsGuides","ResercherSentRequests","ResercherRecievedRequests","ResearcherNetwork","Following","OrgFollowing","Followers","EasyMatch","ResearcherDistinctions","ResearcherEducations","ResearcherEmployments","ResearcherInvitedPositions","ResearcherMemberships","ResearcherQualifications","ResearcherServices","ResearcherIdentityVerification","ResearcherContentVerification","ContentVerificationRequestDetails","ResearcherSentReferralRequest","ResearcherReceivedReferralRequest","ResearcherReferral","CurriculumVitae","VerificationGuides","ResearcherSentWorkFileShareRequest","ResearcherReceivedWorkFileShareRequest","ResearcherWorkFileShare","ProfileViews","ContentVerificationGuides","MyActivityLog","RingGoldOrgSearch","ReportGuides","ChairmanConferences","ChairmanConferencesSubmissions","ChairmanConferenceSubmissionDetails","ChairmanReviewerQuestionsManagement","ChairmanConferenceQuestionsManagement","ChairmanConferenceDocumentsManagement","ReviewerConferencesSubmissions","ReviewerConferencesSubmissionDetails","ResearcherConferencesSubmissions","OrganizationProfile","OrganizationOverview","OrganizationContact","OrganizationSocialLinks","OrganizationWorks","OrgIDs","OrgIDsGuides","OrgOutputAndWorks","OrgInnovationInterests","OrgFollowers","OrgNotifications","Customers","ProductsAndServices","OrgVerificationGuides","OrganizationIdentityVerification","OrganizationContentVerificationRequests","OrganizationContentVerificationRequest","OrgReceivedWorkFileShareRequest","OrganizationViews","OrgContentVerificationGuide","OrgReportGuides","OrgProfileAdmins","OrgConferences","OrgConferenceSubmissions","OrgConferenceQuestionsManagement","OrgReviewerQuestionsManagement","OrgConferenceDocumentsManagement","AuthSilentCallBack","AppWithAuth","makeAuthenticator","signinArgs","useDispatch","path","routerConfig","component","exact","render","routeProps","ProtectedRoute","onSuccess","CheckUser","NoPermissionToDelete","userAccessToken","connection","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","build","ProfileSuspension","OrgProfileId","currentUrl","pathname","errorMes","setTheConnceiotn","CardToast","useLocation","setToast","useRef","bsToast","Toast","getInstance","current","hide","autohide","delay","addEventListener","aria-label","selectedPath","currentPath","matchPath","whiteSpace","maxWidth","notificatonList","CardData","Content","zIndex","_fetchSettings","getConfigurations","fetchSettings","FetchSettings","configurations","Sentry","dsn","environment","release","Offline","syles","offlineContent","WifiOff","ChatsService","Chats","userInfo","chatInfo","_hatsService","NotificationApplication","NotificationImage","NotificationVideo","NotificationAudio","removeAllListeners","registerClientListeners","getUserChatToken","ConversationsClient","updateAttributes","getSubscribedConversations","fetchAllConversations","initConversations","conversationItems","nextConversations","nextPage","updateToken","AddTargetMessage","author","paricipant","getParticipant","dataMessage","media","contentType","includes","stringify","nofificationItem","UserProfile","SendMessage","attributes","Date","some","getMessages","newMessages","updateLastReadMessageIndex","withClearCache","Component","isLatestBuildDate","setIsLatestBuildDate","fetch","cache","json","meta","latestDate","currentDate","momLatestDateTime","momCurrentDateTime","buildDateGreaterThan","buildDate","packageJson","refreshCacheAndReload","caches","names","Fragment","openModal","setOpenModal","localStorageSetHandler","oldValue","newValue","addAccessTokenExpiring","PortalVisitService","userVisit","MetaPixel","Helmet","MainApp","_portalVisitService","clientId","sessionStorage","getItem","AddPortalVisit","removeItem","uuidv4","setItem","username","polling","enabled","renderRoutes","ClearCacheComponent","isLocalhost","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","ScrollToTop","hash","scrollTo","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","queryClient","QueryClient","defaultOptions","queries","refetchOnMount","refetchOnWindowFocus","staleTime","Infinity","ReactDOM","fallback","Splash","minWidth","initialIsOpen","getElementById","langService","loadLangSetup","origin","indexOf","ready","unregister","checkValidServiceWorker","registerServiceWorker","search","EN","currentLang","getlangStrformNum","num","lan","changeLang","lang","_lang","setDefaultLang","newurl","pushState","styleClasses","navlink","TabItem","ActiveNavButton"],"mappings":"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","file":"static/js/main.62688c61.chunk.js","sourcesContent":["import store from \"store2\";\r\nimport { IConfigurations } from \"Models/CommonModels\";\r\n\r\nexport const getSetting = (key: string): string => {\r\n const configs: IConfigurations = store.get(process.env.REACT_APP_LOCAL_STORAGE_SETTINGS);\r\n if (configs !== null && configs !== undefined) {\r\n if (configs[key] !== undefined && configs[key] != \"\") {\r\n return configs[key];\r\n }\r\n }\r\n return process.env[key]!!;\r\n};\r\n\r\nexport class Settings {\r\n static authority: string = getSetting(\"REACT_APP_AUTHORITY\");\r\n static clientAppId: string = getSetting(\"REACT_APP_CLINENT_ID\");\r\n static redirectUri: string = getSetting(\"REACT_APP_REDIRECT_URI\");\r\n static automationSilentRenew: boolean = Boolean(getSetting(\"REACT_APP_AUTOMATION_SILENT_RENEW\"));\r\n static accessTokenExpiringNotificationTime: number = Number(getSetting(\"REACT_APP_ACCESS_TOKEN_EXPIRING_NOTIFICATION_TIME\"));\r\n static silentRedirectUri: string = getSetting(\"REACT_APP_SILENT_REDIRECT_URI\");\r\n static responseType: string = getSetting(\"REACT_APP_RESPONSE_TYPE\");\r\n static scope: string = getSetting(\"REACT_APP_SCOPE\");\r\n static loadResourcesPath: string = process.env.NODE_ENV == \"development\" ? getSetting(\"REACT_APP_LOAD_RESOURCES_PATH\") : `${window.location.protocol}//${window.location.host}/api/AppResources/ListResourcesString?langid={{lng}}`;\r\n static apiBaseUri: string = process.env.NODE_ENV == \"development\" ? getSetting(\"REACT_APP_API_BASE_URI\") : `${window.location.protocol}//${window.location.host}/api/`;\r\n static profileImageUrl_100x100: string = getSetting(\"REACT_APP_PROFILE_iMG_100X100_BASE_URI\");\r\n static profileImageUrl_200x200: string = getSetting(\"REACT_APP_PROFILE_iMG_200X200_BASE_URI\");\r\n static profileImageUrl_coverImage: string = getSetting(\"REACT_APP_PROFILE_iMG_COVERIMAGE_BASE_URI\");\r\n static workFileMaxSize: number = Number(getSetting(\"REACT_APP_PROFILE_WORK_FILE_DOCUMENT_MAX_SIZE\"));\r\n static networksDefaultPageSize: number = Number(getSetting(\"REACT_APP_NETWORK_DEFAULT_PAGE_SIZE\"));\r\n static bookmarksDefaultPageSize: number = Number(getSetting(\"REACT_APP_BOOKMARK_DEFAULT_PAGE_SIZE\"));\r\n static postsTimelineDefaultPageSize: number = Number(getSetting(\"REACT_APP_POSTS_TIMELINE_DEFAULT_PAGE_SIZE\"));\r\n static postsFeedsDefaultPageSize: number = Number(getSetting(\"REACT_APP_POSTS_FEEDS_DEFAULT_PAGE_SIZE\"));\r\n static commentsDefaultPageSize: number = Number(getSetting(\"REACT_APP_COMMENTS_DEFAULT_PAGE_SIZE\"));\r\n static signalR_HubEndpoint: string = process.env.NODE_ENV == \"development\" ? getSetting(\"REACT_APP_SIGNALR_HUB_ENDPOINT\") : `${window.location.protocol}//${window.location.host}//notificationHub`;\r\n static cacheTimeProfile: number = Number(getSetting(\"REACT_APP_CACHE_TIME_PROFILE\"));\r\n static likesDefaultPageSize: number = Number(getSetting(\"REACT_APP_LIKES_DEFAULT_PAGE_SIZE\"));\r\n static publicPageCacheTime: number = Number(getSetting(\"REACT_APP_PUBLIC_PAGE_CASH_TIME\"));\r\n static notificationDelay: number = Number(getSetting(\"REACT_APP_NOTIFICATION_DELAY\"));\r\n static resourcesCacheTime: number = Number(getSetting(\"REACT_APP_RESOURCES_CASH_TIME\"));\r\n static resourcesVersion: string = String(getSetting(\"REACT_APP_RESOURCES_VERSION\"));\r\n static searchSuggestionsResultSize: number = Number(getSetting(\"REACT_APP_SEARCH_SUGGESTIONS_RESULT_SIZE\"))\r\n static sentrydsn: string = getSetting(\"REACT_APP_SENTRY_DSN\")\r\n static joipVersion: string = getSetting(\"REACT_APP_JOIP_PLATFORM_VERSION\")\r\n static identityVerificationMaxDocuments: number = Number(getSetting(\"REACT_APP_IDENTITY_VERIFICATION_MAX_DOCUMENTS\"));\r\n static googleSiteKey: string = String(getSetting(\"REACT_APP_SITE_KEY\"));\r\n static contentVerificationDefaultPageSize: number = Number(getSetting(\"REACT_APP_CONTENT_VERIFICATION_DEFAULT_PAGE_SIZE\"));\r\n static chatMediaSize: number = Number(getSetting(\"REACT_APP_CHAT_MEDIA_SIZE\"));\r\n static isCacheCleanerRuning: boolean = Boolean(getSetting(\"REACT_APP_RUN_CACHE_CLEANER\"));\r\n static emailVerificationCodeTimer: number = Number(getSetting(\"REACT_APP_EMAIL_VERIFICATION_CODE_VERIFY_TIMER\"));\r\n static bibtexFileExtensions: string = String(getSetting(\"REACT_APP_BIBTEX_FILE_EXTENSIONS\"));\r\n static minYearSelect: number = Number(getSetting(\"REACT_APP_MIN_YEAR_SELECT\"));\r\n static joipForumUrl: string = String(getSetting(\"REACT_APP_FORUM_URL\"));\r\n static dashboardsUserMyWorksReport: string = String(getSetting(\"REACT_APP_DASHBOARDS_USER_MYWORKS_REPORT\"));\r\n static dashboardsOrgMyWorksReport: string = String(getSetting(\"REACT_APP_DASHBOARDS_ORG_MYWORKS_REPORT\"));\r\n static dashboardsJoipTop10ISAsReport: string = String(getSetting(\"REACT_APP_DASHBOARDS_JOIP_TOP10ISAs_REPORT\"));\r\n static JoipHelpCenterURI: string = String(getSetting(\"REACT_APP_HELP_CENTER_URI\"));\r\n static JoipHelpCenterURI_AR: string = String(getSetting(\"REACT_APP_HELP_CENTER_URI_AR\"));\r\n static workDefaultPageSize: number = Number(getSetting(\"REACT_APP_WORK_DEFAULT_PAGE_SIZE\"));\r\n static conferenceDefaultPageSize: number = Number(getSetting(\"REACT_APP_CONFERENCE_DEFAULT_PAGE_SIZE\"));\r\n static submissionsDefaultPageSize: number = Number(getSetting(\"REACT_APP_SUBMISSIONS_DEFAULT_PAGE_SIZE\"));\r\n static postImagesMaxNumber: number = Number(getSetting(\"REACT_APP_POST_IMAGES_MAX_NUMBER\"));\r\n\r\n}\r\n\r\n","\r\nexport enum BOOKMARK_TYPE {\r\n USER_PROFILE = 1,\r\n ORG_PROFILE = 2,\r\n WORK = 3,\r\n ORG_WORK = 4\r\n}\r\n\r\nexport interface IBookmarkItem {\r\n id: number;\r\n profileName?: string;\r\n profilePicture?: string;\r\n profileJRIN?: string;\r\n workTitle?: string;\r\n orgProfileName?: string;\r\n orgProfilePicture?: string;\r\n orgProfileJOIN?: string;\r\n orgWorkTitle?: string;\r\n pinnedToTop: boolean;\r\n bookmarkType: BOOKMARK_TYPE;\r\n bookmarkedProfileId?: number | null;\r\n bookmarkedOrgProfileId?: number | null;\r\n bookmarkedWorkId?: number | null;\r\n bookmarkedOrgWorkId?: number | null;\r\n bookmarkDate?: string;\r\n isIdentityVerified?: boolean;\r\n}\r\n\r\nexport interface IBookmarkPagination {\r\n pageSize: number;\r\n pageIndex: number;\r\n}","import { useTranslation } from 'react-i18next';\r\nimport { useCallback } from 'react';\r\n\r\nconst translate = (key: string, nameSpace?: string): string => {\r\n const { t } = useTranslation(nameSpace); \r\n \r\n if(key)\r\n {\r\n return (t(key.toLowerCase()));\r\n }\r\n\r\n return (t(key)); \r\n}\r\nexport default translate;","export interface INetworkNotificationItem {\r\n id: number,\r\n userProfileId: number,\r\n networkNotificationType: number,\r\n createDateTime: string,\r\n read: boolean,\r\n networkUserProfileId: number,\r\n networkOrgProfileId?: number,\r\n networkUserProfile: {\r\n jrin: string,\r\n firstName: string,\r\n familyName: string,\r\n imageName: string\r\n }\r\n}\r\n\r\nexport interface IBadges {\r\n networkNotificationCount: number,\r\n otherNotificationCount: number,\r\n chat: number\r\n}\r\n\r\nexport interface INetworkNotificationStackItem {\r\n id: string,\r\n title: string,\r\n initiatorFullName: string,\r\n URL: string,\r\n initiatorPicture?: string,\r\n targetProfileId: number,\r\n date: string,\r\n message: string\r\n}\r\n\r\nexport interface IReceivedNetworkNotification {\r\n Id: string,\r\n NetworkNotificationType: NETWORK_NOTIFICATION_TYPE,\r\n InitiatorFullName: string,\r\n JRIN: string,\r\n InitiatorPicture?: string,\r\n TargetProfileId: number,\r\n Date: string\r\n}\r\n\r\nexport interface IReceivedGeneralNotification {\r\n Id: string,\r\n InitiatorId: number,\r\n InitiatorFullName: string,\r\n InitiatorPicture?: string,\r\n TargetProfileId: number,\r\n Date: string,\r\n Data: string,\r\n Type: GENERAL_NOTIFICATION_TYPE,\r\n Source: GENERAL_NOTIFICATION_SOURCE\r\n}\r\n\r\nexport interface INetworkNotificationSliceState {\r\n networkNotificationCount: number,\r\n otherNotificationCount: number,\r\n messageNotificationCount: number,\r\n notificationsStack: Array\r\n}\r\n\r\nexport interface IBaseGeneralNotification {\r\n id: number,\r\n generalNotificationType: number,\r\n generalNotificationSource: number,\r\n createDateTime: string,\r\n sourceId: number,\r\n data: string,\r\n notificationImage: string,\r\n name: string,\r\n read: boolean\r\n}\r\n\r\nexport interface IGeneralNotification extends IBaseGeneralNotification {\r\n userProfileId: number\r\n}\r\n\r\nexport interface IOrgGeneralNotification extends IBaseGeneralNotification {\r\n userProfileId: number\r\n}\r\n\r\nexport enum NETWORK_NOTIFICATION_TYPE {\r\n ConnectionRequest = 1,\r\n AcceptedConnection = 2,\r\n NewFollower = 3\r\n}\r\n\r\nexport enum GENERAL_NOTIFICATION_TYPE {\r\n CommentOnMyPost = 1,\r\n LikeOnMyPost = 2,\r\n ProfileIdentityVerification = 3,\r\n ReferralRequest = 4,\r\n ReferralReceived = 5,\r\n WorkFileShareRequest = 6,\r\n WorkFileShareReceived = 7,\r\n ProfileMentioned = 8,\r\n ContentVerification = 9,\r\n SendMessage = 10,\r\n WorkContributor = 11,\r\n OrgWorkContributor = 12,\r\n AddOrgProfileAdmin = 13,\r\n DeleteOrgProfileAdmin = 14,\r\n AddChairman = 15,\r\n DeleteChairman = 16,\r\n AddReviewer = 17,\r\n DeleteReviewer = 18,\r\n ReviewerAcceptAction = 19,\r\n ReviewerRejectAction = 20,\r\n NewSubmission = 21,\r\n AcceptSubmission = 22,\r\n RejectSubmission = 23,\r\n ProfileSuspension = 24,\r\n MissingWorkFileRequest = 25,\r\n SharePost = 26\r\n}\r\n\r\nexport enum ORG_GENERAL_NOTIFICATION_TYPE {\r\n Follow = 1,\r\n PostComment = 2,\r\n PostLike = 3,\r\n WorkFileShareRequest = 4,\r\n OrgProfileIdentityVerification = 5,\r\n ContentVerificationRequest = 6,\r\n MissingWorkFileRequest = 8,\r\n OrgProfileMentioned = 9,\r\n SharePost = 10\r\n}\r\n\r\nexport enum GENERAL_NOTIFICATION_SOURCE {\r\n UserProfile = 1,\r\n OrganizationProfile = 2,\r\n System = 3\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"report_style_class\":\"EmbedReport_report_style_class__DPGCm\",\"ReportBtn\":\"EmbedReport_ReportBtn__RIwTs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"containerSmall\":\"DigitalLine_containerSmall__og7jn\",\"circle\":\"DigitalLine_circle__gi1Lg\",\"column\":\"DigitalLine_column__21hx5\",\"containerLarge\":\"DigitalLine_containerLarge__3Dy0t\"};","//TODO: [Marwan] Merge with sohaib models\r\nimport { IEmail, IOrgEmail } from \"./EmailAddressModels\";\r\nimport { IMobile, IOrgMobile } from \"./MobileModels\";\r\nimport { IPaginatedList, PRIVACY, PROFILE_TYPE, SOURCE } from \"./CommonModels\";\r\n\r\nimport { INetworkStatus } from \"./NetworkModels\";\r\nimport { IISA } from \"./InnovationInterestModels\";\r\nimport { ISocialLinks } from \"./SocialLinkModels\";\r\nimport { IOrgProfileIDs } from \"./OrganizationModels\";\r\n\r\n\r\nexport enum PROFILE_ACTION {\r\n DeleteConnection = \"1\",\r\n Follow = \"2\",\r\n Bookmark = \"3\",\r\n AskReferral = \"4\",\r\n ReportSpam = \"5\"\r\n}\r\n\r\nexport interface IProfileID {\r\n id: number;\r\n name: string;\r\n value: string;\r\n url: string;\r\n privacy: number;\r\n}\r\n\r\nexport interface IActorProfile {\r\n id: number;\r\n fullName: string;\r\n profilePicName: string;\r\n profileTitle?: string;\r\n joipId: string;\r\n isIdentityVerified: boolean;\r\n isOrg?: boolean;\r\n}\r\n\r\nexport interface IAlternativeName {\r\n id: number;\r\n name: string;\r\n privacy: number;\r\n source?: any;\r\n}\r\n\r\nexport interface IOverViewInfo {\r\n overViewInfo: {\r\n firstName: string;\r\n familyName: string;\r\n title: string;\r\n titleAttrId: number;\r\n titlePrivacy: number;\r\n workplace: string;\r\n workplaceAttrId: number;\r\n workplacePrivacy: number;\r\n university: string;\r\n universityAttrId: number;\r\n universityPrivacy: number;\r\n about: string;\r\n aboutAttrId: number;\r\n aboutPrivacy: number;\r\n };\r\n alternativeNames: Array;\r\n}\r\n\r\nexport interface IOrgOverViewInfo {\r\n orgOverviewDto: {\r\n name: string;\r\n about: string;\r\n orgTypeId: any;\r\n foundationDate: any;\r\n join: any;\r\n };\r\n alternativeNames: Array;\r\n}\r\n\r\nexport interface IOrgAlternativeName {\r\n name: string;\r\n id: number;\r\n}\r\n\r\nexport interface IAbout {\r\n about: string;\r\n aboutAttrId: number;\r\n aboutPrivacy: number;\r\n alternativeNames: Array;\r\n emailAddresses: Array;\r\n userProfileMobiles: Array;\r\n address: IAddress;\r\n basicInfo: IBasicInfo;\r\n profileMyIds : Array;\r\n socialLinks : ISocialLinks\r\n}\r\n\r\nexport interface IOrgAbout {\r\n id: number,\r\n about: string,\r\n foundationDate: string,\r\n alternativeNames: Array,\r\n emailAddresses: Array,\r\n orgPorfileMobiles: Array,\r\n orgProfileIds : Array,\r\n orgSocialLinks : ISocialLinks\r\n}\r\n\r\n\r\nexport interface IBaseAddress {\r\n id?: number;\r\n address?: string;\r\n postalCode?: string;\r\n countryId?: number | string;\r\n countryName?: string;\r\n cityId?: number | string;\r\n cityName?: string;\r\n}\r\n\r\nexport interface IAddress extends IBaseAddress {\r\n privacy?: PRIVACY;\r\n}\r\n\r\nexport interface IOrgAddress extends IBaseAddress { }\r\n\r\nexport interface IAlternativeName {\r\n id: number;\r\n name: string;\r\n privacy: number;\r\n source?: any;\r\n}\r\n\r\nexport interface IBasicInfo {\r\n id?: number;\r\n dateOfBairth?: string;\r\n dateOfBairthPrivacy?: PRIVACY;\r\n dateOfBairthAttrId?: number;\r\n nationalityId?: number;\r\n nationalityPrivacy?: PRIVACY;\r\n nationalityAttrId?: number;\r\n nationalityName?: string;\r\n genderId?: GENDER;\r\n genderPrivacy?: PRIVACY;\r\n genderAttrId?: number;\r\n}\r\n\r\nexport interface IProfileData {\r\n profileUserId: number;\r\n firstName: string;\r\n familyName: string;\r\n fullName: string;\r\n jrin: string;\r\n title: string | null;\r\n profilePicName: string | null;\r\n profileCoverPicName: string | null;\r\n university: string | null;\r\n workplace: string | null;\r\n emailAddress: string | null;\r\n phoneNo: string | null;\r\n networkStatus: INetworkStatus | null;\r\n bookmarkId: number | null;\r\n isIdentityVerified: boolean;\r\n}\r\n\r\nexport enum GENDER {\r\n Male = 1,\r\n Female = 2,\r\n}\r\n\r\nexport enum PROFILE_ATTRIBUTE {\r\n About = 4,\r\n Title = 5,\r\n University = 6,\r\n WorkPlace = 7,\r\n Birthdate = 2,\r\n GenderId = 3,\r\n Nationality = 1,\r\n}\r\n\r\nexport interface IGuide {\r\n id: number;\r\n title: string;\r\n content: string;\r\n actionName: string;\r\n actionURL: string;\r\n isPrimary: boolean;\r\n imageURL: string;\r\n}\r\n\r\nexport interface IBasicInfo {\r\n id?: number;\r\n dateOfBairth?: string;\r\n dateOfBairthPrivacy?: PRIVACY;\r\n dateOfBairthAttrId?: number;\r\n nationalityId?: number;\r\n nationalityPrivacy?: PRIVACY;\r\n nationalityAttrId?: number;\r\n nationalityName?: string;\r\n genderId?: GENDER;\r\n genderPrivacy?: PRIVACY;\r\n genderAttrId?: number;\r\n}\r\n\r\nexport interface IProfileIDs {\r\n id: number;\r\n name: string;\r\n value: string;\r\n url: string;\r\n privacy: number;\r\n source: number;\r\n}\r\n\r\nexport interface IContactAndBasicInfoContent {\r\n emailAddresses: IEmail[];\r\n userProfileMobiles: IMobile[];\r\n basicInfo?: IBasicInfo;\r\n address?: IAddress;\r\n}\r\n\r\nexport interface IOrgContactContent {\r\n emailAddresses: IOrgEmail[];\r\n profileMobiles: IOrgMobile[];\r\n address?: IOrgAddress;\r\n}\r\n\r\nexport interface IBaseOrgProfile {\r\n email?: string;\r\n typeId: number;\r\n name: string;\r\n foundationDate?: any;\r\n ringGoldId?: string;\r\n biography?: string;\r\n countryId?: number | null;\r\n cityId?: number | null;\r\n mobileCountryId?: number | null;\r\n mobileNumber?: string | null;\r\n fullMobileNumber?: string | null;\r\n websites?: string[];\r\n alternativeNames?: string[];\r\n identifiers?: {};\r\n}\r\n\r\nexport interface IProfileVisit {\r\n profileId: number;\r\n profileName: string;\r\n profilePicture: string;\r\n profileJoipId: string;\r\n visitCount: number;\r\n lastVisitDate: string;\r\n profileType: PROFILE_TYPE;\r\n isIdentityVerified: boolean;\r\n}\r\n\r\nexport interface ICompletenessCard {\r\n id: number,\r\n item: string,\r\n route: string\r\n}\r\n\r\nexport interface ICompletenessCardInfo {\r\n completenessCardList: Array,\r\n completenessValue: number\r\n}\r\n\r\nexport interface IUserAchievements {\r\n profileVisibility: number;\r\n researchDevelopmentAge: number;\r\n outputsCount: number;\r\n referralsCount: number;\r\n connectionsCount: number;\r\n followersCount: number;\r\n followingCount: number;\r\n collaboratorsCount: number;\r\n postsCount: number;\r\n likesCount: number;\r\n commentsCount: number;\r\n viewsCount: number;\r\n}\r\n\r\nexport interface IOrgAchievements {\r\n researchDevelopmentAge: number;\r\n outputsCount: number;\r\n followersCount: number;\r\n postsCount: number;\r\n likesCount: number;\r\n commentsCount: number;\r\n viewsCount: number;\r\n productsCount: number;\r\n servicesCount: number;\r\n}\r\n\r\n\r\nexport interface IUserEmployment {\r\n id?: number,\r\n userProfileId?: number,\r\n orgProfileId: number | null,\r\n orgName: string,\r\n roleTitle?: string,\r\n departmentName: string,\r\n city: string,\r\n url?: string,\r\n countryId: number,\r\n startYear: number | null,\r\n startMonth: number | null,\r\n startDay: number | null,\r\n endYear: number | null,\r\n endMonth: number | null,\r\n endDay: number | null,\r\n isVerified?: boolean,\r\n professionId: number | null,\r\n professionSubTypeId: number | null,\r\n source?: SOURCE,\r\n privacy?: PRIVACY,\r\n countryName?: string,\r\n orcidSourceName?: string,\r\n profileName?: string\r\n}\r\n\r\n\r\nexport interface IUserEducation {\r\n id?: number,\r\n userProfileId: number,\r\n orgProfileId?: number,\r\n orgName: string,\r\n degreeTypeId?: string,\r\n degreeOptionsId?: string,\r\n degreeTitle?: string,\r\n faculty: string,\r\n departmentName: string,\r\n city: string,\r\n url: string,\r\n countryId: string,\r\n startYear?: string,\r\n startMonth?: string,\r\n startDay?: string,\r\n endYear?: string,\r\n endMonth?: string,\r\n endDay?: string,\r\n source: SOURCE,\r\n privacy?: PRIVACY,\r\n countryName?: string,\r\n orcidSourceName?: string,\r\n isAs?: IISA[];\r\n}\r\n\r\nexport interface IOrgCustomer {\r\n id: number,\r\n orgProfileId: number,\r\n name: string,\r\n countryId: number,\r\n countryName: string\r\n}\r\n\r\n\r\n\r\nexport enum VERIFICATION_DOC_TYPE {\r\n NationalID = 1,\r\n Passrort = 2\r\n}\r\n\r\n\r\nexport enum VERIFICATION_STATUS {\r\n Pending = 1,\r\n Accepted = 2,\r\n Declined = 3\r\n}\r\ninterface IIdentityVerificaionBasicInfoBase {\r\n emailAddress?: string,\r\n phoneNo?: string,\r\n declineReason?: string,\r\n statusDateTime?: string,\r\n verificationStatusId?: VERIFICATION_STATUS,\r\n}\r\nexport interface IIdentityVerificaionBasicInfo extends IIdentityVerificaionBasicInfoBase {\r\n firstName: string,\r\n familyName: string,\r\n countryId?: string,\r\n idBackDocument?: string,\r\n idFrontDocument?: string,\r\n passportDocument?: string,\r\n docType: VERIFICATION_DOC_TYPE,\r\n addressCountryId?: string\r\n}\r\nexport interface IOrgIdentityVerificaionBasicInfo extends IIdentityVerificaionBasicInfoBase {\r\n orgName: string,\r\n countryId?: string,\r\n phoneCountryId?: string,\r\n documents: IDocument[]\r\n}\r\ninterface IIdentityVerificationBase {\r\n id?: number,\r\n verificationStatusId: VERIFICATION_STATUS,\r\n createDateTime: string,\r\n email: string;\r\n mobileNumber: string;\r\n fullMobileNumber: string;\r\n declineReason?: string,\r\n statusDateTime?: string\r\n}\r\nexport interface IIdentityVerification extends IIdentityVerificationBase {\r\n firstName: string,\r\n lastName: string,\r\n verificationDocumentTypeId: VERIFICATION_DOC_TYPE,\r\n idBackDocumentURL?: string,\r\n idFrontDocumentURL?: string,\r\n passportDocumentURL?: string,\r\n idBackDocumentExt?: string,\r\n idFrontDocumentExt?: string,\r\n passportDocumentExt?: string,\r\n countryId: string,\r\n countryName: string,\r\n}\r\nexport interface IOrgIdentityVerification extends IIdentityVerificationBase {\r\n orgName: string,\r\n countryId: string,\r\n countryName: string,\r\n mobileCountryId: string,\r\n mobileCountryName: string,\r\n documents: IDocument[]\r\n}\r\nexport interface IDocument {\r\n documentTitle: string,\r\n documentURL: string,\r\n documentExt?: string\r\n}\r\nexport interface CurriculumVitaeModel {\r\n userId: number,\r\n jrin: string,\r\n jrinurl: string,\r\n fullName: string,\r\n title: string,\r\n workplace: string,\r\n countryName: string,\r\n cityName: string,\r\n about: string,\r\n email: string,\r\n mobile: string,\r\n employments: CurriculumVitaeSharedModel[],\r\n educations: CurriculumVitaeSharedModel[],\r\n distinctions: CurriculumVitaeSharedModel[],\r\n qualifications: CurriculumVitaeSharedModel[],\r\n invitedPositions: CurriculumVitaeSharedModel[],\r\n memberships: CurriculumVitaeSharedModel[],\r\n services: CurriculumVitaeSharedModel[],\r\n profileIdentifiers: CurriculumVitaeProfileIdentifierModel[],\r\n socialLinks: CurriculumVitaeSocialLinkModel[],\r\n works: CurriculumVitaeWorkModel[],\r\n referrals: CurriculumVitaeReferral[],\r\n isas: CurriculumVitaeISAModel[]\r\n}\r\n\r\nexport interface CurriculumVitaeReferral {\r\n refereeFullName: string,\r\n refereeJRIN: string,\r\n message: string,\r\n createDateTime: string\r\n}\r\nexport interface CurriculumVitaeWorkModel {\r\n title: string,\r\n jdoi: string,\r\n jdoiurl: string,\r\n journalName: string,\r\n workTypeName: string,\r\n createDateTime: string,\r\n profileName: string,\r\n workCategoryName: string,\r\n publicationYear?: number,\r\n publicationMonth?: number,\r\n publicationDay?: number\r\n}\r\nexport interface CurriculumVitaeProfileIdentifierModel {\r\n name: string,\r\n url: string,\r\n value: string,\r\n source: SOURCE\r\n}\r\nexport interface CurriculumVitaeSocialLinkModel {\r\n name: string,\r\n url: string\r\n}\r\nexport interface CurriculumVitaeSharedModel {\r\n orgName: string,\r\n departmentName: string,\r\n title: string,\r\n startYear?: number,\r\n startMonth?: number,\r\n startDay?: number,\r\n endYear?: number,\r\n endMonth?: number,\r\n endDay?: number,\r\n city: string,\r\n countryName: string,\r\n faculty?: string\r\n}\r\nexport interface CurriculumVitaeISAModel {\r\n isaName: string,\r\n}\r\nexport interface IProfileViewsPagination {\r\n pageIndex: number;\r\n pageSize: number;\r\n}\r\n\r\nexport interface IPaginatedListProfileViews {\r\n paginatedList: IPaginatedList,\r\n isVisitLogEnabled: boolean\r\n}\r\n\r\nexport interface ICard {\r\n id: number;\r\n profileId: number;\r\n name: string;\r\n firstName?: string;\r\n pictureName: string;\r\n title: string;\r\n visitDate: string;\r\n jrin: string;\r\n networkStatus?: INetworkStatus;\r\n isIdentityVerified: boolean;\r\n isRead?: boolean;\r\n}\r\n\r\nexport interface IActivityLog {\r\n items: IActivityLogItem[],\r\n paginationToken: string\r\n}\r\n\r\nexport interface IActivityLogItem {\r\n activityId: string,\r\n activityCategory: ACTIVITY_CATEGORY,\r\n createDateTime: string,\r\n year: number,\r\n month: number,\r\n day: number,\r\n activityType: ACTIVITY_TYPE,\r\n itemData: string\r\n}\r\n\r\nexport enum ACTIVITY_CATEGORY {\r\n ALL = 0,\r\n Posting = 1,\r\n Network = 2,\r\n Org = 3\r\n}\r\n\r\nexport enum ACTIVITY_TYPE {\r\n CreatePost = 1,\r\n UpdatePost = 2,\r\n RemovePost = 3,\r\n CreateComment = 4,\r\n UpdateComment = 5,\r\n DeleteCommentByCommentOwner = 6,\r\n LikePost = 7,\r\n UnlikePost = 8,\r\n Connect = 9,\r\n Unconnect = 10,\r\n Follow = 11,\r\n Unfollow = 12,\r\n CreateOrg = 13,\r\n RemoveOrg = 14,\r\n DeleteCommentByPostOwner = 15,\r\n SharePost=16\r\n}\r\n\r\nexport interface IRingGoldDataSearch {\r\n searchTerm: string;\r\n country: string;\r\n city: string;\r\n postCode: string;\r\n pageIndex: number;\r\n}\r\n\r\nexport interface RingGoldSearchItemsModel {\r\n hasNextPage: boolean\r\n hasPreviousPage: boolean\r\n items: IRingGoldInfo[]\r\n pageIndex: number\r\n totalCount: number\r\n totalPages: number\r\n}\r\n\r\nexport interface IRingGoldInfo {\r\n id: number,\r\n name: string,\r\n postCode?: string,\r\n type?: string,\r\n city?: string,\r\n country?: string,\r\n countryIso?: string,\r\n adminAreaLevelOne?: string,\r\n adminAreaLevelTwo?: string,\r\n adminAreaLevelThree?: string,\r\n adminAreaLevelFour?: string,\r\n adminAreaLevelFive?: string,\r\n selfDescriptions?: Array,\r\n activityStatus?: string,\r\n governances?: Array,\r\n economicModel?: string,\r\n level?: string,\r\n numberOfSites?: string,\r\n tier?: string,\r\n size?: string\r\n staff?: string,\r\n identifiers?: {},\r\n urls?: Array,\r\n alternativeNames?: Array,\r\n missions?: Array,\r\n subjects?: Array,\r\n reach?: string\r\n}\r\n\r\nexport interface IUserProfileStatistics {\r\n researchers: number,\r\n orgs: number,\r\n publications: number,\r\n userPublications: number,\r\n posts: number\r\n}\r\n\r\n\r\nexport interface IReportSpamParams {\r\n reasonId: number;\r\n reasonDesc: string;\r\n userProfileId?:number;\r\n orgProfileId?:number;\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Toast_sucess\":\"Toast_Toast_sucess__10i3H\",\"Toast_warning\":\"Toast_Toast_warning__1_jtd\",\"Toast_error\":\"Toast_Toast_error__28s3u\"};","export enum PRIVACY {\r\n PUBLIC = 1,\r\n MY_NETWORK = 2,\r\n ONLY_ME = 3,\r\n}\r\n\r\nexport enum NETWORK_TYPE {\r\n WEBSITE = 1,\r\n FACEBOOK = 2,\r\n TWITTER = 3,\r\n LINKEDIN = 4,\r\n}\r\n\r\nexport enum SOURCE {\r\n JOIP = 1,\r\n ORCID = 2,\r\n}\r\n\r\nexport enum VIEWER_TYPE {\r\n Owner = 1, // Owner of the profile\r\n JoipUser = 2, // Joip User visting a profile\r\n NonJoipUser = 3, // Non Joip User visting a profile\r\n}\r\n\r\nexport enum GUIDES_TYPE {\r\n IdGuides = 1,\r\n WorkGuides = 2,\r\n OrgIdGuides = 3,\r\n OrgWorkGuides = 4,\r\n IdentityVerificationGuide = 5,\r\n OrgIdentityVerificationGuide = 6,\r\n ContentVerificationGuide = 7,\r\n OrgContentVerificationGuide = 8,\r\n ReportGuides = 9,\r\n OrgReportGuides = 10\r\n\r\n}\r\n\r\nexport enum PROFILE_TYPE {\r\n USER_PROFILE = 1,\r\n ORG_PROFILE = 2,\r\n}\r\n\r\nexport enum MATCHING_CRITERIA {\r\n Contains = 1,\r\n StartWith = 2\r\n}\r\n\r\nexport type IconSizeType = \"xsmall\" | \"small\" | \"medium\" | \"large\"\r\n\r\nexport interface IConfiguration {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport interface IConfigurations {\r\n [key: string]: string;\r\n}\r\n\r\nexport interface IPaginatedList {\r\n items: Array;\r\n totalCount: number;\r\n pageIndex: number;\r\n hasNextPage: boolean;\r\n hasPreviousPage?: boolean;\r\n totalPages: number;\r\n}\r\n\r\nexport interface ISelect {\r\n label: string;\r\n value: Type;\r\n}\r\n\r\nexport interface ICountrySelect {\r\n label: string;\r\n value: string;\r\n countryCode?: string;\r\n}\r\n\r\nexport interface IMenuSection {\r\n items: Array;\r\n isLast?: boolean;\r\n funs?: Array<() => void>;\r\n}\r\n\r\nexport interface IMenuItem {\r\n path?: string;\r\n title: string;\r\n icon?: string;\r\n badge?: number;\r\n items?: Array;\r\n selected?: boolean;\r\n isHeader?: boolean;\r\n subLevel?: number;\r\n activeRouts?: Array;\r\n funIndex?: number;\r\n funs?: Array<() => void>;\r\n openNewTab?: boolean;\r\n isInactive?: boolean;\r\n}\r\n\r\nexport type DropdownToggleType = 'SELECTED_ICON' | 'SELECTED_TEXT' | 'SELECTED_ICON_TEXT' | 'ICON' | 'LABEL'\r\n\r\nexport interface IDropdownItem {\r\n /** item text */\r\n label: string;\r\n /** optional - value for each item, used in function callback when selected */\r\n value?: string;\r\n /** optional - icon name, displayed alongside the item */\r\n iconName?: string;\r\n imgSource?: string;\r\n isActive?: boolean;\r\n}\r\n\r\nexport interface IDropdownItemBase extends IDropdownItem {\r\n /** optional - callback function to be excecuted on item click */\r\n callbackFunction: any;\r\n disabled?: boolean;\r\n}\r\n\r\nexport interface IConfirmDelete {\r\n show: boolean;\r\n text?: string;\r\n title?: string;\r\n isLoading?: boolean;\r\n}\r\n\r\n// used by redux (ViewWorkSlice)\r\nexport interface IViewWork {\r\n show: boolean;\r\n workId: number,\r\n isOwner?: boolean,\r\n isOrgWork?: boolean\r\n isLoading?: boolean;\r\n}\r\n\r\nexport interface IOrgNameInput {\r\n name: string,\r\n value: number\r\n}\r\n\r\nexport interface ICountryCityInput {\r\n countryId: number,\r\n country?: string,\r\n city: string,\r\n}\r\n\r\nexport interface IDateRangeInputs {\r\n startYear?: string,\r\n startMonth?: string,\r\n startDay?: string,\r\n endYear?: string,\r\n endMonth?: string,\r\n endDay?: string,\r\n}\r\n\r\nexport interface IDateInputs {\r\n year: string,\r\n month: string,\r\n day: string,\r\n}\r\n\r\nexport interface IAnnouncement {\r\n content: string;\r\n}\r\n\r\n//type FilterType = CONTENT_VERIFICATION_TYPE | CONTENT_VERIFICATION_STATUS\r\nexport type FilterType = number | string\r\nexport interface IFilterItem {\r\n value: Type,\r\n name: string\r\n}\r\n\r\nexport interface IInputTagSettings {\r\n placeholder?: string,\r\n pattern?: RegExp,\r\n delimiters?: string,\r\n texts?:\r\n {\r\n pattern?: string,\r\n duplicate?: string,\r\n notAllowed?: string\r\n },\r\n keepInvalidTags: boolean,\r\n backspace?: boolean\r\n}\r\n\r\nexport enum INPUT_FIELD_TYPE {\r\n PARAGRAPH = 1, // \"essay answer\",\r\n MULTIPLE_CHOICE = 2, // \"single choice\"\r\n CHECKBOXES = 3, // \"multi choices\",\r\n DATE_PICKER = 4, // \"date\"\r\n SEPARATOR = 5, // \"group title\"\r\n FILE = 6 // \"file\"\r\n}\r\n\r\nexport type Direction = \"vertical\" | \"horizontal\"\r\nexport interface IInputField {\r\n name: string,\r\n type: INPUT_FIELD_TYPE,\r\n label: string,\r\n numbering?: string,\r\n placeholder?: string,\r\n isRequired?: boolean,\r\n options?: IInputFieldOption[],\r\n optionsDirection?: Direction,\r\n value?: any,\r\n errorMsg?: string,\r\n fileName?:string,\r\n fileUrl?:string\r\n}\r\nexport interface IInputFieldOption {\r\n value?: string,\r\n text: string,\r\n isChecked?: boolean,\r\n isDefault?: boolean,\r\n followupQuestion?:IInputField\r\n}\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport _ from 'lodash';\r\nimport { Client } from \"@twilio/conversations\";\r\nimport moment from 'moment';\r\n\r\nimport { ApplicationState, AppThunk } from '../index';\r\nimport { IChatModal, ClientStatus } from 'Models/ChatsModel';\r\nimport { addMessageNotificationsCount, resetMessageNotifications } from './Notifications/NotificationSlice';\r\n\r\nconst initialState: IChatModal = {\r\n client: null,\r\n clientStatus: \"disconnected\",\r\n conversations: [],\r\n selectedConversation: null,\r\n activeMessageObj: {},\r\n activeMessages: [],\r\n participant: null,\r\n user: null,\r\n activeConversations: [],\r\n convLoading: false,\r\n showEmptyMessage: false,\r\n usersTyping: [],\r\n isActiveMessgeLoading: false\r\n};\r\n\r\n\r\nconst chatSlice = createSlice({\r\n name: 'chatSlice',\r\n initialState: initialState,\r\n reducers: {\r\n addClient: (state, action: PayloadAction) => {\r\n state.client = action.payload;\r\n },\r\n changeClientStatus: (state, action: PayloadAction) => {\r\n state.clientStatus = action.payload\r\n },\r\n addConversations: (state, action: PayloadAction) => {\r\n\r\n const conversations = action.payload;\r\n conversations?.forEach(async (item: any) => {\r\n item._lastMessage = item?.lastMessage;\r\n });\r\n\r\n state.conversations = conversations\r\n },\r\n addConversation: (state, action: PayloadAction) => {\r\n const conversation = action.payload;\r\n if (!state.conversations.find((c: any) => c.sid == conversation.sid)) {\r\n conversation.badgeCount = 0;\r\n state.conversations.unshift(conversation);\r\n state.showEmptyMessage = false;\r\n }\r\n },\r\n addSelectedConversation: (state, action: PayloadAction) => {\r\n state.selectedConversation = action.payload\r\n },\r\n addActiveMessages: (state, action: PayloadAction) => {\r\n state.activeMessages = action.payload\r\n },\r\n appendActiveMessages: (state, action: PayloadAction) => {\r\n if (action.payload) {\r\n state.activeMessages = action.payload.concat(state.activeMessages) //state.activeMessages.concat(action.payload)\r\n }\r\n },\r\n AddActiveMessageObj: (state, action: PayloadAction) => {\r\n state.activeMessageObj = action.payload\r\n },\r\n messageAdded: (state, action: PayloadAction) => {\r\n\r\n const message = action.payload;\r\n\r\n if (state.selectedConversation && state.selectedConversation.sid == message.conversation.sid) {\r\n state.activeMessages = [...state.activeMessages, message];\r\n }\r\n const conversatioins = [...state.conversations];\r\n const conversationIndex = conversatioins.findIndex((item: any) => item.sid == message.conversation.sid);\r\n const conversation = conversatioins[conversationIndex];\r\n\r\n conversation._lastMessage = {\r\n index: message?.index,\r\n dateCreated: message?.dateCreated\r\n }\r\n\r\n const sortedConversations = conversatioins.sort(((a: any, b: any) => Number(moment(b?._lastMessage?.dateCreated).format('YYYYMMDDHHmmss')) - Number(moment(a?._lastMessage?.dateCreated).format('YYYYMMDDHHmmss'))));\r\n state.conversations = [...sortedConversations];\r\n },\r\n messageDeleted: (state, action: PayloadAction) => {\r\n const message = action.payload;\r\n\r\n if (state.selectedConversation && state.selectedConversation.sid == message.conversation.sid) {\r\n state.activeMessages = state.activeMessages.filter((item: any) => item.sid != message.sid);\r\n }\r\n\r\n const conversatioins = [...state.conversations];\r\n const conversationIndex = conversatioins.findIndex((item: any) => item.sid == message.conversation.sid);\r\n if (conversatioins[conversationIndex]._lastMessage.index == message.index) {\r\n conversatioins[conversationIndex]._lastMessage.index = message.index - 1;\r\n }\r\n state.conversations = conversatioins;\r\n },\r\n setReciverParticipant: (state, action: PayloadAction) => {\r\n state.participant = action.payload;\r\n },\r\n setReciverUser: (state, action: PayloadAction) => {\r\n state.user = action.payload;\r\n },\r\n setActiveConversationsSids: (state, action: PayloadAction) => {\r\n state.activeConversations.push(action.payload)\r\n },\r\n setConLoading: (state, action: PayloadAction) => {\r\n state.convLoading = action.payload\r\n },\r\n addUserTyping: (state, action: PayloadAction) => {\r\n if (action.payload) {\r\n state.usersTyping.push(action.payload);\r\n }\r\n },\r\n removeUserTyping: (state, action: PayloadAction) => {\r\n if (action.payload) {\r\n state.usersTyping = state.usersTyping.filter((p: any) => p.sid != action.payload.sid);\r\n }\r\n },\r\n resetActiveConversation: (state) => {\r\n state.selectedConversation = null;\r\n state.activeMessageObj = {};\r\n state.activeMessages = [];\r\n state.participant = null;\r\n state.user = null;\r\n state.activeConversations = [];\r\n },\r\n updateMessage: (state, action: PayloadAction) => {\r\n const message = action.payload.message;\r\n if (message) {\r\n const messageIndex = state?.activeMessages?.findIndex((item: any) => item.sid == message.sid);\r\n if (messageIndex >= 0) {\r\n state.activeMessages[messageIndex] = {};\r\n state.activeMessages[messageIndex] = message;\r\n }\r\n\r\n const conversation = state?.conversations?.find((item: any) => item.sid == message.conversation.sid);\r\n if (conversation && conversation?._lastMessage?.index == message.index) {\r\n conversation._lastMessage.index = message.index;\r\n conversation._lastMessage.dateCreated = message.dateCreated\r\n }\r\n }\r\n },\r\n setActiveMessgeLoading: (state, action: PayloadAction) => {\r\n state.isActiveMessgeLoading = action.payload\r\n },\r\n }\r\n});\r\n\r\nexport const {\r\n addClient,\r\n changeClientStatus,\r\n addConversations,\r\n addConversation,\r\n addSelectedConversation,\r\n AddActiveMessageObj,\r\n messageAdded,\r\n setReciverParticipant,\r\n setReciverUser,\r\n setActiveConversationsSids,\r\n setConLoading,\r\n addActiveMessages,\r\n appendActiveMessages,\r\n messageDeleted,\r\n addUserTyping,\r\n removeUserTyping,\r\n resetActiveConversation,\r\n updateMessage,\r\n setActiveMessgeLoading\r\n} = chatSlice.actions;\r\n\r\n\r\nexport const setReciverUserInfo = (conversation: any, jrin: string): AppThunk => async (dispatch, getstate) => {\r\n\r\n const participants = await conversation.getParticipants();\r\n const participant = participants.find((item: any) => item.identity != jrin);\r\n const userObj = await participant?.getUser();\r\n\r\n dispatch(setReciverParticipant(participant));\r\n dispatch(setReciverUser(userObj));\r\n};\r\n\r\nexport const sortConversations = (convs: any[] | null): AppThunk => async (dispatch, getstate) => {\r\n\r\n let conversations: any[] | null = [];\r\n if (convs) {\r\n conversations = [...convs];\r\n\r\n const sortedReslult: any[] = conversations.sort(((a: any, b: any) => Number(moment(b?.lastMessage?.dateCreated).format('YYYYMMDDHHmmss')) - Number(moment(a?.lastMessage?.dateCreated).format('YYYYMMDDHHmmss'))));\r\n dispatch(addConversations([...sortedReslult]));\r\n\r\n } else {\r\n const localConversations = getstate().chat?.conversations;\r\n if (localConversations) {\r\n conversations = [...localConversations];\r\n\r\n if (conversations) {\r\n const sortedReslult: any[] = conversations.sort(((a: any, b: any) => Number(moment(b?._lastMessage?.dateCreated).format('YYYYMMDDHHmmss')) - Number(moment(a?._lastMessage?.dateCreated).format('YYYYMMDDHHmmss'))));\r\n dispatch(addConversations([...sortedReslult]));\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const getBadgeCount = (): AppThunk => async (dispatch, getstate) => {\r\n const conversations: any = getstate().chat?.conversations;\r\n dispatch(resetMessageNotifications(null));\r\n\r\n conversations?.forEach(async (item: any) => {\r\n let count = await item.getUnreadMessagesCount();\r\n if (count == null) {\r\n count = item?.lastMessage?.index >= 0 ? item.lastMessage.index + 1 : 0\r\n }\r\n item.badgeCount = count;\r\n dispatch(addMessageNotificationsCount(count));\r\n });\r\n}\r\n\r\nexport const incrementConversationBadgeCount = (conv: any): AppThunk => async (dispatch, getstate) => {\r\n if (conv) {\r\n const activeConversation = getstate().chat?.selectedConversation;\r\n if (conv.sid != activeConversation?.sid) {\r\n const conversation = getstate().chat?.conversations.find((item: any) => item.sid == conv.sid);\r\n conversation.badgeCount += 1;\r\n dispatch(addMessageNotificationsCount(1));\r\n }\r\n }\r\n}\r\n\r\nexport const decrementConversationBadgeCount = (conv: any): AppThunk => async (dispatch, getstate) => {\r\n if (conv) {\r\n const conversation = getstate().chat?.conversations.find((item: any) => item.sid == conv.sid);\r\n if (conversation.badgeCount > 0) {\r\n conversation.badgeCount -= 1;\r\n dispatch(resetMessageNotifications(1));\r\n }\r\n }\r\n}\r\n\r\nexport const resetConversationBadgeCount = (conv: any): AppThunk => async (dispatch, getstate) => {\r\n if (conv) {\r\n const activeConversation = getstate().chat?.conversations.find((item: any) => item.sid == conv.sid);\r\n dispatch(resetMessageNotifications(activeConversation?.badgeCount));\r\n activeConversation.badgeCount = 0;\r\n }\r\n}\r\n\r\nexport const chat = (state: ApplicationState) => state.chat;\r\nexport default chatSlice.reducer;\r\n","\r\nexport interface IRoute {\r\n pattern: string,\r\n route: string,\r\n}\r\n\r\nexport interface IRoutes {\r\n patterns: Array,\r\n routes: Array\r\n}\r\n\r\n//Public & Common Pages\r\nexport const defaultRoute: IRoute = { pattern: '/', route: '/' };\r\nexport const home: IRoute = { pattern: '/home', route: '/home' };\r\nexport const messages: IRoute = { pattern: '/messages', route: '/messages' };\r\nexport const publicSearch: IRoute = { pattern: '/pub-search/:searchTerm?', route: '/pub-search/{0}' };\r\nexport const authCallback: IRoute = { pattern: '/callback', route: '/callback' };\r\nexport const silentCallback: IRoute = { pattern: '/silent-callback', route: '/silent-callback' };\r\nexport const suspendUser: IRoute = { pattern: '/suspend-user', route: '/suspend-user' };\r\nexport const policy: IRoute = { pattern: '/policy', route: '/policy' };\r\nexport const help: IRoute = { pattern: '/help', route: '/help' };\r\nexport const about: IRoute = { pattern: '/about', route: '/about' };\r\nexport const aboutJoip: IRoute = { pattern: '/about-joip', route: '/about-joip' };\r\nexport const whoWeAre: IRoute = { pattern: '/who-we-are', route: '/who-we-are' };\r\nexport const joipServices: IRoute = { pattern: '/joip-services', route: '/joip-services' };\r\nexport const joipNews: IRoute = { pattern: '/joip-news', route: '/joip-news' };\r\nexport const joipNewsDetail: IRoute = { pattern: '/joip-news/:id', route: '/joip-news/{0}' };\r\nexport const joipEvents: IRoute = { pattern: '/joip-events', route: '/joip-events' };\r\nexport const individuals: IRoute = { pattern: '/individuals', route: '/individuals' };\r\nexport const organizations: IRoute = { pattern: '/organizations', route: '/organizations' };\r\nexport const faq: IRoute = { pattern: '/FAQ', route: '/FAQ' };\r\nexport const patnerWithJoip: IRoute = { pattern: '/partner-with-joip', route: '/partner-with-joip' };\r\nexport const accessdenied: IRoute = { pattern: '/access-denied', route: '/access-denied' };\r\nexport const userSuspended: IRoute = { pattern: '/user-suspended', route: '/user-suspended' };\r\nexport const errorRoute: IRoute = { pattern: '/error', route: '/error' };\r\nexport const notDound: IRoute = { pattern: '*', route: '*' };\r\nexport const emailVerify: IRoute = { pattern: '/email-verify/:token', route: '/email-verify' };\r\nexport const orgEmailVerify: IRoute = { pattern: '/org-email-verify/:token/:join', route: '/org-email-verify/{0}/{1}' };\r\nexport const refresh: IRoute = { pattern: '/refresh', route: '/refresh' };\r\n\r\n\r\n\r\n//Resercher Pages\r\nexport const researcher: IRoute = { pattern: '/feed', route: '/feed' };\r\nexport const post: IRoutes = { patterns: ['/post/:postId/:commentId?'], routes: ['/post/{0}/{1}', '/post/{0}'] };\r\n// researcherProfile.patterns[0] reads from researcherProfile.routes[0] & researcherProfile.routes[2] for scrolling down to #tab\r\nexport const researcherProfile: IRoutes = { patterns: ['/profile/:jrin?/:tab?', '/profile/:jrin?/:tab?/:jdoi?'], routes: ['/profile/{0}/{1}', '/profile/{0}/{2}/{1}', '/profile/{0}/{1}#tab'] };\r\nexport const resercherSentRequests: IRoute = { pattern: '/mynetwork/sent-requests', route: '/mynetwork/sent-requests' };\r\nexport const resercherRecievedRequests: IRoute = { pattern: '/mynetwork/recieved-requests', route: '/mynetwork/recieved-requests' };\r\nexport const resercherFollowing: IRoute = { pattern: '/mynetwork/following', route: '/mynetwork/following' };\r\nexport const resercherOrgFollowing: IRoute = { pattern: '/mynetwork/org-following', route: '/mynetwork/org-following' };\r\nexport const resercherFollowers: IRoute = { pattern: '/mynetwork/followers', route: '/mynetwork/followers' };\r\nexport const researcherEasyMatch: IRoute = { pattern: '/mynetwork/easy-match', route: '/mynetwork/easy-match' };\r\nexport const researcherContact: IRoute = { pattern: '/myprofile/contact-info/', route: '/myprofile/contact-info' };\r\nexport const researcherOverview: IRoute = { pattern: '/myprofile/overview', route: '/myprofile/overview' };\r\nexport const researcherSocialLinks: IRoute = { pattern: '/myprofile/links', route: '/myprofile/links' };\r\nexport const researcherInnovationInterests: IRoute = { pattern: '/myprofile/innovation-interests', route: '/myprofile/innovation-interests' };\r\nexport const researcherIdsGuides: IRoute = { pattern: '/myprofile/ids-guide', route: '/myprofile/ids-guide' };\r\nexport const researcherMyIds: IRoute = { pattern: '/myprofile/ids', route: '/myprofile/ids' };\r\nexport const researcherOutputAndWorksGuide: IRoute = { pattern: '/myprofile/works-guide', route: '/myprofile/works-guide' };\r\nexport const researcherAddWork: IRoute = { pattern: '/myprofile/works', route: '/myprofile/works' };\r\nexport const researcherNetwork: IRoute = { pattern: '/mynetwork/connections', route: '/mynetwork/connections' };\r\nexport const researcherDistinction: IRoute = { pattern: '/myprofile/distinctions', route: '/myprofile/distinctions' };\r\nexport const researcherEducation: IRoute = { pattern: '/myprofile/educations', route: '/myprofile/educations' };\r\nexport const researcherEmployment: IRoute = { pattern: '/myprofile/employments', route: '/myprofile/employments' };\r\nexport const researcherInvitedPosition: IRoute = { pattern: '/myprofile/invited-positions', route: '/myprofile/invited-positions' };\r\nexport const researcherMembership: IRoute = { pattern: '/myprofile/memberships', route: '/myprofile/memberships' };\r\nexport const researcherQualification: IRoute = { pattern: '/myprofile/qualifications', route: '/myprofile/qualifications' };\r\nexport const researcherService: IRoute = { pattern: '/myprofile/services', route: '/myprofile/services' };\r\nexport const researcherIdentityVerification: IRoute = { pattern: '/myprofile/identity-verification/:id?', route: '/myprofile/identity-verification/{0}' };\r\nexport const researcherVerificationGuides: IRoute = { pattern: '/myprofile/verification-guide', route: '/myprofile/verification-guide' };\r\nexport const researcherSearch: IRoute = { pattern: '/search/:searchTerm?', route: '/search/{0}' };\r\nexport const resercherSentReferralRequests: IRoute = { pattern: '/myprofile/sent-referral-requests', route: '/myprofile/sent-referral-requests' };\r\nexport const resercherReceivedReferralRequests: IRoute = { pattern: '/myprofile/received-referral-requests/:id?', route: '/myprofile/received-referral-requests/{0}' };\r\nexport const researcherReferrals: IRoute = { pattern: '/myprofile/referrals/:id?', route: '/myprofile/referrals/{0}' };\r\nexport const researcherCurriculumVitae: IRoute = { pattern: '/myprofile/curriculum-vitae', route: '/myprofile/curriculum-vitae' };\r\nexport const researcherSentWorkFileShareRequests: IRoute = { pattern: '/myprofile/sent-file-share-requests', route: '/myprofile/sent-file-share-requests' };\r\nexport const researcherReceivedWorkFileShareRequests: IRoute = { pattern: '/myprofile/received-file-share-requests/:id?', route: '/myprofile/received-file-share-requests/{0}' };\r\nexport const researcherWorkFileShare: IRoute = { pattern: '/myprofile/file-share', route: '/myprofile/file-share' };\r\nexport const researcherContentVerification: IRoute = { pattern: '/myprofile/content-verifications', route: '/myprofile/content-verifications' };\r\nexport const researcherContentVerificationRequest: IRoute = { pattern: '/myprofile/content-verification/:id/:contentType', route: '/myprofile/content-verification/{0}/{1}' };\r\nexport const researcherProfileViews: IRoute = { pattern: '/myprofile/profile-views', route: '/myprofile/profile-views' };\r\nexport const researcherContentVerificationGuides: IRoute = { pattern: '/myprofile/content-verification-guide', route: '/myprofile/content-verification-guide' };\r\nexport const researcherActivityLog: IRoute = { pattern: '/myprofile/my-activity', route: '/myprofile/my-activity' };\r\nexport const researcherRingGoldSearch: IRoute = { pattern: '/myprofile/ringgold-search/:searchTerm?', route: '/myprofile/ringgold-search/{0}' };\r\nexport const resercherWorksReport: IRoute = { pattern: '/myprofile/dashboards/myReports/worksReport', route: '/myprofile/dashboards/myReports/worksReport' };\r\nexport const resercherTop10ISAsReport: IRoute = { pattern: '/myprofile/dashboards/joipReports/top10ISAsReport', route: '/myprofile/dashboards/joipReports/top10ISAsReport' };\r\nexport const researcherReportGuides: IRoute = { pattern: '/myprofile/reports-guide', route: '/myprofile/reports-guide' };\r\nexport const chairmanConferences: IRoute = { pattern: '/myprofile/chairman-activities', route: '/myprofile/chairman-activities' };\r\nexport const chairmanConferencesSubmissions: IRoute = { pattern: '/myprofile/chairman-activities-submissions/:orgId/:conferenceId', route: '/myprofile/chairman-activities-submissions/{0}/{1}' };\r\nexport const chairmanConferenceSubmissionDetails: IRoute = { pattern: '/myprofile/chairman-activity-submission-details/:submissionId/:reviewerId?', route: '/myprofile/chairman-activity-submission-details/{0}/{1}' };\r\nexport const chairmanReviewerQuestionsManagement: IRoute = { pattern: '/myprofile/manage-reviewer-questions/:orgId/:conferenceId', route: '/myprofile/manage-reviewer-questions/{0}/{1}' };\r\nexport const chairmanConferenceQuestionsManagement: IRoute = { pattern: '/myprofile/manage-activity-questions/:orgId/:conferenceId', route: '/myprofile/manage-activity-questions/{0}/{1}' };\r\nexport const chairmanConferenceDocumentsManagement: IRoute = { pattern: '/myprofile/manage-activity-documents/:orgId/:conferenceId', route: '/myprofile/manage-activity-documents/{0}/{1}' };\r\nexport const reviewerConferencesSubmissions: IRoute = { pattern: '/myprofile/reviewer-activities-submissions', route: '/myprofile/reviewer-activities-submissions' };\r\nexport const reviewerConferenceSubmissionDetails: IRoute = { pattern: '/myprofile/reviewer-activity-submission-details/:submissionId', route: '/myprofile/reviewer-activity-submission-details/{0}' };\r\nexport const researcherConferencesSubmissions: IRoute = { pattern: '/myprofile/submitter-activities-submissions/:submissionId?', route: '/myprofile/submitter-activities-submissions/{0}' };\r\n\r\n//Organization Pages\r\n// organizationProfile.patterns[0] reads from organizationProfile.routes[0] & organizationProfile.routes[2] for scrolling down to #tab\r\nexport const organizationProfile: IRoutes = { patterns: ['/org-profile/:join?/:tab?', '/org-profile/:join?/:tab?/:jdoi?'], routes: ['/org-profile/{0}/{1}', '/org-profile/{0}/{2}/{1}', '/org-profile/{0}/{1}#tab'] };\r\nexport const organizationOverview: IRoute = { pattern: '/org/:join/manage-overview', route: '/org/{0}/manage-overview' };\r\nexport const organizationContact: IRoute = { pattern: '/org/:join/manage-contact-info', route: '/org/{0}/manage-contact-info' };\r\nexport const organizationSocialLinks: IRoute = { pattern: '/org/:join/manage-links', route: '/org/{0}/manage-links' };\r\nexport const organizationWorks: IRoute = { pattern: '/org/:join/manage-works', route: '/org/{0}/manage-works' };\r\nexport const organizationIds: IRoute = { pattern: '/org/:join/manage-ids', route: '/org/{0}/manage-ids' };\r\nexport const organizationIdsGuides: IRoute = { pattern: '/org/:join/ids-guide', route: '/org/{0}/ids-guide' };\r\nexport const organizationOutputAndWorksGuide: IRoute = { pattern: '/org/:join/works-guide', route: '/org/{0}/works-guide' };\r\nexport const organizationInnovationInterests: IRoute = { pattern: '/org/:join/manage-innovation-interests', route: '/org/{0}/manage-innovation-interests' };\r\nexport const organizationFollowers: IRoute = { pattern: '/org/:join/followers', route: '/org/{0}/followers' };\r\nexport const organizationNotifications: IRoute = { pattern: '/org/:join/notification', route: '/org/{0}/notification' };\r\nexport const organizationProductsServices: IRoute = { pattern: '/org/:join/products', route: '/org/{0}/products' };\r\nexport const organizationCustomers: IRoute = { pattern: '/org/:join/customers', route: '/org/{0}/customers' };\r\nexport const organizationVerificationGuides: IRoute = { pattern: '/org/:join/verification-guide', route: '/org/{0}/verification-guide' };\r\nexport const organizationIdentityVerification: IRoute = { pattern: '/org/:join/identity-verification/:id?', route: '/org/{0}/identity-verification/{1}' };\r\nexport const organizationReceivedWorkFileShareRequests: IRoute = { pattern: '/org/:join/received-file-share-requests/:id?', route: '/org/{0}/received-file-share-requests/{1}' };\r\nexport const organizationContentVerification: IRoute = { pattern: '/org/:join/content-verifications', route: '/org/{0}/content-verifications' };\r\nexport const organizationContentVerificationRequest: IRoute = { pattern: '/org/:join/content-verification/:id/:contentType', route: '/org/{0}/content-verification/{1}/{2}' };\r\nexport const organizationViews: IRoute = { pattern: '/org/:join/org-views', route: '/org/{0}/org-views' };\r\nexport const organizationContentVerificationGuides: IRoute = { pattern: '/org/:join/content-verification-guide', route: '/org/{0}/content-verification-guide' };\r\nexport const organizationWorksReport: IRoute = { pattern: '/org/:join/dashboards/myReports/worksReport', route: '/org/{0}/dashboards/myReports/worksReport' };\r\nexport const organizationAffiliationsReport: IRoute = { pattern: '/org/:join/dashboards/myReports/affiliationsReport', route: '/org/{0}/dashboards/myReports/affiliationsReport' };\r\nexport const organizationNetworksReport: IRoute = { pattern: '/org/:join/dashboards/myReports/networksReport', route: '/org/{0}/dashboards/myReports/networksReport' };\r\nexport const organizationReportGuides: IRoute = {pattern: '/org/:join/reports-guide', route: '/org/{0}/reports-guide'}\r\nexport const organizationProfileAdmins: IRoute = {pattern: '/org/:join/admins', route: '/org/{0}/admins'}\r\nexport const organizationConferences: IRoute = { pattern: '/org/:join/activities', route: '/org/{0}/activities' };\r\nexport const orgConferenceSubmissions: IRoute = { pattern: '/org/:join/activity-submissions/:conferenceId', route: '/org/{0}/activity-submissions/{1}' };\r\nexport const orgConferenceQuestionsManagement: IRoute = { pattern: '/org/:join/manage-activity-questions/:conferenceId', route: '/org/{0}/manage-activity-questions/{1}' };\r\nexport const orgReviewerQuestionsManagement: IRoute = { pattern: '/org/:join/manage-reviewer-questions/:conferenceId', route: '/org/{0}/manage-reviewer-questions/{1}' };\r\nexport const orgConferenceDocumentsManagement: IRoute = { pattern: '/org/:join/manage-conference-documents/:conferenceId', route: '/org/{0}/manage-conference-documents/{1}' };\r\n\r\nconst Routes = {\r\n defaultRoute,\r\n home,\r\n authCallback,\r\n silentCallback,\r\n suspendUser,\r\n userSuspended,\r\n policy,\r\n faq,\r\n help,\r\n about,\r\n aboutJoip,\r\n whoWeAre,\r\n joipServices,\r\n joipNews,\r\n joipNewsDetail,\r\n joipEvents,\r\n individuals,\r\n organizations,\r\n patnerWithJoip,\r\n accessdenied,\r\n errorRoute,\r\n notDound,\r\n researcher,\r\n researcherProfile,\r\n resercherSentRequests,\r\n resercherRecievedRequests,\r\n researcherContact,\r\n researcherOverview,\r\n researcherSocialLinks,\r\n researcherInnovationInterests,\r\n researcherIdsGuides,\r\n researcherMyIds,\r\n researcherVerificationGuides,\r\n researcherSearch,\r\n emailVerify,\r\n orgEmailVerify,\r\n researcherOutputAndWorksGuide,\r\n researcherAddWork,\r\n researcherNetwork,\r\n resercherFollowing,\r\n resercherFollowers,\r\n resercherOrgFollowing,\r\n researcherEasyMatch,\r\n researcherReportGuides,\r\n post,\r\n organizationOverview,\r\n organizationContact,\r\n organizationSocialLinks,\r\n organizationIds,\r\n organizationIdsGuides,\r\n organizationOutputAndWorksGuide,\r\n organizationInnovationInterests,\r\n organizationWorks,\r\n organizationProfile,\r\n organizationFollowers,\r\n organizationNotifications,\r\n organizationProductsServices,\r\n organizationCustomers,\r\n organizationVerificationGuides,\r\n organizationIdentityVerification,\r\n organizationReceivedWorkFileShareRequests,\r\n organizationContentVerification,\r\n organizationContentVerificationRequest,\r\n organizationViews,\r\n publicSearch,\r\n researcherDistinction,\r\n researcherEducation,\r\n researcherEmployment,\r\n researcherInvitedPosition,\r\n researcherMembership,\r\n researcherQualification,\r\n researcherService,\r\n researcherIdentityVerification,\r\n resercherSentReferralRequests,\r\n resercherReceivedReferralRequests,\r\n researcherReferrals,\r\n researcherCurriculumVitae,\r\n researcherSentWorkFileShareRequests,\r\n researcherReceivedWorkFileShareRequests,\r\n researcherWorkFileShare,\r\n researcherContentVerification,\r\n researcherContentVerificationRequest,\r\n researcherProfileViews,\r\n organizationContentVerificationGuides,\r\n researcherContentVerificationGuides,\r\n messages,\r\n researcherActivityLog,\r\n researcherRingGoldSearch,\r\n refresh,\r\n resercherWorksReport,\r\n resercherTop10ISAsReport,\r\n organizationWorksReport,\r\n organizationAffiliationsReport,\r\n organizationNetworksReport,\r\n organizationReportGuides,\r\n organizationProfileAdmins,\r\n organizationConferences,\r\n orgConferenceSubmissions,\r\n orgConferenceQuestionsManagement,\r\n orgReviewerQuestionsManagement,\r\n orgConferenceDocumentsManagement,\r\n chairmanConferences,\r\n chairmanConferencesSubmissions,\r\n chairmanConferenceSubmissionDetails,\r\n chairmanConferenceQuestionsManagement,\r\n chairmanConferenceDocumentsManagement,\r\n chairmanReviewerQuestionsManagement,\r\n reviewerConferenceSubmissionDetails,\r\n reviewerConferencesSubmissions,\r\n researcherConferencesSubmissions,\r\n}\r\nexport default Routes;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Line\":\"Tabs_Line__1oNnk\",\"Span\":\"Tabs_Span__7Vkps\",\"TabItem\":\"Tabs_TabItem__nKQLd\",\"ActiveNavButton\":\"Tabs_ActiveNavButton__1vprI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"offlineContent\":\"Offline_offlineContent__dLVqP\",\"image\":\"Offline_image__2lKO4\"};","/**\r\n * This is the doc comment for Resources.ts\r\n * @description Resources.ts file includes json object with\r\n * (key, value) of all shared resources used in the system\r\n */\r\n\r\n// buttons and navigation items\r\nexport const ButtonSave = \"Button.Save.Label\";\r\nexport const ButtonCancel = \"Button.Cancel.Label\";\r\nexport const ButtonClose = \"Button.Close.Label\";\r\nexport const ButtonSearch = \"Button.Search.Label\";\r\nexport const ButtonConfirm = \"Button.Confirm.Label\";\r\nexport const MenuIndividuals = \"Header.Individuals.Label\";\r\nexport const MenuOrganizations = \"Header.Organization.Label\";\r\nexport const MenuAbout = \"Header.About.Label\";\r\nexport const MenuHelp = \"Header.Help.Label\";\r\nexport const MenuForum = \"Header.Forum.Label\";\r\nexport const SortRecentlyAdded = \"Sort.RecentlyAdded.Label\";\r\nexport const SortFirstName = \"Sort.FirstName.Label\";\r\nexport const SortLastName = \"Sort.LastName.Label\";\r\nexport const SortName = \"Sort.Name.Label\";\r\nexport const ButtonSubmit = \"Button.Submit.Label\";\r\nexport const RejectButton = \"Button.Reject.Label\";\r\nexport const AcceptButton = \"Button.Accept.Label\";\r\n// Networks Buttons\r\nexport const ButtonConnect = \"Button.Connect.Label\"\r\nexport const ButtonRemoveConnection = \"Button.RemoveConnection.Label\"\r\nexport const ButtonCancelConnectionRequest = \"Button.CancelConnectionRequest.Label\"\r\nexport const ButtonAcceptConnectionRequest = \"Button.AcceptConnectionRequest.Label\"\r\nexport const ButtonRejectConnectionRequest = \"Button.RejectConnectionRequest.Label\"\r\nexport const ButtonFollow = \"Button.Follow.Label\"\r\nexport const ButtonUnfollow = \"Button.Unfollow.Label\"\r\n// Work Labels\r\nexport const WorkVersionOf = \"AddWork.List.VersionOf\";\r\nexport const WorkPartOf = \"AddWork.List.PartOf\";\r\nexport const WorkFundedBy = \"AddWork.List.FundedBy\";\r\nexport const WorkViaORCID = \"AddWork.List.ViaORCID\";\r\nexport const WorkViaJOIP = \"AddWork.List.ViaJOIP\";\r\n// Works\r\nexport const ViewWorkModalTitle = \"View.Work.Modal.Title\";\r\n// general exception messages\r\nexport const NetworkError = \"General.NetworkConnection.Error.Message\";\r\nexport const ServerValidationException = \"General.Validation.Exception.Message\";\r\nexport const GeneralSreverError = \"General.ServerError.Exception.Message\";\r\nexport const UnupdatableOrcidDataException =\r\n \"General.UnupdatableOrcidData.Exception.Message\";\r\nexport const GeneralServerContentNotFoundMsg = \"Server.Msg.ContentNotFound\";\r\nexport const OrcidUnupdatableTooltip = \"Action.Tooltip.Orcid.Unupdatable\";\r\nexport const OrcidUndeletableTooltip = \"Action.Tooltip.Orcid.Undeletable\";\r\n// general messages\r\nexport const GeneralPrivacyUpdatedSuccessfully =\"Msg.Content.PrivacyUpdatedSuccessfully\";\r\nexport const NoResults = \"General.NoResults.Message\";\r\nexport const IdentityVerifiedTooltip = \"Common.Identity.Verified.Tooltip\"\r\nexport const ContentVerifiedTooltip = \"Common.Content.Verified.Tooltip\"\r\n\r\n// Priavcy labels\r\nexport const PrivacyPublic = \"Privacy.Public.Label\";\r\nexport const PrivacyMynetwork = \"Privacy.Mynetwork.Label\";\r\nexport const PrivacyOnlyme = \"Privacy.Onlyme.Label\";\r\n// Notifications\r\nexport const AcceptedYourConnectionRequest = \"Notification.AcceptedYourConnectionRequest\";\r\nexport const SentYouConnectionRequest = \"Notification.SentYouConnectionRequest\";\r\nexport const StartedFollowingYou = \"Notification.StartedFollowingYou\";\r\nexport const NotificationCommentOnMyPost = \"Notification.CommentOnMyPost\";\r\nexport const NotificationLikeOnMyPost = \"Notification.LikeOnMyPost\";\r\nexport const NotificationSystem = \"Notification.System\";\r\nexport const AskedForReferral = \"Notification.AskedForReferral\";\r\nexport const WroteYouReferral = \"Notification.WroteYouReferral\";\r\nexport const RequestedWorkFileShare = \"Notification.RequestedWorkFileShare\";\r\nexport const SharedWorkFiles = \"Notification.SharedWorkFiles\";\r\nexport const MentionProfile = \"Notification.MentionProfile\";\r\nexport const ContentVerificationAccepted = \"Notification.Title.ContentVerificationAccepted\"\r\nexport const ContentVerificationDeclined = \"Notification.Title.ContentVerificationDeclined\"\r\nexport const NotificationWorkContribute = \"Notification.WorkContributor\";\r\nexport const NotificationAddOrgProfileAdmin = \"Notification.AddOrgProfileAdmin\";\r\nexport const NotificationDeleteOrgProfileAdmin= \"Notification.DeleteOrgProfileAdmin\";\r\n\r\nexport const AccessDenied = \"General.Msg.AccessDenied\";\r\nexport const Source = \"Common.Source\";\r\nexport const DateTo = \"Common.Date.To\";\r\nexport const SourceViaORCID = \"Common.ViaORCID\";\r\nexport const SourceViaJOIP = \"Common.ViaJOIP\";\r\nexport const Present = \"Common.Date.Present\";\r\nexport const CommonBy = \"Common.By\"\r\nexport const CommonOf = \"Common.Of\"\r\nexport const NoInputs = \"No.Inputs\"\r\n//Request status\r\nexport const RequestStatusPending = \"Common.Request.Status.Pending\";\r\nexport const RequestStatusVerified = \"Common.Request.Status.Verified\";\r\nexport const RequestStatusDeclined = \"Common.Request.Status.Declined\";\r\nexport const RequestStatusUnanswered = \"Common.Request.Status.Unanswered\";\r\nexport const RequestStatusAccepted = \"Common.Request.Status.Accepted\";\r\nexport const RequestStatusApproved = \"Common.Request.Status.Approved\";\r\n//Profile Activites (Empolyment & Education)\r\nexport const ProfileActivitiesDepartmentLabel = \"Profile.Activities.Department.Input.Label\"\r\nexport const ProfileActivitiesDepartmentPlaceholder = \"Profile.Activities.Department.Input.Placeholder\"\r\nexport const ProfileActivitiesDepartmentTitle = \"Profile.Activities.Department.Title\"\r\n\r\nexport const ProfileActivitiesUrlLabel = \"Profile.Activities.Url.Input.Label\"\r\nexport const ProfileActivitiesUrlPlaceholder = \"Profile.Activities.Url.Input.Placeholder\"\r\nexport const ProfileActivitiesUrlTitle = \"Profile.Activities.Url.Title\"\r\n\r\nexport const ProfileActivitesProfessionLabel = \"Profile.Activities.Profession.Input.Label\"\r\nexport const ProfileActivitesProfessionDefaultValue = \"Profile.Activities.Profession.Select.DefaultValue\"\r\nexport const ProfileActivitesProfessionTitle = \"Profile.Activities.Profession.Title\"\r\nexport const ProfileActivitesProfessionSubTypeLabel = \"Profile.Activities.ProfessionSubType.Input.Label\"\r\nexport const ProfileActivitesProfessionSubTypeDefaultValue = \"Profile.Activities.ProfessionSubType.Select.DefaultValue\"\r\nexport const ProfileActivitesProfessionSubTypeTitle = \"Profile.Activities.ProfessionSubType.Title\"\r\n\r\nexport const OrgNameRequiredValidationMsg = \"Validation.OrgName.Required.Msg\"\r\nexport const CountryRequiredValidationMsg = \"Validation.Country.Required.Msg\"\r\nexport const CityRequiredValidationMsg = \"Validation.City.Required.Msg\"\r\nexport const DateRangeValidationMsg = \"Validation.DateRange.InvalidEndDate.Msg\"\r\nexport const UrlValidationMsg = \"Validation.Url.InvalidUrl.Msg\"\r\n\r\nexport const ContentVerificationTitleLabel = \"ContentVerification.Request.Title.Label\"\r\nexport const ContentVerificationDepartmentLabel = \"ContentVerification.Request.Department.Label\"\r\nexport const ContentVerificationFieldAlreadyVerfied = \"ContentVerification.Field.alreadyVerified\"\r\nexport const ContentVerificationFieldAlreadyHasPendingRequest = \"ContentVerification.Field.alreadyPindingRequest\"\r\nexport const ContentVerificationRequestSentSuccessfully = \"Profile.Activites.ContentVerificationRequestSentSuccessfully\"\r\n\r\n//ISAs\r\nexport const ISAsSectionTitle = \"Profile.Activities.ISAs.Section.Title\"\r\nexport const ISAsEmptyStateMsg = \"Empty.State.Profile.Activities.ISAs.Message\"\r\nexport const noAvailableISAsButtoText = \"Empty.State.Profile.Activities.ISAs.Button\"\r\nexport const defaultIsaDomainSelect = \"Select.Domain.Default.Value\"\r\nexport const isaDeleteConfirmMessage = \"Modal.IsaInterest.Delete.Confirm.Message\"\r\nexport const isaDeleteConfirmTitle = \"Modal.IsaInterest.Delete.Confirm.Title\"\r\n\r\n//paperSubmission labels\r\nexport const TitleName = \"PaperSubmission.TitleName.Label\"\r\nexport const SubmissionKeywords = \"PaperSubmission.Keywords.Label\"\r\nexport const SubmissionInstitution = \"papersubmission.instituation.lable\"\r\nexport const SubmissionMobileNumber = \"papersubmission.fullmobilenumber.lable\"\r\nexport const SubmissionEmail = \"papersubmission.email.lable\"\r\nexport const SubmissionCoAuthors = \"papersubmission.coauthors.lable\"\r\nexport const SubmissionCountryName = \"papersubmission.countryname.lable\"\r\nexport const ThematicAreas = \"PaperSubmission.ThematicArea.Section.Title\"\r\nexport const MarineResearchRole = \"PaperSubmission.MarineResearchRole.Label\"\r\nexport const ExamplesOfSuccess = \"PaperSubmission.ExamplesOfSuccess.Label\"\r\nexport const MarineProtectedAreas = \"PaperSubmission.MarineProtectedAreas.Label\"\r\nexport const Stressors = \"PaperSubmission.Stressors.Label\"\r\nexport const SustainableBlueEconomy = \"PaperSubmission.SustainableBlueEconomy.Label\"\r\nexport const Reports = \"PaperSubmission.Reports.Label\"\r\nexport const SupportResearch = \"PaperSubmission.SupportResearch.Label\"\r\nexport const StatusLabel = \"Common.Request.Status.Label\"\r\nexport const DownloadTooltip = \"download.file.tooltip\"\r\nexport const ActivityTitleLabel = \"Activities.Submission.Activity.Name.Label\"\r\nexport const PaperTitleLabel = \"Activities.Submission.PaperTitle.Label\"\r\n\r\n\r\n\r\nconst SharedResx = {\r\n ButtonSave,\r\n ButtonCancel,\r\n ButtonConfirm,\r\n MenuIndividuals,\r\n MenuOrganizations,\r\n MenuAbout,\r\n MenuHelp,\r\n NetworkError,\r\n ServerValidationException,\r\n GeneralSreverError,\r\n GeneralPrivacyUpdatedSuccessfully,\r\n UnupdatableOrcidDataException,\r\n GeneralServerContentNotFoundMsg,\r\n OrcidUnupdatableTooltip,\r\n OrcidUndeletableTooltip,\r\n SortRecentlyAdded,\r\n SortFirstName,\r\n SortLastName,\r\n SortName,\r\n NoResults,\r\n WorkVersionOf,\r\n WorkPartOf,\r\n WorkFundedBy,\r\n WorkViaORCID,\r\n WorkViaJOIP,\r\n AcceptedYourConnectionRequest,\r\n SentYouConnectionRequest,\r\n StartedFollowingYou,\r\n NotificationCommentOnMyPost,\r\n NotificationLikeOnMyPost,\r\n NotificationSystem,\r\n PrivacyPublic,\r\n PrivacyMynetwork,\r\n PrivacyOnlyme,\r\n AccessDenied,\r\n Source,\r\n Present,\r\n DateTo,\r\n SourceViaORCID,\r\n SourceViaJOIP,\r\n ProfileActivitiesDepartmentLabel,\r\n ProfileActivitiesDepartmentPlaceholder,\r\n ProfileActivitiesDepartmentTitle,\r\n ProfileActivitiesUrlLabel,\r\n ProfileActivitiesUrlPlaceholder,\r\n ProfileActivitiesUrlTitle,\r\n ProfileActivitesProfessionTitle,\r\n ProfileActivitesProfessionLabel,\r\n ProfileActivitesProfessionDefaultValue,\r\n ProfileActivitesProfessionSubTypeTitle,\r\n ProfileActivitesProfessionSubTypeLabel,\r\n ProfileActivitesProfessionSubTypeDefaultValue,\r\n OrgNameRequiredValidationMsg,\r\n CountryRequiredValidationMsg,\r\n CityRequiredValidationMsg,\r\n DateRangeValidationMsg,\r\n UrlValidationMsg,\r\n ISAsSectionTitle,\r\n ISAsEmptyStateMsg,\r\n noAvailableISAsButtoText,\r\n defaultIsaDomainSelect,\r\n isaDeleteConfirmMessage,\r\n isaDeleteConfirmTitle,\r\n IdentityVerifiedTooltip\r\n};\r\n\r\nexport default SharedResx;\r\n","import * as React from 'react';\r\n\r\nimport { Icon } from 'Utils/Icon';\r\n\r\ninterface IProps {\r\n text: string,\r\n buttonText?: string,\r\n buttonOnClickAction?: any,\r\n children?: any\r\n}\r\n\r\nconst NoData: React.FC = ({ text, buttonText, buttonOnClickAction, children }) => {\r\n const [show, setShow] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n setShow(true);\r\n }, []);\r\n\r\n return show &&
\r\n
\r\n
{text}
\r\n {buttonOnClickAction && }\r\n {children &&
{children}
}\r\n
\r\n}\r\n\r\nexport default NoData;","import React from 'react';\r\nimport { FieldError } from 'react-hook-form';\r\n\r\nimport InputLabel from '../InputLabel/InputLabel';\r\nimport styles from './Select.module.scss'\r\n\r\ninterface IProps {\r\n values: Array,\r\n name: string;\r\n value: any;\r\n reg?: any;\r\n placeholder?: string;\r\n label?: string;\r\n hint?: string;\r\n disabled?: boolean;\r\n loading?: boolean;\r\n isRequired?: boolean;\r\n onChangeHandler?: any;\r\n onBlurHandler?: any;\r\n errors?: FieldError | undefined;\r\n selectStyles?: string\r\n}\r\n\r\nconst Select: React.FC = (props: IProps) => {\r\n\r\n const Spinner: React.ReactNode = (\r\n
\r\n Loading...\r\n
\r\n )\r\n return (\r\n
\r\n \r\n {props?.loading && Spinner}\r\n props.onChangeHandler ? props.onChangeHandler(event) : null}\r\n onBlurCapture={(event) => props.onBlurHandler ? props.onBlurHandler(event) : null}\r\n value={props.value ? props.value : ''}\r\n >\r\n {props.values\r\n ? props.values.map((option, i: any) =>\r\n \r\n )\r\n : null}\r\n \r\n
\r\n {!props.disabled ? props.errors && props.errors.message : ''}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Select;\r\n","import * as React from 'react'\r\nimport _ from 'lodash';\r\nimport ReactTooltip from 'react-tooltip';\r\n\r\nimport T from 'Utils/localizerHook';\r\nimport { Icon } from 'Utils/Icon'\r\nimport { getDirectionFromText } from 'Utils/Utilites';\r\nimport classes from './InputLabel.module.scss'\r\n\r\ninterface IProps {\r\n label: string | undefined;\r\n hint?: string;\r\n isTruncateOff?: boolean;\r\n numbering?: string;\r\n isRequired?: boolean;\r\n}\r\n\r\nconst InputLabel: React.FC = ({ label, hint, isTruncateOff, numbering, isRequired }) => {\r\n const tooltipText = hint || \"\";\r\n const localizedHint = T(tooltipText)\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default React.memo(InputLabel, (next, prev) => _.isEqual(next, prev));","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\n\r\nimport { ApplicationState } from '../index';\r\nimport { IConfirmDelete } from 'Models/CommonModels';\r\n\r\n\r\nexport const initialState: IConfirmDelete = { show: false, text: '', title: '', isLoading: false };\r\n\r\nconst confirmDeleteSlice = createSlice({\r\n name: 'confirmDelete',\r\n initialState: initialState,\r\n reducers: {\r\n showConfirm: (state, action: PayloadAction<{ text?: string, title?: string }>) => {\r\n state.show = true;\r\n state.text = action.payload.text;\r\n state.title = action.payload.title;\r\n },\r\n hideConfirm: (state, action: PayloadAction) => {\r\n state.show = false;\r\n state.text = \"\";\r\n state.title = \"\";\r\n },\r\n setLoading: (state, action: PayloadAction) => {\r\n state.isLoading = action.payload\r\n }\r\n }\r\n});\r\n\r\nexport const { showConfirm, hideConfirm, setLoading } = confirmDeleteSlice.actions;\r\n\r\nexport const confirmDelete = (state: ApplicationState) => state.confirmDelete;\r\nexport default confirmDeleteSlice.reducer;\r\n","import { IActorProfile } from \"./ProfileModels\";\r\n\r\nexport enum CONTENT_VERIFICATION_STATUS {\r\n all = 0,\r\n pending = 1,\r\n verified = 2,\r\n declined = 3,\r\n}\r\nexport enum CONTENT_VERIFICATION_TYPE {\r\n all = 0,\r\n employment = 1,\r\n education = 2,\r\n qualification = 3,\r\n distinction = 4,\r\n invitedPosition = 5,\r\n membership = 6,\r\n service = 7,\r\n}\r\n\r\nexport interface IContentVerificationView {\r\n requesterProfileId: number,\r\n contentTypeId: number,\r\n contentTypeName: string,\r\n contentId: number,\r\n createDateTime: string,\r\n orgProfileId: number,\r\n orgName: string,\r\n title: string,\r\n department: string,\r\n countryId: number,\r\n countryName: string,\r\n city: string,\r\n startYear: number,\r\n startMonth: number,\r\n startDay: number,\r\n endYear: number,\r\n endMonth: number,\r\n endDay: number,\r\n statusId: number,\r\n statusName: string,\r\n statusDateTime: string,\r\n declineReason: string\r\n}\r\n\r\nexport interface IContentVerificationHistoryView extends IContentVerificationView {\r\n contentVerifications: Array\r\n}\r\nexport interface IContentVerificationRequestBase {\r\n id: number;\r\n statusId: number;\r\n contentTypeId: number;\r\n contentTypeName?: string;\r\n declineReason?: string;\r\n statusDateTime?: string;\r\n createDateTime?: string;\r\n}\r\nexport interface IContentVerificationRequest extends IContentVerificationRequestBase{ \r\n education: IAffiliation | null;\r\n invitedPosition: IAffiliation | null;\r\n qualification: IAffiliation | null;\r\n distinction: IAffiliation | null;\r\n service: IAffiliation | null;\r\n employment: IAffiliation | null;\r\n membership: IAffiliation | null;\r\n userProfile: IActorProfile;\r\n orgAdminProfile: IActorProfile | null;\r\n rowVersion?: string;\r\n}\r\nexport interface IAffiliation {\r\n orgName: string;\r\n departmentName: string;\r\n startYear?: number;\r\n startMonth?: number;\r\n startDay?: number;\r\n endYear?: number;\r\n endMonth?: number;\r\n endDay?: number;\r\n city: string;\r\n countryName: string;\r\n title: string;\r\n url: string;\r\n professionName?: string;\r\n professionSubTypeName?: string;\r\n faculty?: string;\r\n degreeTypeName?: string;\r\n degreeOptionName?: string;\r\n levelName?: string;\r\n isAwardedCertificate?: boolean;\r\n}\r\nexport interface IContentVerificationPagination {\r\n pageIndex: number;\r\n pageSize: number;\r\n contentType?: CONTENT_VERIFICATION_TYPE;\r\n status?: CONTENT_VERIFICATION_STATUS,\r\n searchByName?: string;\r\n}\r\nexport interface IContentVerificationFilter {\r\n contentType: CONTENT_VERIFICATION_TYPE,\r\n status: CONTENT_VERIFICATION_STATUS\r\n}","import { BaseService } from \"./Core/BaseService\";\r\nimport moment from \"moment\";\r\nimport { IBaseOrgProfile, IOrgAbout, IOrgContactContent, IOrgAlternativeName, IOrgOverViewInfo, IOrgAchievements, IOrgIdentityVerification, IOrgIdentityVerificaionBasicInfo, IRingGoldDataSearch, IRingGoldInfo, RingGoldSearchItemsModel } from 'Models/ProfileModels';\r\nimport { IOrgProfileIDs, IOrgSearchProfileData, IOrgProfileAdmins } from \"Models/OrganizationModels\";\r\nimport { ISocialLink, ISocialLinks } from \"Models/SocialLinkModels\";\r\nimport { NETWORK_TYPE } from \"Models/CommonModels\";\r\n\r\nexport default class OrgProfileService extends BaseService {\r\n\r\n public async getOrgProfileContact(orgId: number): Promise {\r\n const url = `Profile/Org/${orgId}/GetOrgUserProfileContact`;\r\n return this.ProtectedApi.get(url)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async addBasicOrgProfile(orgProfile: IBaseOrgProfile): Promise {\r\n const url = `Profile/Org/CreateOrgProfile`;\r\n return this.ProtectedApi.post(url, orgProfile)\r\n .then(response => {\r\n return response.data;\r\n }).catch(error => {\r\n this.throwException(error);\r\n throw error;\r\n });\r\n }\r\n\r\n public async deleteOrg(orgId: number): Promise {\r\n const url = `Profile/Org/${orgId}/DeleteOrg`;\r\n return this.ProtectedApi.delete(url)\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n this.throwException(error);\r\n throw error;\r\n })\r\n }\r\n\r\n\r\n public async getProfileCardInfo(join: string): Promise {\r\n const url = `Profile/GetOrgProfileCardInfo`\r\n return this.ProtectedApi.get(url, { params: { join: join } })\r\n .then(response => {\r\n return response.data\r\n }).catch(error => {\r\n throw error\r\n })\r\n }\r\n\r\n public async getOrgProfileOverViewInfo(orgId: number): Promise {\r\n const url = `Profile/Org/${orgId}/GetOrgOverviewInfo`\r\n return this.ProtectedApi.get(url)\r\n .then(response => {\r\n return response.data\r\n }).catch(error => {\r\n throw error;\r\n })\r\n }\r\n\r\n\r\n public async getOrgAboutContent(JOIN: string): Promise {\r\n const url = `Profile/GetOrgProfileAboutTabInfo?Join=${JOIN}`;\r\n return this.ProtectedApi.get(url).then((response) => {\r\n const data: ISocialLink[] = response.data.orgSocialLinks;\r\n const reult: ISocialLinks = {\r\n personalLinks: data.filter((d: any) => d.type === NETWORK_TYPE.WEBSITE),\r\n socialLinks: data.filter((d: any) => d.type !== NETWORK_TYPE.WEBSITE)\r\n }\r\n response.data.orgSocialLinks= reult;\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async getOrgsByAdminId(): Promise> {\r\n const url = 'Profile/GetListOrgs'\r\n return this.ProtectedApi.get(url)\r\n .then(response => {\r\n return response.data\r\n }).catch(error => {\r\n throw error;\r\n });\r\n }\r\n\r\n public async searchVerifiedOrgs(term: string): Promise> {\r\n const url = `Profile/SearchVerifiedOrgProfiles`\r\n return this.ProtectedApi.get(url, { params: { profileName: term } })\r\n .then(response => {\r\n return response.data\r\n }).catch(error => {\r\n throw error;\r\n });\r\n }\r\n\r\n public async uploadProfilePic(orgId: number, profileImage: string): Promise {\r\n const data = {\r\n profileImage: profileImage.replace('data:image/png;base64,', '')\r\n }\r\n const url = `profile/org/${orgId}/UploadOrgProfilePic`\r\n return this.ProtectedApi.post(url, data)\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n this.throwException(error)\r\n throw new Error(error)\r\n })\r\n }\r\n\r\n public async uploadProfileCoverPic(orgId: number, profileImage: string): Promise {\r\n const data = {\r\n profileImage: profileImage.replace('data:image/png;base64,', '')\r\n }\r\n const url = `profile/org/${orgId}/UploadOrgProfileCoverPic`\r\n return this.ProtectedApi.post(url, data)\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n this.throwException(error)\r\n throw new Error(error)\r\n })\r\n }\r\n\r\n public async deleteProfileCoverPic(orgId: number, imageName: string): Promise {\r\n const url = `profile/org/${orgId}/DeleteOrgProfileCoverPic`\r\n\r\n return this.ProtectedApi.delete(url, { params: { profileImageName: imageName } })\r\n .then(response => {\r\n return true\r\n }).catch(error => {\r\n this.throwException(error)\r\n return false\r\n })\r\n }\r\n\r\n\r\n\r\n public async updateProfileName(orgId: number, firstName: string): Promise {\r\n const data = {\r\n name: firstName\r\n }\r\n const url = `Profile/org/${orgId}/UpdateOrgName`\r\n return this.ProtectedApi.put(url, data)\r\n .then(response => {\r\n return true\r\n })\r\n .catch(error => {\r\n this.throwException(error)\r\n return false\r\n })\r\n }\r\n\r\n public async updateProfileAbout(orgId: number, about: string): Promise {\r\n const data = {\r\n about: about,\r\n }\r\n const url = `Profile/org/${orgId}/UpdateOrgAbout`\r\n return this.ProtectedApi.put(url, data)\r\n .then(response => {\r\n return true\r\n }).catch(error => {\r\n this.throwException(error)\r\n return false\r\n })\r\n }\r\n\r\n public async updateProfileOrgType(orgId: number, type: number): Promise {\r\n const data = {\r\n typeId: type,\r\n }\r\n const url = `Profile/org/${orgId}/UpdateOrgType`\r\n return this.ProtectedApi.put(url, data)\r\n .then(response => {\r\n return true\r\n }).catch(error => {\r\n this.throwException(error)\r\n return false\r\n })\r\n }\r\n\r\n public async updateProfileFoundationDate(orgId: number, fdate: string): Promise {\r\n const data = {\r\n foundationDate: fdate ? moment(fdate).format('yyyy-MM-DD') : null,\r\n }\r\n const url = `Profile/org/${orgId}/UpdateOrgFoundationdate`\r\n return this.ProtectedApi.put(url, data)\r\n .then(response => {\r\n return true\r\n }).catch(error => {\r\n this.throwException(error)\r\n return false\r\n })\r\n }\r\n\r\n public async addAlternativeName(orgId: number, alterName: IOrgAlternativeName): Promise {\r\n const data = {\r\n name: alterName.name,\r\n }\r\n const url = `AlternativeNames/org/${orgId}/Create`\r\n return this.ProtectedApi.post(url, data)\r\n .then(response => {\r\n const entity: IOrgAlternativeName = {\r\n name: alterName.name,\r\n id: response.data\r\n }\r\n return entity\r\n }).catch(error => {\r\n this.throwException(error)\r\n throw new Error(error)\r\n })\r\n }\r\n\r\n public async updateAlternativeName(orgId: number, alterName: IOrgAlternativeName): Promise {\r\n const data = {\r\n name: alterName.name,\r\n id: alterName.id\r\n }\r\n const url = `AlternativeNames/org/${orgId}/Update`\r\n return this.ProtectedApi.put(url, data)\r\n .then(response => {\r\n return true\r\n }).catch(error => {\r\n this.throwException(error)\r\n throw new Error(error)\r\n })\r\n }\r\n\r\n public async deleteAlternativeName(orgId: number, id: number): Promise {\r\n const url = `AlternativeNames/org/${orgId}/Delete`\r\n return this.ProtectedApi.delete(url, { params: { itemId: id } })\r\n .then(response => {\r\n return true\r\n }).catch(error => {\r\n this.throwException(error)\r\n throw new Error(error)\r\n })\r\n }\r\n\r\n public async getOrgIDs(orgId: number): Promise {\r\n return this.ProtectedApi.get(`ProfileIdentifiers/Org/${orgId}/ListOrgIDs`).then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async deleteOrgIDs(id: number, OrgId: number): Promise {\r\n const params = {\r\n recId: id,\r\n };\r\n return this.ProtectedApi.delete(`ProfileIdentifiers/Org/${OrgId}/DeleteOrgProfileIdentifier`, {\r\n params: params,\r\n })\r\n .then(() => true)\r\n .catch(error => {\r\n this.throwException(error);\r\n throw error;\r\n });\r\n }\r\n\r\n public async addOrgIDs(obj: IOrgProfileIDs, OrgId: number): Promise {\r\n return this.ProtectedApi.post(`ProfileIdentifiers/Org/${OrgId}/CreateOrgProfileIdentifier`, obj)\r\n .then((response) => { return response.data })\r\n .catch(error => {\r\n this.throwException(error);\r\n throw error;\r\n });\r\n }\r\n\r\n public async updateOrgIDs(obj: IOrgProfileIDs, OrgId: number): Promise {\r\n return this.ProtectedApi.put(`ProfileIdentifiers/Org/${OrgId}/UpdateOrgProfileIdentifier`, obj)\r\n .then(() => true)\r\n .catch(error => {\r\n this.throwException(error);\r\n throw error;\r\n });\r\n }\r\n\r\n public async getOrgAchievements(orgId: number): Promise {\r\n return this.ProtectedApi.get(`Profile/Org/${orgId}/GetOrgAchievements`)\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n throw error\r\n })\r\n }\r\n\r\n public async getOrgIdentityVerificaionRequests(orgId: number): Promise {\r\n return this.ProtectedApi.get(`Profile/Org/${orgId}/GetOrgIdentityVerificationRequests`)\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n throw error\r\n })\r\n }\r\n\r\n public async getOrgIdentityVerificaionBasicInfo(join: string): Promise {\r\n return this.ProtectedApi.get(`Profile/GetOrgIdentityVerificaionBasicInfo`, {\r\n params: { join: join }\r\n })\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n throw error\r\n })\r\n }\r\n\r\n public async addOrgIdentityVerificationRequest(orgId: number, data: IOrgIdentityVerification): Promise {\r\n return this.ProtectedApi.post(`Profile/Org/${orgId}/AddOrgIdentityVerificationRequest`, data)\r\n .then((response) => {\r\n const res = response.data\r\n return { ...data, id: res.id, documents: res.documents }\r\n })\r\n .catch((error) => {\r\n throw error\r\n })\r\n }\r\n\r\n public async getRingGoldOrg(RingGoldDataSearch: IRingGoldDataSearch): Promise {\r\n const data = {\r\n searchTerm: RingGoldDataSearch.searchTerm,\r\n pageIndex: RingGoldDataSearch.pageIndex,\r\n country: RingGoldDataSearch.country,\r\n city: RingGoldDataSearch.city,\r\n postCode: RingGoldDataSearch.postCode\r\n }\r\n return this.ProtectedApi.get(`Organizations/SearchRinggoldOrg`, { params: data })\r\n .then((response) => {\r\n return response.data;\r\n }).catch((error) => {\r\n throw error;\r\n });\r\n };\r\n\r\n public async getRinggoldOrgById(ringGold: string): Promise {\r\n const data = {\r\n ringgoldId: ringGold,\r\n }\r\n return this.ProtectedApi.get(`Organizations/SearchRinggoldOrgById`, { params: data })\r\n .then((response) => {\r\n return response.data;\r\n }).catch((error) => {\r\n throw error;\r\n });\r\n };\r\n\r\n public async getOrgProfileAdmins(orgId: number): Promise {\r\n const url = `Profile/Org/${orgId}/GetOrgProfileAdmins`;\r\n return this.ProtectedApi.get(url)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n public async addOrgProfileAdmin(orgId: number, userProfileId: number, join: string): Promise {\r\n const data = {\r\n profileId: userProfileId,\r\n join: join\r\n }\r\n return this.ProtectedApi.post(`Profile/Org/${orgId}/AddOrgProfileAdmin`, data)\r\n .then((response) => {\r\n return response.data\r\n\r\n })\r\n .catch((error) => {\r\n this.throwException(error);\r\n throw error\r\n })\r\n }\r\n public async deleteOrgProfileAdmin(orgId: number, id: number, profileId: number, join: string): Promise {\r\n const url = `Profile/Org/${orgId}/DeleteOrgProfileAdmin`;\r\n const data = {\r\n recId: id,\r\n orgId: orgId,\r\n profileId: profileId,\r\n join: join\r\n }\r\n return this.ProtectedApi.delete(url, { params: data })\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n}","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { ApplicationState, AppThunk } from \"../index\";\r\nimport { AxiosError } from \"axios\";\r\nimport _ from \"lodash\";\r\n\r\nimport { IPost, IPostComment, IPostMentions } from \"Models/PostModels\";\r\nimport PostService from \"Services/PostService\";\r\n\r\nexport interface PostState {\r\n posts: Array;\r\n paginationToken: string;\r\n isPostsLoading: boolean;\r\n pageName?: PageType,\r\n isError: boolean,\r\n errorStatus?: number | null\r\n}\r\n\r\nconst initialState: PostState = {\r\n posts: [],\r\n paginationToken: \"\",\r\n isPostsLoading: false,\r\n isError: false\r\n};\r\n\r\ntype PageType = \"FEEDS\" | \"TIMELINE\"\r\n\r\nconst _postService = new PostService();\r\n\r\nconst postSlice = createSlice({\r\n name: \"post\",\r\n initialState: initialState,\r\n reducers: {\r\n fetchPosts: (\r\n state,\r\n action: PayloadAction<{ items: Array; token: string }>\r\n ) => {\r\n const { items, token } = action.payload;\r\n state.posts = state.posts.concat(items);\r\n state.paginationToken = token;\r\n },\r\n clearState: (state) => {\r\n state.posts = [];\r\n state.paginationToken = \"\";\r\n state.isError = false;\r\n state.errorStatus = null;\r\n },\r\n AddPost: (\r\n state,\r\n action: PayloadAction<{ item: IPost }>\r\n ) => {\r\n const { item } = action.payload;\r\n state.posts = [item, ...state.posts]\r\n },\r\n EditPost: (\r\n state,\r\n action: PayloadAction<{ item: IPost }>\r\n ) => {\r\n const { item } = action.payload;\r\n const post = state.posts.find((post) => post.id === item.id)\r\n if (post) {\r\n post.content = item.content;\r\n post.plainText = item.plainText;\r\n post.privacy = item.privacy;\r\n post.linkPreview = item.linkPreview;\r\n post.schemaVersion = item.schemaVersion;\r\n post.imagesUrls = item.imagesUrls;\r\n state.posts[state.posts.findIndex((post) => post.id === item.id)] = post;\r\n }\r\n },\r\n deletePost: (state, action: PayloadAction) => {\r\n const id = action.payload;\r\n const posts = state.posts.filter((c) => c.id !== id);\r\n state.posts = posts;\r\n },\r\n likePost: (state, action: PayloadAction<{ postId: string, likeId: string }>) => {\r\n const { postId, likeId } = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n post.isLiked = true;\r\n post.likeId = likeId;\r\n }\r\n },\r\n likesIncrement: (state, action: PayloadAction) => {\r\n const postId = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n post.likesCount = post.likesCount + 1;\r\n }\r\n },\r\n unlikePost: (state, action: PayloadAction) => {\r\n const post = state.posts.find((post) => post.id === action.payload);\r\n if (post) {\r\n post.isLiked = false;\r\n post.likeId = \"\";\r\n }\r\n },\r\n likesDecrement: (state, action: PayloadAction) => {\r\n const postId = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n post.likesCount = post.likesCount - 1;\r\n }\r\n },\r\n fetchPostComments: (state, action: PayloadAction<{ postId: string, comments: Array, token: string }>) => {\r\n const { postId, comments, token } = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n let newComments = post.comments.concat(comments);\r\n newComments = _.uniqBy(newComments, \"id\") // remove duplicated comments\r\n newComments = _.orderBy(newComments, ['createDateTime'], ['asc']);\r\n post.comments = newComments;\r\n post.highlightComment = null;\r\n post.commentsPaginationToken = token;\r\n }\r\n },\r\n addPostComment: (state, action: PayloadAction<{ postId: string, item: IPostComment }>) => {\r\n const { postId, item } = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n post.comments = [...post.comments, item];\r\n post.commentsCount = post.commentsCount + 1;\r\n }\r\n },\r\n updatePostComment: (state, action: PayloadAction<{ postId: string, item: IPostComment }>) => {\r\n const { postId, item } = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n const index = post.comments.findIndex((comment) => comment.id === item.id);\r\n if (index > -1)\r\n post.comments[index] = item;\r\n }\r\n },\r\n deletePostComment: (state, action: PayloadAction<{ postId: string, commentId: string }>) => {\r\n const { postId, commentId } = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n post.comments = post.comments.filter((c) => c.id !== commentId);\r\n post.commentsCount = post.commentsCount - 1;\r\n }\r\n },\r\n setPostLoading: (state, action: PayloadAction) => {\r\n state.isPostsLoading = action.payload;\r\n },\r\n setCommentLoading: (state, action: PayloadAction<{ postId: string, isLoading: boolean }>) => {\r\n const { postId, isLoading } = action.payload;\r\n const post = state.posts.find((post) => post.id === postId);\r\n if (post) {\r\n post.isCommentsFetching = isLoading;\r\n }\r\n },\r\n setPageName: (state, action: PayloadAction) => {\r\n state.pageName = action.payload;\r\n state.isError = false;\r\n },\r\n setLoadingError: (state, action: PayloadAction) => {\r\n state.isError = true;\r\n state.errorStatus = action.payload?.response?.status;\r\n }\r\n },\r\n});\r\n\r\nexport const { fetchPosts, clearState, AddPost, EditPost, deletePost, setPostLoading, setCommentLoading, likePost, unlikePost, likesIncrement, likesDecrement,\r\n fetchPostComments, addPostComment, updatePostComment, deletePostComment, setPageName, setLoadingError } = postSlice.actions;\r\n\r\nexport const listTimelinePostsAsync = (jrin: string, pageSize: number, paginationToken: string = \"\"): AppThunk => async (dispatch, getstate) => {\r\n await _postService\r\n .listTimelinePosts(jrin, pageSize, paginationToken)\r\n .then((res) => {\r\n if (res.items !== null && getstate().post?.pageName === \"TIMELINE\") {\r\n const itemsWithComments: Array = res.items.map(post => { return { ...post, comments: [] } })\r\n dispatch(fetchPosts({ items: itemsWithComments, token: res.paginationToken }));\r\n }\r\n }).catch(() => dispatch(setLoadingError()))\r\n .finally(() => dispatch(setPostLoading(false)));\r\n};\r\n\r\nexport const listOrgTimelinePostsAsync = (orgId: number, pageSize: number, paginationToken: string = \"\"): AppThunk => async (dispatch, getstate) => {\r\n await _postService\r\n .listOrgTimelinePosts(orgId, pageSize, paginationToken)\r\n .then((res) => {\r\n if (res.items !== null && getstate().post?.pageName === \"TIMELINE\") {\r\n const itemsWithComments: Array = res.items.map(post => { return { ...post, comments: [] } })\r\n dispatch(fetchPosts({ items: itemsWithComments, token: res.paginationToken }));\r\n }\r\n }).catch(() => dispatch(setLoadingError()))\r\n .finally(() => dispatch(setPostLoading(false)));\r\n};\r\n\r\nexport const listFeedsPostsAsync = (pageSize: number, paginationToken: string = \"\"): AppThunk => async (dispatch, getstate) => {\r\n await _postService\r\n .listFeedsPosts(pageSize, paginationToken)\r\n .then((res) => {\r\n if (res.items !== null && getstate().post?.pageName === \"FEEDS\") {\r\n const itemsWithComments: Array = res.items.map(post => { return { ...post, comments: [] } })\r\n dispatch(fetchPosts({ items: itemsWithComments, token: res.paginationToken }));\r\n }\r\n })\r\n .catch(() => dispatch(setLoadingError()))\r\n .finally(() => dispatch(setPostLoading(false)));\r\n};\r\n\r\nexport const getPostAsync = (postId: string, commentId?: string): AppThunk => async (dispatch, getstate) => {\r\n await _postService\r\n .getPost(postId, commentId)\r\n .then((res) => {\r\n if (res !== null) {\r\n const comments: Array = res.highlightComment !== null ? [res.highlightComment] : []\r\n const itemWithComments: IPost = { ...res, comments: comments, commentsPaginationToken: \"\" }\r\n dispatch(fetchPosts({ items: [itemWithComments], token: \"\" }));\r\n }\r\n })\r\n .catch((error) => dispatch(setLoadingError(error)))\r\n .finally(() => dispatch(setPostLoading(false)));\r\n};\r\nexport const AddPostAsync = (item: IPost, hideSharedPost:boolean = false): AppThunk => async (dispatch, getstate) => {\r\n await _postService\r\n .addPost(item)\r\n .then((data: any) => {\r\n const post = { ...item }\r\n post.id = data\r\n if(!hideSharedPost)\r\n dispatch(AddPost({ item: post }));\r\n })\r\n .catch(err => { });\r\n};\r\nexport const AddOrgPostAsync = (item: IPost, orgId: number, hideSharedPost:boolean=false): AppThunk => async (dispatch, getstate) => {\r\n await _postService\r\n .addOrgPost(item, orgId)\r\n .then((data: any) => {\r\n const post = { ...item }\r\n post.id = data\r\n if(!hideSharedPost)\r\n dispatch(AddPost({ item: post }));\r\n })\r\n .catch(err => { });\r\n};\r\n\r\nexport const EditPostAsync = (item: IPost): AppThunk => async (dispatch, getstate) => {\r\n await _postService\r\n .updatePost(item)\r\n .then((res: any) => {\r\n dispatch(EditPost({ item: item }));\r\n })\r\n .catch(err => { });\r\n};\r\n\r\nexport const likePostAsync = (postId: string, ownerId: number, isOrgPost: boolean): AppThunk => async (dispatch, getstate) => {\r\n dispatch(likePost({ postId: postId, likeId: \"\" }))\r\n dispatch(likesIncrement(postId))\r\n await _postService.likePost(postId, ownerId, isOrgPost)\r\n .then(res => {\r\n dispatch(likePost({ postId: postId, likeId: res.likeId }));\r\n })\r\n .catch(err => {\r\n dispatch(unlikePost(postId));\r\n dispatch(likesDecrement(postId))\r\n });\r\n};\r\n\r\nexport const unlikePostAsync = (postId: string, likeId: string, ownerId: number, isOrgPost: boolean): AppThunk => async (dispatch, getstate) => {\r\n if (likeId !== \"\") {\r\n await _postService.unlikePost(postId, likeId, ownerId, isOrgPost)\r\n .then(res => {\r\n dispatch(unlikePost(postId));\r\n dispatch(likesDecrement(postId))\r\n })\r\n .catch(err => { })\r\n }\r\n};\r\n\r\nexport const listPostCommentsAsync = (postId: string, pageSize: number, paginationToken: string = \"\"): AppThunk => async (dispatch, getstate) => {\r\n dispatch(setCommentLoading({ postId: postId, isLoading: true }))\r\n await _postService\r\n .listPostComments(postId, pageSize, paginationToken)\r\n .then((res) => {\r\n let comments: Array = [];\r\n comments = res.items !== null ? res.items : [];\r\n dispatch(fetchPostComments({ postId, comments: comments, token: res.paginationToken }));\r\n })\r\n .catch(err => { })\r\n .finally(() => dispatch(setCommentLoading({ postId: postId, isLoading: false })));\r\n};\r\n\r\nexport const addPostCommentAsync = (postId: string, postOwnerId: number, comment: IPostComment, isOrgPost: boolean): AppThunk => async (dispatch, getstate) => {\r\n await _postService.addComment(postId, postOwnerId, comment, isOrgPost)\r\n .then((res) => {\r\n dispatch(addPostComment({ postId: postId, item: res }));\r\n })\r\n .catch(err => { })\r\n};\r\n\r\nexport const updatePostCommentAsync = (postId: string, postOwnerId: number, comment: IPostComment, isOrgPost: boolean): AppThunk => async (dispatch, getstate) => {\r\n await _postService.updateComment(postId, postOwnerId, comment, isOrgPost)\r\n .then((res) => {\r\n dispatch(updatePostComment({ postId: postId, item: res }));\r\n })\r\n .catch(err => { })\r\n};\r\n\r\nexport const selectPosts = (state: ApplicationState) => state.post?.posts;\r\nexport const selectPost = (state: ApplicationState, postId: string) => state.post?.posts.find(p => p.id === postId);\r\nexport const selectPaginationToken = (state: ApplicationState) => state.post?.paginationToken;\r\nexport const selectIsPostLoading = (state: ApplicationState) => state.post?.isPostsLoading;\r\nexport const isLoadingError = (state: ApplicationState) => state.post?.isError;\r\nexport const selectErrorStatus = (state: ApplicationState) => state.post?.errorStatus;\r\n\r\nexport const selectPostOne = (state: ApplicationState) => state.post?.posts.find(p => p.id === \"rp5nDNhX0y2TQzw7Yyxg\");\r\n\r\n\r\nexport default postSlice.reducer;\r\n","import { BaseService } from \"./Core/BaseService\";\r\nimport { IPost, IPostComment, IPostImage, IPostMentions, IUrlPreview } from '../Models/PostModels';\r\nimport { ILikes } from '../Models/PostModels';\r\n\r\nexport default class PostService extends BaseService {\r\n\r\n public async listTimelinePosts(jrin: string, pageSize: number, paginationToken: string = \"\"): Promise<{ items: Array; paginationToken: string }> {\r\n const url = 'Posts/ListUserPosts';\r\n const params = {\r\n jrin: jrin,\r\n paginationToken: paginationToken,\r\n pageSize: pageSize\r\n }\r\n return this.ProtectedApi.get(url, {\r\n params: params\r\n })\r\n .then(response => response.data)\r\n .catch(error => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async listOrgTimelinePosts(orgId: number, pageSize: number, paginationToken: string = \"\"): Promise<{ items: Array; paginationToken: string }> {\r\n const url = 'Posts/ListOrgPosts';\r\n const params = {\r\n orgId: orgId,\r\n paginationToken: paginationToken,\r\n pageSize: pageSize\r\n }\r\n return this.ProtectedApi.get(url, {\r\n params: params\r\n })\r\n .then(response => response.data)\r\n .catch(error => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async listFeedsPosts(pageSize: number, paginationToken: string = \"\"): Promise<{ items: Array; paginationToken: string }> {\r\n const url = 'Posts/ListFeedPosts';\r\n const params = {\r\n pageSize: pageSize,\r\n paginationToken: paginationToken\r\n }\r\n const res = await this.ProtectedApi.get(url, {\r\n params: params\r\n })\r\n .then(response => {\r\n if (response.data) {\r\n const items: Array = response.data?.items;\r\n const newToken: string = response.data?.paginationToken;\r\n if (!Boolean(items?.length) && newToken !== \"\") {\r\n return this.listFeedsPosts(pageSize, newToken)\r\n }\r\n else {\r\n return response.data\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n throw error;\r\n })\r\n return res\r\n }\r\n\r\n public async getPost(postId: string, commentId?: string): Promise {\r\n const url = 'Posts/LoadPost';\r\n const params = {\r\n postId: postId,\r\n commentId: commentId\r\n }\r\n return this.ProtectedApi.get(url, {\r\n params: params\r\n })\r\n .then(response => response.data)\r\n .catch(error => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async addPost(Post: IPost): Promise {\r\n const url = `Posts/AddPost`;\r\n const data = {\r\n content: {\r\n plainText: Post.plainText,\r\n rawText: Post.content\r\n },\r\n linkPreview: Post.linkPreview,\r\n schemaVersion: Post.schemaVersion,\r\n imagesUrls:Post.imagesUrls,\r\n taggedProfiles: Post.postMentions?.taggedProfiles,\r\n taggedISAs: Post.postMentions?.taggedISAs,\r\n taggedWorks: Post.postMentions?.taggedWorks,\r\n taggedOrgProfiles:Post.postMentions?.taggedOrgProfiles,\r\n privacy: Post.privacy,\r\n sharedPostId:Post.sharedPostId\r\n }\r\n return this.ProtectedApi.post(url, data)\r\n .then(response => response.data)\r\n .catch(error => {\r\n this.throwException(error)\r\n throw error;\r\n })\r\n }\r\n\r\n public async addOrgPost(Post: IPost, orgId: number): Promise {\r\n const url = `Posts/AddOrgPost`;\r\n const data = {\r\n orgId: orgId,\r\n content: {\r\n plainText: Post.plainText,\r\n rawText: Post.content\r\n },\r\n linkPreview: Post.linkPreview,\r\n schemaVersion: Post.schemaVersion,\r\n imagesUrls:Post.imagesUrls,\r\n taggedProfiles: Post.postMentions?.taggedProfiles,\r\n taggedISAs: Post.postMentions?.taggedISAs,\r\n taggedWorks: Post.postMentions?.taggedWorks,\r\n taggedOrgProfiles:Post.postMentions?.taggedOrgProfiles,\r\n sharedPostId:Post.sharedPostId\r\n }\r\n return this.ProtectedApi.post(url, data)\r\n .then(response => response.data)\r\n .catch(error => {\r\n this.throwException(error)\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async updatePost(Post: IPost): Promise {\r\n const url = `Posts/UpdatePost`;\r\n const data = {\r\n postId: Post.id,\r\n content: {\r\n plainText: Post.plainText,\r\n rawText: Post.content\r\n },\r\n linkPreview: Post.linkPreview,\r\n schemaVersion: Post.schemaVersion,\r\n taggedProfiles: Post.postMentions?.taggedProfiles,\r\n taggedISAs: Post.postMentions?.taggedISAs,\r\n taggedWorks: Post.postMentions?.taggedWorks,\r\n taggedOrgProfiles:Post.postMentions?.taggedOrgProfiles,\r\n privacy: Post.privacy,\r\n imagesUrls:Post.imagesUrls\r\n }\r\n return this.ProtectedApi.put(url, data)\r\n .then(response => response.data)\r\n .catch(error => {\r\n this.throwException(error)\r\n throw error;\r\n })\r\n }\r\n\r\n public async deletePost(id: string, isOrgPost: boolean): Promise {\r\n const url = 'Posts/DeletePost';\r\n return this.ProtectedApi.delete(url, {\r\n params: {\r\n postId: id,\r\n isOrgPost: isOrgPost\r\n }\r\n })\r\n .then(() => true)\r\n .catch((error) => {\r\n this.throwException(error)\r\n throw error;\r\n })\r\n }\r\n\r\n public async getLikes(postId: string, pageSize: number, paginationToken?: string): Promise {\r\n const params = { postId: postId, pageSize: pageSize, paginationToken: paginationToken };\r\n return this.ProtectedApi.get('Posts/ListLikes', { params })\r\n .then(response => {\r\n const data: ILikes = {\r\n items: response.data.items,\r\n paginationToken: response.data.paginationToken\r\n };\r\n return data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async likePost(postId: string, ownerId: number, isOrgPost: boolean): Promise<{ isLiked: boolean, likeId: string }> {\r\n const url = 'Posts/LikePost'\r\n const data = {\r\n postId: postId,\r\n ownerId: ownerId,\r\n isOrgPost: isOrgPost\r\n }\r\n return this.ProtectedApi.post(url, data)\r\n .then(response => {\r\n return { isLiked: true, likeId: response.data }\r\n })\r\n .catch((error) => {\r\n this.throwException(error);\r\n throw error;\r\n })\r\n }\r\n\r\n public async unlikePost(postId: string, likeId: string, ownerId: number, isOrgPost: boolean): Promise {\r\n return this.ProtectedApi.delete('Posts/UnLike', {\r\n params: {\r\n likeId: likeId,\r\n postId: postId,\r\n ownerId: ownerId,\r\n isOrgPost: isOrgPost\r\n }\r\n })\r\n .then(() => true)\r\n .catch((error) => {\r\n this.throwException(error);\r\n throw error;\r\n })\r\n }\r\n\r\n public async listPostComments(postId: string, pageSize: number, paginationToken: string = \"\"): Promise<{ items: Array; paginationToken: string }> {\r\n const url = 'Posts/ListComments';\r\n const params = {\r\n postId: postId,\r\n pageSize: pageSize,\r\n paginationToken: paginationToken\r\n }\r\n return this.ProtectedApi.get(url, {\r\n params: params\r\n })\r\n .then(response => {\r\n if (response.data)\r\n return response.data\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async addComment(postId: string, postOwnerId: number, comment: IPostComment, isOrgPost: boolean): Promise {\r\n const url = 'Posts/AddComment'\r\n const data = {\r\n postId: postId,\r\n content: {\r\n plainText: comment.plainText,\r\n rawText: comment.content\r\n },\r\n ownerId: postOwnerId,\r\n isOrgPost: isOrgPost\r\n }\r\n return this.ProtectedApi.post(url, data)\r\n .then(response => {\r\n const newComment: IPostComment = { ...comment, id: response.data }\r\n return newComment\r\n }).catch(error => {\r\n this.throwException(error);\r\n throw error;\r\n });\r\n\r\n }\r\n\r\n public async updateComment(postId: string, postOwnerId: number, comment: IPostComment, isOrgPost: boolean): Promise {\r\n const url = 'Posts/UpdateComment'\r\n const data = {\r\n postId: postId,\r\n commentId: comment.id,\r\n content: {\r\n plainText: comment.plainText,\r\n rawText: comment.content\r\n },\r\n ownerId: postOwnerId,\r\n isOrgPost: isOrgPost\r\n }\r\n return this.ProtectedApi.put(url, data)\r\n .then(() => {\r\n const newComment: IPostComment = { ...comment }\r\n return newComment\r\n }).catch(error => {\r\n this.throwException(error, { errorCode: 404, msgKey: \"Comment.Not.Found\" });\r\n throw error;\r\n });\r\n\r\n }\r\n\r\n public async deleteComment(postId: string, postOwnerId: number, commentId: string, commentOwnerId: number, isOrgPost: boolean): Promise {\r\n const url = 'Posts/DeleteComment'\r\n const params = {\r\n commentId: commentId,\r\n postId: postId,\r\n ownerId: postOwnerId,\r\n commentOwnerId: commentOwnerId,\r\n isOrgPost: isOrgPost\r\n };\r\n return this.ProtectedApi.delete(url, {\r\n params: params\r\n })\r\n .then(() => true).catch(error => {\r\n this.throwException(error);\r\n throw error;\r\n });\r\n }\r\n\r\n public async urlScraper(link: string): Promise {\r\n const url = 'WebScraper/GetMetadata'\r\n const data = {\r\n url: link\r\n };\r\n return this.ProtectedApi.post(url, data)\r\n .then(response => {\r\n return response.data\r\n })\r\n }\r\n\r\n public async addPostImages(images:Array): Promise> {\r\n const url = 'Posts/AddPostImages'\r\n const data = {\r\n images:images\r\n }\r\n return this.ProtectedApi.post(url, data)\r\n .then(response => {\r\n return response.data\r\n }).catch(error => {\r\n this.throwException(error);\r\n throw error;\r\n });\r\n\r\n }\r\n\r\n public async deletePostImages(images:Array): Promise {\r\n const url = 'Posts/DeletePostImages';\r\n const data = {\r\n images:images\r\n }\r\n return this.ProtectedApi.post(url,data)\r\n .then(() => true)\r\n .catch((error) => {\r\n this.throwException(error)\r\n throw error;\r\n })\r\n }\r\n\r\n}","import { setError } from 'Shared/UI/Toast/Toast';\r\nimport { NetworkError, ServerValidationException, GeneralSreverError, GeneralServerContentNotFoundMsg, AccessDenied } from './Resources';\r\nimport i18next from 'i18next';\r\n\r\nexport const throwException = (\r\n error: any,\r\n overwrite?: { errorCode: 400 | 409 | 404 | 403, msgKey: string }\r\n) => {\r\n if (error?.response) {\r\n if (error.response?.status === 400) {\r\n if (overwrite && overwrite.errorCode === 400)\r\n setError(GetLocalizedMessage(overwrite.msgKey));\r\n else\r\n setError(GetLocalizedMessage(ServerValidationException));\r\n }\r\n else if (error.response?.status === 409) {\r\n if (overwrite && overwrite.errorCode === 409)\r\n setError(GetLocalizedMessage(overwrite.msgKey));\r\n else\r\n setError(GetLocalizedMessage(\"Server.Msg.\" + error.response.data.type));\r\n }\r\n else if (error.response?.status === 403) {\r\n if (overwrite && overwrite.errorCode === 403)\r\n setError(GetLocalizedMessage(AccessDenied));\r\n else\r\n setError(GetLocalizedMessage(\"Server.Msg.\" + error.response.data.type));\r\n } else if (error.response?.status === 404) {\r\n if (overwrite && overwrite.errorCode === 404)\r\n setError(GetLocalizedMessage(overwrite.msgKey));\r\n else\r\n setError(GetLocalizedMessage(GeneralServerContentNotFoundMsg));\r\n }\r\n else {\r\n setError(GetLocalizedMessage(GeneralSreverError));\r\n }\r\n }\r\n else {\r\n setError(GetLocalizedMessage(NetworkError));\r\n }\r\n}\r\n\r\nexport const GetLocalizedMessage = (key:string) : string => {\r\n return i18next.t(key.toLowerCase());\r\n}","import { BaseService } from \"./Core/BaseService\";\r\nimport { IPolicy, IStaticContentModel, IAbout,IFAQ, INewsItem, IEventItem, ILandingPageContent, IBanner, IJoipContactInfo, IGlossay, IContactContent } from '../Models/PublicContentModels';\r\nimport { AxiosResponse } from 'axios';\r\n\r\nexport default class PublicContentService extends BaseService {\r\n\r\n public async getListPolicies(): Promise {\r\n return this.Api.get(`PublicPages/ListPolicies`).then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getStaticContent(screenName: string): Promise {\r\n const url = `PublicPages/GetStaticContent?screenName=${screenName}`;\r\n return this.Api.get(url).then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n this.throwException(error)\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getAboutContent(): Promise {\r\n return this.Api.get(`PublicPages/ListAboutPageCards`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getListNews(): Promise {\r\n return this.Api.get(`PublicPages/ListNewsCards`)\r\n .then((Res: AxiosResponse>) => {\r\n return Res.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getNewsById(id: number): Promise {\r\n return this.Api.get(`PublicPages/GetNewsInfo`, {params:{ id: id }})\r\n .then((Res: AxiosResponse) => {\r\n return Res.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getListEvent(): Promise {\r\n return this.Api.get(`PublicPages/ListEventCards`)\r\n .then((Res: AxiosResponse>) => {\r\n return Res.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getLandingPageContent(): Promise {\r\n return this.Api.get(`PublicPages/GetLandingPageContent`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getScreenName(screenName: string): Promise {\r\n const url = `PublicPages/GetScreenImageHeader?screenName=${screenName}`\r\n return this.Api.get(url)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getJoipContactInfo(): Promise {\r\n return this.Api.get(`PublicPages/JoipContactInfo`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw new Error(error);\r\n })\r\n }\r\n\r\n public async getGlossary(): Promise {\r\n return this.Api.get(`PublicPages/ListGlossary`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async getFAQ(): Promise {\r\n return this.Api.get(`PublicPages/ListFAQ`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async createContactInquiry(data: any): Promise {\r\n return this.Api.post(`PublicPages/CreateContactInquiry`, data)\r\n .then(res => res.data)\r\n .catch((error) => {\r\n if(error.response?.status === 400){\r\n if(error.response?.data?.errors[\"RecaptchaToken\"]?.length > 0){\r\n this.throwException(error, {errorCode: 400, msgKey: \"Validation.Msg.RecaptchaTokenVerificationError\"});\r\n throw error;\r\n }\r\n } \r\n this.throwException(error);\r\n throw error;\r\n })\r\n }\r\n\r\n public async getContactContent(): Promise {\r\n return this.Api.get(`PublicPages/GetContactContent`).then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n}","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { ApplicationState, AppThunk } from \"../index\";\r\nimport { IBookmarkItem, IBookmarkPagination } from \"Models/BookmarkModels\";\r\nimport BookmarkService from 'Services/BookmarkService';\r\nimport _ from 'lodash'\r\n\r\nexport interface BookmarkState {\r\n bookmarks: Array;\r\n currBookamrk: IBookmarkItem | null;\r\n isBusy: boolean;\r\n isError: boolean;\r\n}\r\n\r\nconst initialState: BookmarkState = {\r\n bookmarks: [],\r\n currBookamrk: null,\r\n isBusy: false,\r\n isError: false\r\n};\r\n\r\nconst _bookmarkService = new BookmarkService()\r\n\r\nconst bookmarkSlice = createSlice({\r\n name: \"bookmark\",\r\n initialState: initialState,\r\n reducers: {\r\n fetchBookmarks: (state, action: PayloadAction>) => {\r\n state.bookmarks = action.payload;\r\n },\r\n addBookmark: (state, action: PayloadAction) => {\r\n state.bookmarks.push(action.payload);\r\n state.bookmarks =_.orderBy(state.bookmarks, ['pinnedToTop', 'bookmarkDate'], ['desc', 'desc']);\r\n state.currBookamrk = action.payload\r\n },\r\n deleteBookmark: (state, action: PayloadAction) => {\r\n state.currBookamrk = state.bookmarks.find(item=> item.id === action.payload) || null\r\n state.bookmarks = state.bookmarks.filter(c => c.id !== action.payload);\r\n if(state.currBookamrk !== null ){ state.currBookamrk.id = 0 }\r\n },\r\n setBusy: (state, action: PayloadAction) => {\r\n state.isBusy = action.payload;\r\n },\r\n setError: (state, action: PayloadAction) => {\r\n state.isError = action.payload;\r\n }\r\n },\r\n});\r\n\r\nconst { actions, reducer } = bookmarkSlice\r\n\r\nexport const { fetchBookmarks, addBookmark, deleteBookmark, setBusy, setError } = actions;\r\n\r\nexport const listBookmarksAsync = (params: IBookmarkPagination): AppThunk => (dispatch, getstate) => {\r\n dispatch(setBusy(true));\r\n _bookmarkService.listBookmarks(params)\r\n .then(response => {\r\n const bookmarks = response.items;\r\n dispatch(fetchBookmarks(bookmarks));\r\n dispatch(setError(false))\r\n })\r\n .catch(() => dispatch(setError(true)))\r\n .finally(() => dispatch(setBusy(false)));\r\n}\r\n\r\nexport const selectBookmarks = (state: ApplicationState) => state.bookmark?.bookmarks;\r\nexport const selectBookmark = (state: ApplicationState) => state.bookmark?.currBookamrk;\r\nexport const selectIsBusy = (state: ApplicationState) => state.bookmark?.isBusy;\r\nexport const selectIsError = (state: ApplicationState) => state.bookmark?.isError;\r\n\r\nexport default reducer;","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\n\r\nimport { ApplicationState } from '../index';\r\nimport { IViewWork } from 'Models/CommonModels';\r\n\r\n\r\nexport const initialState: IViewWork = { show: false, workId: 0, isOwner: false, isOrgWork: false, isLoading: false };\r\n\r\nconst viewWorkSlice = createSlice({\r\n name: 'viewWork',\r\n initialState: initialState,\r\n reducers: {\r\n showViewWork: (state, action: PayloadAction<{ workId: number, isOwner: boolean, isOrgWork: boolean }>) => {\r\n state.show = true;\r\n state.workId = action.payload.workId;\r\n state.isOwner = action.payload.isOwner;\r\n state.isOrgWork = action.payload.isOrgWork;\r\n },\r\n hideViewWork: (state, action: PayloadAction) => {\r\n state.show = false;\r\n state.workId = 0;\r\n state.isOwner = false;\r\n state.isOrgWork = false;\r\n },\r\n setLoading: (state, action: PayloadAction) => {\r\n state.isLoading = action.payload\r\n }\r\n }\r\n});\r\n\r\nexport const { showViewWork, hideViewWork, setLoading } = viewWorkSlice.actions;\r\n\r\nexport const viewWork = (state: ApplicationState) => state.viewWork;\r\nexport default viewWorkSlice.reducer;\r\n","import * as React from 'react';\r\nimport { useQuery } from 'react-query';\r\n\r\nimport { IBanner } from 'Models/PublicContentModels';\r\nimport PublicContentService from 'Services/PublicContentService';\r\nimport Localizer from 'Utils/stringLocalizer'\r\nimport dir from 'Utils/direction'\r\nimport constants from 'Utils/constants'\r\nimport { Settings } from 'Utils/Settings';\r\nimport { DigitalLine } from 'Public/Shared/DigitalLine/DigitalLine';\r\nimport lineGold from 'Assets/Images/NCI Templates/JOIP-line_gold3.png';\r\n//import classes from './HeaderImageBanner.module.scss'\r\n\r\nif (dir.isRtl()) {\r\n require('./HeaderImageBanner.rtl.scss');\r\n} else {\r\n require('./HeaderImageBanner.scss');\r\n}\r\n\r\nconst HeaderImageBanner: React.FC<{ screenName: string, title?: string }> = ({ screenName = \"\", title = '' }): React.ReactElement => {\r\n\r\n const [banner, setBanner] = React.useState({\r\n title: \"\",\r\n titleAr: \"\",\r\n imageUrl: constants.urls.headerImagePlaceholder,\r\n screenName: \"\"\r\n })\r\n const _publicContentService = new PublicContentService();\r\n const fetchScreenHeader = async () => { return await _publicContentService.getScreenName(screenName); }\r\n\r\n const { data } = useQuery([\"PublicPages/GetScreenImageHeader?screenName=\", screenName], fetchScreenHeader, {\r\n cacheTime: Settings.publicPageCacheTime\r\n });\r\n\r\n React.useEffect(() => {\r\n if (data) {\r\n setBanner({\r\n title: title ? title : data.title,\r\n titleAr: title ? title : data.titleAr,\r\n imageUrl: data.imageUrl ? data.imageUrl : constants.urls.headerImagePlaceholder,\r\n screenName: data.screenName\r\n });\r\n }\r\n }, [data]);\r\n\r\n React.useEffect(() => {\r\n if (title) {\r\n setBanner({\r\n ...banner,\r\n title: title,\r\n titleAr: title,\r\n\r\n });\r\n }\r\n }, [title]);\r\n\r\n const DigitalLines: JSX.Element = (\r\n <>\r\n \r\n \r\n \r\n \r\n )\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {DigitalLines}\r\n \r\n
\r\n

{Localizer(banner.title, banner.titleAr)}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default HeaderImageBanner;","import * as React from 'react';\r\n\r\nimport HeaderImageBanner from 'Shared/HeaderImageBanner/HeaderImageBanner'\r\nimport { DigitalLine } from 'Public/Shared/DigitalLine/DigitalLine'\r\n\r\nexport default (props: any) => {\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {props.children}\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","import lng from '../Utils/languge'\r\n\r\nconst StringLocalizer = (en: string, ar: string) => {\r\n if(lng.getLang() === lng.Languge.AR){\r\n return ar\r\n }\r\n return en\r\n}\r\n\r\nexport default StringLocalizer;","import { BaseService } from \"./Core/BaseService\";\r\nimport { BOOKMARK_TYPE, IBookmarkItem, IBookmarkPagination } from 'Models/BookmarkModels'\r\nimport { IPaginatedList } from 'Models/CommonModels'\r\n\r\nexport default class BookmarkService extends BaseService {\r\n\r\n public async listBookmarks(params: IBookmarkPagination): Promise> {\r\n return this.ProtectedApi.get(\"Bookmarks/ListBookmarks\", { \r\n params: params \r\n })\r\n .then(response => {\r\n const data: IPaginatedList = {\r\n items: response?.data?.items,\r\n totalCount: response?.data?.totalCount,\r\n hasNextPage: response?.data?.hasNextPage,\r\n totalPages: response?.data?.totalPages,\r\n pageIndex: response?.data?.pageIndex\r\n }\r\n return data;\r\n }).catch(error => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async createBookmark(bookmarkItem: IBookmarkItem): Promise {\r\n let id = null;\r\n if(bookmarkItem.bookmarkType === BOOKMARK_TYPE.USER_PROFILE) {\r\n id = bookmarkItem.bookmarkedProfileId\r\n } else if(bookmarkItem.bookmarkType === BOOKMARK_TYPE.ORG_PROFILE) {\r\n id = bookmarkItem.bookmarkedOrgProfileId\r\n }\r\n if(bookmarkItem.bookmarkType === BOOKMARK_TYPE.WORK) {\r\n id = bookmarkItem.bookmarkedWorkId\r\n } else if(bookmarkItem.bookmarkType === BOOKMARK_TYPE.ORG_WORK) {\r\n id = bookmarkItem.bookmarkedOrgWorkId\r\n }\r\n const data = {\r\n bookmarkedItemId: id,\r\n type: bookmarkItem.bookmarkType\r\n }\r\n return this.ProtectedApi.post('Bookmarks/Create', data)\r\n .then(response => {\r\n let result: IBookmarkItem = {...bookmarkItem, id: response.data}\r\n return result\r\n })\r\n .catch(error => {\r\n this.throwException(error)\r\n throw error\r\n })\r\n }\r\n\r\n public async deleteBookmark(id: number): Promise {\r\n return this.ProtectedApi.delete('Bookmarks/Delete', {\r\n params: { id: id }\r\n })\r\n .then(response => response.data)\r\n .catch((error) => {\r\n this.throwException(error);\r\n throw error\r\n })\r\n }\r\n\r\n public async setBookmarkPinnedTop(id: number, pinToTop: boolean): Promise {\r\n const data = {\r\n id: id,\r\n pinToTop: pinToTop\r\n }\r\n return this.ProtectedApi.put('Bookmarks/SetBookmarkPinnedTop', data)\r\n .then(() => true)\r\n .catch(error => {\r\n this.throwException(error)\r\n throw error\r\n })\r\n }\r\n\r\n}","module.exports = __webpack_public_path__ + \"static/media/JOIP_logomark_color.bd198975.png\";","module.exports = __webpack_public_path__ + \"static/media/Start-Illustration.3f1fcd42.png\";","import { BaseService } from \"./Core/BaseService\";\r\nimport { IBadges, IGeneralNotification, INetworkNotificationItem } from 'Models/Notifications';\r\n\r\nexport default class NotificationService extends BaseService {\r\n\r\n public async getGeneralNotifications(): Promise {\r\n return this.ProtectedApi.get(\"Notifications/ListGeneralNotifications\")\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async UpdateUnreadGeneralNotifications(ids: Array): Promise {\r\n this.ProtectedApi.put('Notifications/UpdateUnreadGeneralNotifications', { \"ids\": ids });\r\n }\r\n\r\n public async UpdateUnreadNetworkNotifications(ids: Array): Promise {\r\n this.ProtectedApi.put('Notifications/UpdateUnreadNotifications', { \"ids\": ids });\r\n }\r\n\r\n public async getNetworkNotifications(): Promise {\r\n return this.ProtectedApi.get(\"Notifications/ListNetworkNotifications\")\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async getUnreadNotificationsCount(): Promise {\r\n return this.ProtectedApi.get('Notifications/GetUnreadNotificationsCounts')\r\n .then(response => {\r\n return response.data as IBadges;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n })\r\n }\r\n}","import * as React from 'react';\r\n\r\nimport logo from 'Assets/Images/Identity/JOIP_logomark_color.png';\r\nimport './Splash.scss';\r\nimport { DigitalLine } from '../Shared/DigitalLine/DigitalLine';\r\n\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst Footer = () => {\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \"Joip\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Footer\r\n"," const wrapPromise = (promise:any) => {\r\n let status = \"pending\";\r\n let result:any;\r\n let suspender = promise.then(\r\n (r:any) => {\r\n status = \"success\";\r\n result = r;\r\n },\r\n (e:any) => {\r\n status = \"error\";\r\n result = e;\r\n }\r\n );\r\n return {\r\n read() {\r\n if (status === \"pending\") {\r\n throw suspender;\r\n } else if (status === \"error\") {\r\n throw result;\r\n } else if (status === \"success\") {\r\n return result;\r\n }\r\n },\r\n };\r\n }\r\n\r\n export default wrapPromise;","import axios from 'axios';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\n\r\nconst instance = axios.create({\r\n baseURL: Settings.apiBaseUri,\r\n headers: {\r\n 'Access-Control-Allow-Methods': 'HEAD, GET, POST, PUT, PATCH, DELETE',\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*'\r\n }\r\n});\r\n\r\n// instance.defaults.headers.common['Accept']='application/json';\r\n// instance.defaults.headers.common['Virgin-Device-Id']='12345';\r\n// instance.defaults.headers.common['user-agent']='VirginMobile/1.1';\r\n// instance.defaults.headers.post['Content-Type']='application/x-www-form-urlencoded';\r\ninstance.defaults.headers.common['Authorization'] = \"AUTH_TOKEN\";\r\n\r\ninstance.interceptors.request.use(function (config) {\r\n // Do something before request is sent\r\n return config;\r\n}, function (error) {\r\n // Do something with request error\r\n console.log(error);\r\n return Promise.reject(error);\r\n});\r\n\r\n// Add a response interceptor\r\ninstance.interceptors.response.use(function (response) {\r\n // Any status code that lie within the range of 2xx cause this function to trigger\r\n // Do something with response data\r\n return response;\r\n}, function (error) {\r\n // Any status codes that falls outside the range of 2xx cause this function to trigger\r\n // Do something with response error\r\n\r\n return Promise.reject(error);\r\n});\r\n\r\nexport default instance;\r\n\r\n\r\n\r\n\r\n","import axios, { AxiosInstance } from 'axios';\r\nimport { Settings } from 'Utils/Settings';\r\nimport auth from '../Utils/Auth';\r\nimport userMgr from '../Utils/userManager';\r\n\r\nconst instance: AxiosInstance = axios.create({\r\n baseURL: Settings.apiBaseUri\r\n});\r\n\r\ninstance.interceptors.request.use(async (config) => {\r\n let user = await userMgr.getUser().then((user) => user).catch(() => null);\r\n if (user?.expired) {\r\n await userMgr.signinSilent().catch((error) => { auth.login(); });\r\n user = await userMgr.getUser().then((user) => user).catch(() => null);\r\n }\r\n // Do something before request is sent\r\n config.headers = {\r\n 'Authorization': `Bearer ${user?.access_token}`,\r\n 'Access-Control-Allow-Methods': 'HEAD, GET, POST, PUT, PATCH, DELETE',\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*'\r\n }\r\n return config;\r\n}, function (error) {\r\n // Do something with request error\r\n return Promise.reject(error);\r\n});\r\n\r\n// Add a response interceptor\r\ninstance.interceptors.response.use(function (response) {\r\n // Any status code that lie within the range of 2xx cause this function to trigger\r\n // Do something with response data\r\n return response;\r\n}, function (error) {\r\n // Any status codes that falls outside the range of 2xx cause this function to trigger\r\n // Do something with response error\r\n if (error?.response?.status === 401) {\r\n auth.login();\r\n }\r\n\r\n return Promise.reject(error);\r\n});\r\n\r\nexport default instance;\r\n\r\n\r\n\r\n","import { AxiosInstance } from 'axios';\r\nimport Api from 'Apis/Apis';\r\nimport ProtectedApi from 'Apis/ProtectedApis';\r\nimport { throwException } from 'Utils/ThrowException';\r\n\r\nexport abstract class BaseService {\r\n public ProtectedApi: AxiosInstance;\r\n public Api: AxiosInstance;\r\n public throwException: (error: any, overwrite?: {\r\n errorCode: 400 | 409 | 404 | 403;\r\n msgKey: string;\r\n } | undefined) => void;\r\n\r\n constructor() {\r\n this.ProtectedApi = ProtectedApi;\r\n this.Api = Api;\r\n this.throwException = throwException;\r\n }\r\n\r\n}","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABkAAAABICAYAAACujznwAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDktMDlUMjI6NDA6NTgrMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEyLTA4VDE1OjMxOjQzKzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTEyLTA4VDE1OjMxOjQzKzAyOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmNmZmIyODRhLWU0ZWYtNGY0ZS04YmZiLTVmM2YyMDY3MjE4ZCIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjVjN2U1ODcxLTczYWUtZjM0ZS04ZTMwLTZlYzY2OGVhMmMzYyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmJmMmE1NWZlLWJiYWItNDY4ZC04MmRmLWJkMjBiZmNjOTVlMiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YmYyYTU1ZmUtYmJhYi00NjhkLTgyZGYtYmQyMGJmY2M5NWUyIiBzdEV2dDp3aGVuPSIyMDIxLTA5LTA5VDIyOjQwOjU4KzAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Y2ZmYjI4NGEtZTRlZi00ZjRlLThiZmItNWYzZjIwNjcyMThkIiBzdEV2dDp3aGVuPSIyMDIxLTEyLTA4VDE1OjMxOjQzKzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7xeloZAAAX70lEQVR42u3da7BleVnf8e//v/be59b3y3T3DN3DwMgdTAg6GNQolEYmGDUImYBAUDB4JVSiCRULIVTQGA2gIWIcYJQCAgQwKfMipYWUeaNvUmGQMFQkOjOCc4GBme7pc87ea/2fvFhr77NP9+nT59bT0Pv76Vq9b2uv2z5Vp/v8zvM86ZE//RYkSZIkSdI3vgAoQQREBHS348dRgihT96N9XCb329tSgIit7TMgAQdPLNKfqyhNbPlg211MHdNGx90d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\"","import { BaseService } from \"./Core/BaseService\";\r\nimport { IConfiguration, IAnnouncement } from \"Models/CommonModels\";\r\n\r\nexport default class CommonService extends BaseService {\r\n\r\n \r\n public async getConfigurations(): Promise> {\r\n const url = 'AppConfiguration/GetConfigurations'\r\n return this.Api.get(url)\r\n .then((response) => {\r\n return response.data;\r\n }).catch((error) => {\r\n throw error;\r\n })\r\n }\r\n\r\n public async getAnnouncement(): Promise {\r\n const url = \"Common/GetAnnouncement\";\r\n return this.ProtectedApi.get(url)\r\n .then(response => {\r\n return response.data;\r\n }).catch(error => {\r\n throw error;\r\n })\r\n };\r\n}","import * as React from 'react';\r\nimport * as Store from 'store2';\r\n\r\nconst loadStyleFiles = (dir?: Dir) => {\r\n const _dir: Dir = dir ? dir : getDir();\r\n const links = document.querySelectorAll('link[rel=\"stylesheet\"]') as any;\r\n \r\n if (_dir == Dir.RTL) {\r\n if (links.length) {\r\n links.forEach((styleSheet: any) => {\r\n if (styleSheet.href.endsWith('.chunk.css')) {\r\n const link = document.createElement('link');\r\n link.href = styleSheet.href.replace(/\\.css$/, '.rtl.css');\r\n link.rel = 'stylesheet';\r\n document.head.appendChild(link);\r\n document.head.removeChild(styleSheet);\r\n }\r\n });\r\n }\r\n }\r\n\r\n //else {\r\n // links.forEach((style: any) => {\r\n // if (style.href.endsWith('.chunk.rtl.css')) {\r\n // // const link = document.createElement('link');\r\n // // link.href = style.href.replace(/\\.rtl.css$/, '.css');\r\n // // link.rel = 'stylesheet';\r\n // // document.head.appendChild(link);\r\n // document.head.removeChild(style);\r\n // }\r\n // });\r\n //}\r\n document.body.setAttribute('dir', _dir);\r\n}\r\n\r\nenum Dir {\r\n LTR = \"ltr\",\r\n RTL = \"rtl\"\r\n}\r\n\r\nconst getDir = (): Dir => {\r\n const currentDir = Store.get(\"dir\");\r\n\r\n if (!currentDir)\r\n setDefaultDir();\r\n\r\n return Store.get(\"dir\") as Dir;\r\n}\r\n\r\nconst isRtl = (): boolean => {\r\n return getDir() === Dir.RTL\r\n}\r\n\r\nconst setDefaultDir = (dir?: Dir) => {\r\n if (dir)\r\n Store.set(\"dir\", dir);\r\n else\r\n Store.set(\"dir\", Dir.LTR);\r\n}\r\n\r\nconst dir = {\r\n getDir,\r\n setDefaultDir,\r\n Dir,\r\n isRtl,\r\n loadStyleFiles\r\n}\r\n\r\nexport default dir;","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport pupa from 'pupa';\r\nimport moment from 'moment';\r\n\r\nimport { ApplicationState, AppThunk } from '../../index';\r\nimport { IBadges, GENERAL_NOTIFICATION_TYPE, INetworkNotificationStackItem, IReceivedNetworkNotification, IReceivedGeneralNotification, INetworkNotificationSliceState, NETWORK_NOTIFICATION_TYPE } from 'Models/Notifications';\r\nimport { NotificationLikeOnMyPost, NotificationCommentOnMyPost, NotificationSystem, AcceptedYourConnectionRequest, SentYouConnectionRequest, StartedFollowingYou, AskedForReferral, WroteYouReferral, RequestedWorkFileShare, SharedWorkFiles, MentionProfile, ContentVerificationDeclined, ContentVerificationAccepted, NotificationWorkContribute, NotificationAddOrgProfileAdmin, NotificationDeleteOrgProfileAdmin } from 'Utils/Resources';\r\nimport { researcherProfile, post, researcherIdentityVerification, resercherReceivedReferralRequests, researcherReferrals, researcherReceivedWorkFileShareRequests, researcherWorkFileShare, researcherContentVerificationRequest, messages, organizationProfile, chairmanConferenceSubmissionDetails, chairmanConferences, reviewerConferenceSubmissionDetails, reviewerConferencesSubmissions, researcherConferencesSubmissions, chairmanConferencesSubmissions } from 'Config/RoutesConstants';\r\nimport NotificationService from 'Services/NotificationService';\r\nimport { VERIFICATION_STATUS } from 'Models/ProfileModels';\r\nimport { CONTENT_VERIFICATION_STATUS } from 'Models/ContentVerificationModels';\r\nimport { reflectNotifiactionCountInPageTitle } from 'Utils/Utilites';\r\nimport { addOrgs } from 'Store/Features/OrgsSlice';\r\nimport OrgProfileService from 'Services/OrgProfileService';\r\nimport { updateUser } from '../UserSlice';\r\n\r\nconst initialState: INetworkNotificationSliceState = {\r\n messageNotificationCount: 0,\r\n networkNotificationCount: 0,\r\n otherNotificationCount: 0,\r\n notificationsStack: [],\r\n};\r\nconst _notificationService = new NotificationService();\r\nconst _userService = new OrgProfileService();\r\n\r\nconst resources = {\r\n AcceptedYourConnectionRequest: AcceptedYourConnectionRequest,\r\n SentYouConnectionRequest: SentYouConnectionRequest,\r\n StartedFollowingYou: StartedFollowingYou,\r\n LikeOnMyPost: NotificationLikeOnMyPost,\r\n CommentOnMyPost: NotificationCommentOnMyPost,\r\n SystemNotification: NotificationSystem,\r\n AcceptedYourConnectionRequestTitle: \"Notification.Title.AcceptedYourConnectionRequest\",\r\n SentYouConnectionRequestTitle: \"Notification.Title.SentYouConnectionRequest\",\r\n StartedFollowingYouTitle: \"Notification.Title.StartedFollowingYou\",\r\n LikeOnMyPostTitle: \"Notification.Title.LikeOnMyPost\",\r\n CommentOnMyPostTitle: \"Notification.Title.CommentOnMyPost\",\r\n ProfileIdentityVerification: \"Notification.GeneralList.ProfileIdentityVerification\",\r\n SystemNotificationIdentityRequestAccepted: \"Notification.Title.IdentityRequestAccepted\",\r\n SystemNotificationIdentityRequestDeclined: \"Notification.Title.IdentityRequestDeclined\",\r\n AskedForReferralTitle: \"Notification.Title.AskedForReferral\",\r\n WroteYouReferralTitle: \"Notification.Title.ReferralReceived\",\r\n AskedForReferral: AskedForReferral,\r\n WroteYouReferral: WroteYouReferral,\r\n RequestedWorkFileShare: RequestedWorkFileShare,\r\n RequestedWorkFileShareTitle: \"Notification.Title.RequestedWorkFileShare\",\r\n SharedWorkFiles: SharedWorkFiles,\r\n SharedWorkFilesTitle: \"Notification.Title.SharedWorkFiles\",\r\n MentionProfile: MentionProfile,\r\n MentionProfileTitle: \"Notification.Title.MentionProfile\",\r\n ContentVerification: \"Notification.ContentVerification\",\r\n NotificationContentVerificationAccepted: ContentVerificationAccepted,\r\n NotificationContentVerificationDeclined: ContentVerificationDeclined,\r\n SentMessage: \"New Message\", //\"Notification.Title.SentNewMessage\"\r\n NotificationWorkContributor: NotificationWorkContribute,\r\n NotificationWorkContributorTitle: \"Notification.Title.WorkContributor\",\r\n NotificationAddOrgAdmin: NotificationAddOrgProfileAdmin,\r\n NotificationAddOrgAdminTitle: \"Notification.Title.AddOrgAdmin\",\r\n NotificationDeleteOrgAdmin: NotificationDeleteOrgProfileAdmin,\r\n NotificationDeleteOrgAdminTitle: \"Notification.Title.DeleteOrgAdmin\",\r\n NotificationAddChairmanTitle: \"Notification.Title.AddChairman\",\r\n NotificationDeleteChairmanTitle: \"Notification.Title.DeleteChairman\",\r\n NotificationAddReviewerTitle: \"Notification.Title.AddReviewer\",\r\n NotificationDeleteReviewerTitle: \"Notification.Title.DeleteReviewer\",\r\n NotificationReviewerAcceptActionTitle: \"Notification.Title.ReviewerAcceptAction\",\r\n NotificationReviewerRejectActionTitle: \"Notification.Title.ReviewerRejectAction\",\r\n NotificationNewSubmissionTitle: \"Notification.Title.NewSubmission\",\r\n NotificationAcceptSubmissionTitle: \"Notification.Title.AcceptSubmission\",\r\n NotificationRejectSubmissionTitle: \"Notification.Title.RejectSubmission\",\r\n NotificationAddChairman: \"Notification.AddChairman\",\r\n NotificationDeleteChairman: \"Notification.DeleteChairman\",\r\n NotificationAddReviewer: \"Notification.AddReviewer\",\r\n NotificationDeleteReviewer: \"Notification.DeleteReviewer\",\r\n NotificationReviewerAcceptAction: \"Notification.ReviewerAcceptAction\",\r\n NotificationReviewerRejectAction: \"Notification.ReviewerRejectAction\",\r\n NotificationNewSubmission: \"Notification.NewSubmission\",\r\n NotificationAcceptSubmission: \"Notification.AcceptSubmission\",\r\n NotificationRejectSubmission: \"Notification.RejectSubmission\",\r\n NotificationMissingWorkFileRequestTitle: \"Notification.Title.MissingWorkFileRequest\",\r\n NotificationMissingWorkFileRequest: \"Notification.MissingWorkFileRequest\",\r\n NotificationSharedPost:\"Notification.Message.SharedPost\",\r\n NotificationSharedPostTitle: \"Notification.Title.SharedPost\"\r\n}\r\n\r\nconst notificationSlice = createSlice({\r\n name: 'notification',\r\n initialState: initialState,\r\n reducers: {\r\n addNetworkNotificationStack: (state, action: PayloadAction) => {\r\n state.networkNotificationCount = state.networkNotificationCount + 1;\r\n const data = action.payload;\r\n let message: string = \"\";\r\n let title: string = \"\";\r\n switch (data.NetworkNotificationType) {\r\n case NETWORK_NOTIFICATION_TYPE.AcceptedConnection:\r\n message = resources.AcceptedYourConnectionRequest;\r\n title = resources.AcceptedYourConnectionRequestTitle;\r\n break;\r\n case NETWORK_NOTIFICATION_TYPE.ConnectionRequest:\r\n message = resources.SentYouConnectionRequest;\r\n title = resources.SentYouConnectionRequestTitle;\r\n break;\r\n\r\n case NETWORK_NOTIFICATION_TYPE.NewFollower:\r\n message = resources.StartedFollowingYou;\r\n title = resources.StartedFollowingYouTitle;\r\n break;\r\n }\r\n\r\n const model: INetworkNotificationStackItem = {\r\n id: data.Id,\r\n date: moment().format(),\r\n initiatorPicture: data.InitiatorPicture,\r\n initiatorFullName: data.InitiatorFullName,\r\n URL: pupa(researcherProfile.routes[0], [data.JRIN + '', 'about']),\r\n targetProfileId: data.TargetProfileId,\r\n message: message,\r\n title: title\r\n }\r\n state.notificationsStack.push(model);\r\n },\r\n addMessageNotificationStack: (state, action: PayloadAction) => {\r\n const data = action.payload;\r\n const dynamicData = JSON.parse(data.Data);\r\n const model: INetworkNotificationStackItem = {\r\n id: data.Id,\r\n date: moment().format(),\r\n initiatorPicture: data.InitiatorPicture,\r\n initiatorFullName: data.InitiatorFullName,\r\n URL: messages.route,\r\n targetProfileId: data.TargetProfileId,\r\n message: dynamicData.body,\r\n title: resources.SentMessage\r\n }\r\n state.notificationsStack.push(model);\r\n },\r\n addGeneralNotificationStack: (state, action: PayloadAction) => {\r\n state.otherNotificationCount = state.otherNotificationCount + 1;\r\n reflectNotifiactionCountInPageTitle(state.otherNotificationCount + 1);\r\n const data = action.payload;\r\n const dynamicData = JSON.parse(data.Data);\r\n let message: string = \"\";\r\n let title: string = \"\";\r\n let url: string = \"\";\r\n switch (data.Type) {\r\n case GENERAL_NOTIFICATION_TYPE.LikeOnMyPost:\r\n message = resources.LikeOnMyPost;\r\n title = resources.LikeOnMyPostTitle;\r\n url = pupa(post.routes[1], [dynamicData.PostId])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.CommentOnMyPost:\r\n message = resources.CommentOnMyPost;\r\n title = resources.CommentOnMyPostTitle;\r\n url = pupa(post.routes[0], [dynamicData.PostId, dynamicData.CommentId])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.ProfileIdentityVerification:\r\n message = dynamicData.Status == VERIFICATION_STATUS.Accepted ? resources.SystemNotificationIdentityRequestAccepted : resources.SystemNotificationIdentityRequestDeclined;\r\n title = resources.ProfileIdentityVerification;\r\n url = pupa(researcherIdentityVerification.route, [dynamicData.RequestId])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.ReferralRequest:\r\n message = resources.AskedForReferral;\r\n title = resources.AskedForReferralTitle;\r\n url = pupa(resercherReceivedReferralRequests.route, [dynamicData.RequestId])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.ReferralReceived:\r\n message = resources.WroteYouReferral;\r\n title = resources.WroteYouReferralTitle;\r\n url = pupa(researcherReferrals.route, [dynamicData.ReferralId])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.WorkFileShareRequest:\r\n message = resources.RequestedWorkFileShare;\r\n title = resources.RequestedWorkFileShareTitle;\r\n url = pupa(researcherReceivedWorkFileShareRequests.route, [dynamicData.RequestId])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.WorkFileShareReceived:\r\n message = resources.SharedWorkFiles;\r\n title = resources.SharedWorkFilesTitle;\r\n url = researcherWorkFileShare.route\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.ProfileMentioned:\r\n message = resources.MentionProfile;\r\n title = resources.MentionProfileTitle;\r\n url = pupa(post.routes[1], [dynamicData.PostId])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.ContentVerification:\r\n message = dynamicData.Status == CONTENT_VERIFICATION_STATUS.verified ? resources.NotificationContentVerificationAccepted : resources.NotificationContentVerificationDeclined;\r\n title = resources.ContentVerification;\r\n url = pupa(researcherContentVerificationRequest.route, [dynamicData.ContentId, dynamicData.ContentType])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.WorkContributor:\r\n message = resources.NotificationWorkContributor;\r\n title = resources.NotificationWorkContributorTitle;\r\n url = pupa(researcherProfile.routes[1], [dynamicData.JRIN + '', dynamicData.JDOI, 'works'])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.OrgWorkContributor:\r\n message = resources.NotificationWorkContributor;\r\n title = resources.NotificationWorkContributorTitle;\r\n url = pupa(organizationProfile.routes[1], [dynamicData.JOIN + '', dynamicData.JDOI, 'works'])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.AddOrgProfileAdmin:\r\n message = resources.NotificationAddOrgAdmin;\r\n title = resources.NotificationAddOrgAdminTitle;\r\n url = pupa(organizationProfile.routes[0], [dynamicData.JOIN, 'about'])\r\n break;\r\n\r\n case GENERAL_NOTIFICATION_TYPE.DeleteOrgProfileAdmin:\r\n message = resources.NotificationDeleteOrgAdmin;\r\n title = resources.NotificationDeleteOrgAdminTitle;\r\n url = pupa(organizationProfile.routes[0], [dynamicData.JOIN, 'about'])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.AddChairman:\r\n message = resources.NotificationAddChairman;\r\n title = resources.NotificationAddChairmanTitle;\r\n url = pupa(chairmanConferencesSubmissions.route, [data.InitiatorId, dynamicData.ConfId])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.DeleteChairman:\r\n message = resources.NotificationDeleteChairman;\r\n title = resources.NotificationDeleteChairmanTitle;\r\n url = chairmanConferences.route\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.AddReviewer:\r\n message = resources.NotificationAddReviewer;\r\n title = resources.NotificationAddReviewerTitle;\r\n url = pupa(reviewerConferenceSubmissionDetails.route, [dynamicData.SubmissionId])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.DeleteReviewer:\r\n message = resources.NotificationDeleteReviewer;\r\n title = resources.NotificationDeleteReviewerTitle;\r\n url = reviewerConferencesSubmissions.route\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.ReviewerAcceptAction:\r\n message = resources.NotificationReviewerAcceptAction;\r\n title = resources.NotificationReviewerAcceptActionTitle;\r\n url = pupa(chairmanConferenceSubmissionDetails.route, [dynamicData.SubmissionId, dynamicData.ReviewerId])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.ReviewerRejectAction:\r\n message = resources.NotificationReviewerRejectAction;\r\n title = resources.NotificationReviewerRejectActionTitle;\r\n url = pupa(chairmanConferenceSubmissionDetails.route, [dynamicData.SubmissionId, dynamicData.ReviewerId])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.AcceptSubmission:\r\n message = resources.NotificationAcceptSubmission;\r\n title = resources.NotificationAcceptSubmissionTitle;\r\n url = pupa(researcherConferencesSubmissions.route, [dynamicData.SubmissionId])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.RejectSubmission:\r\n message = resources.NotificationRejectSubmission;\r\n title = resources.NotificationRejectSubmissionTitle;\r\n url = pupa(researcherConferencesSubmissions.route, [dynamicData.SubmissionId])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.NewSubmission:\r\n message = resources.NotificationNewSubmission;\r\n title = resources.NotificationNewSubmissionTitle;\r\n url = pupa(chairmanConferenceSubmissionDetails.route, [dynamicData.SubmissionId, \"\"])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.MissingWorkFileRequest:\r\n message = resources.NotificationMissingWorkFileRequest;\r\n title = resources.NotificationMissingWorkFileRequestTitle;\r\n url = pupa(researcherProfile.routes[1], [dynamicData.JoipId + '', dynamicData.JDOI, 'works'])\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.SharePost:\r\n message = resources.NotificationSharedPost;\r\n title = resources.NotificationSharedPostTitle;\r\n url = pupa(post.routes[1], [dynamicData.PostId])\r\n break;\r\n }\r\n const model: INetworkNotificationStackItem = {\r\n id: data.Id,\r\n date: moment().format(),\r\n initiatorPicture: data.InitiatorPicture,\r\n initiatorFullName: data.InitiatorFullName,\r\n URL: url,\r\n targetProfileId: data.TargetProfileId,\r\n message: message,\r\n title: title\r\n }\r\n state.notificationsStack.push(model);\r\n },\r\n removerNetworkNotificationStack: (state, action: PayloadAction<{ id: string }>) => {\r\n state.notificationsStack = state.notificationsStack.filter(item => item.id != action.payload.id);\r\n },\r\n resetNetworkNotifications: (state) => {\r\n state.networkNotificationCount = 0;\r\n },\r\n resetGeneralNotifications: (state) => {\r\n state.otherNotificationCount = 0;\r\n },\r\n resetMessageNotifications: (state, action: PayloadAction) => {\r\n if (action.payload != null) {\r\n if (state.messageNotificationCount > 0 && state.messageNotificationCount - action.payload >= 0)\r\n state.messageNotificationCount -= action.payload;\r\n } else {\r\n state.messageNotificationCount = 0;\r\n }\r\n },\r\n addNotificationsCount: (state, action: PayloadAction) => {\r\n state.networkNotificationCount = state.networkNotificationCount + action.payload.networkNotificationCount;\r\n state.otherNotificationCount = state.otherNotificationCount + action.payload.otherNotificationCount;\r\n },\r\n addMessageNotificationsCount: (state, action: PayloadAction) => {\r\n state.messageNotificationCount += action.payload;\r\n },\r\n }\r\n});\r\n\r\nexport const {\r\n addNetworkNotificationStack,\r\n addGeneralNotificationStack,\r\n removerNetworkNotificationStack,\r\n resetNetworkNotifications,\r\n resetGeneralNotifications,\r\n addNotificationsCount,\r\n resetMessageNotifications,\r\n addMessageNotificationsCount,\r\n addMessageNotificationStack,\r\n} = notificationSlice.actions;\r\n\r\nexport const unreadNotificationsCounts = (): AppThunk => (dispatch, getstate) => {\r\n _notificationService.getUnreadNotificationsCount().then(data => {\r\n if (data) {\r\n dispatch(addNotificationsCount(data));\r\n }\r\n }).catch();\r\n};\r\n\r\nexport const AddOrgAdmin = (): AppThunk => (dispatch, getState) => {\r\n _userService.getOrgsByAdminId().then(response => {\r\n dispatch(addOrgs(response));\r\n dispatch(updateUser({ orgs: response.map(item => String(item.id)) }))\r\n }).catch();\r\n}\r\n\r\nexport const notification = (state: ApplicationState) => state.notification;\r\nexport default notificationSlice.reducer;\r\n","import { WebStorageStateStore } from 'oidc-client';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\nexport default {\r\n authority: Settings.authority, //(string): The URL of the OIDC provider.\r\n client_id: Settings.clientAppId, //(string): Your client application's identifier as registered with the OIDC provider.\r\n redirect_uri: Settings.redirectUri, //The URI of your client application to receive a response from the OIDC provider.\r\n automaticSilentRenew: Boolean(Settings.automationSilentRenew), //(boolean, default: false): Flag to indicate if there should be an automatic attempt to renew the access token prior to its expiration.\r\n accessTokenExpiringNotificationTime: Number(Settings.accessTokenExpiringNotificationTime),\r\n silent_redirect_uri: Settings.silentRedirectUri, //(string): The URL for the page containing the code handling the silent renew.\r\n response_type: Settings.responseType, //(string, default: 'id_token'): The type of response desired from the OIDC provider.\r\n scope: Settings.scope, //(string, default: 'openid'): The scope being requested from the OIDC provider.\r\n userStore: new WebStorageStateStore({ store: window.localStorage }),\r\n monitorSession: true\r\n};","import * as React from 'react'\r\nimport { makeUserManager } from 'react-oidc';\r\nimport config from '../Config/userManagerConfig';\r\nconst userManager = makeUserManager(config);\r\n\r\nuserManager.events.addAccessTokenExpired(function(){\r\n userManager.signinSilent();\r\n});\r\n\r\nexport default userManager;","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport store from 'store2';\r\n\r\nimport { ApplicationState, AppThunk } from '../index';\r\nimport { UserModel } from 'Models/UserModels';\r\n\r\nconst initialState: UserModel = { id: 0, firstName: '', familyName: '', profilePicName: '', jrin: '' };\r\n\r\nconst userSlice = createSlice({\r\n name: 'user',\r\n initialState: initialState,\r\n reducers: {\r\n addUser: (state, action: PayloadAction) => {\r\n const user = action.payload;\r\n state.id = user.id;\r\n state.firstName = user.firstName;\r\n state.familyName = user.familyName;\r\n state.jrin = user.jrin;\r\n state.profilePicName = user.profilePicName;\r\n state.orgs = user.orgs;\r\n state.isWelcomeMessageDismessed = user.isWelcomeMessageDismessed;\r\n state.isIdentityVerified = user.isIdentityVerified;\r\n state.isEmailVerified = user.isEmailVerified;\r\n state.isSuspended = user.isSuspended;\r\n state.paperSubmission = {\r\n isChairman: user.paperSubmission?.isChairman || false,\r\n isReviewer: user.paperSubmission?.isReviewer || false,\r\n isSubmitter: true\r\n }\r\n store.set(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER, user);\r\n },\r\n getUserInfo: (state) => state,\r\n updateUser: (state, action: PayloadAction) => {\r\n const user = action.payload;\r\n if (user) {\r\n state.id = user.id ? user.id : state.id;\r\n state.firstName = user.firstName ? user.firstName : state.firstName;\r\n state.familyName = user.familyName ? user.familyName : state.familyName;\r\n state.jrin = user.jrin ? user.jrin : state.jrin;\r\n state.profilePicName = user.profilePicName ? user.profilePicName : state.profilePicName;\r\n state.orgs = user.orgs ? user.orgs : state.orgs;\r\n state.isWelcomeMessageDismessed = user.isWelcomeMessageDismessed ? user.isWelcomeMessageDismessed : state.isWelcomeMessageDismessed;\r\n state.isIdentityVerified = user.isIdentityVerified ? user.isIdentityVerified : state.isIdentityVerified;\r\n state.isEmailVerified = user.isEmailVerified ? user.isEmailVerified : state.isEmailVerified;\r\n state.isSuspended = user.isSuspended ? user.isSuspended : state.isSuspended;\r\n store.set(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER, state);\r\n }\r\n },\r\n updateUserChairmanPermission: (state, action: PayloadAction) => {\r\n const isChairman = action.payload;\r\n\r\n state.paperSubmission = {\r\n isChairman: isChairman,\r\n isReviewer: state.paperSubmission?.isReviewer || false,\r\n isSubmitter: true\r\n }\r\n store.set(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER, state);\r\n },\r\n updateUserReviewerPermission: (state, action: PayloadAction) => {\r\n const isReviewer = action.payload;\r\n\r\n state.paperSubmission = {\r\n isChairman: state.paperSubmission?.isChairman || false,\r\n isReviewer: isReviewer,\r\n isSubmitter: true\r\n }\r\n store.set(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER, state);\r\n }\r\n }\r\n});\r\n\r\n\r\nexport const { addUser, getUserInfo, updateUser, updateUserChairmanPermission, updateUserReviewerPermission } = userSlice.actions;\r\n\r\nexport const setUserFromLocalStorge = (): AppThunk => (dispatch, getstate) => {\r\n const user = store.get(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER) as UserModel;\r\n if (user) {\r\n dispatch(addUser(user));\r\n }\r\n};\r\n\r\nexport const currUser = (state: ApplicationState) => state.user;\r\nexport default userSlice.reducer;\r\n","import { BaseService } from 'Services/Core/BaseService';\r\nimport { UserModel } from 'Models/UserModels';\r\n\r\nexport default class UserService extends BaseService {\r\n\r\n\r\n public async getUserInfo(): Promise {\r\n return this.ProtectedApi.get(\"Profile/GetUserProfileInfo\")\r\n .then((response) => {\r\n return response.data as UserModel;\r\n }).catch((error) => {\r\n throw error;\r\n });\r\n }\r\n}","module.exports = __webpack_public_path__ + \"static/media/NoProfileAvailable.e88047c8.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDktMDlUMjI6NDA6NTgrMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEyLTA4VDE1OjU1OjM4KzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTEyLTA4VDE1OjU1OjM4KzAyOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBkMWJiMWY5LTllMmEtNDNiNS1iN2IxLTQxNmY4ZDllZGI4MSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmExYTg3NTRlLTMyOWMtZjM0ZS1iYTgwLWQ4ZDZiYzFhYWQ3ZiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmYxMzM3ZDVkLTRjOGQtNGVmNC05OTdjLTNkZDA2NmQzMDBjNSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjEzMzdkNWQtNGM4ZC00ZWY0LTk5N2MtM2RkMDY2ZDMwMGM1IiBzdEV2dDp3aGVuPSIyMDIxLTA5LTA5VDIyOjQwOjU4KzAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MGQxYmIxZjktOWUyYS00M2I1LWI3YjEtNDE2ZjhkOWVkYjgxIiBzdEV2dDp3aGVuPSIyMDIxLTEyLTA4VDE1OjU1OjM4KzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6WnhGAAAAMC0lEQVR42u2cCVCTZxqAAyI3hoACAq5yyiWHBti1tbNt7Thup3XbqVVugkAKAUIg1Wpd6kXV9SjWo4q3laoreLbeJ4KKdisqhCMIKEQBAauEQzD59v0+1GGsrhry/8lvM/MOQ5g4/nny3t/7fixFe5lOXlFYOgQ6WDpYOlg6WDpYOlg6BDpYOlg6WDpYOlg6WFr1NMqOMtRVgR4S6apQdpTrYPUVCeosR0iK0C2EmhBqRKiO/H6T/NJA/liP0A3UVa6Q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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDktMDlUMjI6NDA6NTgrMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEyLTA4VDE1OjU1OjUxKzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTEyLTA4VDE1OjU1OjUxKzAyOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJmYzcxNWRjLTlmNTMtNDIzNC05YzFmLWNkN2M3YmM2YzllNyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjUxOTdlNTQzLWY3MjItMDg0Mi04YjQ0LWU4YWRkYzcyNzEzMSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjVlOWI3ODgwLTc2OGUtNDcyNi1hNTJiLWM4M2Q1NzA2NzAzMCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NWU5Yjc4ODAtNzY4ZS00NzI2LWE1MmItYzgzZDU3MDY3MDMwIiBzdEV2dDp3aGVuPSIyMDIxLTA5LTA5VDIyOjQwOjU4KzAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MmZjNzE1ZGMtOWY1My00MjM0LTljMWYtY2Q3YzdiYzZjOWU3IiBzdEV2dDp3aGVuPSIyMDIxLTEyLTA4VDE1OjU1OjUxKzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6iiuyKAAALK0lEQVR42u2cd1wU1xbH96/kBVERRaUXKQtIU0EUsMQYfSVqjBqj0pbei4AYG88SxN4SwGd7xugz+eizgCjyxAIiSGJAxF16WRCsqCvV3fvOzMA47O5YyHuwLPfz+X346M6cO/d+d+6dc849Oxzxq/tY7ykORoBhYVgYFoaFYWFYGAGGhWFhWBgWhoVhYQQYFoalVLBExaijBKEqhCp7KrCtIJtSeljN/Lbn9543Frx4VNgzPX9YIHpcSDal7LCQ5EHK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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDktMDlUMjI6NDA6NTgrMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEyLTA4VDE1OjU2OjM2KzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTEyLTA4VDE1OjU2OjM2KzAyOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmI3YzA3YmNlLTFjOTAtNGZjNi1iZWFkLWFlNTU1NWZlNGFiZCIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmQwYWU5M2NjLTM3OTYtNDA0MC1iZDRkLTAyNTgyN2NiZjM2MyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI0MzZhZDc2LTBkMTgtNDk5ZS05OTllLTQwZDZmOGI3ODNmZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjQzNmFkNzYtMGQxOC00OTllLTk5OWUtNDBkNmY4Yjc4M2ZlIiBzdEV2dDp3aGVuPSIyMDIxLTA5LTA5VDIyOjQwOjU4KzAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YjdjMDdiY2UtMWM5MC00ZmM2LWJlYWQtYWU1NTU1ZmU0YWJkIiBzdEV2dDp3aGVuPSIyMDIxLTEyLTA4VDE1OjU2OjM2KzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4cb1pMAAAHW0lEQVR42u2caUxUVxTHn1hQUTZFMDCALDoMm8hSwaKN0jRttf1gbUxql2hTmyZ8MtVUqgMDzLAMs4AsYiBFQBqraaO1FhdoNY1ipWVzwcgMMKAgwjDDjIAL3J73nkVbgQ7M/rjJP2QCvDvzfnPOuf/z7n2PGBtqw9JRBEaAYWFYGBaGhWFhWBgBhoVhYVgYFoaFYWEEGBaGhWFhWBgWhmWUcR/K0aN2hHoRUiLUr7dgkPswIAzLOFgPZQj1wEk2/lVf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\"","module.exports = __webpack_public_path__ + \"static/media/Header-Image-Template.26f4f877.jpg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Spinner\":\"Select_Spinner__2wJHF\"};","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport ChainedBackend from \"i18next-chained-backend\";\r\nimport LocalStorageBackend from \"i18next-localstorage-backend\";\r\nimport Backend from 'i18next-http-backend';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\n\r\nimport Lang from '../Utils/languge';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\n\r\n// have a look at the Quick start guide \r\n// for passing in lng and translations on init\r\nexport const backendOptions = {\r\n crossDomain: true,\r\n expirationTime: Settings.resourcesCacheTime, // 7 days\r\n defaultVersion: Settings.resourcesVersion,\r\n store: window.localStorage,\r\n prefix: `JOIP_res_${Settings.resourcesVersion}_`,\r\n // for all available options read the backend's repository readme file\r\n //loadPath: '/locales/{{lng}}/{{ns}}.json',\r\n //loadPath: 'http://192.168.1.100/locales/{{lng}}/{{ns}}.json',\r\n //loadPath: process.env.REACT_APP_LOAD_RESOURCES_PATH,\r\n overrideMimeType: false,\r\n};\r\n\r\ni18n\r\n .use(ChainedBackend)\r\n\r\n // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\r\n // learn more: https://github.com/i18next/i18next-http-backend\r\n //.use(Backend)\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n .use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n // init i18next\r\n // for all options read: https://www.i18next.com/overview/configuration-options\r\n .init({\r\n lng: String(Lang.getLang()),\r\n initImmediate: false,\r\n fallbackLng: String(Lang.getLang()),\r\n debug: false,\r\n react: {\r\n wait: true,\r\n useSuspense: true\r\n },\r\n keySeparator: false, // we do not use keys in form messages.welcome\r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react as it escapes by default\r\n },\r\n backend: {\r\n backends: [\r\n LocalStorageBackend,\r\n Backend\r\n ],\r\n backendOptions: [backendOptions,\r\n {\r\n loadPath: Settings.loadResourcesPath\r\n }\r\n ]\r\n }\r\n });\r\n\r\nexport default i18n;\r\n\r\n","import * as React from 'react'\r\nimport * as Icons from '@material-ui/icons'\r\n\r\nimport dir from '../Utils/direction'\r\n\r\nconst getIconElement = (name: keyof Icons.SvgIconComponent) => {\r\n return Icons[name];\r\n}\r\n\r\nconst getIconByName = (props: any, isDirAware: boolean) => {\r\n const { iconname } = props;\r\n const iconName = iconname && iconname.replace(/Icon$/, '') // removes 'Icon' suffix if added\r\n\r\n const IconElements = Object.keys(Icons).map(icon => icon);\r\n let index: number = IconElements.findIndex((c: any) => c === iconName)\r\n if (index >= 0) {\r\n const iconKey = IconElements[index] as keyof Icons.SvgIconComponent\r\n if (iconKey) {\r\n const iconEl = getIconElement(iconKey)\r\n\r\n const flip: boolean = isDirAware && dir.getDir() === dir.Dir.RTL;\r\n const style = {\r\n transform: flip ? \"scaleX(-1)\" : undefined\r\n }\r\n props = { ...props, style }\r\n\r\n return React.createElement(iconEl, { ...props })\r\n }\r\n }\r\n return null\r\n}\r\n\r\nexport const Icon: React.FC<{ iconname: string, [x: string]: any }> = (props) => {\r\n return getIconByName(props, false)\r\n}\r\n\r\nexport const DirAwareIcon: React.FC<{ iconname: string, [x: string]: any }> = (props) => {\r\n return getIconByName(props, true)\r\n}\r\n\r\n","import { IconSizeType } from 'Models/CommonModels';\r\nimport { IPostImage } from 'Models/PostModels';\r\nimport moment from 'moment';\r\nimport constants from './constants';\r\nimport { Settings } from './Settings';\r\n\r\nexport const profileCoverPic = (image?: string | null): string => {\r\n if (image)\r\n return (Settings.profileImageUrl_coverImage + image);\r\n else\r\n return (constants.urls.CoverImgPlaceholder)\r\n}\r\n\r\nexport const profilePic100 = (image?: string | null): string => {\r\n if (image)\r\n return (Settings.profileImageUrl_100x100 + image);\r\n else\r\n return (constants.urls.profilePlaceHolder)\r\n}\r\n\r\nexport const profilePic200 = (image?: string | null): string => {\r\n if (image)\r\n return (Settings.profileImageUrl_200x200 + image);\r\n else\r\n return (constants.urls.profilePlaceHolder)\r\n}\r\n\r\nexport const orgProfilePic100 = (image?: string | null): string => {\r\n if (image)\r\n return (Settings.profileImageUrl_100x100 + image);\r\n else\r\n return (constants.urls.OrgProfilePlaceHolder)\r\n}\r\n\r\nexport const orgProfilePic200 = (image?: string | null): string => {\r\n if (image)\r\n return (Settings.profileImageUrl_200x200 + image);\r\n else\r\n return (constants.urls.OrgProfilePlaceHolder)\r\n}\r\n\r\nexport const mobileNumberTruncate = (phoneNo: string, code?: string | null) => {\r\n let phoneNumber = `${Number(phoneNo)}`;\r\n\r\n if (code && phoneNumber.startsWith(code)) {\r\n phoneNumber = phoneNumber.substr(code.length);\r\n };\r\n\r\n return phoneNumber;\r\n}\r\n\r\nexport const isValidUrl = (url: string) => {\r\n if (url.match(/[http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/]|[][a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport const isEmail = (text: string) => {\r\n if (text.match(/^\\S+@\\S+$/)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport const prependHTTP = (url: string) => {\r\n if (\r\n /\\S/.test(url) && // not blank space\r\n !/^http:\\/\\//.test(url) &&\r\n !/^https:\\/\\//.test(url) // doesn't include 'http://' or 'https://'\r\n ) {\r\n return \"https://\" + url;\r\n }\r\n return url;\r\n};\r\n\r\nexport const getOrganizationId = (join: string) => {\r\n var joinParts = join.split('.');\r\n if (joinParts.length > 3)\r\n return Number(joinParts[3]);\r\n else\r\n return null\r\n}\r\n\r\nexport const getUserProfileId = (jrin: string) => {\r\n var jrinParts = jrin.split('.');\r\n if (jrinParts.length > 3)\r\n return Number(jrinParts[3]);\r\n else\r\n return null\r\n}\r\n\r\n\r\nexport const getDirectionFromText = (text: string): string => {\r\n const REGX__LANG = {\r\n AR: /^[\\u0600-\\u06FF]+/g,\r\n }\r\n let textDir = 'ltr';\r\n if (text.match(REGX__LANG.AR)) { //Check IF AR\r\n textDir = 'rtl'\r\n }\r\n return textDir\r\n}\r\n\r\nexport const removeSpaces = (str: string) => {\r\n return str.split(' ').join('');\r\n}\r\n\r\n/**\r\n * \r\n * @param data values (startYear, startMonth, startDay, endYear, endMonth, endDay)\r\n * @returns boolean\r\n */\r\nexport const validateStartBeforeEnd = (data: { startYear: string, startMonth?: string, startDay?: string, endYear?: string, endMonth?: string, endDay?: string }): boolean => {\r\n if (data.startYear !== \"\") {\r\n const start = `${data.startYear}-${data.startMonth}-${data.startDay}`\r\n const end = `${data.endYear}-${data.endMonth}-${data.endDay}`\r\n const startDate = moment(start, \"YYYY-MM-DD\")\r\n const endDate = moment(end, \"YYYY-MM-DD\")\r\n if (start === end) {\r\n return true\r\n }\r\n return moment(endDate).isAfter(startDate)\r\n }\r\n return false\r\n}\r\n\r\nexport const getIconSize = (size: IconSizeType) => {\r\n switch (size) {\r\n case \"xsmall\": return { width: 16, height: 16 };\r\n case \"small\": return { width: 20, height: 20 };\r\n case \"large\": return { width: 35, height: 35 };\r\n default: return { width: 24, height: 24 };\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @param url file url\r\n * @returns File name\r\n */\r\nexport const getFileNameFromUrl = (url: string) => {\r\n let urlString = url.split('/');\r\n let fileName = urlString[urlString.length - 1];\r\n return fileName.split('-').slice(1).join('-');\r\n}\r\n/**\r\n * \r\n * @param file FileList\r\n * @returns boolean - is file extension is allowed\r\n */\r\nexport const checkFileExt = (file: any) => {\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.gif|\\.pdf)$/i;\r\n const result = allowedExtensions.exec(file[0]?.name);\r\n return Boolean(result)\r\n}\r\n/**\r\n * check if the inputs are only numbers\r\n * @param e \r\n */\r\nexport const mobileNumberOnkeyPressHandler = (e: any) => {\r\n e = e || window.event;\r\n var charCode = (typeof e.which == \"undefined\") ? e.keyCode : e.which;\r\n var charStr = String.fromCharCode(charCode);\r\n\r\n if (!charStr.match(/^[0-9]+$/))\r\n e.preventDefault();\r\n}\r\n/**\r\n * \r\n * @param file FileList\r\n * @returns string - file extension\r\n */\r\nexport const getFileExt = (file: FileList) => {\r\n return file[0].name.split('.').pop();\r\n}\r\n/**\r\n * \r\n * @param fileName \r\n * @returns boolean - is file extension is pdf\r\n */\r\nexport const getFileExtPDF = (fileName: string) => {\r\n return fileName.split('.').pop()?.toLocaleLowerCase() === \"pdf\";\r\n}\r\n/**\r\n * \r\n * @param file File\r\n * @returns promise - encode as base64 digits\r\n */\r\nexport const processFile = (file: File): Promise => {\r\n var reader: any = new FileReader();\r\n reader.readAsArrayBuffer(file);\r\n return new Promise((resolve, reject) => {\r\n reader.onload = () => {\r\n var array: any = new Uint8Array(reader.result);\r\n //@ts-ignore\r\n resolve(new Buffer.from(array).toString('base64'));\r\n };\r\n });\r\n}\r\n\r\nexport const getLocalDate = (date: string, format?: string) => {\r\n if (!moment(date).isValid()) return \"\";\r\n return moment.parseZone(date).local().format(format);\r\n}\r\n\r\nexport const reflectNotifiactionCountInPageTitle = (count: number) => {\r\n const pattern = /^\\(\\d+\\)/;\r\n\r\n if (count === 0 || pattern.test(document.title)) {\r\n document.title = document.title.replace(\r\n pattern,\r\n count === 0 ? \"\" : \"(\" + (count - 1) + \")\"\r\n );\r\n } else {\r\n document.title = \"(\" + (count - 1) + \") \" + document.title;\r\n }\r\n };\r\n\r\n export const preventEnterKeyDefault = (e: any) => {\r\n if(e.keyCode == 13){\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n\r\n export const analyzeImages = (images: IPostImage[]) => {\r\n const arrayLength = images.length < 5 ? images.length : 5;\r\n const isPortrait = (width: number, height: number) => {\r\n return width < height && width / height <= 0.75;\r\n };\r\n let numberOfPortraits = 0;\r\n let numberOfLandscapes = 0;\r\n let analyzedImages: IPostImage[] = [];\r\n \r\n for (let i = 0; i < arrayLength; i++) {\r\n const isPortraitImage = isPortrait(\r\n Number(images[i].width),\r\n Number(images[i].height)\r\n );\r\n \r\n if (isPortraitImage) {\r\n numberOfPortraits++;\r\n } else {\r\n numberOfLandscapes++;\r\n }\r\n \r\n const analyzedImage = { ...images[i], isPortraitImage };\r\n \r\n analyzedImages.push(analyzedImage);\r\n }\r\n \r\n //Put all portraits to the beginning of the array\r\n analyzedImages.sort(\r\n (a, b) => Number(b.isPortraitImage) - Number(a.isPortraitImage)\r\n );\r\n \r\n return { analyzedImages, numberOfPortraits, numberOfLandscapes };\r\n };\r\n \r\n //This will assign the paddingTop of Post Image Window\r\n export const assignWindowTopPadding = (\r\n numberOfImages: number,\r\n numberOfPortraits: number\r\n ) => {\r\n if (numberOfImages === 2 && numberOfPortraits === 1) {\r\n return 50;\r\n } else if (numberOfImages >= 5 && numberOfPortraits >= 4) {\r\n return 83.3333333;\r\n } else {\r\n return 100;\r\n }\r\n };\r\n\r\n\r\n const styleOptionResult = (numberOfPortraits: number) => {\r\n switch (numberOfPortraits) {\r\n case 0:\r\n return '0P';\r\n \r\n case 1:\r\n return '1P';\r\n \r\n case 2:\r\n return '2P';\r\n case 3:\r\n return '3P';\r\n case 4:\r\n return '4P';\r\n \r\n default:\r\n return '5P';\r\n }\r\n };\r\n\r\n\r\n //P: Portrait, \"e.g. 1P = 1 Portrait\", L: Landscape \"e.g. 2L means 2 Landscape Images\"\r\nconst styles = [\r\n {\r\n '0P': [\r\n {\r\n imageContainerStyle: {\r\n inset: 'calc(0% + 0px) calc(0% + 0px) calc(50% + 1.01px)',\r\n },\r\n wrapperStyle: { paddingTop: '50%' },\r\n rootStyle: { height: 'calc(133.333%)', top: '0%', width: '100%' },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: 'calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)',\r\n },\r\n wrapperStyle: {\r\n paddingTop: '50%',\r\n },\r\n rootStyle: { height: 'calc(133.185%)', top: '0%', width: '100%' },\r\n },\r\n ],\r\n \r\n '1P': [\r\n {\r\n imageContainerStyle: {\r\n inset:\r\n 'calc(0% + 0px) calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)',\r\n },\r\n wrapperStyle: { paddingTop: '100%' },\r\n rootStyle: { height: 'calc(150%)', top: '0%', width: '100%' },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset:\r\n 'calc(0% + 0px) calc(0% + 0px) calc(0% + 0px) calc(50% + 1.01px)',\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: { height: 'calc(150%)', top: '0%', width: '100%' },\r\n },\r\n ],\r\n \r\n '2P': [\r\n {\r\n imageContainerStyle: {\r\n inset:\r\n 'calc(0% + 0px) calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)',\r\n },\r\n wrapperStyle: { paddingTop: '200%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-19.4143%',\r\n width: 'calc(138.829%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset:\r\n 'calc(0% + 0px) calc(0% + 0px) calc(0% + 0px) calc(50% + 1.01px)',\r\n },\r\n wrapperStyle: {\r\n paddingTop: '200%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-21.4286%',\r\n width: 'calc(142.857%)',\r\n },\r\n },\r\n ],\r\n },\r\n \r\n {\r\n //Portrait should be on the left:\r\n '0P': [\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(33.3333% + 1.01px)`,\r\n },\r\n wrapperStyle: { paddingTop: '66.6667%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-0.0555556%',\r\n width: 'calc(100.111%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(50% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: { height: '100%', left: '0%', width: 'calc(100%)' },\r\n },\r\n ],\r\n \r\n '1P': [\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(33.3333% + 1.01px)`,\r\n },\r\n wrapperStyle: { paddingTop: '66.6667%' },\r\n rootStyle: { height: 'calc(225%)', top: '-24.25%', width: '100%' },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(50% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-0.0555556%',\r\n width: 'calc(100.111%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: { height: '100%', left: '0%', width: 'calc(100%)' },\r\n },\r\n ],\r\n \r\n '2P': [\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(33.3333% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '150%' },\r\n rootStyle: { height: '100%', left: '0%', width: 'calc(100%)' },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(50% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '150%',\r\n },\r\n rootStyle: { height: '100%', left: '-62.5%', width: 'calc(225%)' },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '150%',\r\n },\r\n rootStyle: { height: '100%', top: '0%', width: 'calc(100%)' },\r\n },\r\n ],\r\n \r\n '3P': [\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(33.3333% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '150%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-2.06074%',\r\n width: 'calc(104.121%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(50% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '150%',\r\n },\r\n rootStyle: { height: '100%', left: '0%', width: 'calc(100%)' },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '150%',\r\n },\r\n rootStyle: { height: '100%', top: '0%', width: 'calc(100%)' },\r\n },\r\n ],\r\n },\r\n \r\n {\r\n '0P': [\r\n {\r\n imageContainerStyle: {\r\n inset: `calc((0% / 6) + 0px) calc((0% / 6) + 0px) calc((200% / 6) + 1.01px) calc((0% / 6) + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '66.66666666666667%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-0.05555555555555314%',\r\n width: 'calc(((901 / 600) / 1.5) * 100%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc((400% / 6) + 1.01px) calc((400% / 6) + 1.01px) calc((0% / 6) + 0px) calc((0% / 6) + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(((900 / 600) / 1) * 100%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc((400% / 6) + 1.01px) calc((200% / 6) + 1.01px) calc((0% / 6) + 0px) calc((200% / 6) + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(((900 / 600) / 1) * 100%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc((400% / 6) + 1.01px) calc((0% / 6) + 0px) calc((0% / 6) + 0px) calc((400% / 6) + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(((900 / 600) / 1) * 100%)',\r\n },\r\n },\r\n ],\r\n \r\n '1P': [\r\n {\r\n //Should be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(33.3333% + 1.01px)`,\r\n },\r\n wrapperStyle: { paddingTop: '66.6667%' },\r\n rootStyle: {\r\n height: 'calc(106.785%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(66.6667% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(33.3333% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25.0833%',\r\n width: 'calc(150.167%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(150%)',\r\n },\r\n },\r\n ],\r\n \r\n '2P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(33.3333% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '150%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-2.06074%',\r\n width: 'calc(104.121%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(66.6667% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(33.3333% + 1.01px) calc(0% + 0px) calc(33.3333% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(150%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25.0833%',\r\n width: 'calc(150.167%)',\r\n },\r\n },\r\n ],\r\n \r\n '3P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(33.3333% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '150%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-2.06074%',\r\n width: 'calc(104.121%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(66.6667% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(33.3333% + 1.01px) calc(0% + 0px) calc(33.3333% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(150%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n ],\r\n \r\n '4P': [\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(33.3333% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '150%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-2.06074%',\r\n width: 'calc(104.121%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(66.6667% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(33.3333% + 1.01px) calc(0% + 0px) calc(33.3333% + 1.01px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(150%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n ],\r\n },\r\n \r\n {\r\n '0P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '100%' },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(150%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25.0833%',\r\n width: 'calc(150.167%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(66.6667% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(33.3333% + 1.01px) calc(0% + 0px) calc(33.3333% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n ],\r\n \r\n '1P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '100%' },\r\n rootStyle: {\r\n height: 'calc(140%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(150%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(66.6667% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-0.0555556%',\r\n width: 'calc(100.111%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(33.3333% + 1.01px) calc(0% + 0px) calc(33.3333% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n ],\r\n \r\n '2P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '100%' },\r\n rootStyle: {\r\n height: 'calc(144.062%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(140%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(66.6667% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(33.3333% + 1.01px) calc(0% + 0px) calc(33.3333% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-0.0555556%',\r\n width: 'calc(100.111%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n ],\r\n \r\n '3P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '100%' },\r\n rootStyle: {\r\n height: 'calc(144.062%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(50% + 1.01px) calc(50% + 1.01px) calc(0% + 0px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(140%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(66.6667% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: 'calc(225%)',\r\n top: '-24.25%',\r\n width: '100%',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(33.3333% + 1.01px) calc(0% + 0px) calc(33.3333% + 1.01px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '0%',\r\n width: 'calc(100%)',\r\n },\r\n },\r\n \r\n {\r\n imageContainerStyle: {\r\n inset: `calc(66.6667% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '66.6667%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-0.0555556%',\r\n width: 'calc(100.111%)',\r\n },\r\n },\r\n ],\r\n \r\n '4P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(50% + 1.01px) calc(40% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '100%' },\r\n rootStyle: {\r\n height: 'calc(144.062%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(40% + 1.01px) calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(140%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(60% + 1.01px) calc(66.6667% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(60% + 1.01px) calc(33.3333% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: '100%',\r\n left: '-25%',\r\n width: 'calc(150%)',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(60% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n \r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n ],\r\n \r\n '5P': [\r\n {\r\n //Must be Portrait\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(50% + 1.01px) calc(40% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: { paddingTop: '100%' },\r\n rootStyle: {\r\n height: 'calc(144.062%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(0% + 0px) calc(0% + 0px) calc(40% + 1.01px) calc(50% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(140%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(60% + 1.01px) calc(66.6667% + 1.01px) calc(0% + 0px)\r\n calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(137.188%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(60% + 1.01px) calc(33.3333% + 1.01px) calc(0% + 0px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n {\r\n imageContainerStyle: {\r\n inset: `calc(60% + 1.01px) calc(0% + 0px) calc(0% + 0px)\r\n calc(66.6667% + 1.01px)`,\r\n },\r\n wrapperStyle: {\r\n paddingTop: '100%',\r\n },\r\n rootStyle: {\r\n height: 'calc(150%)',\r\n top: '0%',\r\n width: '100%',\r\n },\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n export const assignStyleToImages = (\r\n numberOfPortraits: number,\r\n images: IPostImage[]\r\n ) => {\r\n const numberOfImages = images.length;\r\n let selectedStyle;\r\n \r\n let styleOption: '0P' | '1P' | '2P' | '3P' | '4P' | '5P';\r\n if (numberOfImages >= 2 && numberOfImages <= 5) {\r\n const index = numberOfImages - 2;\r\n const styleGroup = styles[index];\r\n \r\n if (numberOfPortraits >= 0 && numberOfPortraits <= 5 && styleGroup) {\r\n styleOption = styleOptionResult(numberOfPortraits);\r\n if (styleGroup[styleOption]) {\r\n selectedStyle = styleGroup[styleOption];\r\n }\r\n }\r\n }\r\n \r\n if (selectedStyle) {\r\n const styleAssignedImages = [];\r\n for (let i = 0; i < images.length; i++) {\r\n const styleAssigned = { image: images[i], styles: selectedStyle[i] };\r\n styleAssignedImages.push(styleAssigned);\r\n }\r\n \r\n return styleAssignedImages;\r\n }\r\n \r\n return null;\r\n };","import React from 'react';\r\nimport { toast, ToastProps } from 'react-toastify';\r\n\r\nimport { Icon } from 'Utils/Icon';\r\nimport Style from './Toast.module.scss';\r\n\r\nconst titleCase = (text: string): string => {\r\n return text[0].toUpperCase() + text.slice(1);\r\n}\r\n\r\nconst SuccessMsg = ({ toastProps, msg }: { closeToast: any, toastProps: ToastProps, msg: string }): JSX.Element => {\r\n const { isIn, toastId, key, deleteToast, transition, draggablePercent, closeToast, hideProgressBar, autoClose, progressStyle, progressClassName,\r\n closeOnClick, draggableDirection, pauseOnFocusLoss, pauseOnHover, bodyStyle, bodyClassName, rtl = \"false\", closeButton, updateId, ...rest } = toastProps;\r\n return (\r\n
\r\n {titleCase(msg)}\r\n
\r\n )\r\n}\r\n\r\nconst WarningMsg = ({ toastProps, msg }: { closeToast: any, toastProps: ToastProps, msg: string }): JSX.Element => {\r\n const { isIn, toastId, key, deleteToast, transition, draggablePercent, closeToast, hideProgressBar, autoClose, progressStyle, progressClassName,\r\n closeOnClick, draggableDirection, pauseOnFocusLoss, pauseOnHover, bodyStyle, bodyClassName, rtl = \"false\", closeButton, updateId, ...rest } = toastProps;\r\n return (\r\n
\r\n {titleCase(msg)}\r\n
\r\n )\r\n}\r\n\r\nconst ErrorMsg = ({ toastProps, msg }: { closeToast: any, toastProps: ToastProps, msg: string }): JSX.Element => {\r\n const { isIn, toastId, key, deleteToast, transition, draggablePercent, closeToast, hideProgressBar, autoClose, progressStyle, progressClassName,\r\n closeOnClick, draggableDirection, pauseOnFocusLoss, pauseOnHover, bodyStyle, bodyClassName, rtl = \"false\", closeButton, updateId, ...rest } = toastProps;\r\n return (\r\n
\r\n {titleCase(msg)}\r\n
\r\n )\r\n}\r\n\r\nexport const setError = (msg: string) => {\r\n toast.error(({ closeToast, toastProps }) => , {\r\n position: \"top-center\",\r\n autoClose: 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n closeButton: false\r\n })\r\n};\r\n\r\nexport const setWarning = (msg: string) => {\r\n toast.error(({ closeToast, toastProps }) => , {\r\n position: \"top-center\",\r\n autoClose: 5000,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n closeButton: false\r\n })\r\n};\r\n\r\nexport const setSuccess = (msg: string) => toast.success(({ closeToast, toastProps }) => , {\r\n position: \"top-center\",\r\n autoClose: 5000,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n hideProgressBar: true,\r\n draggable: true,\r\n closeButton: false\r\n});\r\n","import * as React from 'react';\r\nimport store from 'store2';\r\nimport { Settings } from './Settings';\r\nimport userManager from './userManager';\r\n//import * as userConfig from '../Config/userManagerConfig';\r\n\r\nconst login = () => {\r\n store.remove(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER);\r\n userManager.signinRedirect();\r\n}\r\n\r\nconst Logout = () => {\r\n store.remove(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER);\r\n userManager.signoutRedirect();\r\n}\r\n\r\n\r\nconst isAuthenticated = (): boolean => {\r\n let _componetn: boolean = true;\r\n const _store = store.getAll();\r\n\r\n const key: string = `oidc.user:${Settings.authority}:${Settings.clientAppId}`;\r\n if (!_store[key]) {\r\n _componetn = false;\r\n }\r\n return _componetn;\r\n};\r\n\r\nconst getUserToken = (): string | undefined => {\r\n const _store = store.getAll();\r\n const key: string = `oidc.user:${Settings.authority}:${Settings.clientAppId}`;\r\n const tokenObj = _store[key];\r\n\r\n return tokenObj?.access_token\r\n}\r\n\r\nconst getUserJrin = (): string | undefined => {\r\n const _store = store.getAll();\r\n const key: string = `oidc.user:${Settings.authority}:${Settings.clientAppId}`;\r\n const tokenObj = _store[key];\r\n\r\n return tokenObj?.profile.jrin\r\n}\r\n\r\nconst SilentCallback = () => {\r\n React.useEffect(() => {\r\n userManager.signinSilentCallback();\r\n\r\n }, [])\r\n return (React.createElement(\"div\"));\r\n}\r\n\r\nconst SuspendUser = () => {\r\n\r\n store.set(\"isSuspended\", true);\r\n\r\n React.useEffect(() => {\r\n Logout();\r\n }, [])\r\n return (React.createElement(\"div\"));\r\n}\r\n\r\nconst getUser = async () => {\r\n return await userManager.getUser().then((user) => {\r\n if (user) {\r\n return user;\r\n } else {\r\n return null;\r\n }\r\n }).catch(() => null)\r\n}\r\n\r\nconst Auth = {\r\n login,\r\n Logout,\r\n isAuthenticated,\r\n SuspendUser,\r\n SilentCallback,\r\n getUser,\r\n getUserToken,\r\n getUserJrin\r\n}\r\n\r\nuserManager.events.addUserSignedOut(() => {\r\n userManager.signoutRedirect();\r\n})\r\n\r\nexport default Auth;","import React from 'react';\r\n\r\nimport classes from './DigitalLine.module.scss';\r\nimport Dir from 'Utils/direction';\r\n\r\ninterface Props {\r\n size: \"small\" | \"large\",\r\n height: number,\r\n color?: string,\r\n opacity?: string,\r\n float?: \"left\" | \"right\",\r\n space?: string,\r\n DirAware?: boolean\r\n}\r\n\r\nenum SIZES {\r\n SMALL = 'small',\r\n LARGE = 'large'\r\n}\r\n\r\nconst getStyle = (size: string, color: string | undefined, opacity: string | undefined, float : string | undefined, space : string | undefined, DirAware : boolean | undefined) : any => {\r\n return {\r\n sizeClass: size === SIZES.SMALL ? classes.containerSmall : classes.containerLarge,\r\n color: color,\r\n opacity: opacity,\r\n styles : {\r\n floatStyle: float ? float === 'left' ? {left:'1px'} : {right:'1px'} : {},\r\n space: float ? float === 'left' ? {left: space} : {right: space} : {left:space}\r\n },\r\n DirAware: DirAware ? DirAware : false \r\n }\r\n}\r\n\r\nexport const DigitalLine: React.FC = ({size, color, opacity , height, float, space, DirAware}) => {\r\n const style = getStyle(size, color, opacity, float, space, DirAware)\r\n if (DirAware) if( Dir.isRtl()) {style.styles.space={left: space}; style.styles.floatStyle=''}\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import NoProfileAvailable from \"Assets/Images/Profile/NoProfileAvailable.png\";\r\nimport ProfilePlaceHolder from \"Assets/Images/Profile/02-User.png\";\r\nimport OrgProfilePlaceHolder from \"Assets/Images/Profile/02-Org.png\";\r\nimport WorkIcon from \"Assets/Images/Profile/02-Work.png\";\r\nimport CoverImgPlaceholder from 'Assets/Images/NCI Templates/Header-Image-Template.jpg';\r\n\r\nconst constants = {\r\n urls: {\r\n headerImagePlaceholder:\r\n \"https://joipdevstorage.blob.core.windows.net/pub/assets/Header-Image-Template.jpg\",\r\n CardImagePlaceholder: \"https://via.placeholder.com/150\",\r\n profilePlaceHolder: ProfilePlaceHolder,\r\n NoProfilePlaceHoler:NoProfileAvailable\r\n /*\"https://static-exp1.licdn.com/sc/h/5t1znlongxxnu07iswxsaot9j\"*/,\r\n OrgProfilePlaceHolder: OrgProfilePlaceHolder,\r\n WorkIcon: WorkIcon,\r\n CoverImgPlaceholder: CoverImgPlaceholder\r\n },\r\n};\r\n\r\nexport default constants;","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport store from 'store2';\r\n\r\nimport { ApplicationState } from '../index';\r\nimport { UserModel } from 'Models/UserModels';\r\nimport { ILightOrganization, IOrgProfileAdmins } from 'Models/OrganizationModels';\r\n\r\nexport interface OrgState {\r\n orgs: Array;\r\n orgAdmins:Array;\r\n firstTimeCalled: boolean;\r\n profileViewsCount:number;\r\n}\r\n\r\nconst initialState: OrgState = {\r\n orgs: [],\r\n orgAdmins:[],\r\n firstTimeCalled: false,\r\n profileViewsCount:0\r\n};\r\n\r\nconst orgSlice = createSlice({\r\n name: 'org',\r\n initialState: initialState,\r\n reducers: {\r\n addOrgs: (state, action: PayloadAction>) => {\r\n const orgState = action.payload;\r\n state.orgs = [...orgState]\r\n },\r\n addNewOrg: (state, action: PayloadAction) => {\r\n state.orgs.push(action.payload);\r\n const user = store.get(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER) as UserModel;\r\n user.orgs?.push(String(action.payload.id));\r\n store.set(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER, user);\r\n },\r\n addNewOrgAdmin: (state, action: PayloadAction>) => {\r\n const orgAdminState = action.payload;\r\n state.orgAdmins = [...orgAdminState]\r\n },\r\n deleteOrg: (state, action: PayloadAction<{ orgId: number }>) => {\r\n state.orgs = state.orgs.filter(item => item.id !== action.payload.orgId);\r\n const user = store.get(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER) as UserModel;\r\n user.orgs = user.orgs?.filter(item => item !== String(action.payload.orgId));\r\n store.set(process.env.REACT_APP_LOCAL_STORAGE_CURR__USER, user);\r\n },\r\n deleteOrgAdmin: (state, action: PayloadAction<{ id: number }>) => {\r\n state.orgAdmins = state.orgAdmins.filter(item => item.id !== action.payload.id );\r\n },\r\n updateOrg: (state, action: PayloadAction) => {\r\n const orgindex = state.orgs.findIndex(item => item.id == action.payload.id);\r\n state.orgs[orgindex].name = action.payload.name;\r\n state.orgs[orgindex].imageName = action.payload.imageName;\r\n },\r\n updateNotificationToRead: (state, action: PayloadAction<{ orgId: number }>) => {\r\n const orgindex = state.orgs.findIndex(item => item.id == action.payload.orgId);\r\n state.orgs[orgindex].notificationCount = 0;\r\n }\r\n ,\r\n updateBadgeOrgProfileViews: (state, action: PayloadAction) => {\r\n state.profileViewsCount = action.payload ;\r\n }\r\n }\r\n});\r\n\r\n\r\nexport const { addOrgs, addNewOrg,addNewOrgAdmin, deleteOrg ,deleteOrgAdmin, updateOrg, updateNotificationToRead,updateBadgeOrgProfileViews } = orgSlice.actions;\r\n\r\n\r\nexport const adminOrgs = (state: ApplicationState) => state.org?.orgs;\r\nexport const orgProfileAdmins = (state: ApplicationState) => state.org?.orgAdmins;\r\nexport const orgProfileViewsCount=(state : ApplicationState) => state.org?.profileViewsCount;\r\nexport default orgSlice.reducer;\r\n","import rootReducer from './reducers';\r\nimport { PostState } from './Features/PostSlice';\r\nimport { BookmarkState } from './Features/BookmarkSlice';\r\nimport { OrgState } from './Features/OrgsSlice';\r\n\r\nimport { ThunkAction, Action } from '@reduxjs/toolkit';\r\nimport { INetworkNotificationSliceState } from 'Models/Notifications';\r\nimport {UserModel} from 'Models/UserModels';\r\nimport { IConfirmDelete, IViewWork } from 'Models/CommonModels';\r\nimport { IChatModal } from 'Models/ChatsModel';\r\n\r\n// The top-level state object\r\nexport interface ApplicationState {\r\n post: PostState | undefined;\r\n user: UserModel | undefined;\r\n org: OrgState | undefined;\r\n bookmark: BookmarkState | undefined;\r\n notification?: INetworkNotificationSliceState;\r\n confirmDelete: IConfirmDelete | undefined;\r\n viewWork: IViewWork | undefined;\r\n chat: IChatModal | undefined;\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n ...rootReducer\r\n};\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\r\n}\r\nexport type AppThunk = ThunkAction<\r\n ReturnType,\r\n ApplicationState,\r\n unknown,\r\n Action\r\n>;","import postSlice from './Features/PostSlice';\r\nimport userSlice from './Features/UserSlice';\r\nimport bookmarkSlice from './Features/BookmarkSlice';\r\nimport notificationSlice from './Features/Notifications/NotificationSlice';\r\nimport orgslice from './Features/OrgsSlice';\r\nimport confirmSlice from './Features/ConfirmSlice';\r\nimport viewWorkSlice from './Features/ViewWorkSlice';\r\nimport chatSlice from './Features/ChatSlice';\r\n\r\nexport default {\r\n post: postSlice,\r\n user: userSlice,\r\n bookmark: bookmarkSlice,\r\n org: orgslice,\r\n notification: notificationSlice,\r\n confirmDelete : confirmSlice,\r\n viewWork: viewWorkSlice,\r\n chat: chatSlice\r\n}\r\n","import { connectRouter, routerMiddleware } from 'connected-react-router';\r\nimport { History } from 'history';\r\nimport { ApplicationState, reducers } from '../Store/index';\r\nimport { configureStore, getDefaultMiddleware, combineReducers } from '@reduxjs/toolkit';\r\n\r\n\r\nconst configStore = (history: History, initialState?: ApplicationState) => {\r\n\r\n const middleware = [...getDefaultMiddleware({ serializableCheck: false, immutableCheck: false }), routerMiddleware(history)]\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history)\r\n });\r\n\r\n const store = configureStore({\r\n reducer: rootReducer,\r\n middleware,\r\n preloadedState: initialState,\r\n devTools: process.env.NODE_ENV === 'development',\r\n });\r\n\r\n\r\n if (process.env.NODE_ENV === 'development' && module.hot) {\r\n module.hot.accept('./reducers', () => {\r\n const newRootReducer = require('./reducers').default\r\n store.replaceReducer(newRootReducer)\r\n })\r\n }\r\n\r\n return store;\r\n}\r\n\r\nexport default configStore;\r\n","import React, { FC, useEffect, useState } from 'react';\r\nimport { Report, models, Embed, service } from 'powerbi-client';\r\nimport { PowerBIEmbed } from 'powerbi-client-react';\r\nimport Skeleton from '@material-ui/lab/Skeleton';\r\n\r\n\r\nimport { IEmbedReportPagesService, IEmbedReportService } from 'Models/DashboardModels';\r\nimport Select from 'Components/Shared/UI/Select/Select';\r\nimport Styles from './EmbedReport.module.scss';\r\nimport T from 'Utils/localizerHook';\r\nimport { Icon } from 'Utils/Icon';\r\n\r\ninterface IEmbedProps {\r\n reportId: string,\r\n settings: models.IReportEmbedConfiguration,\r\n defaultPageId?: string,\r\n pages: Array,\r\n getEmbedReport: (report: Report) => void,\r\n getReportApiEndPoint: (reportId: string) => Promise\r\n}\r\n\r\n/**\r\n * Power-bi Embed Report component\r\n * @argument {IEmbedProps} IEmbedProps\r\n * @returns Embed Power-bi component\r\n */\r\nconst EmbedReport: FC = ({ reportId, settings, pages, defaultPageId, getEmbedReport, getReportApiEndPoint }) => {\r\n\r\n // Report Config object\r\n const ReportConfigObj = {\r\n type: 'report',\r\n tokenType: models.TokenType.Embed,\r\n settings: settings.settings\r\n }\r\n\r\n const resources = {\r\n DashboardsSelectReportSelectLabel: T(\"Dashboards.SelectReport.Select.Label\"),\r\n }\r\n\r\n // PowerBI Report object (to be received via callback) (state)\r\n const [report, setReport] = useState();\r\n // PowerBI Report has renderd (state)\r\n const [reportHasRenderd, setReportHasRenderd] = useState(false);\r\n // PowerBI Report Current page Id\r\n const [pageId, setPageId] = React.useState(String(defaultPageId));\r\n // Schedule Token Timer to cancle the (RefreashToken) process in unmount\r\n const [scheduleTokenTimerId, setScheduleTokenTimerId] = useState();\r\n // PowerBI Report Config (state)\r\n const [reportConfig, setReportConfig] = useState(ReportConfigObj);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (scheduleTokenTimerId) {\r\n console.log(\"ClearTimer\", scheduleTokenTimerId);\r\n clearTimeout(scheduleTokenTimerId);\r\n }\r\n }\r\n }, [scheduleTokenTimerId]);\r\n\r\n\r\n // Map of event handlers to be applied to the embedding report\r\n const eventHandlersMap = new Map([\r\n ['loaded', function () {\r\n console.log('Report has loaded');\r\n }],\r\n ['rendered', async function () {\r\n console.log('Report has rendered');\r\n setReportHasRenderd(true);\r\n }],\r\n ['error', async function (event?: service.ICustomEvent) {\r\n if (event) {\r\n //console.error(event.detail);\r\n const error = event.detail;\r\n\r\n // If the error level isn't Fatal, log the error and continue.\r\n if (error.level !== models.TraceType.Fatal) {\r\n console.error(error);\r\n return;\r\n }\r\n\r\n // If the Fatal error is TokenExpired, refresh the token.\r\n if (error.message === models.CommonErrorCodes.TokenExpired) {\r\n if(report) {\r\n // Implement your own function here.\r\n //const token = await generateEmbededToken(reportId);\r\n // Set the new access token.\r\n //report.setAccessToken(token.token);\r\n console.error(error.message);\r\n }\r\n } else {\r\n // If the error isn't TokenExpired, show the custom\r\n // dialog with detailed error message in the iframe.\r\n // Implement your own function here.\r\n //showError(error.detailedMessage);\r\n console.error(error.detailedMessage)\r\n }\r\n }\r\n }]\r\n ]);\r\n\r\n const inputPageChangeHandler = async (PageId: string) => {\r\n setPageId(PageId);\r\n await report?.setPage(PageId);\r\n }\r\n\r\n const resetPageAfterReloadReport = async (tryCounter:number) => {\r\n let _tryCounter : number = tryCounter;\r\n try {\r\n _tryCounter--; \r\n if(_tryCounter <= 0) return;\r\n await report?.setPage(pageId);\r\n }\r\n catch (err) {\r\n setTimeout(async () => {\r\n resetPageAfterReloadReport(_tryCounter);\r\n }, 10);\r\n }\r\n }\r\n\r\n // Fetch report's config (eg. embedUrl and AccessToken) for embedding\r\n const SignIn = async (): Promise => {\r\n\r\n // Generate report EmbedToken\r\n const embedToken = await generateEmbededToken(reportId);\r\n console.log(embedToken.expiry);\r\n\r\n // Set the fetched embedUrl and embedToken in the report config\r\n setReportConfig({\r\n ...reportConfig,\r\n embedUrl: embedToken.embeddingUrl,\r\n accessToken: embedToken.token,\r\n });\r\n\r\n scheduleGenerateNewEmbedToken(embedToken.secondsToExpire);\r\n\r\n return embedToken;\r\n };\r\n\r\n\r\n const scheduleGenerateNewEmbedToken = (secondsToExpire: number) => {\r\n // Set an setTimeout to get a new access token and update the state.\r\n const scheduleGenerateNewEmbedTokenTimerId = setTimeout(async () => {\r\n const token = await generateEmbededToken(reportId);\r\n console.log(\"New token generated\");\r\n\r\n if (token) {\r\n // Set the new fetched embedToken in the report config\r\n //await report?.setAccessToken(token.token);\r\n setReportConfig({\r\n ...reportConfig,\r\n accessToken: token.token,\r\n embedUrl: token.embeddingUrl\r\n });\r\n console.log(token.token, token.secondsToExpire);\r\n scheduleGenerateNewEmbedToken(token.secondsToExpire);\r\n }\r\n\r\n }, (secondsToExpire * 1000) - (10000));\r\n\r\n console.log(scheduleGenerateNewEmbedTokenTimerId);\r\n setScheduleTokenTimerId(scheduleGenerateNewEmbedTokenTimerId);\r\n }\r\n\r\n\r\n\r\n const generateEmbededToken = async (reportId: string): Promise => {\r\n return await getReportApiEndPoint(reportId);\r\n }\r\n\r\n useEffect(() => {\r\n SignIn();\r\n }, []);\r\n\r\n return (\r\n
\r\n {Boolean(pages.length > 1) ? reportHasRenderd ? {\r\n return {\r\n value: item.powerBiPageId,\r\n label: item.displayNameEn\r\n }\r\n })\r\n ]}\r\n onChangeHandler={(event: React.ChangeEvent) => { inputPageChangeHandler(event.target.value); }}\r\n /> : : null}\r\n\r\n
\r\n \r\n \r\n \r\n {\r\n setReport(embedObject as Report);\r\n // report.on will add an event listener (\"pageChanged Event\").\r\n (embedObject as Report).on(\"pageChanged\", function (event) {\r\n let page: models.IPage = Object(event.detail).newPage;\r\n setPageId(page.name);\r\n });\r\n getEmbedReport(embedObject as Report);\r\n }}\r\n />\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default React.memo(EmbedReport, (prevProps, nextProps) => prevProps === nextProps);\r\n","import { BaseService } from \"./Core/BaseService\";\r\nimport { IEmbedReportPagesService, IEmbedReportService } from \"../Models/DashboardModels\";\r\n\r\nexport default class DashboardsService extends BaseService {\r\n \r\n public async getReportPages(groupName:string): Promise> {\r\n return this.ProtectedApi.get(\"Reports/GetReportPagesByGroupName\", { params:{ \r\n groupName: groupName\r\n } })\r\n .then((response) => {\r\n return response.data;\r\n }).catch((error) => {\r\n throw error;\r\n });\r\n };\r\n\r\n public async getUserEmbedReport(reportId:string): Promise {\r\n return this.ProtectedApi.get(\"Reports/GetUserEmbeddingReportInfo\", { params:{ \r\n reportId: reportId\r\n } })\r\n .then((response) => {\r\n return response.data;\r\n }).catch((error) => {\r\n throw error;\r\n });\r\n };\r\n\r\n public async getJoipTop10ISAsEmbedReport(reportId:string): Promise {\r\n return this.ProtectedApi.get(\"Reports/GetAnonymousEmbeddingReportInfo\", { params:{ \r\n reportId: reportId\r\n } })\r\n .then((response) => {\r\n return response.data;\r\n }).catch((error) => {\r\n throw error;\r\n });\r\n };\r\n}","import React from 'react';\r\n\r\nimport TopBorderedContainer from 'Shared/TopBorderedContainer/TopBorderedContainer';\r\nimport { resercherWorksReport } from 'Config/RoutesConstants';\r\nimport { ITabItems } from 'Models/NetworkModels';\r\nimport Tabs from 'Researcher/Shared/Tabs/Tabs';\r\nimport T from \"Utils/localizerHook\";\r\n\r\ninterface IProps {\r\n children: React.ReactNode\r\n}\r\n\r\nconst MyReportsContainer: React.FC = ({ children }) => {\r\n\r\n const resources = {\r\n MyWorksReportTabName: T(\"SideMenu.WorksReport.Link\"),\r\n };\r\n\r\n const data: ITabItems = {\r\n items: [\r\n { name: resources.MyWorksReportTabName, routes: [resercherWorksReport.route] },\r\n ]\r\n }\r\n return (\r\n \r\n \r\n
\r\n {children}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default React.memo(MyReportsContainer);\r\n","import React from 'react';\r\nimport { useQuery } from 'react-query';\r\nimport { Report } from 'powerbi-client';\r\n\r\nimport EmbedReport from 'Components/Shared/PowerBI/EmbedReport/EmbedReport';\r\nimport DashboardsService from 'Services/DashboardsService';\r\nimport MyReportsContainer from './MyReportsContainer';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\nconst MyWorksReport = () => {\r\n const [report, setReport] = React.useState();\r\n const reportId = Settings.dashboardsUserMyWorksReport;\r\n const _DashboardsService = new DashboardsService();\r\n\r\n const getReport = async (report: Report) => {\r\n setReport(report);\r\n }\r\n\r\n const fetcReportPages = async () => { return await _DashboardsService.getReportPages(\"UserWorksReport\"); }\r\n const { data } = useQuery([\"Reports/GetReportPagesByGroupName?groupName=\", \"UserWorksReport\"], fetcReportPages, {\r\n cacheTime: Settings.cacheTimeProfile\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(MyWorksReport);","import React from 'react';\r\n\r\nimport TopBorderedContainer from 'Shared/TopBorderedContainer/TopBorderedContainer';\r\nimport { resercherTop10ISAsReport } from 'Config/RoutesConstants';\r\nimport { ITabItems } from 'Models/NetworkModels';\r\nimport Tabs from 'Researcher/Shared/Tabs/Tabs';\r\nimport T from \"Utils/localizerHook\";\r\n\r\ninterface IProps {\r\n children: React.ReactNode\r\n}\r\n\r\nconst JoipReportsContainer: React.FC = ({ children }) => {\r\n\r\n const resources = {\r\n Top10ISAsReportTabName: T(\"SideMenu.Top10ISAsReport.Link\"),\r\n };\r\n\r\n const data: ITabItems = {\r\n items: [\r\n { name: resources.Top10ISAsReportTabName, routes: [resercherTop10ISAsReport.route] },\r\n ]\r\n }\r\n return (\r\n \r\n \r\n
\r\n {children}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default React.memo(JoipReportsContainer);\r\n","import React from 'react';\r\nimport { Report } from 'powerbi-client';\r\n\r\nimport EmbedReport from 'Components/Shared/PowerBI/EmbedReport/EmbedReport';\r\nimport DashboardsService from 'Services/DashboardsService';\r\nimport JoipReportsContainer from './JoipReportsContainer';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\nconst Top10ISAsReport = () => {\r\n const [report, setReport] = React.useState();\r\n const reportId = Settings.dashboardsJoipTop10ISAsReport;\r\n const _DashboardsService = new DashboardsService();\r\n\r\n const getReport = async (report: Report) => {\r\n setReport(report);\r\n }\r\n\r\n // will use for maltibale pages\r\n // const fetcReportPages = async () => { return await _DashboardsService.getReportPages(\"JoipReport\"); }\r\n // const { data } = useQuery([\"Reports/GetReportPagesByGroupName?groupName=\", \"JoipReport\"], fetcReportPages, {\r\n // cacheTime: Settings.cacheTimeProfile\r\n // });\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(Top10ISAsReport);","import { BaseService } from \"./Core/BaseService\";\r\nimport { IEmbedReportService } from \"../Models/DashboardModels\";\r\n\r\nexport default class OrgDashboardsService extends BaseService {\r\n \r\n public async getMyOrgEmbedReport(orgId: number, reportId: string): Promise {\r\n const url = `Reports/org/${orgId}/GetOrgEmbeddingReportInfo`\r\n return this.ProtectedApi.get(url, { params: { reportId: reportId } })\r\n .then(response => {\r\n return response.data;\r\n }).catch(error => {\r\n this.throwException(error);\r\n throw new Error(error);\r\n })\r\n }\r\n}","import React from 'react';\r\nimport { useParams, useHistory } from 'react-router';\r\nimport pupa from 'pupa';\r\n\r\nimport TopBorderedContainer from 'Shared/TopBorderedContainer/TopBorderedContainer';\r\nimport { organizationAffiliationsReport, organizationIdentityVerification, organizationNetworksReport, organizationWorksReport } from 'Config/RoutesConstants';\r\nimport { ITabItems } from 'Models/NetworkModels';\r\nimport Tabs from 'Researcher/Shared/Tabs/Tabs';\r\nimport T from \"Utils/localizerHook\";\r\nimport { useSelector } from 'react-redux';\r\nimport { adminOrgs } from 'Store/Features/OrgsSlice';\r\nimport NoDataPlaceholder from 'Shared/UI/NoData/NoData';\r\n\r\n\r\ninterface IProps {\r\n children: React.ReactNode\r\n}\r\n\r\nconst MyOrgReportsContainer: React.FC = ({ children }) => {\r\n const history = useHistory();\r\n const { join } = useParams();\r\n const orgsList = useSelector(adminOrgs);\r\n const isVerifiedOrg = orgsList?.find(item => item.join === join)?.isIdentityVerified;\r\n\r\n\r\n const resources = {\r\n MyOrgWorksReportTabName: T(\"SideMenu.Org.WorksReport.Link\"),\r\n OrgAffiliationsReportTabName: T(\"SideMenu.Org.AffiliationsReport.Link\"),\r\n OrgNetworksReport: T(\"SideMenu.Org.NetworksReport.Link\"),\r\n OrgNotVerifiedNoDataPlaceholderMsg: T(\"Dashboard.OrgNotVerified.nodataplaceholder.msg\"),\r\n OrgNotVerifiedNoDataPlaceholderActionButtonLabel: T(\"Dashboard.OrgNotVerified.nodataplaceholder.ActionButton.Label\")\r\n };\r\n\r\n const data: ITabItems = {\r\n items: [\r\n { name: resources.OrgAffiliationsReportTabName, routes: [pupa(organizationAffiliationsReport.route, [join])] },\r\n { name: resources.MyOrgWorksReportTabName, routes: [pupa(organizationWorksReport.route, [join])] },\r\n { name: resources.OrgNetworksReport, routes: [pupa(organizationNetworksReport.route, [join])] },\r\n ]\r\n }\r\n return (\r\n \r\n {\r\n isVerifiedOrg ?\r\n <>\r\n \r\n
\r\n {children}\r\n
\r\n \r\n :\r\n {\r\n history.push(pupa(organizationIdentityVerification.route, [join, \"\"]))\r\n }}\r\n />\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default React.memo(MyOrgReportsContainer);\r\n","import React from 'react';\r\nimport { useParams } from 'react-router';\r\nimport { Report } from 'powerbi-client';\r\nimport { useQuery } from 'react-query';\r\n\r\nimport EmbedReport from 'Components/Shared/PowerBI/EmbedReport/EmbedReport';\r\nimport OrgDashboardsService from 'Services/OrgDashboardsService';\r\nimport DashboardsService from 'Services/DashboardsService';\r\nimport MyOrgReportsContainer from './MyOrgReportsContainer';\r\nimport { getOrganizationId } from 'Utils/Utilites';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\nconst MyOrgWorksReport = () => {\r\n const [report, setReport] = React.useState();\r\n const { join } = useParams();\r\n const orgId = getOrganizationId(join);\r\n const reportId = Settings.dashboardsOrgMyWorksReport;\r\n const _OrgDashboardsService = new OrgDashboardsService();\r\n const _DashboardsService = new DashboardsService();\r\n\r\n const getReport = async (report: Report) => {\r\n setReport(report);\r\n }\r\n\r\n const fetchWorks = async () => { return await _DashboardsService.getReportPages(\"OrgWorksReport\"); }\r\n const { data } = useQuery([\"Reports/GetReportPagesByGroupName?groupName=\", \"OrgWorksReport\"], fetchWorks, {\r\n cacheTime: Settings.cacheTimeProfile\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(MyOrgWorksReport);","import React from 'react';\r\nimport { useParams } from 'react-router';\r\nimport { Report } from 'powerbi-client';\r\nimport { useQuery } from 'react-query';\r\n\r\nimport EmbedReport from 'Components/Shared/PowerBI/EmbedReport/EmbedReport';\r\nimport OrgDashboardsService from 'Services/OrgDashboardsService';\r\nimport DashboardsService from 'Services/DashboardsService';\r\nimport MyOrgReportsContainer from './MyOrgReportsContainer';\r\nimport { getOrganizationId } from 'Utils/Utilites';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\nconst OrgAffiliationsReport = () => {\r\n const [report, setReport] = React.useState();\r\n const { join } = useParams();\r\n const orgId = getOrganizationId(join);\r\n const reportId = Settings.dashboardsOrgMyWorksReport;\r\n const _OrgDashboardsService = new OrgDashboardsService();\r\n const _DashboardsService = new DashboardsService();\r\n\r\n const getReport = async (report: Report) => {\r\n setReport(report);\r\n }\r\n\r\n const fetcReportPages = async () => { return await _DashboardsService.getReportPages(\"OrgAffiliationsReport\"); }\r\n const { data } = useQuery([\"Reports/GetReportPagesByGroupName?groupName=\", \"OrgAffiliationsReport\"], fetcReportPages, {\r\n cacheTime: Settings.cacheTimeProfile\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(OrgAffiliationsReport);","import React from 'react';\r\nimport { useParams } from 'react-router';\r\nimport { Report } from 'powerbi-client';\r\nimport { useQuery } from 'react-query';\r\n\r\nimport EmbedReport from 'Components/Shared/PowerBI/EmbedReport/EmbedReport';\r\nimport OrgDashboardsService from 'Services/OrgDashboardsService';\r\nimport DashboardsService from 'Services/DashboardsService';\r\nimport MyOrgReportsContainer from './MyOrgReportsContainer';\r\nimport { getOrganizationId } from 'Utils/Utilites';\r\nimport { Settings } from 'Utils/Settings';\r\n\r\nconst MyOrgNetworksReport = () => {\r\n const [report, setReport] = React.useState();\r\n const { join } = useParams();\r\n const orgId = getOrganizationId(join);\r\n const reportId = Settings.dashboardsOrgMyWorksReport;\r\n const _OrgDashboardsService = new OrgDashboardsService();\r\n const _DashboardsService = new DashboardsService();\r\n\r\n const getReport = async (report: Report) => {\r\n setReport(report);\r\n }\r\n\r\n const fetcReportPages = async () => { return await _DashboardsService.getReportPages(\"OrgNetworksReport\"); }\r\n const { data } = useQuery([\"Reports/GetReportPagesByGroupName?groupName=\", \"OrgNetworksReport\"], fetcReportPages, {\r\n cacheTime: Settings.cacheTimeProfile\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(MyOrgNetworksReport);","import * as React from 'react';\r\nimport parse from 'react-html-parser';\r\nimport { Link } from 'react-router-dom';\r\nimport store from 'store2';\r\n\r\nimport PublicSubPagesLayout from 'Layouts/PublicSubPagesLayout';\r\nimport T from 'Utils/localizerHook';\r\nimport errorImg from 'Assets/Images/Illustrations/Start-Illustration.png';\r\nimport Auth from 'Utils/Auth';\r\nimport { home } from 'Config/RoutesConstants';\r\n\r\n\r\nconst UserSuspended: React.FC = () => {\r\n\r\n React.useEffect(() => { store.remove(\"isSuspended\") }, []);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

{T(\"Account.Suspended.Title\")}

\r\n

{T(\"Account.Suspended.Headline\")}

\r\n

{parse(T(\"Account.Suspended.Description\"))}

\r\n
\r\n \r\n {T(\"Account.Suspended.Home\")}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default UserSuspended;\r\n\r\n\r\n","import * as React from 'react';\r\nimport { RouteConfig } from \"react-router-config\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { makeAuthenticator, Callback } from 'react-oidc';\r\nimport { useDispatch } from \"react-redux\";\r\nimport loadable from '@loadable/component';\r\nimport store from 'store2';\r\n\r\nimport routerConfig from './RoutesConstants';\r\nimport userManager from 'Utils/userManager';\r\nimport auth from 'Utils/Auth';\r\nimport MyWorksReport from 'Components/ResearchersPages/Pages/Dashboards/MyReports/MyWorksReport';\r\nimport Top10ISAsReport from 'Components/ResearchersPages/Pages/Dashboards/JoipReports/Top10ISAsReport';\r\nimport MyOrgWorksReport from 'Components/OrganizationsPages/Pages/Dashboards/MyOrgReports/MyOrgWorksReport';\r\nimport OrgAffiliationsReport from 'Components/OrganizationsPages/Pages/Dashboards/MyOrgReports/OrgAffiliationsReport';\r\nimport MyOrgNetworksReport from 'Components/OrganizationsPages/Pages/Dashboards/MyOrgReports/MyOrgNetworksReport';\r\nimport UserSuspended from 'Components/PublicPages/UserSuspended/UserSuspended';\r\n\r\n//Layout\r\nconst BaseLayout = loadable(() => import('Layouts/BaseLayout'));\r\nconst BasePublicPagesLayout = loadable(() => import('Layouts/PublicBaseLayout'));\r\nconst ResearcherTwoColumnsLayout = loadable(() => import('Layouts/ResearcherTwoColumnsLayout'));\r\nconst ResearcherThreeColumnsLayout = loadable(() => import('Layouts/ResearcherThreeColumnsLayout'));\r\nconst OrganizationTwoColumnsLayout = loadable(() => import('Layouts/OrganizationTwoColumnsLayout'));\r\n\r\n//Public & Common Routs\r\nconst Home = loadable(() => import('Public/Home/Home'));\r\nconst Messages = loadable(() => import('Shared/Messages/Messages'));\r\nconst NotFound = loadable(() => import(\"Public/NotFound/NotFound\"));\r\nconst AccessDenied = loadable(() => import(\"Public/AccessDenied/AccessDenied\"));\r\nconst Policy = loadable(() => import(\"Public/Policy/Policy\"));\r\nconst Help = loadable(() => import('Components/PublicPages/Help/Help'));\r\nconst ErrorMessage = loadable(() => import(\"Public/ErrorMessage/ErrorMessage\"));\r\nconst About = loadable(() => import('Public/About/About'));\r\nconst StaticContent = loadable(() => import('Public/StaticContent/StaticContent'));\r\nconst ContactUs = loadable(() => import('Public/ContactUs/ContactUs'));\r\nconst JoipNews = loadable(() => import('Public/News/News'));\r\nconst JoipNewsDetail = loadable(() => import('Public/News/NewsDetail'));\r\nconst JoipEvents = loadable(() => import('Public/Events/Events'));\r\nconst EmailVerify = loadable(() => import('Public/EmailVerify/EmailVerify'));\r\nconst OrgEmailVerify = loadable(() => import('Public/EmailVerify/OrgEmailVerify'));\r\nconst ResearcherSearch = loadable(() => import('Public/Search/Search'));\r\nconst FAQ = loadable(() => import('Public/FAQ/FAQ'));\r\nconst PublicSearch = loadable(() => import('Public/Search/PublicSearch'));\r\nconst Refresh = loadable(() => import('Public/Refresh/Refresh'));\r\n\r\n\r\n//Researchers Routs\r\nconst ResearchersHome = loadable(() => import('Researcher/Pages/Home/Home'));\r\nconst ResearcherProfile = loadable(() => import('Researcher/Pages/Profile/Profile'));\r\nconst ResearcherContact = loadable(() => import('Researcher/Pages/Contact/Contact'));\r\nconst ResearcherOverView = loadable(() => import('Researcher/Pages/OverView/OverView'));\r\nconst ResearcherSocialLinks = loadable(() => import('Researcher/Pages/SocialLinks/SocialLinks'));\r\nconst ResearcherInnovationInterests = loadable(() => import('Researcher/Pages/InnovationInterests/InnovationInterests'));\r\nconst ResearcherOutputAndWorksGuide = loadable(() => import('Researcher/Pages/OutputAndWorks/OutputAndWorksGuide'));\r\nconst ResearcherAddWork = loadable(() => import('Researcher/Pages/AddWork/Work'));\r\nconst MyIDs = loadable(() => import('Researcher/Pages/ProfileIDs/MyIDs'));\r\nconst IDsGuides = loadable(() => import('Researcher/Pages/IDsGuides/IDsGuides'));\r\nconst ResercherSentRequests = loadable(() => import('Researcher/Pages/Network/Requests/SentRequests'));\r\nconst ResercherRecievedRequests = loadable(() => import('Researcher/Pages/Network/Requests/RecievedRequests'));\r\nconst ResearcherNetwork = loadable(() => import('Researcher/Pages/Network/MyNetwork/MyNetwork'));\r\nconst Following = loadable(() => import('Researcher/Pages/Network/Follows/Following'));\r\nconst OrgFollowing = loadable(() => import('Researcher/Pages/Network/Follows/OrgFollowing'));\r\nconst Followers = loadable(() => import('Researcher/Pages/Network/Follows/Followers'));\r\nconst EasyMatch = loadable(() => import('Researcher/Pages/Network/ProfileMatch/EasyMatch'));\r\nconst ResearcherDistinctions = loadable(() => import('Researcher/Pages/Distinction/Distinction'));\r\nconst ResearcherEducations = loadable(() => import('Researcher/Pages/Education/Education'));\r\nconst ResearcherEmployments = loadable(() => import('Researcher/Pages/Employment/Employment'));\r\nconst ResearcherInvitedPositions = loadable(() => import('Researcher/Pages/InvitedPosition/InvitedPosition'));\r\nconst ResearcherMemberships = loadable(() => import('Researcher/Pages/Membership/Membership'));\r\nconst ResearcherQualifications = loadable(() => import('Researcher/Pages/Qualification/Qualification'));\r\nconst ResearcherServices = loadable(() => import('Researcher/Pages/Service/Services'));\r\nconst ResearcherIdentityVerification = loadable(() => import('Researcher/Pages/IdentityVerification/IdentityVerification'));\r\nconst ResearcherContentVerification = loadable(() => import('Researcher/Pages/ContentVerification/ContentVerification'));\r\nconst ContentVerificationRequestDetails = loadable(() => import('Researcher/Pages/ContentVerification/ContentVerificationRequestDetails'));\r\nconst ResearcherSentReferralRequest = loadable(() => import('Researcher/Pages/Referral/Request/SentReferralRequest'));\r\nconst ResearcherReceivedReferralRequest = loadable(() => import('Researcher/Pages/Referral/Request/ReceivedReferralRequest'));\r\nconst ResearcherReferral = loadable(() => import('Researcher/Pages/Referral/Referral'));\r\nconst CurriculumVitae = loadable(() => import('Components/ResearchersPages/Pages/CurriculumVitae/CurriculumVitae'));\r\nconst VerificationGuides = loadable(() => import('Components/ResearchersPages/Pages/VerificationGuides/VerificationGuides'));\r\nconst ResearcherSentWorkFileShareRequest = loadable(() => import('Researcher/Pages/WorkFileShare/Request/SentWorkFileShareRequest'));\r\nconst ResearcherReceivedWorkFileShareRequest = loadable(() => import('Researcher/Pages/WorkFileShare/Request/ReceivedWorkFileShareRequest'));\r\nconst ResearcherWorkFileShare = loadable(() => import('Researcher/Pages/WorkFileShare/WorkFileShare'));\r\nconst ProfileViews = loadable(() => import('Researcher/Pages/ProfileViews/ProfileViews'));\r\nconst ContentVerificationGuides = loadable(() => import('Researcher/Pages/ContentVerificationGuide/ContentVerificationGuide'));\r\nconst Post = loadable(() => import('Shared/Pages/Post/Post'));\r\nconst MyActivityLog = loadable(() => import('Researcher/Pages/ActivityLog/ActivityLog'));\r\nconst RingGoldOrgSearch = loadable(() => import('Researcher/Pages/RingGoldOrgSearch/RingGoldOrgSearch'));\r\nconst ReportGuides =loadable(() => import('Components/ResearchersPages/Pages/Dashboards/ReportGuides'));\r\nconst ChairmanConferences =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Chairman/Conferences'));\r\nconst ChairmanConferencesSubmissions =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Chairman/Submissions/ConferencesSubmissions'));\r\nconst ChairmanConferenceSubmissionDetails =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Chairman/Submissions/ConferenceSubmissionDetails'));\r\nconst ChairmanReviewerQuestionsManagement =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Chairman/Questions/ReviewerQuestionsManagement'));\r\nconst ChairmanConferenceQuestionsManagement =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Chairman/Questions/ConferenceQuestionsManagement'));\r\nconst ChairmanConferenceDocumentsManagement =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Chairman/Documents/ConferenceDocumentsManagement'));\r\nconst ReviewerConferencesSubmissions =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Reviewer/ConferencesSubmissions'));\r\nconst ReviewerConferencesSubmissionDetails =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Reviewer/ReviewerSubmissionDetails'));\r\nconst ResearcherConferencesSubmissions =loadable(() => import('Components/ResearchersPages/Pages/Conferences/Submitter/ConferencesSubmissions'));\r\n\r\n//Organization Routes\r\nconst OrganizationProfile = loadable(() => import('Organization/Pages/Profile/Profile'));\r\nconst OrganizationOverview = loadable(() => import('Organization/Pages/OverView/OverView'));\r\nconst OrganizationContact = loadable(() => import('Organization/Pages/Contact/Contact'));\r\nconst OrganizationSocialLinks = loadable(() => import('Organization/Pages/SocialLinks/SocialLinks'));\r\nconst OrganizationWorks = loadable(() => import('Organization/Pages/Works/Work'));\r\nconst OrgIDs = loadable(() => import('Organization/Pages/OrgProfileIDs/OrgIDs'));\r\nconst OrgIDsGuides = loadable(() => import('Organization/Pages/OrgIDsGuides/OrgIDsGuides'));\r\nconst OrgOutputAndWorks = loadable(() => import('Organization/Pages/OrgOutputAndWorks/OrgOutputAndWorks'));\r\nconst OrgInnovationInterests = loadable(() => import('Organization/Pages/OrgInnovationInterests/OrgInnovationInterests'));\r\nconst OrgFollowers = loadable(() => import('Organization/Pages/OrgFollowers/OrgFollowers'));\r\nconst OrgNotifications = loadable(() => import('Organization/Pages/Notification/Notification'));\r\nconst Customers = loadable(() => import('Organization/Pages/Customers/Customers'));\r\nconst ProductsAndServices = loadable(() => import('Organization/Pages/ProductsAndServices/ProductsAndServices'));\r\nconst OrgVerificationGuides = loadable(() => import('Organization/Pages/OrgVerificationGuides/OrgVerificationGuides'));\r\nconst OrganizationIdentityVerification = loadable(() => import('Organization/Pages/IdentityVerification/IdentityVerification'));\r\nconst OrganizationContentVerificationRequests = loadable(() => import('Organization/Pages/ContentVerification/ContentVerificationRequests'));\r\nconst OrganizationContentVerificationRequest = loadable(() => import('Organization/Pages/ContentVerification/ContentVerificationRequest'));\r\nconst OrgReceivedWorkFileShareRequest = loadable(() => import('Organization/Pages/WorkFileShare/Request/ReceivedWorkFileShareRequest'));\r\nconst OrganizationViews = loadable(() => import('Organization/Pages/OrganizationViews/OrganizationViews'));\r\nconst OrgContentVerificationGuide = loadable(() => import('Organization/Pages/OrgContentVerificationGuide/OrgContentVerificationGuide'));\r\nconst OrgReportGuides = loadable(() => import('Components/OrganizationsPages/Pages/Dashboards/OrgReportGuides'));\r\nconst OrgProfileAdmins = loadable(() => import('Components/OrganizationsPages/Pages/OrgProfileAdmins/OrgProfileAdmins'));\r\nconst OrgConferences = loadable(() => import('Organization/Pages/Conferences/Conferences'));\r\nconst OrgConferenceSubmissions = loadable(() => import('Organization/Pages/Conferences/Submissions/Submissions'));\r\nconst OrgConferenceQuestionsManagement =loadable(() => import('Organization/Pages/Conferences/Questions/ConferenceQuestionsManagement'));\r\nconst OrgReviewerQuestionsManagement =loadable(() => import('Organization/Pages/Conferences/Questions/ReviewerQuestionsManagement'));\r\nconst OrgConferenceDocumentsManagement =loadable(() => import('Organization/Pages/Conferences/Documents/ConferenceDocumentsManagement'));\r\n\r\nconst AuthSilentCallBack = auth.SilentCallback;\r\nconst SuspendUser = auth.SuspendUser;\r\n\r\nconst AppWithAuth = makeAuthenticator({\r\n userManager: userManager,\r\n signinArgs: {\r\n state: {}\r\n }\r\n})(BaseLayout);\r\n\r\n\r\nconst routes = (): RouteConfig[] => {\r\n const dispatch = useDispatch();\r\n\r\n return [\r\n {\r\n name: 'Base Layout',\r\n path: [\r\n routerConfig.researcherProfile.patterns[1]\r\n , routerConfig.researcherProfile.patterns[0]\r\n , routerConfig.resercherSentRequests.pattern\r\n , routerConfig.resercherRecievedRequests.pattern\r\n , routerConfig.researcherOverview.pattern\r\n , routerConfig.researcherSocialLinks.pattern\r\n , routerConfig.researcherInnovationInterests.pattern\r\n , routerConfig.researcherIdsGuides.pattern\r\n , routerConfig.researcherMyIds.pattern\r\n , routerConfig.researcherContact.pattern\r\n , routerConfig.researcherAddWork.pattern\r\n , routerConfig.researcherOutputAndWorksGuide.pattern\r\n , routerConfig.researcherNetwork.pattern\r\n , routerConfig.resercherFollowing.pattern\r\n , routerConfig.resercherOrgFollowing.pattern\r\n , routerConfig.resercherFollowers.pattern\r\n , routerConfig.researcherEasyMatch.pattern\r\n , routerConfig.researcher.pattern\r\n , routerConfig.researcherVerificationGuides.pattern\r\n // , routerConfig.researcherReportGuides.pattern\r\n , routerConfig.post.patterns[0]\r\n , routerConfig.organizationProfile.patterns[1]\r\n , routerConfig.organizationProfile.patterns[0]\r\n , routerConfig.organizationContact.pattern\r\n , routerConfig.organizationOverview.pattern\r\n , routerConfig.organizationSocialLinks.pattern\r\n , routerConfig.organizationWorks.pattern\r\n , routerConfig.organizationIds.pattern\r\n , routerConfig.organizationIdsGuides.pattern\r\n , routerConfig.organizationOutputAndWorksGuide.pattern\r\n , routerConfig.organizationInnovationInterests.pattern\r\n , routerConfig.organizationFollowers.pattern\r\n , routerConfig.organizationNotifications.pattern\r\n , routerConfig.organizationProductsServices.pattern\r\n , routerConfig.organizationCustomers.pattern\r\n , routerConfig.organizationVerificationGuides.pattern\r\n , routerConfig.organizationIdentityVerification.pattern\r\n , routerConfig.organizationContentVerification.pattern\r\n , routerConfig.organizationContentVerificationRequest.pattern\r\n , routerConfig.organizationReceivedWorkFileShareRequests.pattern\r\n , routerConfig.organizationViews.pattern\r\n , routerConfig.organizationContentVerificationGuides.pattern\r\n // , routerConfig.organizationReportGuides.pattern\r\n , routerConfig.organizationWorksReport.pattern\r\n // , routerConfig.organizationAffiliationsReport.pattern\r\n , routerConfig.organizationNetworksReport.pattern\r\n , routerConfig.researcherSearch.pattern\r\n , routerConfig.researcherService.pattern\r\n , routerConfig.researcherMembership.pattern\r\n , routerConfig.researcherQualification.pattern\r\n , routerConfig.researcherInvitedPosition.pattern\r\n , routerConfig.researcherEmployment.pattern\r\n , routerConfig.researcherEducation.pattern\r\n , routerConfig.researcherDistinction.pattern\r\n , routerConfig.researcherIdentityVerification.pattern\r\n , routerConfig.researcherContentVerification.pattern\r\n , routerConfig.researcherContentVerificationRequest.pattern\r\n , routerConfig.resercherSentReferralRequests.pattern\r\n , routerConfig.resercherReceivedReferralRequests.pattern\r\n , routerConfig.researcherReferrals.pattern\r\n , routerConfig.researcherCurriculumVitae.pattern\r\n , routerConfig.researcherSentWorkFileShareRequests.pattern\r\n , routerConfig.researcherReceivedWorkFileShareRequests.pattern\r\n , routerConfig.researcherWorkFileShare.pattern\r\n , routerConfig.researcherProfileViews.pattern\r\n , routerConfig.researcherContentVerificationGuides.pattern\r\n , routerConfig.messages.pattern\r\n , routerConfig.researcherActivityLog.pattern\r\n , routerConfig.researcherRingGoldSearch.pattern\r\n , routerConfig.refresh.pattern\r\n // , routerConfig.resercherWorksReport.pattern\r\n // , routerConfig.resercherTop10ISAsReport.pattern\r\n , routerConfig.organizationProfileAdmins.pattern\r\n , routerConfig.organizationConferences.pattern\r\n , routerConfig.orgConferenceSubmissions.pattern\r\n , routerConfig.orgConferenceQuestionsManagement.pattern\r\n , routerConfig.orgReviewerQuestionsManagement.pattern\r\n , routerConfig.orgConferenceDocumentsManagement.pattern\r\n , routerConfig.chairmanConferences.pattern\r\n , routerConfig.chairmanConferencesSubmissions.pattern\r\n , routerConfig.chairmanConferenceSubmissionDetails.pattern\r\n , routerConfig.chairmanConferenceQuestionsManagement.pattern\r\n , routerConfig.chairmanConferenceDocumentsManagement.pattern\r\n , routerConfig.chairmanReviewerQuestionsManagement.pattern\r\n , routerConfig.reviewerConferencesSubmissions.pattern\r\n , routerConfig.reviewerConferenceSubmissionDetails.pattern\r\n , routerConfig.researcherConferencesSubmissions.pattern\r\n ],\r\n component: BaseLayout,\r\n routes: [\r\n {\r\n name: 'Researcher Two Columns Layout',\r\n path: [\r\n routerConfig.researcherProfile.patterns[1],\r\n routerConfig.researcherProfile.patterns[0],\r\n routerConfig.resercherSentRequests.pattern,\r\n routerConfig.resercherRecievedRequests.pattern\r\n , routerConfig.researcherOverview.pattern\r\n , routerConfig.researcherSocialLinks.pattern\r\n , routerConfig.researcherInnovationInterests.pattern\r\n , routerConfig.researcherIdsGuides.pattern\r\n , routerConfig.researcherMyIds.pattern\r\n , routerConfig.researcherContact.pattern\r\n , routerConfig.researcherAddWork.pattern\r\n , routerConfig.researcherOutputAndWorksGuide.pattern\r\n , routerConfig.researcherNetwork.pattern\r\n , routerConfig.resercherFollowing.pattern\r\n , routerConfig.resercherOrgFollowing.pattern\r\n , routerConfig.resercherFollowers.pattern\r\n , routerConfig.researcherEasyMatch.pattern\r\n , routerConfig.researcherVerificationGuides.pattern\r\n , routerConfig.researcherSearch.pattern\r\n , routerConfig.researcherService.pattern\r\n , routerConfig.researcherMembership.pattern\r\n , routerConfig.researcherQualification.pattern\r\n , routerConfig.researcherInvitedPosition.pattern\r\n , routerConfig.researcherEmployment.pattern\r\n , routerConfig.researcherEducation.pattern\r\n , routerConfig.researcherDistinction.pattern\r\n , routerConfig.researcherIdentityVerification.pattern\r\n , routerConfig.researcherContentVerification.pattern\r\n , routerConfig.researcherContentVerificationRequest.pattern\r\n , routerConfig.resercherSentReferralRequests.pattern\r\n , routerConfig.resercherReceivedReferralRequests.pattern\r\n , routerConfig.researcherReferrals.pattern\r\n , routerConfig.researcherCurriculumVitae.pattern\r\n , routerConfig.researcherSentWorkFileShareRequests.pattern\r\n , routerConfig.researcherReceivedWorkFileShareRequests.pattern\r\n , routerConfig.researcherWorkFileShare.pattern\r\n , routerConfig.researcherProfileViews.pattern\r\n , routerConfig.researcherContentVerificationGuides.pattern\r\n , routerConfig.researcherActivityLog.pattern\r\n , routerConfig.researcherRingGoldSearch.pattern\r\n // , routerConfig.researcherReportGuides.pattern\r\n // , routerConfig.resercherWorksReport.pattern\r\n // , routerConfig.resercherTop10ISAsReport.pattern \r\n , routerConfig.chairmanConferences.pattern\r\n , routerConfig.chairmanConferencesSubmissions.pattern\r\n , routerConfig.chairmanConferenceSubmissionDetails.pattern\r\n , routerConfig.chairmanConferenceQuestionsManagement.pattern\r\n , routerConfig.chairmanConferenceDocumentsManagement.pattern\r\n , routerConfig.chairmanReviewerQuestionsManagement.pattern\r\n , routerConfig.reviewerConferencesSubmissions.pattern\r\n , routerConfig.reviewerConferenceSubmissionDetails.pattern\r\n , routerConfig.researcherConferencesSubmissions.pattern\r\n ],\r\n component: ResearcherTwoColumnsLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n name: 'Researcher Profile with work modal',\r\n path: routerConfig.researcherProfile.patterns[1],\r\n component: ResearcherProfile,\r\n },\r\n {\r\n exact: true,\r\n name: 'Researcher Profile',\r\n path: routerConfig.researcherProfile.patterns[0],\r\n component: ResearcherProfile,\r\n },\r\n {\r\n name: 'Researcher Sent Requests',\r\n path: routerConfig.resercherSentRequests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Recieved Requests',\r\n path: routerConfig.resercherRecievedRequests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Overview',\r\n path: routerConfig.researcherOverview.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Social Linkes',\r\n path: routerConfig.researcherSocialLinks.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Contact & Basic Info',\r\n path: routerConfig.researcherContact.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Innovation Interests',\r\n path: routerConfig.researcherInnovationInterests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Ids Guides',\r\n path: routerConfig.researcherIdsGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher My Ids',\r\n path: routerConfig.researcherMyIds.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Works Guides',\r\n path: routerConfig.researcherOutputAndWorksGuide.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Add Work',\r\n path: routerConfig.researcherAddWork.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Network',\r\n path: routerConfig.researcherNetwork.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Following',\r\n path: routerConfig.resercherFollowing.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Org Following',\r\n path: routerConfig.resercherOrgFollowing.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Followers',\r\n path: routerConfig.resercherFollowers.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Easy Match',\r\n path: routerConfig.researcherEasyMatch.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Distinctions',\r\n path: routerConfig.researcherDistinction.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Educations',\r\n path: routerConfig.researcherEducation.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Employments',\r\n path: routerConfig.researcherEmployment.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher InvitedPositions',\r\n path: routerConfig.researcherInvitedPosition.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Qualifications',\r\n path: routerConfig.researcherQualification.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Memberships',\r\n path: routerConfig.researcherMembership.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Services',\r\n path: routerConfig.researcherService.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Identity Verification',\r\n path: routerConfig.researcherIdentityVerification.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Content Verification',\r\n path: routerConfig.researcherContentVerificationRequest.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Content Verification',\r\n path: routerConfig.researcherContentVerification.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Search',\r\n path: routerConfig.researcherSearch.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Verification Guides',\r\n path: routerConfig.researcherVerificationGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Sent Referral Requests',\r\n path: routerConfig.resercherSentReferralRequests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Received Referral Requests',\r\n path: routerConfig.resercherReceivedReferralRequests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher referrals',\r\n path: routerConfig.researcherReferrals.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Curriculum vitae',\r\n path: routerConfig.researcherCurriculumVitae.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Sent Work File Share Requests',\r\n path: routerConfig.researcherSentWorkFileShareRequests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Received Work File Share Requests',\r\n path: routerConfig.researcherReceivedWorkFileShareRequests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Work File Share',\r\n path: routerConfig.researcherWorkFileShare.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Profile Views',\r\n path: routerConfig.researcherProfileViews.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Content Verification Guides',\r\n path: routerConfig.researcherContentVerificationGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Actitvity Log',\r\n path: routerConfig.researcherActivityLog.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher RingGold Org Search',\r\n path: routerConfig.researcherRingGoldSearch.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Resercher Works Report',\r\n path: routerConfig.resercherWorksReport.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Resercher Top10 ISAs Report',\r\n path: routerConfig.resercherTop10ISAsReport.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Report Guides',\r\n path: routerConfig.researcherReportGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n }, \r\n {\r\n name: 'Chairman Conferences',\r\n path: routerConfig.chairmanConferences.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Chairman Conferences Submissions',\r\n path: routerConfig.chairmanConferencesSubmissions.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Chairman Conference Submission Details',\r\n path: routerConfig.chairmanConferenceSubmissionDetails.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Chairman Manage Reviewer Questions',\r\n path: routerConfig.chairmanReviewerQuestionsManagement.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Chairman Manage Conference Questions',\r\n path: routerConfig.chairmanConferenceQuestionsManagement.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Chairman Manage Conference Documents',\r\n path: routerConfig.chairmanConferenceDocumentsManagement.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Reviewer Conferences Submissions',\r\n path: routerConfig.reviewerConferencesSubmissions.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Reviewer Conferences Submission Details',\r\n path: routerConfig.reviewerConferenceSubmissionDetails.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Researcher Conferences Submissions',\r\n path: routerConfig.researcherConferencesSubmissions.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n ]\r\n },\r\n {\r\n name: 'Researcher Three Columns Layout',\r\n path: [\r\n routerConfig.researcher.pattern,\r\n routerConfig.post.patterns[0],\r\n ],\r\n component: ResearcherThreeColumnsLayout,\r\n routes: [\r\n {\r\n name: 'Researcher Feed',\r\n path: routerConfig.researcher.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n exact: true,\r\n name: 'Researcher Post',\r\n path: routerConfig.post.patterns[0],\r\n component: Post,\r\n },\r\n ]\r\n },\r\n {\r\n name: 'Organization Two Columns Layout',\r\n path: [\r\n routerConfig.organizationProfile.patterns[1],\r\n routerConfig.organizationProfile.patterns[0],\r\n routerConfig.organizationOverview.pattern,\r\n routerConfig.organizationContact.pattern,\r\n routerConfig.organizationSocialLinks.pattern,\r\n routerConfig.organizationWorks.pattern,\r\n routerConfig.organizationIds.pattern,\r\n routerConfig.organizationIdsGuides.pattern,\r\n routerConfig.organizationOutputAndWorksGuide.pattern,\r\n routerConfig.organizationInnovationInterests.pattern,\r\n routerConfig.organizationFollowers.pattern,\r\n routerConfig.organizationNotifications.pattern,\r\n routerConfig.organizationProductsServices.pattern,\r\n routerConfig.organizationCustomers.pattern,\r\n routerConfig.organizationVerificationGuides.pattern,\r\n routerConfig.organizationIdentityVerification.pattern,\r\n routerConfig.organizationContentVerification.pattern,\r\n routerConfig.organizationContentVerificationRequest.pattern,\r\n routerConfig.organizationReceivedWorkFileShareRequests.pattern,\r\n routerConfig.organizationViews.pattern,\r\n routerConfig.organizationContentVerificationGuides.pattern,\r\n routerConfig.organizationWorksReport.pattern,\r\n // routerConfig.organizationAffiliationsReport.pattern,\r\n routerConfig.organizationNetworksReport.pattern,\r\n // routerConfig.organizationReportGuides.pattern,\r\n routerConfig.organizationProfileAdmins.pattern,\r\n routerConfig.organizationConferences.pattern,\r\n routerConfig.orgConferenceSubmissions.pattern,\r\n routerConfig.orgConferenceQuestionsManagement.pattern,\r\n routerConfig.orgReviewerQuestionsManagement.pattern,\r\n routerConfig.orgConferenceDocumentsManagement.pattern,\r\n\r\n ],\r\n component: OrganizationTwoColumnsLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n name: 'Organization Profile with work modal',\r\n path: routerConfig.organizationProfile.patterns[1],\r\n component: OrganizationProfile,\r\n },\r\n {\r\n exact: true,\r\n name: 'Organization Profile',\r\n path: routerConfig.organizationProfile.patterns[0],\r\n component: OrganizationProfile,\r\n },\r\n {\r\n name: 'Organization Overview Info',\r\n path: routerConfig.organizationOverview.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Contact & Basic Info',\r\n path: routerConfig.organizationContact.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Social Links',\r\n path: routerConfig.organizationSocialLinks.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Works',\r\n path: routerConfig.organizationWorks.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Products',\r\n path: routerConfig.organizationProductsServices.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Customers',\r\n path: routerConfig.organizationCustomers.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Ids',\r\n path: routerConfig.organizationIds.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Ids Guides',\r\n path: routerConfig.organizationIdsGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization work Guides',\r\n path: routerConfig.organizationOutputAndWorksGuide.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Innovation Interest',\r\n path: routerConfig.organizationInnovationInterests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Followers',\r\n path: routerConfig.organizationFollowers.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Notifications',\r\n path: routerConfig.organizationNotifications.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Views',\r\n path: routerConfig.organizationViews.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Verification Guides',\r\n path: routerConfig.organizationVerificationGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Identity Verification',\r\n path: routerConfig.organizationIdentityVerification.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Content Verification Requests',\r\n path: routerConfig.organizationContentVerification.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Content Verification Request',\r\n path: routerConfig.organizationContentVerificationRequest.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Work File Share Received Request',\r\n path: routerConfig.organizationReceivedWorkFileShareRequests.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Content Verification Guides',\r\n path: routerConfig.organizationContentVerificationGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Works Report',\r\n path: routerConfig.organizationWorksReport.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Affiliations Report',\r\n path: routerConfig.organizationAffiliationsReport.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Networks Report',\r\n path: routerConfig.organizationNetworksReport.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Report Guides',\r\n path: routerConfig.organizationReportGuides.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Profile Admins',\r\n path: routerConfig.organizationProfileAdmins.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Organization Conferences',\r\n path: routerConfig.organizationConferences.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Org Admin Conference Submissions',\r\n path: routerConfig.orgConferenceSubmissions.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Org Admin Manage Conference Questions',\r\n path: routerConfig.orgConferenceQuestionsManagement.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Org Admin Manage Reviewer Questions',\r\n path: routerConfig.orgReviewerQuestionsManagement.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Org Admin Manage Conference Documents',\r\n path: routerConfig.orgConferenceDocumentsManagement.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n ]\r\n },\r\n {\r\n name: 'Messages',\r\n path: routerConfig.messages.pattern,\r\n render: (routeProps) => ProtectedRoute(, routeProps),\r\n },\r\n {\r\n name: 'Refresh',\r\n path: routerConfig.refresh.pattern,\r\n component: Refresh,\r\n }\r\n ]\r\n },\r\n {\r\n name: 'Auth Callback',\r\n path: routerConfig.authCallback.pattern,\r\n render: (routeProps) => {\r\n // const user: UserModel = {\r\n // id: data.profile.sub,\r\n // jrin: data.profile.jrin,\r\n // firstName: data.profile.firstName,\r\n // familyName: data.profile.familyName,\r\n // profilePicName: data.profile?.profilePic,\r\n // orgs: data.profile?.orgs?.split(\",\")\r\n // }\r\n //dispatch(addUser(user));\r\n //routeProps.history.push(routerConfig.researcher.route);\r\n window.location.href = routerConfig.researcher.route;\r\n }}\r\n userManager={userManager}\r\n />,\r\n },\r\n {\r\n name: 'Silet Auth Callback',\r\n path: routerConfig.silentCallback.pattern,\r\n render: () => ,\r\n },\r\n {\r\n name: 'Suspend User',\r\n path: routerConfig.suspendUser.pattern,\r\n render: () => ,\r\n },\r\n {\r\n name: 'Public Base Layout',\r\n path: [\r\n routerConfig.defaultRoute.pattern,\r\n routerConfig.home.pattern,\r\n routerConfig.policy.pattern,\r\n routerConfig.faq.pattern,\r\n routerConfig.help.pattern,\r\n routerConfig.errorRoute.pattern,\r\n routerConfig.about.pattern,\r\n routerConfig.aboutJoip.pattern,\r\n routerConfig.whoWeAre.pattern,\r\n routerConfig.joipServices.pattern,\r\n routerConfig.joipNews.pattern,\r\n routerConfig.joipNewsDetail.pattern,\r\n routerConfig.joipEvents.pattern,\r\n routerConfig.individuals.pattern,\r\n routerConfig.organizations.pattern,\r\n routerConfig.patnerWithJoip.pattern,\r\n routerConfig.publicSearch.pattern,\r\n routerConfig.emailVerify.pattern,\r\n routerConfig.orgEmailVerify.pattern,\r\n routerConfig.accessdenied.pattern,\r\n routerConfig.notDound.pattern,\r\n ],\r\n component: BasePublicPagesLayout,\r\n routes: [\r\n {\r\n name: 'Home',\r\n path: routerConfig.defaultRoute.pattern,\r\n exact: true,\r\n render: (routeProps) => CheckUser(, routeProps),\r\n\r\n },\r\n {\r\n path: routerConfig.home.pattern,\r\n render: (routeProps) => CheckUser(, routeProps),\r\n },\r\n {\r\n path: routerConfig.policy.pattern,\r\n component: Policy\r\n },\r\n {\r\n path: routerConfig.faq.pattern,\r\n component: FAQ\r\n },\r\n {\r\n path: routerConfig.help.pattern,\r\n component: Help\r\n },\r\n {\r\n name: 'Error',\r\n path: routerConfig.errorRoute.pattern,\r\n component: ErrorMessage\r\n },\r\n {\r\n name: 'About',\r\n path: routerConfig.about.pattern,\r\n component: About\r\n },\r\n {\r\n name: 'About Joib',\r\n path: routerConfig.aboutJoip.pattern,\r\n component: StaticContent\r\n },\r\n {\r\n name: 'Who We Are',\r\n path: routerConfig.whoWeAre.pattern,\r\n component: StaticContent\r\n },\r\n {\r\n name: 'Joib Services',\r\n path: routerConfig.joipServices.pattern,\r\n component: StaticContent\r\n },\r\n {\r\n name: 'Joib News Detail',\r\n path: routerConfig.joipNewsDetail.pattern,\r\n component: JoipNewsDetail\r\n },\r\n {\r\n name: 'Joib News',\r\n path: routerConfig.joipNews.pattern,\r\n component: JoipNews\r\n },\r\n {\r\n name: 'Joib Events',\r\n path: routerConfig.joipEvents.pattern,\r\n component: JoipEvents\r\n },\r\n {\r\n name: 'Individuals',\r\n path: routerConfig.individuals.pattern,\r\n component: StaticContent\r\n },\r\n {\r\n name: 'Organization',\r\n path: routerConfig.organizations.pattern,\r\n component: StaticContent\r\n },\r\n {\r\n name: 'Partner With Joip',\r\n path: routerConfig.patnerWithJoip.pattern,\r\n component: ContactUs\r\n },\r\n {\r\n name: 'Public Search',\r\n path: routerConfig.publicSearch.pattern,\r\n component: PublicSearch,\r\n },\r\n {\r\n name: 'Email Verify',\r\n path: routerConfig.emailVerify.pattern,\r\n component: EmailVerify\r\n },\r\n {\r\n name: 'Org Email Verify',\r\n path: routerConfig.orgEmailVerify.pattern,\r\n component: OrgEmailVerify\r\n },\r\n {\r\n name: 'Access Denied',\r\n path: routerConfig.accessdenied.pattern,\r\n component: AccessDenied\r\n },\r\n {\r\n name: 'User Suspended',\r\n path: routerConfig.userSuspended.pattern,\r\n component: UserSuspended\r\n },\r\n {\r\n name: '404',\r\n path: routerConfig.notDound.pattern,\r\n component: NotFound\r\n },\r\n ]\r\n },\r\n {\r\n name: 'Auth',\r\n render: () => AppWithAuth\r\n },\r\n ];\r\n}\r\nexport default routes\r\n\r\n//Check Protected Routes\r\nconst ProtectedRoute = (component: any, routeProps: any) => {\r\n let _componetn: any = component;\r\n\r\n if (!auth.isAuthenticated()) {\r\n auth.login();\r\n _componetn = \r\n }\r\n return _componetn;\r\n};\r\n\r\nconst CheckUser = (component: any, routeProps: any) => {\r\n let _componetn: any = component;\r\n\r\n var value = store.get(\"isSuspended\");\r\n if(value){\r\n _componetn = \r\n }\r\n\r\n return _componetn;\r\n};","import React from 'react';\r\nimport { useDispatch, useSelector, } from \"react-redux\";\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport userMgr from '../Utils/userManager';\r\nimport { IReceivedNetworkNotification, IReceivedGeneralNotification, GENERAL_NOTIFICATION_TYPE } from '../Models/Notifications'\r\nimport { HubConnectionBuilder } from '@microsoft/signalr';\r\nimport { addNetworkNotificationStack, addGeneralNotificationStack, AddOrgAdmin } from '../Store/Features/Notifications/NotificationSlice';\r\nimport { Settings } from 'Utils/Settings';\r\nimport { updateUser, updateUserChairmanPermission, updateUserReviewerPermission } from 'Store/Features/UserSlice';\r\nimport { VERIFICATION_STATUS } from 'Models/ProfileModels';\r\nimport { deleteOrg, deleteOrgAdmin } from 'Store/Features/OrgsSlice';\r\nimport pupa from 'pupa';\r\nimport { researcherProfile, suspendUser } from 'Config/RoutesConstants';\r\nimport { setError as errorMes } from 'Components/Shared/UI/Toast/Toast';\r\nimport T from 'Utils/localizerHook';\r\n\r\nconst NotificationHub = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const resources = {\r\n NoPermissionToDelete: T(\"deleteProfileAdmin.deleteted.unSuccessfullyNoPermission\")\r\n }\r\n\r\n const setTheConnceiotn = async () => {\r\n\r\n let userAccessToken = await userMgr.getUser().then((user) => user ? user.access_token : \"\").catch(() => \"\");\r\n\r\n const connection = new HubConnectionBuilder()\r\n .withUrl(Settings.signalR_HubEndpoint!, { accessTokenFactory: () => userAccessToken })\r\n .withAutomaticReconnect().build();\r\n\r\n connection.on('ReceivedNetworkNotification', (response) => {\r\n const data: IReceivedNetworkNotification = JSON.parse(response);\r\n dispatch(addNetworkNotificationStack(data));\r\n });\r\n\r\n connection.on('ReceivedGeneralNotification', (response) => {\r\n\r\n const data: IReceivedGeneralNotification = JSON.parse(response);\r\n\r\n if(data.Type != GENERAL_NOTIFICATION_TYPE.ProfileSuspension){\r\n dispatch(addGeneralNotificationStack(data))\r\n }\r\n\r\n const dynamicData = JSON.parse(data.Data);\r\n\r\n switch (data.Type) {\r\n case GENERAL_NOTIFICATION_TYPE.AddOrgProfileAdmin:\r\n dispatch(AddOrgAdmin());\r\n break\r\n case GENERAL_NOTIFICATION_TYPE.DeleteOrgProfileAdmin:\r\n dispatch(deleteOrg({ orgId: dynamicData.OrgProfileId }));\r\n dispatch(deleteOrgAdmin({ id: dynamicData.Id }));\r\n var currentUrl = window.location.pathname.split('/');\r\n if (currentUrl[currentUrl.length - 1] === \"admins\") {\r\n history.push(pupa(researcherProfile.routes[0], [dynamicData.JRIN + '', 'about']));\r\n errorMes(resources.NoPermissionToDelete);\r\n }\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.ProfileIdentityVerification:\r\n if (dynamicData.Status === VERIFICATION_STATUS.Accepted) {\r\n dispatch(updateUser({ isIdentityVerified: true }));\r\n } else {\r\n dispatch(updateUser({ isIdentityVerified: false }));\r\n }\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.AddChairman:\r\n dispatch(updateUserChairmanPermission(true));\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.AddReviewer:\r\n dispatch(updateUserReviewerPermission(true));\r\n break;\r\n case GENERAL_NOTIFICATION_TYPE.ProfileSuspension:\r\n history.push(suspendUser.route);\r\n break;\r\n }\r\n\r\n });\r\n\r\n try {\r\n await connection.start();\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n setTheConnceiotn();\r\n }, [])\r\n\r\n\r\n return <>;\r\n}\r\n\r\nexport default React.memo(NotificationHub);\r\n\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { Toast } from 'bootstrap';\r\nimport { Link, matchPath, useHistory, useLocation } from 'react-router-dom';\r\nimport moment from 'moment';\r\n\r\nimport { INetworkNotificationStackItem } from 'Models/Notifications';\r\nimport { notification, removerNetworkNotificationStack } from 'Store/Features/Notifications/NotificationSlice';\r\nimport TimeAgo from 'Utils/TimeAgo';\r\nimport T from 'Utils/localizerHook';\r\nimport { Settings } from 'Utils/Settings';\r\nimport { getDirectionFromText, profilePic100 } from 'Utilites';\r\nimport { Icon } from 'Utils/Icon';\r\n\r\nexport const CardToast: React.FC<{ item: INetworkNotificationStackItem }> = ({ item }) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { pathname } = useLocation();\r\n\r\n var [toast, setToast] = useState(true);\r\n const ref: any = useRef();\r\n useEffect(() => { setToast(true); })\r\n useEffect(() => {\r\n //const myToast: any = ref.current\r\n var bsToast = Toast.getInstance(ref.current)\r\n\r\n if (!bsToast) {\r\n // initialize Toast\r\n bsToast = new Toast(ref.current, { autohide: true, delay: Settings.notificationDelay })\r\n // hide after init\r\n bsToast.hide()\r\n setToast(false)\r\n }\r\n else {\r\n // toggle\r\n toast ? bsToast.show() : bsToast.hide()\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n var myModalEl = ref.current\r\n myModalEl.addEventListener('hidden.bs.toast', () => {\r\n dispatch(removerNetworkNotificationStack({ id: item.id }));\r\n })\r\n }, [item.id])\r\n\r\n const refresh = (selectedPath: string): void => {\r\n let currentPath = pathname;\r\n const isMatch = matchPath(selectedPath, currentPath);\r\n\r\n if (isMatch) {\r\n history.replace(`/refresh/` + moment().format(\"x\"));\r\n setTimeout(() => {\r\n history.replace(selectedPath)\r\n }, 0)\r\n } else {\r\n history.push(selectedPath);\r\n }\r\n\r\n setToast(false);\r\n }\r\n\r\n return <>\r\n
\r\n
\r\n
\r\n \r\n {T(item.title)}\r\n {T(\"Notification.JustNow\")}\r\n \r\n
\r\n
\r\n refresh(item.URL)}>\r\n
\r\n
\r\n {item.initiatorFullName}\r\n
\r\n
\r\n
\r\n {item.initiatorFullName} \r\n \r\n {T(item.message)}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n}\r\n\r\nconst NotificationStack: React.FC = (): JSX.Element => {\r\n const notificatonList = useSelector(notification);\r\n\r\n const CardData = CardToast;\r\n let Content = notificatonList?.notificationsStack.map((item, index) => )\r\n\r\n return
\r\n
{Content}
\r\n
\r\n}\r\nexport default React.memo(NotificationStack)","import * as React from 'react';\r\nimport store from 'store2';\r\n// Sentry.io\r\nimport * as Sentry from \"@sentry/react\";\r\n\r\nimport CommonService from '../CommonService';\r\nimport { IConfiguration, IConfigurations } from 'Models/CommonModels';\r\nimport wrapPromise from 'Utils/wrapPromise';\r\nimport {Settings} from 'Settings'\r\n\r\nconst fetchSettings = () => {\r\n const _commonService = new CommonService();\r\n const data = _commonService.getConfigurations();\r\n return wrapPromise(data);\r\n}\r\n\r\nconst checkIsEligible = () : boolean => {\r\n return window.location.pathname != \"/callback\";\r\n}\r\n\r\nconst _fetchSettings = checkIsEligible() ? fetchSettings() : null;\r\n\r\n\r\nexport const FetchSettings = () => {\r\n let data: any = null;\r\n if (_fetchSettings) {\r\n data = _fetchSettings.read();\r\n };\r\n \r\n React.useEffect(() => {\r\n if (data) {\r\n let configurations: IConfigurations = {}\r\n data.forEach((config: IConfiguration) => configurations[config.key] = config.value)\r\n store.set(process.env.REACT_APP_LOCAL_STORAGE_SETTINGS, configurations)\r\n \r\n if(process.env.NODE_ENV !== \"development\") {\r\n Sentry.init({\r\n dsn: Settings.sentrydsn,\r\n environment:process.env.NODE_ENV,\r\n release: Settings.joipVersion\r\n });\r\n }\r\n }\r\n }, [data]);\r\n\r\n return (<>)\r\n}\r\n","import React from 'react';\r\n\r\nimport syles from \"./Offline.module.scss\";\r\nimport { WifiOff } from '@material-ui/icons';\r\nimport T from 'Utils/localizerHook';\r\n\r\nconst Offline = (props: any) => {\r\n return
\r\n \r\n

{T(\"OfflinePage.SomethingWentWrong\")}

\r\n
{T(\"OfflinePage.RefreshThePage\")}
\r\n
\r\n \r\n
\r\n}\r\nexport default Offline;","import { BaseService } from \"./Core/BaseService\";\r\n\r\n\r\nexport default class ChatsService extends BaseService {\r\n\r\n public async getUserChatToken(): Promise {\r\n return this.ProtectedApi.get('Chats/GetToken')\r\n .then((response) => response.data)\r\n .catch((error) => {\r\n throw error\r\n })\r\n }\r\n}","import React from 'react';\r\nimport { Client as ConversationsClient } from \"@twilio/conversations\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\nimport { matchPath, useLocation } from 'react-router';\r\n\r\nimport ChatsService from 'Services/ChatsService';\r\nimport { currUser } from 'Store/Features/UserSlice';\r\nimport { messages } from 'Config/RoutesConstants';\r\nimport { addMessageNotificationStack } from 'Store/Features/Notifications/NotificationSlice';\r\nimport { GENERAL_NOTIFICATION_SOURCE, GENERAL_NOTIFICATION_TYPE, IReceivedGeneralNotification } from 'Models/Notifications';\r\nimport { addClient, setReciverUserInfo, addActiveMessages, AddActiveMessageObj, changeClientStatus, chat, messageAdded, setActiveConversationsSids, setConLoading, addConversation, sortConversations, messageDeleted, addUserTyping, removeUserTyping, getBadgeCount, resetConversationBadgeCount, incrementConversationBadgeCount, decrementConversationBadgeCount, updateMessage, setActiveMessgeLoading } from 'Store/Features/ChatSlice';\r\nimport T from 'Utils/localizerHook';\r\n\r\nconst Chats = () => {\r\n const dispatch = useDispatch();\r\n const userInfo = useSelector(currUser);\r\n const chatInfo = useSelector(chat);\r\n const { pathname } = useLocation();\r\n\r\n const _hatsService = new ChatsService();\r\n\r\n const resources = {\r\n NotificationApplication: T(\"notifification.application\"),\r\n NotificationImage: T(\"notifification.image\"),\r\n NotificationVideo: T(\"notifification.video\"),\r\n NotificationAudio: T(\"notifification.audio\")\r\n }\r\n\r\n React.useEffect(() => {\r\n\r\n if (chatInfo?.client) {\r\n chatInfo?.client?.removeAllListeners();\r\n registerClientListeners(chatInfo?.client);\r\n }\r\n\r\n }, [chatInfo?.client, pathname])\r\n\r\n const initConversations = async () => {\r\n\r\n //Fetch user token\r\n const token = await _hatsService.getUserChatToken();\r\n\r\n //Create and store chat client\r\n const client: ConversationsClient = await ConversationsClient.create(token);\r\n\r\n await client.user.updateAttributes({ image: userInfo?.profilePicName, name: userInfo?.firstName + \" \" + userInfo?.familyName })\r\n\r\n registerClientListeners(client);\r\n dispatch(addClient(client));\r\n\r\n client.getSubscribedConversations()\r\n .then(async (conversations: any) => {\r\n let result = await fetchAllConversations(conversations, []);\r\n setTimeout(() => {\r\n dispatch(sortConversations(result));\r\n dispatch(getBadgeCount());\r\n }, 1000);\r\n }).finally(() => dispatch(setConLoading(false)));\r\n\r\n return client;\r\n };\r\n\r\n React.useEffect(() => {\r\n initConversations();\r\n }, []);\r\n\r\n\r\n\r\n React.useEffect(() => {\r\n\r\n dispatch(setConLoading(true));\r\n const client = chatInfo?.client;\r\n\r\n if (client) {\r\n\r\n // client.getConversationByUniqueName(\"210_219\").then((conversation: any) => {\r\n // conversation.delete();\r\n // });\r\n\r\n client?.removeAllListeners();\r\n registerClientListeners(client);\r\n }\r\n\r\n }, [chatInfo?.client]);\r\n\r\n //fetch all conversations\r\n const fetchAllConversations = async (conversations: any, items: any) => {\r\n let conversationItems: any[] = [...items];\r\n\r\n if (conversations) {\r\n conversationItems = [...conversations.items];\r\n if (conversations.hasNextPage) {\r\n const nextConversations = await conversations.nextPage();\r\n fetchAllConversations(nextConversations, conversationItems);\r\n }\r\n }\r\n\r\n return conversationItems;\r\n }\r\n\r\n const registerClientListeners = (client: any) => {\r\n\r\n client.on(\"tokenAboutToExpire\", async () => {\r\n const token = await _hatsService.getUserChatToken();\r\n client.updateToken(token);\r\n });\r\n\r\n client.on(\"tokenExpired\", async () => {\r\n const token = await _hatsService.getUserChatToken();\r\n client.updateToken(token);\r\n });\r\n\r\n client.on(\"connectionStateChanged\", (state: any) => {\r\n dispatch(changeClientStatus(state));\r\n });\r\n\r\n\r\n // client.on(\"conversationJoined\", (conversation) => {\r\n // this.setState({ conversations: [...this.state.conversations, conversation] });\r\n //});\r\n // client.on(\"conversationLeft\", (thisConversation) => {\r\n // this.setState({\r\n // conversations: [...this.state.conversations.filter((it) => it !== thisConversation)]\r\n //});\r\n\r\n client.on(\"messageAdded\", async (message: any) => {\r\n AddTargetMessage(message);\r\n\r\n if (message.author != userInfo?.jrin) {\r\n const isMatch = matchPath(pathname, messages.pattern);\r\n if (!isMatch) {\r\n\r\n const paricipant = await message.getParticipant();\r\n const user = await paricipant.getUser();\r\n\r\n\r\n let dataMessage = \"\";\r\n\r\n if (message?.media) {\r\n switch (message.media.contentType) {\r\n case message.media.contentType?.includes(\"image\"):\r\n dataMessage = JSON.stringify({ body: resources.NotificationImage })\r\n break;\r\n case message.media.contentType?.includes(\"video\"):\r\n dataMessage = JSON.stringify({ body: resources.NotificationVideo })\r\n break;\r\n case message.media.contentType?.includes(\"audio\"):\r\n dataMessage = JSON.stringify({ body: resources.NotificationAudio })\r\n break;\r\n default:\r\n dataMessage = JSON.stringify({ body: resources.NotificationApplication })\r\n break;\r\n }\r\n } else {\r\n dataMessage = message.body ? JSON.stringify({ body: message.body }) : \"\";\r\n }\r\n\r\n const nofificationItem: IReceivedGeneralNotification = {\r\n Source: GENERAL_NOTIFICATION_SOURCE.UserProfile,\r\n Type: GENERAL_NOTIFICATION_TYPE.SendMessage,\r\n Data: dataMessage,\r\n Id: message.sid,\r\n InitiatorFullName: user?.attributes?.name,\r\n Date: moment().format(),\r\n InitiatorPicture: user?.attributes?.image,\r\n InitiatorId: 0,\r\n TargetProfileId: 0\r\n }\r\n\r\n dispatch(addMessageNotificationStack(nofificationItem));\r\n }\r\n\r\n dispatch(incrementConversationBadgeCount(message.conversation));\r\n }\r\n });\r\n\r\n client.on(\"messageUpdated\", (message: any) => {\r\n dispatch(updateMessage(message));\r\n });\r\n\r\n client.on(\"messageRemoved\", (message: any) => {\r\n dispatch(messageDeleted(message));\r\n dispatch(decrementConversationBadgeCount(message.conversation));\r\n });\r\n\r\n client.on(\"conversationJoined\", (conversation: any) => {\r\n dispatch(addConversation(conversation));\r\n });\r\n\r\n client.on(\"typingStarted\", (participant: any) => {\r\n dispatch(addUserTyping(participant));\r\n });\r\n\r\n client.on(\"typingEnded\", (participant: any) => {\r\n dispatch(removeUserTyping(participant));\r\n });\r\n }\r\n\r\n React.useEffect(() => {\r\n const selectedConversation = chatInfo?.selectedConversation;\r\n\r\n if (selectedConversation && userInfo?.jrin) {\r\n dispatch(setReciverUserInfo(selectedConversation, userInfo?.jrin));\r\n\r\n if (!chatInfo?.activeConversations.some(item => item == selectedConversation.sid)) {\r\n dispatch(setActiveMessgeLoading(true));\r\n dispatch(setActiveConversationsSids(selectedConversation.sid));\r\n\r\n selectedConversation.getMessages()\r\n .then((newMessages: any) => {\r\n if (newMessages.items) {\r\n dispatch(AddActiveMessageObj(newMessages));\r\n dispatch(addActiveMessages(newMessages.items));\r\n selectedConversation.updateLastReadMessageIndex(selectedConversation?._lastMessage?.index || 0);\r\n }\r\n })\r\n .finally(() => dispatch(setActiveMessgeLoading(false)));\r\n }\r\n dispatch(resetConversationBadgeCount(selectedConversation));\r\n }\r\n\r\n }, [chatInfo?.selectedConversation]);\r\n\r\n const AddTargetMessage = (message: any) => {\r\n dispatch(messageAdded(message));\r\n }\r\n\r\n\r\n return <>\r\n}\r\n\r\nexport default Chats;","import React, { useState, useEffect } from \"react\";\r\nimport packageJson from \"../package.json\";\r\nimport moment from \"moment\";\r\n\r\nconst buildDateGreaterThan = (latestDate, currentDate) => {\r\n const momLatestDateTime = moment(latestDate);\r\n const momCurrentDateTime = moment(currentDate);\r\n\r\n if (momLatestDateTime.isAfter(momCurrentDateTime)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nfunction withClearCache(Component) {\r\n function ClearCacheComponent(props) {\r\n const [isLatestBuildDate, setIsLatestBuildDate] = useState(false);\r\n\r\n useEffect(() => {\r\n fetch(`/meta.json?v=${moment().format(\"x\")}`, { cache: 'no-cache' })\r\n .then((response) => response.json())\r\n .then((meta) => {\r\n const latestVersionDate = meta.buildDate;\r\n const currentVersionDate = packageJson.buildDate;\r\n\r\n const shouldForceRefresh = buildDateGreaterThan(\r\n latestVersionDate,\r\n currentVersionDate\r\n );\r\n if (shouldForceRefresh) {\r\n setIsLatestBuildDate(false);\r\n refreshCacheAndReload();\r\n } else {\r\n setIsLatestBuildDate(true);\r\n }\r\n });\r\n }, []);\r\n\r\n const refreshCacheAndReload = () => {\r\n if (caches) {\r\n // Service worker cache should be cleared with caches.delete()\r\n caches.keys().then((names) => {\r\n for (const name of names) {\r\n caches.delete(name);\r\n }\r\n });\r\n }\r\n // delete browser cache and hard reload\r\n window.location.reload(true);\r\n };\r\n\r\n return (\r\n \r\n {isLatestBuildDate ? : null}\r\n \r\n );\r\n }\r\n\r\n return ClearCacheComponent;\r\n}\r\n\r\nexport default withClearCache;","import { store } from 'emoji-mart';\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport SharedModal from 'Shared/UI/Modal/Modal';\r\nimport { currUser } from 'Store/Features/UserSlice';\r\nimport { UserModel } from 'Models/UserModels';\r\nimport T from 'Utils/localizerHook'\r\n\r\nconst SessionExpired = () => {\r\n const [openModal, setOpenModal] = React.useState(false);\r\n\r\n const resources = {\r\n Title: T(\"Session.Expired.Title\"),\r\n Message: T(\"Session.Expired.Message\"),\r\n Ok: T(\"Session.Expired.Ok\")\r\n }\r\n\r\n React.useEffect(() => {\r\n window.addEventListener(\"storage\", (e) => localStorageSetHandler(e), false);\r\n }, []);\r\n\r\n const localStorageSetHandler = (event: any) => {\r\n if (event.key == \"curr.user\") {\r\n\r\n const oldValue = JSON.parse(event.oldValue) as UserModel;\r\n const newValue = JSON.parse(event.newValue) as UserModel;\r\n\r\n // if (oldValue && oldValue?.id && newValue?.id == null) {\r\n // setOpenModal(true);\r\n // }\r\n\r\n if (newValue && newValue?.id && oldValue?.id == null && (newValue.isSuspended || false) == false) {\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n\r\n const closeModalHandler = () => {\r\n window.location.reload();\r\n }\r\n\r\n return (\r\n <>\r\n {/* \r\n
\r\n
\r\n
{resources.Title}
\r\n
\r\n
\r\n

{resources.Message}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
*/}\r\n \r\n )\r\n}\r\n\r\nexport default React.memo(SessionExpired);","import { suspendUser } from 'Config/RoutesConstants';\r\nimport { UserModel } from 'Models/UserModels';\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport UserService from 'Services/UserService';\r\nimport { currUser } from 'Store/Features/UserSlice';\r\nimport Auth from './Auth';\r\nimport userManager from './userManager';\r\n\r\nconst CheckUser = () => {\r\n const userInfo = useSelector(currUser);\r\n const _userService = new UserService();\r\n const history = useHistory();\r\n\r\n React.useEffect(() => {\r\n if(userInfo?.id && Auth.isAuthenticated()){\r\n window.addEventListener('focus', () => {\r\n getUser();\r\n });\r\n\r\n userManager.events.addAccessTokenExpiring(() => {\r\n getUser();\r\n })\r\n }\r\n }, [userInfo?.id]);\r\n\r\n const getUser = () =>{ \r\n _userService.getUserInfo()\r\n .then((user: UserModel) => {\r\n if (user.isSuspended) {\r\n history.push(suspendUser.route);\r\n }\r\n });\r\n }\r\n return React.createElement(\"div\");\r\n}\r\n\r\nexport default CheckUser;","import { UserVisit } from \"Models/UserVisitModels\";\r\nimport { BaseService } from \"./Core/BaseService\";\r\n\r\n\r\nexport default class PortalVisitService extends BaseService {\r\n\r\n public async AddPortalVisit(userVisit:UserVisit): Promise{\r\n const data = {...userVisit};\r\n return await this.Api.post(`PortalVisit/AddPortalVisit`, data)\r\n .then(res => res.data)\r\n .catch(error => {\r\n this.throwException(error)\r\n return error\r\n })\r\n }\r\n\r\n}","import React from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst MetaPixel = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MetaPixel;\r\n","import * as React from 'react';\r\nimport { renderRoutes } from \"react-router-config\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport * as Sentry from \"@sentry/react\";\r\n//@ts-ignore\r\nimport { Offline, Online } from \"react-detect-offline\";\r\nimport 'simplebar/dist/simplebar.min.css';\r\n\r\nimport './App.scss';\r\nimport routes from 'Config/routes';\r\nimport NotificationHub from 'Hubs/NotificationHub';\r\nimport NetwrokNotification from 'Shared/UI/Toast/NotificationToast';\r\nimport { unreadNotificationsCounts } from 'Store/Features/Notifications/NotificationSlice';\r\nimport { currUser, setUserFromLocalStorge } from 'Store/Features/UserSlice';\r\nimport { FetchSettings } from 'Services/InitialData/Settings';\r\nimport OfflineContent from 'Shared/Offline/Offline';\r\nimport Chats from 'Services/InitialData/Chats';\r\nimport ClientError from 'Shared/Error/ClientError';\r\nimport withClearCache from \"./ClearCache\";\r\nimport { Settings } from 'Settings';\r\nimport \"Assets/Styles/Components/Chat/themes.scss\";\r\nimport SessionExpired from 'Shared/SessionExpired/SessionExpired';\r\nimport CheckUser from 'Utils/CheckUser';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport PortalVisitService from 'Services/PortalVisitService';\r\nimport { UserVisit } from 'Models/UserVisitModels';\r\nimport MetaPixel from 'Utils/Meta/MetaPixel';\r\n\r\nconst MainApp = () => {\r\n\r\n const _portalVisitService = new PortalVisitService();\r\n const userInfo = useSelector(currUser);\r\n const dispatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (Boolean(userInfo?.id)) { dispatch(unreadNotificationsCounts()); }\r\n \r\n if (Boolean(userInfo?.id)) {\r\n var data:UserVisit ={\r\n clientId:sessionStorage.getItem(\"clientId\"),\r\n userProfileId:userInfo?.id,\r\n jrin:userInfo?.jrin\r\n }\r\n _portalVisitService.AddPortalVisit(data)\r\n .then((response) => {\r\n sessionStorage.removeItem(\"clientId\");\r\n return true;\r\n })\r\n .catch(() => false);\r\n }\r\n else{\r\n if(sessionStorage.getItem(\"clientId\") == null && localStorage.getItem(\"curr.user\") == null )\r\n {\r\n let clientId = uuidv4();\r\n sessionStorage.setItem(\"clientId\", clientId );\r\n var data:UserVisit ={\r\n clientId:sessionStorage.getItem(\"clientId\"),\r\n userProfileId:null,\r\n jrin:null\r\n }\r\n _portalVisitService.AddPortalVisit(data)\r\n .catch(() => false);\r\n }\r\n }\r\n\r\n dispatch(setUserFromLocalStorge());\r\n Sentry.setUser({ username: `${userInfo?.firstName} ${userInfo?.familyName}`, id: userInfo?.jrin });\r\n }, [userInfo?.id]);\r\n\r\n return (\r\n <>\r\n {\r\n <>\r\n \r\n \r\n \r\n {/* }> */}\r\n {renderRoutes(routes())}\r\n {/* */}\r\n \r\n \r\n {Boolean(userInfo?.id) && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nconst isProduction = process.env.NODE_ENV === 'production';\r\n\r\nconst ClearCacheComponent = isProduction && Settings.isCacheCleanerRuning ? MainApp : MainApp;\r\n\r\nconst App = () => {\r\n return ;\r\n}\r\n\r\nexport default withClearCache(App);","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const url = process.env.PUBLIC_URL as string;\r\n const publicUrl = new URL(url, window.location.toString());\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing as ServiceWorker;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nexport default function ScrollToTop() {\r\n const { key, hash } = useLocation();\r\n\r\n useEffect(() => {\r\n if (!hash && hash == \"\")\r\n window.scrollTo(0, 0);\r\n }, [key]);\r\n\r\n return null;\r\n}","import * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { ReactQueryDevtools } from 'react-query/devtools';\r\nimport { QueryClient, QueryClientProvider } from 'react-query';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { createBrowserHistory } from 'history';\r\n\r\nimport configureStore from './Store/configureStore';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport './Config/i18n';\r\nimport langService from '../src/Utils/languge';\r\nimport ScrollToTop from './Utils/ScrollToTop'\r\nimport Splash from './Components/PublicPages/Splash/Splash'\r\nimport './Assets/css/custom_toastify_toast.css';\r\nimport { ToastContainer } from 'react-toastify';\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst store = configureStore(history);\r\nconst queryClient = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n refetchOnMount: false,\r\n refetchOnWindowFocus: false,\r\n staleTime: Infinity,\r\n },\r\n },\r\n})\r\n \r\nReactDOM.render(\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root'));\r\n\r\nlangService.loadLangSetup();\r\nregisterServiceWorker();\r\n","import * as Store from 'store2';\r\nimport dir from '../Utils/direction';\r\n\r\nexport enum Languge {\r\n AR = \"1\",\r\n EN = \"2\"\r\n}\r\n\r\nconst getLang = (): Languge => {\r\n\r\n if (window.location.search) {\r\n if (window.location.search === \"?lng=ar\") {\r\n return Languge.AR;\r\n }\r\n if (window.location.search === \"?lng=en\") {\r\n return Languge.EN;\r\n }\r\n }\r\n\r\n const currentLang = (Store.get(\"i18nextLng\") as Languge);\r\n\r\n if (!currentLang) {\r\n return Languge.EN;\r\n }\r\n\r\n return currentLang;\r\n}\r\n\r\nconst setDefaultLang = (lang?: Languge) => {\r\n if (lang) {\r\n Store.set(\"i18nextLng\", String(lang));\r\n } else {\r\n Store.set(\"i18nextLng\", String(Languge.EN));\r\n }\r\n}\r\n\r\nconst changeLang = (lang: Languge) => {\r\n Store.set(\"i18nextLng\", String(lang));\r\n dir.setDefaultDir(lang === Languge.EN ? dir.Dir.LTR : dir.Dir.RTL);\r\n window.location.reload();\r\n}\r\n\r\n\r\nconst loadLangSetup = (lang?: Languge) => {\r\n const _lang: Languge = getLang();\r\n setDefaultLang(_lang);\r\n document.body.setAttribute('lng', String(getlangStrformNum(_lang)));\r\n dir.setDefaultDir(String(_lang) === Languge.EN ? dir.Dir.LTR : dir.Dir.RTL);\r\n document.body.setAttribute('dir', String(_lang) === Languge.EN ? dir.Dir.LTR : dir.Dir.RTL);\r\n dir.loadStyleFiles();\r\n var newurl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\r\n newurl = newurl.replace(\"?lng=ar\", \"\").replace(\"?lng=en\", \"\");\r\n window.history.pushState({ path: newurl }, '', newurl);\r\n}\r\n\r\n\r\nconst getlangStrformNum = (num: string) => {\r\n if (num === \"1\") return \"ar\"\r\n if (num === \"2\") return \"en\"\r\n}\r\n\r\nconst lan = {\r\n getLang,\r\n Languge,\r\n changeLang,\r\n loadLangSetup\r\n}\r\n\r\nexport default lan;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InputLabel\":\"InputLabel_InputLabel__KqUB1\",\"Asterisk\":\"InputLabel_Asterisk__E3Wkm\",\"FontSize\":\"InputLabel_FontSize__2WZeY\",\"IconSize\":\"InputLabel_IconSize__yOfdz\"};","import * as React from 'react'\r\n\r\nconst TopBorderedContainer = (props: any) => {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n )\r\n}\r\n\r\nexport default TopBorderedContainer;","import React from \"react\";\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\nimport _ from 'lodash';\r\n\r\nimport styles from './Tabs.module.scss';\r\n\r\ninterface IProps {\r\n items: Array<{\r\n name: string,\r\n routes: Array\r\n }>\r\n ,\r\n styleClasses?:string\r\n}\r\n\r\nconst Tabs: React.FC = ({ items ,styleClasses }) => {\r\n const { pathname } = useLocation();\r\n\r\n const navlink = items?.map((item, index: number) => {\r\n return (\r\n \r\n \r\n {item.name}\r\n \r\n \r\n )\r\n })\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(Tabs,(prevProps, nextProps) => _.isEqual(prevProps.items, nextProps.items));"],"sourceRoot":""}