{"version":3,"sources":["css/images/icon-Table-Down-Chevron.svg","css/images/icon-Table-Up-Chevron.svg","css/images/icon-SubdirectoryConnect.svg","css/images/AAPG-Logo.png","css/images/Criterion-Logo.jpg","css/images/icon-SubdirectoryTraining.svg","css/images/icon-SubdirectoryHub.svg","css/images/Deasil-Works-logo.svg","css/images/Seera-Labs-logo.svg","css/images/SeetaResources-logo.svg","css/images/icon-Table-View.svg","css/images/SEG-SoEG-logo.png","css/images/icon-role-Data-Scientist.svg","css/images/icon-role-Developer.svg","css/images/icon-role-Domain.svg","css/images/icon-role-Product-Owner.svg","css/images/icon-role-Sponsor.svg","css/images/icon-Table-Delete.svg","css/images/icon-Table-Active.svg","css/images/icon-Table-Close.svg","css/images/XWidget.png","css/images/icon-User.svg","css/images/MessageUp-logo.jpg","css/images/bg-Hex-Gradient-Connect.jpg","css/images/Xrathus-Continuous-diagram.png","css/images/icon-Table-Document.svg","css/images/icon-Table-Edit.svg","css/images/Home-Hero-bg.jpg","css/images/BizHub-BAM-logo.png","css/images/Home-Value-Collaboration.jpg","css/images/Home-Value-Bichronous.jpg","css/images/Home-Value-Marketplace.jpg","css/images/Substrates-Connect.svg","css/images/Substrates-Hub.svg","css/images/Substrates-Marketplace.svg","css/images/Substrates-Training.svg","css/images/Substrates-Process.png","css/images/Substrates-Section-Connect.jpg","css/images/Substrates-Section-Hub.jpg","css/images/Substrates-Section-Marketplace.jpg","css/images/Substrates-Section-Training.jpg","css/images/Use-Cases-Section-Collaboration.jpg","css/images/Use-Cases-Section-Hackathon.jpg","css/images/Use-Cases-Section-Ideation.jpg","css/images/Use-Cases-Section-Learning.jpg","css/images/Use-Cases-Section-Open-Project.jpg","css/images/icon-Code.svg","css/images/icon-Connect-Challenges.svg","css/images/icon-Connect-Forums.svg","css/images/icon-Connect-Calendar.svg","css/images/Overlay-play.png","css/images/icon-Social-LinkedIn-white.png","css sync /^/.//.*$","css/fonts/FontAwesome.otf","css/fonts/fontawesome-webfont.eot","css/fonts/fontawesome-webfont.svg","css/fonts/fontawesome-webfont.ttf","css/fonts/fontawesome-webfont.woff","css/fonts/fontawesome-webfont.woff2","css/images/AAGP-Logo.png","css/images/AAPG-Pivoting-1.png","css/images/AAPG-Pivoting-10.jpg","css/images/AAPG-Pivoting-11.jpg","css/images/AAPG-Pivoting-2.jpg","css/images/AAPG-Pivoting-3.jpg","css/images/AAPG-Pivoting-3.png","css/images/AAPG-Pivoting-4.jpg","css/images/AAPG-Pivoting-5.jpg","css/images/AAPG-Pivoting-6.jpg","css/images/AAPG-Pivoting-7.jpg","css/images/AAPG-Pivoting-8.jpg","css/images/AAPG-Pivoting-9.jpg","css/images/AAPG-Wiki-Logo.png","css/images/Danny-Headshot.jpg","css/images/Data-Science-Venn-Diagram-Drew-Conway.png","css/images/Microsoft-icon.svg","css/images/Persona-Structure.svg","css/images/Platform-Xrathus-Preview.svg","css/images/SEAM-logo.png","css/images/SEG-Education-Competency.png","css/images/SEG-Education-Courses.png","css/images/SEG-Education-Lectures.png","css/images/SEG-Education-eLearning.png","css/images/SEG-Library-Books-logo.png","css/images/SEG-Library-Expanded-Abstracts-logo.png","css/images/SEG-Library-Geophysics-logo.png","css/images/SEG-Library-Global-Meeting-Abstracts-logo.png","css/images/SEG-Library-Interpretation-logo.png","css/images/SEG-Library-JEEG-logo.png","css/images/SEG-Library-SAGEEP-logo.png","css/images/SEG-Library-Seismic-Soundoff-logo.png","css/images/SEG-Library-The-Leading-Edge-logo.png","css/images/SEG-Library-logo.png","css/images/SEG-Wiki-logo.png","css/images/Sean-Headshot.jpg","css/images/Seera-Thumb-1.png","css/images/Seera-Thumb-2.png","css/images/Seera-Thumb-3.png","css/images/Substrates.svg","css/images/Susan-Nash.jpg","css/images/Susan-Nash.png","css/images/TASKcubes-logo.jpg","css/images/Welcome.jpg","css/images/Welcome.mp4","css/images/XWidget.svg","css/images/Xrathus-Bichronous-Process-diagram.png","css/images/Xrathus-Logo-Reversed.png","css/images/Xrathus-Logo.png","css/images/bg-About-Us.jpg","css/images/bg-Hex-Gradient-Hub.jpg","css/images/bg-Hex-Gradient-White.jpg","css/images/bg-Join.jpg","css/images/bg-Login.png","css/images/bg-Personas.jpg","css/images/bg-Welcome.jpg","css/images/bg-strip-dark.png","css/images/bg-strip-light.png","css/images/bg-value-Advancements.jpg","css/images/bg-value-Collaboration.jpg","css/images/bg-value-Economies.jpg","css/images/bg-value-Efficiencies.jpg","css/images/bg-value-Opportunities.jpg","css/images/icon-Connect-Blogosphere.svg","css/images/icon-Connect-Collaboration.svg","css/images/icon-Connect-Knowledgebase.svg","css/images/icon-Dashboard.png","css/images/icon-Events.png","css/images/icon-Hub-Analytics.svg","css/images/icon-Hub-Challenges.svg","css/images/icon-Hub-Files.svg","css/images/icon-Hub-Models.svg","css/images/icon-Hub-Overview.svg","css/images/icon-Hub-Pipeline.svg","css/images/icon-Hub-Projects.svg","css/images/icon-Hub-Publish.svg","css/images/icon-Hub-Review.svg","css/images/icon-Hub-Sharing.svg","css/images/icon-Hub-Toolbox.svg","css/images/icon-Hub-Workflow.svg","css/images/icon-Marketplace-Solutions.svg","css/images/icon-Social-LinkedIn.png","css/images/icon-Social-Twitter-white.png","css/images/icon-Social-Twitter.png","css/images/icon-Standards.png","css/images/icon-SubdirectoryPrimary.svg","css/images/icon-Training-Courses.svg","css/images/icon-Training-Knowledge-Base.svg","css/images/icon-X.svg","css/images/icon-value-Advancements.svg","css/images/icon-value-Collaboration.svg","css/images/icon-value-Economies.svg","css/images/icon-value-Efficiencies.svg","css/images/icon-value-Opportunities.svg","config.js","utils/dataFunctions.js","store/reducers.js","store/store.js","utils/eventEmitter.js","store/actions.js","store/actionTypes.js","utils/tokenFunctions.js","utils/authFunctions.js","utils/pageFunctions.js","utils/SupportScript.js","partials/AboutCollaborators.js","partials/CareerLink.js","data/careers.js","partials/CareerLinks.js","partials/NewsLink.js","data/news.js","partials/NewsLinks.js","partials/TeamMemberLink.js","data/team.js","partials/TeamMemberLinks.js","routes/About.js","resources.js","utils/headers.js","utils/getRequest.js","partials/fields/SelectInput.js","partials/filters/ActiveFilter.js","partials/filters/ColumnFilter.js","partials/buttons/DocumentButton.js","partials/buttons/EditButton.js","partials/LoadingIndicator.js","partials/fields/ResourceSelectInput.js","partials/filters/SearchFilter.js","partials/buttons/ViewButton.js","partials/ChallengeTable.js","resourcesEvent.js","partials/EventTable.js","partials/OrganizationTable.js","resourcesProject.js","partials/ProjectTable.js","routes/Admin.js","routes/Collaborators.js","routes/FAQ.js","partials/images/IconXrathusArrow.js","routes/GettingStarted.js","data/language.js","partials/HomeHero.js","partials/HomeOrganizations.js","partials/HomePersona.js","partials/HomeValueSectionCollaboration.js","partials/HomeValueSectionBichronous.js","partials/HomeValueSectionMarketplace.js","data/page-form.js","partials/PagePrompt.js","partials/HomeSubstrate.js","partials/SubstratesIconLinks.js","partials/ChallengeItem.js","partials/EventItem.js","partials/ProjectItem.js","utils/projectFunctions.js","partials/EventCarrousel.js","routes/Home.js","routes/LoggedOut.js","routes/NotFound.js","routes/ParticipationTerms.js","routes/PrivacyPolicy.js","routes/Release.js","partials/SubstrateSectionConnect.js","partials/SubstrateSectionHub.js","partials/SubstrateSectionMarketplace.js","partials/SubstrateSectionTraining.js","routes/Substrates.js","routes/Support.js","routes/Terms.js","routes/UseCases.js","resourcesUser.js","utils/APIUser.js","routes/UserDashboard.js","partials/DashboardChallenges.js","utils/APICluster.js","partials/ClusterTable.js","partials/DashboardClustersPersona.js","partials/DashboardClustersProjects.js","partials/DashboardProjects.js","partials/SubstrateGreeting.js","routes/connect/XConnect.js","utils/APIAirmeetSessions.js","utils/APIChallenges.js","utils/stylesAirmeet.js","routes/connect/ChallengeAirmeet.js","partials/ArticleLink.js","data/articles.js","partials/ArticleLinks.js","routes/connect/Blogosphere.js","partials/Article.js","utils/filterFunctions.js","utils/postRequest.js","partials/fields/BaseInput.js","partials/forms/FormError.js","partials/fields/TextAreaInput.js","data/formTabs.js","data/objects.js","partials/forms/FormChallengeAdd.js","partials/modal/ChallengeAddModalContent.js","partials/modal/Modal.js","partials/filters/ChallengeFilterComponents.js","routes/connect/Challenges.js","resourcesData.js","utils/APIProjectDataset.js","partials/tables/TableWithSubrows.js","partials/AirmeetSessionsTable.js","partials/buttons/EditFilesButton.js","partials/FileDatasetListItem.js","partials/FileDatasetList.js","partials/images/IconCheckmark.js","partials/ChallengeDetail.js","partials/fields/NumberInput.js","partials/forms/FormAirmeetSessionCreate.js","routes/connect/Challenge.js","utils/apiFileFunctions.js","utils/fileFunctions.js","partials/images/IconAddCircle.js","partials/FileDrag.js","partials/FileBrowse.js","partials/images/IconDeleteCircle.js","partials/FileUploadListItem.js","partials/FileUploadList.js","partials/FileDirectoryUploadItem.js","partials/FileDirectoryUpload.js","partials/modal/FileUploadProgressModal.js","partials/forms/FormDataFilesVolumes.js","routes/connect/ChallengeAdd.js","partials/images/IconUser.js","partials/forms/FormChallengeEdit.js","routes/connect/ChallengeEdit.js","utils/APIEvents.js","utils/deleteRequest.js","partials/buttons/DeleteEventButton.js","partials/forms/EventConfigFields.js","partials/buttons/UnsubscribeSelfButton.js","partials/EventDetail.js","utils/APISharedUsers.js","partials/buttons/UnsubscribeUserButton.js","partials/EventPublicJoinedUsersTable.js","partials/buttons/TableExpandIconButton.js","partials/EventSharedUsersTable.js","partials/forms/FormShareWithUser.js","routes/connect/Event.js","partials/forms/FormEventAdd.js","routes/connect/EventAdd.js","partials/forms/FormEventEdit.js","partials/forms/FormEventConfigEdit.js","routes/connect/EventEdit.js","routes/connect/Events.js","routes/connect/EventAirmeet.js","routes/connect/EventsStatic.js","data/usStates.js","partials/forms/FormOrganizationAdd.js","routes/OrganizationAdd.js","partials/forms/FormOrganizationEdit.js","routes/OrganizationEdit.js","partials/forms/OrganizationDetails.js","routes/OrganizationView.js","routes/hub/XHub.js","routes/hub/Files.js","routes/hub/Models.js","routes/hub/Pipelines.js","utils/APIProjects.js","partials/buttons/DeleteProjectButton.js","partials/forms/ProjectConfigFields.js","partials/ProjectDetail.js","partials/ProjectSharedUsersTable.js","routes/hub/Project.js","partials/forms/FormProjectAdd.js","routes/hub/ProjectAdd.js","routes/hub/ProjectAirmeet.js","partials/forms/FormProjectConfigEdit.js","partials/forms/FormProjectEdit.js","routes/hub/ProjectEdit.js","routes/hub/Publish.js","routes/hub/Sharing.js","routes/hub/Toolbox.js","routes/hub/Workflows.js","routes/hub/Workspace.js","partials/tables/BasicTable.js","partials/buttons/DeleteFileButton.js","partials/buttons/DatasetProjectButton.js","partials/modal/VolumeCreatedModal.js","partials/forms/FormDataFilesVolumesEdit.js","partials/TableProgressBar.js","partials/ProjectDatasetSizeTotal.js","partials/buttons/DeleteVolumeButton.js","partials/ProjectVolumesTotal.js","partials/buttons/SetVolumeActiveButton.js","partials/fields/TableBooleanField.js","partials/buttons/ViewVolumeFilesButton.js","partials/VolumeFileList.js","partials/VolumeList.js","routes/DatasetEdit.js","partials/storyblok/containers/ContentRow.js","partials/calendar/CalendarWeeklyDayItem.js","partials/calendar/CalendarWeeklyEvent.js","partials/calendar/CalendarWeeklyNavigation.js","partials/calendar/CalendarWeekly.js","partials/calendar/CalendarGeneric.js","partials/storyblok/page-sections/CollaboratorHeader.js","partials/storyblok/containers/Panel.js","partials/storyblok/basic/Button.js","partials/storyblok/page-sections/NextEvent.js","partials/storyblok/content-fetcher/StoryblokContentFetcher.js","utils/StoryblokFunctions.js","partials/storyblok/content-fetcher/YoutubePlaylistFetcher.js","utils/youtubeFunctions.js","partials/storyblok/containers/ContentList.js","partials/storyblok/basic/SectionHeader.js","partials/storyblok/containers/SectionCollapsible.js","partials/storyblok/containers/SectionWithHeader.js","partials/storyblok/content-fetcher/StoryblokDataSourceFetcher.js","partials/storyblok/basic/TermLink.js","utils/storyblok-client.js","partials/storyblok/content-fetcher/StoryblokAssetFetcher.js","partials/storyblok/tiles/YoutubeVideoTile.js","partials/storyblok/tiles/Tile.js","partials/storyblok/tiles/KnowledgeBaseTile.js","partials/storyblok/tiles/SolutionTile.js","partials/storyblok/tiles/XrathusTile.js","partials/storyblok/basic/BreadCrumbs.js","partials/storyblok/pages/StoryblokWebpage.js","partials/storyblok/toc/utils.js","partials/storyblok/toc/Heading.js","partials/storyblok/toc/toc.js","partials/storyblok/pages/StoryblokDocument.js","partials/storyblok/content-fetcher/StoryblokPageFetcher.js","partials/storyblok/StoryblokPageTemplate.js","routes/marketplace/XMarketplace.js","routes/marketplace/Solutions.js","routes/marketplace/SolutionsXrathus.js","routes/training/XTraining.js","routes/training/KnowledgeBase.js","routes/collaborators/Collaborators.js","utils/APIEventConfiguration.js","partials/forms/FormEventConfigDefault.js","partials/forms/FormEventConfigUser.js","routes/EventConfiguration.js","utils/APIProjectConfiguration.js","partials/forms/FormProjectConfigDefault.js","partials/forms/FormProjectConfigUser.js","routes/ProjectConfiguration.js","routes/hub/Projects.js","RouteHandler.js","containers/APIs.js","utils/tempFunctions.js","partials/images/IconMenu.js","partials/NavXrathus.js","partials/NavXrathusPublic.js","partials/images/XrathusLogoHorizontal.js","containers/Header.js","partials/images/XrathusLogoHorizontalReversed.js","containers/Footer.js","partials/buttons/ExpandIconButton.js","data/navigation-clusters.js","data/navigation-dashboard.js","data/navigation-public.js","data/navigation.js","data/navigation-collaborators.js","containers/Sidebar.js","partials/modal/LoginModal.js","partials/forms/FormPersona.js","data/personas.js","partials/PersonaSelect.js","containers/Layout.js","utils/GoogleAnalytics.js","utils/ScrollHandler.js","App.js","serviceWorker.js","index.js"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","config","version","language","fileParams","FPO","accept","acceptExtension","acceptName","text_error_token","fileParamsChallenge","fileLimit","maxFileSize","maxFileSizeName","minFileSize","minFileSizeName","text_error_file","text_error_max_size","fileParamsProject","listStatus","challenge_subscribed","project_invited","project_own","project_subscribed","pageSize","mobile","small","eventConfigCurrent","max_events","max_shares","eventConfigDefault","events","eventConfigMin","eventConfigUser","projectConfigCurrent","max_dataset_size","max_volumes","projectConfigDefault","projects","projectConfigMin","projectConfigUser","redirectUponLogin","routesFullWidth","routesSubstrate","routesSysop","tokensDefault","idToken","token","refreshToken","urls","api_url","forum_url","gitlab_url","lab_url","user","email","family_name","gitlab_user_name","given_name","groups","is_sysop","max_event_shares","name","persona","plural","preferred_username","Boolean","window","location","hostname","match","getEnvironmentConfig","a","fetch","then","response","json","data","Promise","catch","error","reject","updateObject","oldObject","newValues","assign","copyArray","array","JSON","parse","stringify","sortArrayByKey","arr","sortField","sortOrder","sort","b","toString","toLowerCase","localeCompare","reverse","convertSizeToDisplayString","num","undefined","nStr","x","split","x1","x2","length","rgx","test","replace","addCommas","tier","Math","log10","suffix","scaled","pow","isNaN","fixed","toFixed","createDateTimeObject","date","dateObj","Date","tzo","getTimezoneOffset","oHrs","padDateString","abs","osMin","tz_standard","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","makeDateString","datetime","order","withTime","mo","dy","yy","hr","ampm","dateStr","mn","minVal","String","slice","dateIsPast","getTime","isBlank","term","assembleQuery","params","page","perPage","search","sortBy","timeSince","timeStamp","now","secondsPast","round","day","toDateString","getAllForumCategoryLinks","cats","localStorage","getItem","catsObj","extractDiscourseId","forumPaths","key","obj","pop","parseInt","INITIAL_STATE","challenge_list_public","challenge_list_subscribed","challenge_list_subscribed_refresh","event_config","Config","event_config_current","event_config_refresh","event_config_user","event_config_user_refresh","event_id","event_list_invited","event_list_own","event_list_public","event_list_refresh","event_list_subscribed","event_list_subscribed_refresh","keycloakReady","list_status","project_config","project_config_current","project_config_refresh","project_config_user","project_config_user_refresh","project_id","project_file_list","project_list_invited","project_list_own","project_list_refresh","project_list_subscribed","sidebarOpen","tokens","reducer","state","action","type","userDefault","authenticated","list","status","payload","project_list_personal","initialState","store","createStore","compose","applyMiddleware","thunk","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","eventEmitter","EventEmitter","Emitter","on","event","fn","once","off","emit","freeze","setUser","setSidebarVisibility","isOpen","setChallengeListSubscribedRefresh","refresh","setListStatus","setEventConfigCurrent","setEventConfigUserRefresh","setEventListRefresh","setProjectConfigCurrent","setProjectConfigUserRefresh","setProjectId","setProjectListRefresh","hasGroup","group","findIndex","r","getUserInfoFromToken","dt","jwt_decode","decodeToken","roles","realm_access","isSysop","email_verified","checkAuthentication","storedToken","keycloakToken","keycloakAuthenticated","tokenIsExpired","isExpired","tokenValue","tokenExp","exp","nowDate","clearBodyClasses","classList","document","body","remove","item","setPathElements","isAuthenticated","pathname","hash","classArr","indexOf","pathArray","p","push","hashArray","h","isFullWidth","classes","add","setBodyClasses","routes","openHelpWidgetWithParams","open","widget","FreshworksWidget","company","custom_fields","cf_user_company","openHelpWidget","getWidgetParams","path","substrate","widget_id","SupportScript","props","delay","ms","res","setTimeout","loadFWWidget","script","getElementById","createElement","async","defer","src","appendChild","onload","appendWindowScript","fwSettings","createTextNode","removeScripts","wScript","fwScript","fwIFrame","querySelectorAll","forEach","frame","fwContainer","widgetParams","this","setFWSettings","prevProps","prevState","cf_xrathus_username","cf_xrathus_substrate","nextProps","updateState","Component","defaultProps","AboutCollaborators","className","CriterionLogo","alt","DeasilLogo","MessageUpLogo","SeeraLabsLogo","SeetaResourcesLogo","AAPGLogo","CareerLink","link","title","link_email","href","target","rel","label","withRouter","XRATHUS_CAREERS","CareerLinks","createCareerItems","items","teamMember","slug","renderCareerItems","index","NewsLink","source","linkTarget","excerpt","XRATHUS_NEWS","article","NewsLinks","createNewsItems","substring","setTime","toLocaleDateString","year","month","newsItem","renderNewsItems","TeamContainer","featured","children","TeamMemberLink","thumb","role","XRATHUS_TEAM","TeamMemberLinks","createTeamItems","renderTeamItems","teamStyle","backgroundImage","TeamBG","About","handleOpenWidget","section","subject","to","style","onClick","XrathusContinuousImage","RESOURCES","GET_LIST","orgId","query","active","GET_ONE","CREATE","DELETE","UPDATE","PUT","discourse_id","getBy","isActive","getStoreToken","getState","subscribe","getPostHeaders","useBearer","headers","storeToken","Authorization","getUploadPostHeaders","getGetHeaders","isLoggedIn","getDeleteHeaders","makeGetDataRequest","resource","func","getRequest","uri","console","log","message","axios","method","url","maxBodyLength","Infinity","maxContentLength","request","SelectInput","forwardRef","ref","instructions","multiple","options","optionPrompt","optionSelected","changeFunc","required","disabled","htmlFor","value","onChange","hidden","option","ActiveFilter","handleActive","ColumnFilter","column","filterValue","setFilter","DocumentButton","basePath","record","cell","row","original","data_id","DocumentIcon","EditButton","EditIcon","styles","centered","display","textAlign","margin","path_dark","fill","path_light","LoadingIndicator","color","size","speed","centerStyle","pathStyle","sizePx","width","height","xmlns","xmlnsXlink","y","viewBox","enableBackground","xmlSpace","opacity","d","attributeType","attributeName","from","dur","repeatCount","MenuList","listSize","itemCount","itemSize","initialScrollOffset","initialOffset","ResourceSelectInput","optionText","optionValue","addOption","addOptionPosition","useState","dataList","setDataList","selectOptions","setSelectOptions","selectLoading","setSelectLoading","useEffect","resources","result","i","optionName","unshift","components","filterOption","createFilter","ignoreAccents","selected","idx","handleChange","isLoading","SearchFilter","submitFunc","ViewButton","ViewIcon","ChallengeTable","itemList","setItemList","setIsLoading","activeFilter","setActiveFilter","searchFilterValue","setSearchFilterValue","searchFilterSubmit","setSearchFilterSubmit","orgIdFilter","setOrgIdFilter","totalRows","setTotalRows","pageState","setPageState","pageSizeState","setPageSizeState","sortColumn","setSortColumn","sortDesc","setSortDesc","Challenges","TotalRows","tableData","useMemo","columns","React","Header","accessor","Filter","disableFilters","Cell","published","private","complete","maxWidth","disableSortBy","useTable","pageIndex","manualPagination","pageCount","useFilters","useSortBy","usePagination","getTableProps","getTableBodyProps","headerGroups","prepareRow","totalPages","ceil","handleOrgFilter","preventDefault","headerGroup","getHeaderGroupProps","getHeaderProps","canSort","render","ChevronDown","ChevronUp","getRowProps","cells","getCellProps","handleTableRows","min","defaultValue","pageNumber","Number","username","POST","EventTable","eventType","AirmeetEvents","fetchData","eventPath","OrganizationTable","Organizations","ProjectTable","projectType","PsProjects","projectPath","AdminDashboard","handleFormEvent","datasetFormType","datasetId","showDatasetForm","withKeycloak","connect","Collaborators","SEGLogo","FAQ","toggleContent","setState","IconXrathusArrow","GettingStarted","navigate","dir","slide","max","total","renderIndicators","Array","personas","default","description","data_scientist","icon","developer","domain","product_owner","sponsor","substrates","description_short","hub","marketplace","training","homeHeroStyle","HomeHeroBG","HomeHero","HomeOrganizations","BizHubBAMLogo","HomePersona","handleHover","onHoverFunc","typeName","handleClick","onClickFunc","content","onMouseOver","onMouseOut","rotation","HomeValueSectionCollaboration","ValueImage","HomeValueSectionBichronous","HomeValueSectionMarketplace","XRATHUS_PAGE_FORM","content1","content2","PagePrompt","args","form","formValues","onSubmitFunc","keycloak","HomeSubstrate","handleMouseOver","onMouseOverFunc","handleMouseOut","onMouseOutFunc","allowHover","activeClass","allowHoverClass","SubstratesIconLinks","setActiveSubstrate","activeSubstrate","allowLink","connectLink","hubLink","marketplaceLink","trainingLink","SubstratesConnect","SubstratesHub","SubstratesMarketplace","SubstratesTraining","ChallengeItem","days","remainingStr","projectItem","inUserChallenges","clickFunc","clickLink","progress","classStr","buttonText","due_date","dueStr","percent","created","created_on","due","today","short_desc","EventItem","eventItem","inInvitedEvents","inOwnEvents","inUserOrOwnEvents","startDateStr","start_time","endDateStr","end_time","ProjectItem","inInvitedProjects","inOwnProjects","inUserOrOwnProjects","setChallengesList","project_list","user_challenge_list","empty_message","inUserList","setEventsList","list_type","event_list","user_event_list","setProjectsList","user_project_list","getEventPermissions","eventId","sysop","owner","getProjectPermissions","projectId","dataId","datasetInUserList","getMaxDatasetSize","userConfig","projectConfig","project","withinDatasetSize","existingFiles","newFiles","maxSize","existingSize","newSize","n","file","populatePersonalProjectUserConfig","defaultConfig","populateShortDescription","summary","ell","substr","setDueDate","separator","setDate","due_str","filterPassedTime","time","currentDate","selectedDate","assembleAirmeetPath","uuid","EventCarrousel","publicList","setPublicList","setTotalPages","currentPage","setCurrentPage","transform","points","RoleDeveloper","RoleProductOwner","RoleSponsor","RoleDomain","RoleDataScientist","LoggedOut","NotFound","ParticipationTerms","Content","lazy","PrivacyPolicy","fallback","Release","SubstrateSectionConnect","SectionImage","SubstrateSectionHub","SubstrateSectionMarketplace","SubstrateSectionTraining","Substrates","SubstratesProcess","Support","Terms","UseCases","SectionHackathonImage","SectionOpenProjectImage","SectionIdeationImage","SectionCollaborationImage","SectionLearningImage","APIUser","getUsername","processUserInfo","primary_persona","userObj","setProjectConfigUser","setEventConfigUser","checkUserInfo","resourcesUser","snapshot","userRefresh","mapDispatchToProps","UserDashboard","isAuth","DashboardChallenges","assembleChallengeList","onComplete","joined","sorted","dueDate","challengeList","setChallengeItems","APICluster","getCluster","discourseId","processData","topic_list","topics","users","topicsLength","forumUrl","topic","lastPosted","last_posted_at","activity_date","created_at","posters","posterIdx","user_id","avatarTemplate","avatar_template","avatar","charAt","onResult","ClusterTable","clusterList","topicsList","setTopicsList","rows","DashboardClustersPersona","personaId","discourseIdPersona","DashboardClustersProjects","assembleDiscourseIds","discourseIdList","challenge1","challenge2","project1","projectList","project2","setDiscourseAPIs","handleClusterAPIResults","clusters","discourseClusters","newList","addItemsToListByKey","DashboardProjects","addProjectsToList","assembleProjectList","invited","own","setProjectItems","SubstrateGreeting","welcome","greeting","XConnect","onAssembledProjects","APIAirmeetSessions","getList","APIChallenges","getChallenges","resourceName","viewType","processList","getChallenge","processSingle","c","storeExists","storeResults","setChallengeListPublic","setChallengeListSubscribed","getType","airmeetStyles","container","minHeight","iframe","position","top","bottom","left","right","zIndex","XConnectChallengeAirmeet","setChallenge","challenge","airmeetType","setAirmeetURL","sessions","session","find","session_id","airmeetId","entry_link","airmeet_entry_link","airmeetUrl","pathArr","challengeIdx","challengeId","hasUserList","airmeetIdx","challengeTab","inSubscribedChallenges","frameBorder","allow","ArticleLink","thumb_title","articles","subtitle","author","ArticleLinks","createLinks","links","renderLinks","getSubstrate","XConnectBlogosphere","Article","escapeHtml","filterListByValue","searchValue","attributes","filter","sortListByValue","sortValue","sortTypes","tempList","nullValues","orderBy","makePostDataRequest","AUTH","POST_UPLOAD","postRequest","BaseInput","placeholder","FormError","text","TextAreaInput","maxLength","cols","CHALLENGE_TABS","tab","PROJECT_TABS","confirm","fail","information","overview","saving","success","EVENT_TABS","BOOLEAN_OPTIONS","FormChallengeAdd","challengePath","formStage","onFormEvent","useForm","mode","register","errors","formState","getValues","handleSubmit","control","stage","formStageState","updateFormStageState","community_desc","gitlab_group_id","goals","introduction","org_id","org_select","reward","fieldState","updateFieldState","min_date_obj","due_date_obj","dueDateState","updateDueDateState","successState","updateSuccessState","tabState","setTab","setChallengeId","disableSubmit","isDirty","handleFormChange","dateString","gitlab_org_id","submitForm","setPostChallenge","onSubmit","minLength","minDate","dateFormat","popperPlacement","ChallengeAddModalContent","Modal","onClose","allowClose","closeButtonOnly","header","show","modalClass","modalContentClass","Select","values","Input","onKeyUp","setListType","setChallengePageTitle","listType","latest","popular","alphabetically","XConnectChallenges","setChallengeModal","modalChallengeOpen","setSearch","filterAndSortList","setSort","setReset","resetList","setMainList","mainList","filteredList","pageTitle","publicChallenges","listTotals","challengePublic","challengeUser","refreshChallenges","reset","filepath","volume_name","APIProjectDataset","getProjectFiles","processFileList","getDataset","processDataset","getProjectFile","processSingleFile","onDataResult","files","onFileListResult","setProjectFileList","onFileResult","TableWithSubrows","buttonsClass","subrowComponent","useExpanded","footerGroups","visibleColumns","headerClassName","isExpanded","colSpan","getFooterGroupProps","getFooterProps","AirmeetSessionsTable","airmeetView","itemId","onList","onAirmeetLink","inPanel","hasLinks","setHasLinks","refreshList","setRefreshList","joinBtn","launchAirmeetSession","useCallback","renderSubrow","tableColumns","getToggleRowExpandedProps","start_date","start_date_str","duration_str","entryLinks","duration","setAirmeetSessions","EditFilesButton","setLink","web_url","FileDatasetListItem","object","FileDatasetList","setFileItems","IconCheckmark","tabs","isCreator","projectDataset","projectFiles","onJoinFunc","allowLab","joining","setJoining","joinMessage","setJoinMessage","labMessage","setLabMessage","changeTab","launchAirmeetEvent","discourseLink","hasAirmeet","airmeet_id","errorMessage","sign_up_date","joinChallenge","NumberInput","step","FormAirmeetSessionCreate","itemType","setValue","setError","clearErrors","modalStatus","setModalStatus","createError","setCreateError","setFormStageState","startTime","updateStartTime","close","stDate","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","stMs","nowMs","mins","uid","itemStr","justifyContent","alignItems","sessionTitle","sessionStartTime","sessionDuration","sessionSummary","showTimeInput","filterTime","readOnly","XConnectChallenge","setDataset","dataset","setDatasetFiles","datasetFiles","setChallengeTab","refreshChallenge","challengeRefresh","handleJoinChallenge","launchAirmeetView","launch","history","bind","hasLab","runFileUploadTask","spec","task","uploadFiles","collection","progressFunc","fd","FormData","append","progressConfig","onUploadProgress","progressEvent","loaded","onFailure","pathStr","onSuccess","err","readEntryContentAsync","entry","reading","contents","readEntry","isFile","fullPath","isDirectory","reader","createReader","readEntries","entries","setFilePaths","updateFileList","fileList","pathIdx","splice","removeFromFileList","updateDirectoryList","directoryList","dirStr","join","dirIdx","directory","removeFromDirectoryList","filename","updateDirectoryListProgress","IconAddCircle","FileDrag","addDragListeners","removeDragListeners","el","addEventListener","handleDragIn","handleDragOut","handleDrag","handleDrop","removeEventListener","resetFileUpload","onReady","stopPropagation","filesList","entryList","processed","dataTransfer","dtFiles","dtItems","dtFileLength","updateProcessed","dtItemLength","drag","dragCounter","clearData","processItems","getAsEntry","webkitGetAsEntry","f","containerClasses","FileBrowse","inputDirectoryBrowseRef","current","inputFileBrowseRef","handleBrowseClick","click","handleBrowseChange","webkitRelativePath","createRef","placement","webkitdirectory","mozdirectory","allowdirs","IconDeleteCircle","clipPath","FileUploadListItem","handleRemoveClick","onRemove","sizeStr","FileUploadList","FileDirectoryUploadItem","totalFiles","totalStr","rightPos","FileDirectoryUpload","FileUploadProgressModal","FormDataFilesVolumes","formType","projectString","maxDatasetSize","processing","processState","updateProcessState","fileListState","updateFileListState","directoryListState","updatedDirectoryListState","filesComplete","setFilesComplete","allowUpload","setAllowUpload","handleFilesAdded","withinLimits","handleFileUploadProgress","submitDataForm","setPostSubmitFiles","tasks","taskLength","starterPromise","reduce","encType","XConnectChallengeAdd","updateFormStage","IconUser","FormChallengeEdit","orgName","setOrgName","fetchOrgData","XConnectChallengeEdit","APIEvents","getEvents","refreshType","getEvent","setEventListOwn","setEventListInvited","setEventListSubscribed","setEventId","makeDeleteDataRequest","deleteRequest","DeleteEventButton","eventName","onDeletedEvent","deleted","setDeleted","setSaving","handlePostDeletion","EventConfigFields","ownEvent","onConfigUpdated","global","setGlobal","configValues","setConfigValues","updateConfig","updateGlobalConfig","UnsubscribeSelfButton","unsubscribeNotes","setUnsubscribeNotes","unsubscribeError","setUnsubscribeMessage","labelType","btnLabel","handleNotesUpdate","eventResources","projectResources","actions","present","past","unsubscribed_notes","eventConfig","onJoinOrLeaveFunc","inSubscribedEvents","isSaving","setIsSaving","setMessage","redirect","setRedirect","handleUnsubscribe","buttonDisplay","leave","speaker","long_desc","joinEvent","APISharedUsers","empty","UnsubscribeUserButton","isOwnerOrSysop","setUnsubscribeError","btn","EventPublicJoinedUsersTable","renderSubscriptionRow","rejected","rejected_on_str","unsubscribed_by","unsubscribed_on_str","joined_on","joined_on_str","rejected_on","shared_on_str","shared_on","unsubscribed_on","setSharedList","TableExpandIconButton","openClass","EventSharedUsersTable","FormShareWithUser","onShare","sharedUsers","sharedUserName","setSharedUserName","userMessage","setSharedUserMessage","resourcesEvent","resourcesProject","handleUserInput","XConnectEvent","setEvent","setSharedUsers","refreshEvent","eventRefresh","handleRefreshSharedUsers","refreshSharedUsers","handleJoinOrLeaveEvent","redirectUrl","subscribedRefresh","eventIdx","isPublic","maxShares","getMaxEventShares","fifteenMin","setStartTime","endTime","setEndTime","minEndTime","setMinEndTime","sTime","minEnd","eTime","setPostEvent","showTimeSelect","timeIntervals","XConnectEventAdd","setEventLimits","ownEvents","createdStr","allowed","events_created","events_max","events_allowed","populatePersonalEventUserConfig","eventLimits","eventPermissions","eventValues","setEventValues","updateConfigurations","updateData","XConnectEventEdit","setEventPageTitle","XConnectEvents","handleEventListResult","eventList","setActive","eventJoined","eventOwn","eventPersonal","eventShared","eventSubscribed","publicEventTotal","XConnectEventAirmeet","XEventsStatic","US_STATES","abbreviation","FormOrganizationAdd","activeState","setActiveState","XOrganizationAdd","FormOrganizationEdit","address","city","country","website","zip","XOrganizationEdit","OrganizationDetails","setFieldState","XOrganizationView","XHub","XHubFiles","XHubModels","XHubPipelines","APIProjects","getProjects","getProject","setProjectListOwn","setProjectListInvited","setProjectListSubscribed","DeleteProjectButton","projectName","onDeletedProject","ProjectConfigFields","ownProject","inSubscribedProjects","joinProject","ProjectSharedUsersTable","XHubProject","setProject","refreshProject","projectRefresh","handleJoinOrLeaveProject","projectIdx","getMaxShares","setPostProject","XHubProjectAdd","setProjectLimits","ownProjects","projects_created","projects_max","projects_allowed","projectLimits","projectPermissions","XHubProjectAirmeet","projectValues","setProjectValues","setDefaultConfigMessage","showConfig","handleConfigFieldUpdate","updateTab","scrollTo","behavior","XHubProjectEdit","retrieved","XHubPublish","XHubSharing","XHubToolbox","disableViewer","disabledClass","CodeIcon","XWidgetIcon","XHubWorkflows","XHubWorkspace","setLabLocation","labLocation","BasicTable","DeleteFileButton","DeleteIcon","DatasetProjectButton","setLabel","project_type","VolumeCreatedModal","handleClose","onCloseDialog","volumeName","volume","FormDataFilesVolumesEdit","dataDesc","maxVolumes","totalVolumes","formMessage","setFormMessage","updateDirectoryListState","disableVolume","setDisableVolume","displayVolumeInfoState","setDisplayVolumeInfoState","updateBtn","messageSet","includes","submitVolume","TableProgressBar","amount","numbers","fontWeight","ProjectDatasetSizeTotal","sizeString","DeleteVolumeButton","ProjectVolumesTotal","SetVolumeActiveButton","ActiveIcon","InactiveIcon","TableBooleanField","ViewVolumeFilesButton","VolumeFileList","setFilesList","getItemContents","root","displayName","size_string","fontSize","padding","volumeTimer","VolumeList","onVolumeList","checkVolumeStatus","volumeList","setVolumeList","setVolumeData","startVolumeTimer","setInterval","clearInterval","created_on_str","handleRefresh","projectTypeStr","setDataDesc","dataListSize","setDataListSize","refreshDesc","setRefreshDesc","setCheckVolumeStatus","setTotalVolumes","totalSize","finally","Footer","getMaxVolumes","handleOnVolumes","ContentRow","isVertical","useCols","colWidths","alignment","allStories","storyblokFormatted","contentList","colSize","tempColWidths","parseStoryblokContent","_uid","sectionHeader","CalendarWeekylDayItem","CalendarWeeklyEvent","getDisplayedDateAndTime","passedProps","tempTimeStart","toLocaleTimeString","tempTimeEnd","end_date","tempDispTime","lastIndexOf","tempDateStart","parseContent","contentType","parseTextStyle","marks","parseHeadingStyle","attrs","tempUniqueKey","isArray","level","tempStyle","uniqueId","modalOpen","str","start","end","eventInfo","sameDayEvents","uniqueLabel","event_type","event_image","discussion_link","registration_link","totalTopMargin","displayedValue","truncateString","marginTop","openModalEvent","format","closeModalEvent","PureComponent","CalendarWeeklyNavigation","activeStartDate","locale","maxDate","navigationAriaLabel","navigationLabel","next2AriaLabel","next2Label","nextAriaLabel","nextLabel","prev2AriaLabel","prev2Label","prevAriaLabel","prevLabel","setActiveStartDate","showDoubleView","previousActiveStartDate","tempDate","cloneDate","getBeginPreviousWeek","previousActiveStartDate2","getBeginPreviousWeek2","nextActiveStartDate","getBeginNextWeek","nextActiveStartDate2","getBeginNextWeek2","prevButtonDisabled","previousActiveEndDate","getEndWeekPrevious","prev2ButtonDisabled","getEndWeekPrevious2","nextButtonDisabled","next2ButtonDisabled","renderLabel","displayString","endDate","toLocaleString","formatWeekLabel","getUserLocale","labelClassName","flexGrow","renderButton","CalendarWeekly","resetEvents","isDetailed","handleSelect","handleEventClick","selectedIntervals","getDay","updateEvents","tempIntervals","allEvents","sortedEvents","tempSameDayEvents","tempCurDate","j","tempPrevDate","toDate","moment","tempScaleUnit","tempScaleFormat","tempCellHeight","firstDay","m","numberOfDays","dayFormat","scaleFormat","scaleUnit","useModal","cellHeight","dayCellComponent","CalendarWeeklyDayItem","eventComponent","onIntervalSelect","onEventClick","CalendarGeneric","eventNum","eventOpen","getTaggedData","tags","allTags","relevantList","concat","element","tempCheck","Set","has","calendarToolTip","eventContent","getEventContent","uniqueKey","imageSource","handleCalendarToggleMonth","calendarWeeklyOn","handleCalendarToggleWeek","handleDetailToggle","calendarWeeklyDetailed","onViewOrDateChange","view","CalendarWidget","calendarEvents","relevantEvents","calendarProps","onActiveStartDateChange","onViewChange","maxDetail","minDetail","returnValue","selectRange","showFixedNumberOfWeeks","showNeighboringMonth","showWeekNumbers","defaultChecked","icons","tileContent","getYear","passedEvents","nextEvents","modals","updateModals","tempModals","tempModal","tempIndex","CalendarLogo","tooltipText","tempEventOwner","event_owner","MeetingLogo","join_link","ChallengeLogo","updatedEvents","weekly","tempStartDate","tempEndDate","toISOString","renderedModals","CollaboratorHeader","panelCustomClass","panelLabel","labelCustomClass","showBorder","buttons","displayCalendar","calendarTags","extraContent","PanelContents","editableStoryblok","Panel","panelCustomStyle","labelCustomStyle","customClass","borderClass","Button","isExternal","demoRouter","NextEvent","nextEventProps","displayedDescription","tempTimeResult","tempDispDate","StoryblokContentFetcher","nullText","nullRender","ordered","localStorageSaveParams","prevTime","savedContent","useStoryblokFetch","stories","dataItem","setItem","filteredContent","filterStoryblokContentThroughGroups","returnList","priority","titleA","toUpperCase","titleB","sortStoryblokListContent","YoutubePlaylistFetcher","playlistId","setData","setLoading","unmountedRef","useRef","process","effectStale","videoList","snippet","resourceId","videoId","useYoutubePlaylistFetch","ContentList","is2D","useSlides","direction","playlistLink","customNullText","sortByPriority","sortedBy","ListRenderer","getListRenderer","useYoutubeFetcher","paramsListType","ItemRenderer","itemContent","image","intro","custom_link","full_slug","ownerTitle","owner_title","ownerLogo","owner_logo","XrathusTile","getListItemRenderer","cv","starts_with","with_tag","per_page","slidesToShow","infiniteSlides","SectionHeader","hideTitle","toggleButtonText","customStyle","toggleCustomStyle","collapsedContent","setCollapsedContent","toggleContentClass","useInView","threshold","inView","hideNewLine","styleClass","chosenHeaderNum","slugTitle","trim","displayedTitleText","clear","toggleCustomCss","SectionCollapsible","contentClass","SectionWithHeader","StoryblokDataSourceFetcher","datasource","innerContent","fullDataSource","preparedParams","Storyblok","get","totalEntries","datasource_entries","respAdditional","useStoryblokDataSourceFetch","initValue","TermLink","displayedTerm","TooltipRenderer","definition","overlayClassName","overlay","linkFetchRenderer","passedLink","StoryblokClient","accessToken","cache","StoryblokAsset","StoryblokAssetFetcher","assetType","customCss","buttonLink","isInternal","usedUrl","useStoryblokAssetFetch","loadingSize","imgElement","maxHeight","fetchedUrl","asset","signed_url","YoutubeVideoTile","PlayButton","channel","youtube","autoplay","Tile","displayImage","imageNearEdge","footerContent","imageContent","displayedTileContent","orientation","KnowledgeBaseTile","SolutionTile","capitalizeFirstLetters","inputString","words","platformAcronyms","BreadCrumbs","pageLink","startIndex","endIndex","addSelf","stepsToJump","debugOn","displayedLinks","pageLinks","tempLink","getAllPageLinks","linkLabels","selfLabel","inputList","prepareList","StoryblokWebpage","titleStyle","logo","hideLogo","logoCustomClass","contentCustomClass","hideBreadCrumbs","breadCrumbStepsToJump","storyblokVisualEditorComponent","logoClass","createTitle","string","stringLimit","rawTitle","Heading","titleLimit","customMatchers","timedLink","retStr","RegExp","replaceAll","scrollTop","pageYOffset","documentElement","scrollLeft","pageXOffset","onscroll","trimRight","listItem","nestUl","Toc","markdownText","highestHeadingLevel","lowestHeadingLevel","limit","headingLevels","matchedHeadings","highestTargetHeadings","lowestTargetHeadings","headingRegex","extractHeadingsFromMd","codeBlockRegex","removeCodeBlockFromMd","headingObjects","heading","headingText","matchedHashes","headingLevel","newHeading","headingTags","generateList","Fragment","StoryblokDocument","imageCustomClass","tocToggleOff","marginsToggleOff","imageClass","marginsClass","headingsFromParsedContent","parseStoryblokContentForHeadings","willUseToc","allBlogPosts","allDocuments","allTopics","allHighlights","allPeople","allVideos","constructor","parseStoryblokDefinedComponent","parseStoryblokTypeDefinedContent","parseStoryblokArray","editable","component","custom_css","panel_custom_css","panel_label","label_custom_css","show_border","display_calendar","calendar_tags","extra_content","_editable","panel_custom_style","label_custom_style","contentData","is_vertical","use_cols","col_widths","is_external","demo_router","is_2d","use_slides","playlist_link","slides_to_show","infinite_slides","custom_null_text","sort_by_priority","sorted_by","toggle_button_text","toggle_custom_css","toggle_content","title_style","hide_title","is_internal","parseStoryblokDefinedComponentForHeadings","parseStoryblokArrayForHeadings","tempHeader","extraResult","splitLink","getPageRenderer","pageType","PageRenderer","pageContent","custom_icon_css","custom_body_css","no_table_of_contents","no_document_margins","hideBreadcrumbs","hide_bread_crumbs","bread_crumb_steps_to_jump","hide_logo","custom_logo_css","sleep","pauseTime","totalStories","modifiedReponse","accessGroups","only_available_to_user_groups","contentGroups","StoryblokPageFetcher","pageFolder","savedPage","story","filteredPage","StoryblokPage","XMarketplace","XMarketplaceSolutions","XMarketplaceSolutionsXrathus","XTraining","KnowledgeBase","kbEntries","knowledgebaseEntries","excluding_fields","resp","uniqueFilters","formattedFilters","tempString","tempFilter","title_on_summary_page","route","formattedTitle","formattedFilter","XClusterCollaborators","collabEntries","collaborators","APIEventConfiguration","getGlobalEventConfigurations","configDefaults","configs","setEventConfig","setConfig","onConfigFormChange","postConfigUpdate","valuesToSubmit","userName","setUserName","setUserMessage","XEventConfiguration","updateRefresh","refreshDefaultConfigs","event_configuration_refresh","APIProjectConfiguration","getGlobalProjectConfigurations","setProjectConfig","XProjectConfiguration","project_configuration_refresh","setProjectPageTitle","XHubProjects","handleProjectListResult","challengeSubscribed","projectOwn","projectPersonal","projectShared","projectSubscribed","projectTraining","publicChallengeTotal","allowScripts","PrivateRoute","auth","rest","RouteHandler","destination","navCollab","navKB","allNested","slugStartEnd","loadStoryblokPages","tempNavCollab","tempNavKB","tempDocuments","tempNested","isAuthSysop","userInfo","removeItem","requiresSysopIdx","exact","XDatasetEdit","Home","lState","APIContainer","isMobile","innerWidth","isMobileSmall","IconMenu","rx","NavXrathus","navLinks","NavXrathusPublic","openHelpWidgetDemo","XrathusLogoHorizontal","AppHeader","handleResize","prevMobileSmall","currentMobileSmall","openSidebar","closeSidebar","handleIntersectionScroll","observer","IntersectionObserver","getAttribute","querySelector","intersectionRatio","intersectionRect","innerHeight","boundingClientRect","parentElement","observe","handleEvent","showHelpWidget","hideHelpWidget","handleLoginClick","login","redirectUri","origin","handleLogout","logOutUser","logout","handleMenuToggle","visible","siteIsMobile","siteIsMobileSmall","sidebarClass","topbarHiddenClass","logoLink","UserIcon","Menu","menuButton","transition","align","boundingBoxRef","MenuItem","XrathusLogoHorizontalReversed","copyrightYear","AppFooter","SocialIconLinkedInWhite","SubdirectoryIconHub","SubdirectoryIconTraining","SubdirectoryIconConnect","ExpandIconButton","forum_paths","clustersNav","substrateClass","external","dashboardNav","publicNav","training_url","navigationSidebar","subSlug","groupLimited","createLinksList","outputArray","AppSidebar","createNavigation","navObj","clustersCollabMenu","collabMenu","kbMenu","nav","createNavHeader","createNavLinks","hClass","linkItems","allowItem","createNavLink","openMenusIndex","iconModule","itemRoute","require","funcArgs","handleNavFunctionClick","childrenClass","handleNavToggle","openMenus","expand","updated","collapseAll","funcName","handlePageResize","storyblokSection","notClustersCollab","slugSubstrate","title_in_sidebar","cluster_link","getStoryblokListofSidebarContent","wasAuthenticated","pageIsFullWidth","isHomepage","paths","navKey","subNavKey","loadSidebarNavigation","linksList","tokenActive","setTokenActive","updateTokenStatus","handleTokenEvent","FormPersona","onFormComplete","submitType","formStatus","setFormStatus","currentPersona","setCurrentPersona","selectedPersona","setSelectedPersona","handleFormComplete","FormBottom","PERSONAS","PersonaSelect","setDisplay","displayForm","handlePersonaPrompt","handlePersonaSelection","personaObj","onMenuClose","GoogleAnalytics","onRouteChange","ReactGA","set","pageview","ga","configParams","google_analytics_id","hasAnalytics","initialize","analyticsId","prevLocation","isDifferentPath","isDifferentSearch","setInitialRoute","ScrollHandler","useLocation","offsetTop","App","handleKeycloakEvent","setKeycloakReady","handleKeycloakTokens","tokenUser","setTokens","keycloakInitConfig","initConfig","onEvent","onTokens","unregister","navigator","serviceWorker","ready","registration","auth_client_id","auth_realm","auth_url","forum_categories","google_measurement_id","Keycloak","realm","clientId","ReactDOM","onLoad","promiseType"],"mappings":"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O,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,G,iDCzMpB,OAAe,cAA0B,uC,+BCAzC,OAAe,cAA0B,+C,+BCAzC,OAAe,cAA0B,+C,+BCAzC,OAAe,cAA0B,+C,+BCAzC,OAAe,cAA0B,gD,+BCAzC,OAAe,cAA0B,iD,+BCAzC,OAAe,cAA0B,qC,+BCAzC,OAAe,cAA0B,2C,+BCAzC,OAAe,cAA0B,4C,+BCAzC,OAAe,muR,+BCAf,OAAe,u5R,+BCAf,OAAe,cAA0B,2C,+BCAzC,OAAe,cAA0B,2C,+BCAzC,OAAe,cAA0B,2C,+BCAzC,OAAe,uyT,+BCAf,OAAe,cAA0B,2C,+BCAzC,OAAe,cAA0B,2C,+BCAzC,OAAe,cAA0B,2C,+BCAzC,OAAe,uyT,+BCAf,OAAe,k6N,+BCAf,OAAe,utL,+BCAf,OAAe,cAA0B,iE,+BCAzC,OAAe,cAA0B,0C,+BCAzC,OAAe,cAA0B,6C,+BCAzC,OAAe,cAA0B,oD,+BCAzC,OAAe,sgN,+BCAf,OAAe,cAA0B,oD,+BCAzC,OAAe,cAA0B,iD,+BCAzC,OAAe,0iX,+BCAf,OAAe,cAA0B,mD,+BCAzC,OAAe,0/X,+BCAf,OAAe,kwS,+BCAf,OAAe,8sN,+BCAf,OAAe,siS,+BCAf,OAAe,08L,+BCAf,OAAe,0uT,+BCAf,OAAe,s6Q,+BCAf,OAAe,cAA0B,6D,+BCAzC,OAAe,ksG,+BCAf,OAAe,cAA0B,4C,+BCAzC,OAAe,cAA0B,yC,+BCAzC,OAAe,m0M,+BCAf,OAAe,cAA0B,yC,+BCAzC,OAAe,cAA0B,yC,+BCAzC,OAAe,81O,+BCAf,OAAe,cAA0B,sC,+BCAzC,OAAe,u+H,+BCAf,OAAe,cAA0B,sC,+BCAzC,OAAe,cAA0B,0C,+BCAzC,OAAe,cAA0B,mC,+BCAzC,OAAe,cAA0B,mC,+BCAzC,OAAe,cAA0B,mC,+BCAzC,OAAe,cAA0B,8D,+BCAzC,OAAe,8nN,+BCAf,OAAe,s3M,+BCAf,OAAe,cAA0B,uC,+BCAzC,OA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","file":"static/js/main.ae18a171.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/icon-Table-Down-Chevron.db964758.svg\";","export default __webpack_public_path__ + \"static/media/icon-Table-Up-Chevron.2e0f4844.svg\";","export default __webpack_public_path__ + \"static/media/icon-SubdirectoryConnect.07c65f9d.svg\";","export default __webpack_public_path__ + \"static/media/AAPG-Logo.34d65cf5.png\";","export default __webpack_public_path__ + \"static/media/Criterion-Logo.31eda96a.jpg\";","export default __webpack_public_path__ + \"static/media/icon-SubdirectoryTraining.acbc3299.svg\";","export default __webpack_public_path__ + \"static/media/icon-SubdirectoryHub.f23c4e6d.svg\";","export default __webpack_public_path__ + \"static/media/Deasil-Works-logo.0d968ce4.svg\";","export default __webpack_public_path__ + \"static/media/Seera-Labs-logo.7bb0edeb.svg\";","export default __webpack_public_path__ + \"static/media/SeetaResources-logo.af6c5916.svg\";","export default __webpack_public_path__ + \"static/media/icon-Table-View.4af9172a.svg\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/icon-role-Data-Scientist.0145a497.svg\";","export default __webpack_public_path__ + \"static/media/icon-role-Developer.fdf263a8.svg\";","export default __webpack_public_path__ + \"static/media/icon-role-Domain.1370ea9f.svg\";","export default __webpack_public_path__ + \"static/media/icon-role-Product-Owner.c769e6ca.svg\";","export default __webpack_public_path__ + \"static/media/icon-role-Sponsor.239538b9.svg\";","export default __webpack_public_path__ + \"static/media/icon-Table-Delete.d25339cd.svg\";","export default __webpack_public_path__ + \"static/media/icon-Table-Active.7b955673.svg\";","export default __webpack_public_path__ + \"static/media/icon-Table-Close.c17b7d20.svg\";","export default __webpack_public_path__ + \"static/media/XWidget.39ce4a63.png\";","export default __webpack_public_path__ + \"static/media/icon-User.111b6e2a.svg\";","export default __webpack_public_path__ + \"static/media/MessageUp-logo.4aeb7a31.jpg\";","export default __webpack_public_path__ + \"static/media/bg-Hex-Gradient-Connect.085e6322.jpg\";","export default __webpack_public_path__ + \"static/media/Xrathus-Continuous-diagram.1bacf51a.png\";","export default __webpack_public_path__ + \"static/media/icon-Table-Document.5379d5f6.svg\";","export default __webpack_public_path__ + \"static/media/icon-Table-Edit.e3253e39.svg\";","export default __webpack_public_path__ + \"static/media/Home-Hero-bg.3f9ba060.jpg\";","export default __webpack_public_path__ + \"static/media/BizHub-BAM-logo.79e4ba8b.png\";","export default __webpack_public_path__ + \"static/media/Home-Value-Collaboration.ca372b5f.jpg\";","export default __webpack_public_path__ + \"static/media/Home-Value-Bichronous.1553ee03.jpg\";","export default __webpack_public_path__ + \"static/media/Home-Value-Marketplace.2640a91b.jpg\";","export default __webpack_public_path__ + \"static/media/Substrates-Connect.3bff3eb3.svg\";","export default __webpack_public_path__ + \"static/media/Substrates-Hub.bb6bda7c.svg\";","export default __webpack_public_path__ + \"static/media/Substrates-Marketplace.75c828f2.svg\";","export default __webpack_public_path__ + \"static/media/Substrates-Training.b5d0db56.svg\";","export default __webpack_public_path__ + \"static/media/Substrates-Process.09a06c1d.png\";","export default __webpack_public_path__ + \"static/media/Substrates-Section-Connect.9ebcd15d.jpg\";","export default __webpack_public_path__ + \"static/media/Substrates-Section-Hub.5c38130d.jpg\";","export default __webpack_public_path__ + \"static/media/Substrates-Section-Marketplace.576e2e82.jpg\";","export default __webpack_public_path__ + \"static/media/Substrates-Section-Training.fa5071a5.jpg\";","export default __webpack_public_path__ + \"static/media/Use-Cases-Section-Collaboration.a53e7e52.jpg\";","export default __webpack_public_path__ + \"static/media/Use-Cases-Section-Hackathon.2d15957a.jpg\";","export default __webpack_public_path__ + \"static/media/Use-Cases-Section-Ideation.56eab328.jpg\";","export default __webpack_public_path__ + \"static/media/Use-Cases-Section-Learning.a525fa13.jpg\";","export default __webpack_public_path__ + \"static/media/Use-Cases-Section-Open-Project.d97b8e77.jpg\";","export default __webpack_public_path__ + \"static/media/icon-Code.c7525069.svg\";","export default __webpack_public_path__ + \"static/media/icon-Connect-Challenges.76430226.svg\";","export default __webpack_public_path__ + \"static/media/icon-Connect-Forums.e8c5ec05.svg\";","export default __webpack_public_path__ + \"static/media/icon-Connect-Calendar.cf697ee2.svg\";","export default __webpack_public_path__ + \"static/media/Overlay-play.15ff46b3.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnsAAAIcCAMAAAC5G5hHAAAAM1BMVEUAAAD///////////////////////////////////////////////////////////////+3leKCAAAAEHRSTlMAQMCAEKDwYCDQ4DBwsJBQVqNkXgAAEapJREFUeNrs3Qly4jAQRuHfWDLewH3/005NZlJZgNBQxJba7zvDq5a1FOie1Mzt+YBITu3cJJWtP+bRENN4OvYqVJoHQ2zDXOL4m7JhD3KjsjQHw14cSqqvZ+bty6mYD7+5M+xL16oEPcvtHg0FjL6FobdP3aKNzYa9mrUpNhl7luVHeogSH+nt3WbxnQ17t1F8RwOO2sBkgNmk1SUeS+GvMekuPvbwK05aWWPAP43WxYqLd6NW1RrwrtWKEg8I8KFL+gFjD5/UPPgYe/APPm408FWltxu8VMZXg1bSG/BVrx/wVhlX1fWGmSUXGy26yYDvkm7hKhe/a9EtHCzjUn3HyycDvjtoDfzSGbZ6zGLAJV3HNhc31HW6zDYXztfLtIdraA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caA9h0B6caM/hkNtj89/cZv7EslDB2hvzcdKFac6doTSR2hvPk26azqOhKHHay43uWPhPwaIEaa9rkxx61t6ChGjvrTyflA2FiNBe7vWAnn1vIepvb2z0oIWFtwjVt3dOelhi01GCytvrFj1lNmyu7vaGSU+aWHc3V3V7Q9LT0mB4DO19yJKIr14Vt5cl4qtZve1lifiqVm17g0R8dau1vSHpBRK73QfQ3ptu0ktMBjfae7PoAofMtamzvbNehus1N9r79LHHJ1/Vqmyv0QstBhfa+8PevSU3CgNhFG4sOYBv0/tf7Ti+UPZMVdxOoKK/Od8KeDglaBBwtrVZsZ8vhvbcP6rNanBE0J57sZmdHAG0Ny17jBvq9NorZsbCl4Fce9dljyu+BOTaO9kCeHEygPYGu+Eenzq19kZbBN9qeW317R3sjmlDnVp7g/2DvVSyxNobbSHc4ntp7e2dbMKkq06svT+2kN7xwtrbqzbhgk+dVns7W4zjhZW3d7Rn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\"","var map = {\n\t\"./calendar.css\": 162,\n\t\"./challenge.css\": 36,\n\t\"./collaborator-custom.css\": 246,\n\t\"./drag.css\": 244,\n\t\"./events.css\": 553,\n\t\"./file.css\": 125,\n\t\"./font-awesome.min.css\": 263,\n\t\"./fonts/FontAwesome.otf\": 554,\n\t\"./fonts/fontawesome-webfont.eot\": 555,\n\t\"./fonts/fontawesome-webfont.svg\": 556,\n\t\"./fonts/fontawesome-webfont.ttf\": 557,\n\t\"./fonts/fontawesome-webfont.woff\": 558,\n\t\"./fonts/fontawesome-webfont.woff2\": 559,\n\t\"./footer.css\": 261,\n\t\"./home.css\": 235,\n\t\"./images/AAGP-Logo.png\": 560,\n\t\"./images/AAPG-Logo.png\": 76,\n\t\"./images/AAPG-Pivoting-1.png\": 561,\n\t\"./images/AAPG-Pivoting-10.jpg\": 562,\n\t\"./images/AAPG-Pivoting-11.jpg\": 563,\n\t\"./images/AAPG-Pivoting-2.jpg\": 564,\n\t\"./images/AAPG-Pivoting-3.jpg\": 565,\n\t\"./images/AAPG-Pivoting-3.png\": 566,\n\t\"./images/AAPG-Pivoting-4.jpg\": 567,\n\t\"./images/AAPG-Pivoting-5.jpg\": 568,\n\t\"./images/AAPG-Pivoting-6.jpg\": 569,\n\t\"./images/AAPG-Pivoting-7.jpg\": 570,\n\t\"./images/AAPG-Pivoting-8.jpg\": 571,\n\t\"./images/AAPG-Pivoting-9.jpg\": 572,\n\t\"./images/AAPG-Wiki-Logo.png\": 573,\n\t\"./images/BizHub-BAM-logo.png\": 175,\n\t\"./images/Criterion-Logo.jpg\": 77,\n\t\"./images/Danny-Headshot.jpg\": 574,\n\t\"./images/Data-Science-Venn-Diagram-Drew-Conway.png\": 575,\n\t\"./images/Deasil-Works-logo.svg\": 97,\n\t\"./images/Home-Hero-bg.jpg\": 174,\n\t\"./images/Home-Value-Bichronous.jpg\": 177,\n\t\"./images/Home-Value-Collaboration.jpg\": 176,\n\t\"./images/Home-Value-Marketplace.jpg\": 178,\n\t\"./images/MessageUp-logo.jpg\": 167,\n\t\"./images/Microsoft-icon.svg\": 576,\n\t\"./images/Overlay-play.png\": 204,\n\t\"./images/Persona-Structure.svg\": 577,\n\t\"./images/Platform-Xrathus-Preview.svg\": 578,\n\t\"./images/SEAM-logo.png\": 579,\n\t\"./images/SEG-Education-Competency.png\": 580,\n\t\"./images/SEG-Education-Courses.png\": 581,\n\t\"./images/SEG-Education-Lectures.png\": 582,\n\t\"./images/SEG-Education-eLearning.png\": 583,\n\t\"./images/SEG-Library-Books-logo.png\": 584,\n\t\"./images/SEG-Library-Expanded-Abstracts-logo.png\": 585,\n\t\"./images/SEG-Library-Geophysics-logo.png\": 586,\n\t\"./images/SEG-Library-Global-Meeting-Abstracts-logo.png\": 587,\n\t\"./images/SEG-Library-Interpretation-logo.png\": 588,\n\t\"./images/SEG-Library-JEEG-logo.png\": 589,\n\t\"./images/SEG-Library-SAGEEP-logo.png\": 590,\n\t\"./images/SEG-Library-Seismic-Soundoff-logo.png\": 591,\n\t\"./images/SEG-Library-The-Leading-Edge-logo.png\": 592,\n\t\"./images/SEG-Library-logo.png\": 593,\n\t\"./images/SEG-SoEG-logo.png\": 101,\n\t\"./images/SEG-Wiki-logo.png\": 594,\n\t\"./images/Sean-Headshot.jpg\": 595,\n\t\"./images/Seera-Labs-logo.svg\": 98,\n\t\"./images/Seera-Thumb-1.png\": 596,\n\t\"./images/Seera-Thumb-2.png\": 597,\n\t\"./images/Seera-Thumb-3.png\": 598,\n\t\"./images/SeetaResources-logo.svg\": 99,\n\t\"./images/Substrates-Connect.svg\": 179,\n\t\"./images/Substrates-Hub.svg\": 180,\n\t\"./images/Substrates-Marketplace.svg\": 181,\n\t\"./images/Substrates-Process.png\": 183,\n\t\"./images/Substrates-Section-Connect.jpg\": 184,\n\t\"./images/Substrates-Section-Hub.jpg\": 185,\n\t\"./images/Substrates-Section-Marketplace.jpg\": 186,\n\t\"./images/Substrates-Section-Training.jpg\": 187,\n\t\"./images/Substrates-Training.svg\": 182,\n\t\"./images/Substrates.svg\": 599,\n\t\"./images/Susan-Nash.jpg\": 600,\n\t\"./images/Susan-Nash.png\": 601,\n\t\"./images/TASKcubes-logo.jpg\": 602,\n\t\"./images/Use-Cases-Section-Collaboration.jpg\": 188,\n\t\"./images/Use-Cases-Section-Hackathon.jpg\": 189,\n\t\"./images/Use-Cases-Section-Ideation.jpg\": 190,\n\t\"./images/Use-Cases-Section-Learning.jpg\": 191,\n\t\"./images/Use-Cases-Section-Open-Project.jpg\": 192,\n\t\"./images/Welcome.jpg\": 603,\n\t\"./images/Welcome.mp4\": 604,\n\t\"./images/XWidget.png\": 143,\n\t\"./images/XWidget.svg\": 605,\n\t\"./images/Xrathus-Bichronous-Process-diagram.png\": 606,\n\t\"./images/Xrathus-Continuous-diagram.png\": 169,\n\t\"./images/Xrathus-Logo-Reversed.png\": 607,\n\t\"./images/Xrathus-Logo.png\": 608,\n\t\"./images/bg-About-Us.jpg\": 609,\n\t\"./images/bg-Hex-Gradient-Connect.jpg\": 168,\n\t\"./images/bg-Hex-Gradient-Hub.jpg\": 610,\n\t\"./images/bg-Hex-Gradient-White.jpg\": 611,\n\t\"./images/bg-Join.jpg\": 612,\n\t\"./images/bg-Login.png\": 613,\n\t\"./images/bg-Personas.jpg\": 614,\n\t\"./images/bg-Welcome.jpg\": 615,\n\t\"./images/bg-strip-dark.png\": 616,\n\t\"./images/bg-strip-light.png\": 617,\n\t\"./images/bg-value-Advancements.jpg\": 618,\n\t\"./images/bg-value-Collaboration.jpg\": 619,\n\t\"./images/bg-value-Economies.jpg\": 620,\n\t\"./images/bg-value-Efficiencies.jpg\": 621,\n\t\"./images/bg-value-Opportunities.jpg\": 622,\n\t\"./images/icon-Code.svg\": 200,\n\t\"./images/icon-Connect-Blogosphere.svg\": 623,\n\t\"./images/icon-Connect-Calendar.svg\": 203,\n\t\"./images/icon-Connect-Challenges.svg\": 201,\n\t\"./images/icon-Connect-Collaboration.svg\": 624,\n\t\"./images/icon-Connect-Forums.svg\": 202,\n\t\"./images/icon-Connect-Knowledgebase.svg\": 625,\n\t\"./images/icon-Dashboard.png\": 626,\n\t\"./images/icon-Events.png\": 627,\n\t\"./images/icon-Hub-Analytics.svg\": 628,\n\t\"./images/icon-Hub-Challenges.svg\": 629,\n\t\"./images/icon-Hub-Files.svg\": 630,\n\t\"./images/icon-Hub-Models.svg\": 631,\n\t\"./images/icon-Hub-Overview.svg\": 632,\n\t\"./images/icon-Hub-Pipeline.svg\": 633,\n\t\"./images/icon-Hub-Projects.svg\": 634,\n\t\"./images/icon-Hub-Publish.svg\": 635,\n\t\"./images/icon-Hub-Review.svg\": 636,\n\t\"./images/icon-Hub-Sharing.svg\": 637,\n\t\"./images/icon-Hub-Toolbox.svg\": 638,\n\t\"./images/icon-Hub-Workflow.svg\": 639,\n\t\"./images/icon-Marketplace-Solutions.svg\": 640,\n\t\"./images/icon-Social-LinkedIn-white.png\": 205,\n\t\"./images/icon-Social-LinkedIn.png\": 641,\n\t\"./images/icon-Social-Twitter-white.png\": 642,\n\t\"./images/icon-Social-Twitter.png\": 643,\n\t\"./images/icon-Standards.png\": 644,\n\t\"./images/icon-SubdirectoryConnect.svg\": 71,\n\t\"./images/icon-SubdirectoryHub.svg\": 92,\n\t\"./images/icon-SubdirectoryPrimary.svg\": 645,\n\t\"./images/icon-SubdirectoryTraining.svg\": 81,\n\t\"./images/icon-Table-Active.svg\": 110,\n\t\"./images/icon-Table-Close.svg\": 111,\n\t\"./images/icon-Table-Delete.svg\": 109,\n\t\"./images/icon-Table-Document.svg\": 170,\n\t\"./images/icon-Table-Down-Chevron.svg\": 59,\n\t\"./images/icon-Table-Edit.svg\": 171,\n\t\"./images/icon-Table-Up-Chevron.svg\": 60,\n\t\"./images/icon-Table-View.svg\": 100,\n\t\"./images/icon-Training-Courses.svg\": 646,\n\t\"./images/icon-Training-Knowledge-Base.svg\": 647,\n\t\"./images/icon-User.svg\": 145,\n\t\"./images/icon-X.svg\": 648,\n\t\"./images/icon-role-Data-Scientist.svg\": 102,\n\t\"./images/icon-role-Developer.svg\": 103,\n\t\"./images/icon-role-Domain.svg\": 104,\n\t\"./images/icon-role-Product-Owner.svg\": 105,\n\t\"./images/icon-role-Sponsor.svg\": 106,\n\t\"./images/icon-value-Advancements.svg\": 649,\n\t\"./images/icon-value-Collaboration.svg\": 650,\n\t\"./images/icon-value-Economies.svg\": 651,\n\t\"./images/icon-value-Efficiencies.svg\": 652,\n\t\"./images/icon-value-Opportunities.svg\": 653,\n\t\"./index.css\": 264,\n\t\"./modal-video.css\": 259,\n\t\"./organization.css\": 126,\n\t\"./page-form.css\": 233,\n\t\"./page.css\": 122,\n\t\"./persona-overlay.css\": 265,\n\t\"./persona.css\": 157,\n\t\"./scroll-list.css\": 95,\n\t\"./search-filter.css\": 124,\n\t\"./sidebar.css\": 262,\n\t\"./slick-custom.css\": 654,\n\t\"./slideshow.css\": 232,\n\t\"./static.css\": 50,\n\t\"./storyblok-custom.css\": 33,\n\t\"./substrates-icon-links.css\": 234,\n\t\"./tile.css\": 96,\n\t\"./top-bar.css\": 260,\n\t\"./training.css\": 655,\n\t\"./week-calendar.css\": 656\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 552;","export default __webpack_public_path__ + \"static/media/FontAwesome.91f80bba.otf\";","export default __webpack_public_path__ + \"static/media/fontawesome-webfont.8b43027f.eot\";","export default __webpack_public_path__ + \"static/media/fontawesome-webfont.c1e38fd9.svg\";","export default __webpack_public_path__ + \"static/media/fontawesome-webfont.1e59d233.ttf\";","export default __webpack_public_path__ + \"static/media/fontawesome-webfont.f691f37e.woff\";","export default __webpack_public_path__ + \"static/media/fontawesome-webfont.20fd1704.woff2\";","export default __webpack_public_path__ + \"static/media/AAGP-Logo.34d65cf5.png\";","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-1.687f7168.png\";","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-10.ca20372f.jpg\";","export default \"data:image/jpeg;base64,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\"","export default \"data:image/jpeg;base64,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\"","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-3.8f14425e.jpg\";","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-3.b360b123.png\";","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-4.5493506d.jpg\";","export default \"data:image/jpeg;base64,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\"","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-6.1913b28a.jpg\";","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-7.794c8621.jpg\";","export default __webpack_public_path__ + \"static/media/AAPG-Pivoting-8.dc096686.jpg\";","export default \"data:image/jpeg;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/jpeg;base64,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\"","export default __webpack_public_path__ + \"static/media/Data-Science-Venn-Diagram-Drew-Conway.06dc76fb.png\";","export default __webpack_public_path__ + \"static/media/Microsoft-icon.40579e8d.svg\";","export default __webpack_public_path__ + \"static/media/Persona-Structure.3e793173.svg\";","export default __webpack_public_path__ + \"static/media/Platform-Xrathus-Preview.b7690c3b.svg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOwAAAB0CAMAAACxOC4IAAABm1BMVEX///8AcM4AAAA6kdmjy+4egdQFc8/8/f4WfNIUFBT5/P672fJrrOPA3POUlJS11vFJSUkHBwcaf9Ovr6/z+P1zseQRetENeNHp8/vy8vLq6uohg9XF3/Sozu6Cuefg4OBOnN0wi9gJddCdnZ0fHx/b6/jY6vhhp+FepeBZot9KmdxGl9wph9Y1NTU0jtjk8PqWxOtBlds8PDzf7fnV6Pd9tuazs7NPT08lJSXm8fqdyOxwr+QlhdVtbW1UVFQpKSkZGRn1+v3S5vfJ4fWhy+2RweqLvumqqqqKioru9fzP5faGvOjLy8t5eXkvLy9nquKw0/BSnt6lpaVZWVnw9/ys0e/u7u7n5+c3j9m3t7eAgIBmZmZeXl5DQ0Ps9Pv5+fnM4/WZxuwtidf29vamze52suXc3Nw9k9rOzs67u7vg7vmqz++OwOl5tOXQ0NB8fHx0dHT7/P7k5ORWoN+/v785OTkNDQ2z1PDZ2dnU1NSEhITDw8Oenp7Hx8eYmJhiYmKTw+qioqLC3fO31/GPj4+Ojo6Tk5ORkZHi7/nKFD79AAARiklEQVR42uzZy08aURQG8O8LMpBB0oQIQwISIFFeEx4RFjw2ipIICySxCSsjRGKisnLRbWM3/bPrvcOdgQ5Ta2EhbX8bRy1xzpx7zj13iv/++4fpt+eNXHHciQSDQb/pSw9Th3X8jQLhQTpIN//zRRJ/l9C+n9460b8n3koqwVWaMc0yyyVm7wZ/gX5BoyO2X/10exRHn3vAaTPZavsWQRvDI+y4swKV4DxP4wSWSBTxSiV+ACDe3ctFKAxPsMMu23akuc+AySPxw3C1HWSESiTdeBrM8gmSWkrHrrpT7Xc8ESlMvMba75U0q2o7tfz8adKa9KKj8nRcLBTKEY1MfMJOio9oSYchFJg/NGXoWjAUh6QfdUOPh4fnF8NarWBtTblT7J5PMUq+W0iPlP3XbNT7cjXfNmqJoL/8PEvNhrlhO9rOl8byI4kudk1KtV9YzjXxTVQEEnlCa6wxUWhVgEo3FAqfnTQf6slwPdnI8NVX7Ba7CX+BcFUmOa1ei+sn5shxT3Tel97gohV6CMDRfyqT+9gheo1CkLzHq6Nn8c0EVtxkZC5Ktj4f7p834TYgR9gZpxkKX0ekGPSrsv92rVBNRkLiopsrNby21W6CNewIfUohDE1k6LpIcsySTLGPhuxON4XMQIcnvUgfdkNZNqY+8nwNLBkU10P2raYVSiXERWL/AL8U3ZHcFvmqU8ENmcY5yVocnAKVMtM34B2amUwSb+mxgI9PTojmAVCldnBH2VqjTOITWQW+Ep+zOfyGKhv46O5kXsUUdM/agOQFAAbRonEmlnhjj4/4LT1+9NHxRI72Yj+tyK1HRhbi4TnL4gHoftN/gt804wc/45okNRnOVwoyOfsssgjhhdPTd1S/gY+swVdq7lexIiFalWQm8B7ZjzxKHVEWqeQneQfhgSyp5nWA94hrH/jlVIZkySnegToTZCDt8QTvs/dxZ4srZxHjnmqjPKN2aeX9D9pr+8OegIJ89aCGedP+6RiSNsS7Xe+7O/IvW1w3Dk/hOrbmXG47AXH5nWTbPuzlIOS0lXKs9+vXeFt4zz2OJuHtfg5PkU9bTWww6LeK125UISY4Exd91p3JI29qJA3f/Pjt2vg5VSG24c3IwkuI37Atn0X7LUbUJUMQDO0Tq/JRjOxQTTraOqSRf509sQRc54xYAF4ONPbhwccLbMuYDKIjGm8gxlcyaXN+a8qwH6nuMM8VHatDd7hOT9z/amhnv3xvk1RbutuxrKfNqZvYQ6wG4IKsxeSWekkDh/JZG21VVPyJ8WA99nWqcCmRjMBLS7VIt2eyvMXTjgFEijKxsa4Wk02Jh0iJ3fULdfUnXSL6O4J9oOBZfFGSUaxTIZk9wHb4yRRgpoGquEl2xAoUOWiwCfhHzlYsZXLtvKrdku4V7AA/y1GYwkNNhHTqefTsYiuSpHYK1NKy/HAtp6YZz8UAFUeTi7aboOQLWz0tSOlYBWve+1Z8dg2QtJxhLd3gq6f1nUvW2VbMrM5QKOGFLKAu64OaPJdWMExAClOq2WsrJhJ7G1DBvuANUQqeXahPwe/5HjuFrfBZe020hGeRqROR2RBnsmdUEBtAmlMwdChhxh7V59V2pXjmh55daELpymO64zO24VKzWuTFCAbLog2booCOIHpT/JSV5W0nv7w738AJ9s3hOUVl/WCxTymzpktLJrbhCzmUU8qsa7+JCdBv7UmVqyCWe3EDy94TbIyKtraxlmg5drdPyyW2YE5+lhnulcgbuWzQZU/O7XwZjlYGisKfBlv1atRK0KOkQ1wIYwtK6lHPF+3nnmgsHnC2XZwsv8lgtvKHwUYolEmPweKYyo3roC1tZ2A0VYc9X3T+PA8yhHQf8x3B0qWUiP9RsF8WM8iUwqHHq801lXJGZR+b0w3V1b8sdu4n7vFepXMKZUrJmPxJsJ3FvDzw6EJoU3INFmkqxe28fHpUG2EsYOXQxx6kF5aXZw9LJ1VxBes1K6x+9hSXlJKwuefuyerdKX5s7sW+z9ri4QUMuxvoVopVmpVsPuQKdjSLLksFVp+HWohDNZq4a1pJwDGko7KNs2xWhxRR5VIkm6qga+6tUBq3ViJx0+HoO63nZP2NP1Aod36qiBsKwbL68aZaqoKaYguSUk6/zK9UyhOXmF9+FWxQdxVeemm95l2PXNizvviWtkWhkVQ71qa+cmS321uViI59m6PVDaLIJfnfC1Zls67KRrh2bfZy5HT+pWRQaF6qPX5TT6qnf3KmVi3hClYJj+jIXHsGG9N/Lrz7lYkotW5+SqKwkveLRe/+bn3dQrDq7x46B2QjhoVn9xml3ohQMQO/UbM3XDkpVNWJYkkgaKUQZysDpfXTK5zKDMcCW1jGPVW8fqc1qtEhV4KbPhlzoWAHOwivSMI2sw/tqtkLLSw5sTeX8dJgcWXPW2U1Nm+opd6BTZz7mdrNYFb2+JSa629VsH24rAT3+NPBtoMl3+wOFqJgLE0iE3swf8Smrpxg7cAydpIvElgvnqFUfHOC6rnexhiuDwxUPtXSvbMnES2w9PtNJdWE3XJafsJvXEEKec4tup9C9s1gYxQaD8dKs6galm3kZK5qDxY1CnNntE5jUydqyd45me2UUiak686x95KQzlaC9Zzws1Ts6zpsfqcmA9Zvk+oIcOAcBxLYVIAzdQ6YLv2/eTYMKTN54zj++EawEXoZrfYn1W33F+WRW9qFrjUKcWxK7WpJpxu3+YObs3tNGwrD+CN1UZKWgqSdmx+0HTFqSmtRBrFu4IxuaWG6TsHtwsqwa2kd23AgdLCLdn/4MMnJOcfUMIhrWX43xviRvDnnvB/PG0XLGeZJgZ5SLwoKmWZVf2OlyGJMfpLscSpkz76WZbZqaiAoqRWSngqiGwpNpDq227Lns1KaScUCWIp+xlJft5gN3ocV3OSSonH7DASlkIBFTIgkXae1jox9oQfxS0ZV0fmqf8bU19h0xAdB5CSflisTUNJcOrmBoFR33OhaYddx3j74XpapKzte0bvsa6xm5wWrc7T5FkmNb4z0aW0FhygZ54Ak4wosVKr9xmtA8sAa02af8ZdFT+6+6Rd6iEedgsDHmjiptyx0bgnzXzok7w8GdbjVSJMmOQCkNgCIiSNGNrkCPbzFxNfYd4s0horjhUgJwgeWhEeckO2ApCAok1UyDBNqyczCZtTyDQVy9wGrlUlOsDzyk2V0frZ6HdceU9xseetmY17E6iAo0QLRYDZBsH1Ba2aykuqyd9NrmdzgckqebYEYe5bhUayFsbBauWIcUHu+UdB1kg9PnGsiKHXVhMU5VUuK1oHkqg5As06jS3MguvW4C5+WZd3eyvokG0U6yiWPAJT17GkjMGcZ4vIydE1VLOclyUAuZdI2Hs/Qr/NOFDrTr/dz6aZHaa79PKPu6SisIDDrx7CQmQxOsNevmROBfIHMPJ7NNPyMjQk+4jYRVVVgjRbs3KxVwbBGSv6gxEZ10m8GoeVsinVAdn6c1PgUYdF0Gha9NNH0V0BVkugf39GRH85/UCf+MDA37k+zJBBYMW9UI03UbWrqlC1ZvFRjfkI+jcEqtLvqt935HbajGCMwZiPmWHgOJtRS8qvuKRpf1EI72yvD5daIejGS9ZL1OMAiOsbs9StI1mNlvjedBovzriMEpyuSJBUurJ8Xdzu4X/Q2/jVmJMsocaAoqVcIHUXGwvgqKLfb+wgbg0iUyV/LoIzOTYQNlRnajQQYMkUdYSPSgkvqkMs9tkK3bg0mSxsIPTA08j2EjJoGF2lHAUPyrBnDw/AdOMXy6bI3jlYfyXyszw7xIDz9+u3z7ycfrrFkRoIIl3GfH8vcODrAQ/DsDd4+//geS4Zv3bWKdXCsGbcm7p+TX7h++eI1ls5BFpTSJAkO8UZK67hvfv44vTg5ucDSkftTUHqqJ+Tkhsq+jJCga0NQhoeS93roydBYW1YrrGXj6P/7Nzl/gfKn3XLpVRoIw/Cbd2MaI6HBhbDpotUdMcEIjQm0rtAEWICBIBBMMIRuuBggIHBOSLz8befSKeWo0ZULc54FcKYz833PN9OZ8zJti4cfn+E/5vmrK9snjz68w//L64cvru2fvn2A/5end9by8f8si/9a7p577rnnnn9Jd9/DT/TmDu7waY+7TK5+OzMoxvVfBZniT+Qa0JwO0Kx2+y7+jkkZP1GYT+90GpLsjOF4ni3JQfAmIOktVkgz9KCp+qEVVL4K03I4imsTeD3cWtCEWaMYBAUIjiWSVrWHmhgq+Iyc71neaDlHipIZFjQhmQ9tkiOV0S7wrXAz6EPS0bMssPYHkCz844Pt0CgWi2oRMkUVtIALomVj01oVqMkBXdEWbnwymCGFzV2cFBXhGmLQQUejB1iMCzniIo5L9mRy5HYTkC48Kpb4Rs1nXGgxrhyrELgkiyI39deMGmXkUzFAnUVIalyI0d+hcMgugCxplVriI4IhR/8TJq3suEvmH6xWK2DlM1gDaGxEDZBQ15EEFbbz0/aGnKHKjl5LRmiTHdOBn41sQbpu6wD2oxu0WM4LxnBZyfeiW/I9Ejye9c5hRWXGpRi8OirbOa18t7EgR2qB6nqWMvVmGPANRqSrXzdhIgse5gDsKiQMn3kLxTRpXNI3G7eOdCq087FLBLVeHgq6in16ut6mA/k1WdkybQeKvJCdQ+GyE1cw2T0OdeAu6anPGyjm5EnKQrCzZWtRNEjuyrKdyN7Q6kJx+wWGBm3XhIozIqf4mTVrSzZjl1y8nGsUVUolEexA/w2XkGRZU6nqWrR4TO3UhpGtQVdseNlkZEPVn/yENxxBo37uacXjPCl7+Fm2xCyZ07IrhOzjZ5ak/zmvZD3JeM4Av6DFKWhfyS5Zla+BcpKL9h42H2jZ6YlsqwcY006fEF4rCIJcInuij5gmLZaAB1vKKpZMtnqWHi1zchSw0bO0r2Q3/FQm+0pWDNniVxxbZHgQsppxP04j815Qv+yAEBjxmJb9zg5g8YAmh9iTjlgDV8vWkZFl7pKY0k/LKr4ksr1LKUYsB3RwZjPDMzzuETMmH3SNbMCZOSHf31nZCO/Jg5I9xSfXWTi8QZr+hsxPSKdQ6PVwjCegpHjJpA9MGaZl33Ao16OKLffIim9ga2nZs3zKBkgRO0zvj7YjyCeyDi3EWESbTXgcH8RXIEbHTEgksiF3KPKoZ7mWrat96oDEnkG8DwS4RoyGaWzE0+bcekUIaHbkqFQakeuUbFaEEC6eywAOWRyVsjb76kEbkGXOWXwAspuSnV2/sy5LUKidt6L1jUUcRONQH+gmI1MUh/bq1wdUSWVVpbXeEmNyrNbRbXdsGDK3BQBfuAA5gcI3YdR4TYcxm4tspC/Rkbqch0mHRBZN0rYLqLGTko2uZUN+M/uLIx2nr/Z2g9t8ksZCnsbm7JNrU/6dLG5l0Amy5pYRv2Ag63F2NI2ROfQHtC5HRDRrNGYHm3MpO9OHZ1MHpI08uZYdTjYbRlZtKruHqbl1y315zBnZAYBpkf7lEmwm18+WPWzY6kGnL5Kfq5dhIlQcKbs3srW7srLs2y525gZ/T8LwldtMWUwxnpBVyVw9z7rRzYZmt4h4Q3N216RsrTko0iyYxwWqrJkO2YusaGZBXaal71FuIMK32Fk0m80ILoNFNUt6n5CsgKtW8QbSpo28Ty5z5c8BOYOQtRfLjk321eOanKUsZD3xI3cli5raE2dy861/1teRoUaBHWFHzXcAmS0l/vryxk6TJW7ER2r4FcZv8um6Q4sZaCqUMmWfihMsKir4QsVtPnXkynCuurw6rKr/2hWlvXpvFdkZBGH8AG1KWiJMUzSekxNIzlr3dJp1pKgPa+97QP7oHo9H13Ug6N4MK4M2DPM39aT31wb6mUzmfIBhXcHu0iH39YRyZoeYYUMPq1Y6XxzxnVGcsBefbr+AhHF/PZbFiiD4FO1V3M+1WjPSRRT9b3K6omaWAxz1HWGdmYlbxgRdVXbq6zyoDN0J7rnnv+EHLz6suHHxoPYAAAAASUVORK5CYII=\"","export default __webpack_public_path__ + \"static/media/SEG-Education-Competency.fb33a2b4.png\";","export default __webpack_public_path__ + \"static/media/SEG-Education-Courses.8c4c5bfc.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/SEG-Education-eLearning.da3e1815.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAADJCAMAAADIHbwhAAAAtFBMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////oK74hAAAAO3RSTlMA9/MQjSKIJgOu3PtJ0TCjtO4KlUSdxb5O6pFlW1biFxTnualpYD40fivCURsN1skGgzkfcdluzXZ5miOxhjwAACKiSURBVHja7NzpcqJAFAXgC64ssrghCijuu45Ro573f6+xkWijZtZkajT9/QsRyypP9b1cWuhzzUZ6b5c2lWphI8t2RHYLBUepZNdeObMkQfg9+dFk2Hl1NfyAFFTNnZ4jQfglTT3rqBp+kbaxhuUUCcKPpCbpqoTfZjvZcpEE4a7RzpLxx2ylK8qicGP07RV/bbEbkSCcNXcFfJBFt0WCcLScKBo+kNwpk/DlTYcqfpUmy4GEXzBfi2Xra1t1NPyEPW+b6X3D143VKEU1QGpkDN1v7NOms7HxDqlikPBVldv4IdfcT4xmni5GNqDT2bJp+HtzYeMeS0Trayov8B5JwlGYoyuGDfh0o7nqmhsNN6wBCV9Nv4r3qLs0jtwMXXkJoOn0jhevPher1ldntHGfZK0NahUA2DeZmM2BUsZfD0v1Tts6qZTS+65fHs2IaTVuRqwdMTX9OlIV3CUr3pSI8gsc9ZOhGvj7OaC5Gu7R3LlV7/aLRLQquUjIips9X8Raxj3jRosiCo48bqeDV6+6v3hHusPu6xgHGRzbI+H5rQq4I/iWodgQR0M6GXXNDd6hSTEkyNZuNegq/NGxqIfPblnHHY6fpzc+jip0VKyVNrghqeNOetjwyuXBS47JjMrlSW+dPSivLmJBab83Q+1y0pCEZ6aHuCEdRnSRk1nQiFo9xUaSXOhkvVWzSO8rGl7aCsCESscJcDYXo4fnla/jhpxtEs8CoLZyHRk8WQLSS7pjmXrJDcr9o9VgMEoVo3iVh0oIwN6otoY3YtF6VqMCrsnfUpTQw5Ezvmqa9DRg3WyIr63rHWfjatelsl1f60bZ2ysuIEmXf4+nJDyhNa5J2RYlTV0AmoaLTb2WopYKO0NnxfL6MHZxFizaVqVUKtVLpXRdURZqGAYF65DN1q1QwoXkk/BsZgquqVO6ZiJhnh281UefTpq1b2MZJ6FTGXrlXGp5Kbatge41GruK8xoCcrAphKGNixIJz8VQcaNMV/JpcOzDik4aQIWY0dqREHGdtJ8rcqca3rCzeB2325VDdrft9fTVaqXvSpbVlsGpNkl4Ij5u1SlpuXb5BPjn2LRCqMc/jLfNy7Kz78/oYupVNkEQtLM9fTSja63+VnFxZvdJeBpD3FJbxMtvQ34CYdBFCdBp9/o2oarxJ84mHVWSnbQ/pR+Y6dk53jRIeBIm7vCJ5wc4c4dN4vQBtSKBUdN94ky3Vdbd9/P0CwbZACffSHgGxSruaBNnxL1E3c4owcGJXUmkqthbAPNtk35Zvisj0iHh8U3nuMfgIlLCmd2gpGYHkUIjkbeBAgTrFP2elhKnWmx4eHgZFbywcHPdXwtxZi6vzq5oONKUPvG8DWAa9AcaGpjqjISHNnDBm/cXYOwpxVIKLjbJXL2YYKRSjjjFvQ13W/zToL+Cmb+Q8MBWMngW1a76Z98Gx0sEKCuBCTPEWe5lBD79hRIYVdzfeWArDRwWpzkYt0mR/AExTQIwJk5Djo4D28RqBQQ1+js9MIFI1sNK5kqrEfmJjQbGBjGtogLgEmMsosPmnM1GzzwXtv8B9TkQa9YjS/btKmuUHL7DauBNmJsAsK6vE+c5g9/tYlQhrekjpMaig39cTRWccSqadUayxFTwxiQqANCT2wFZiNqwm29hqwNmij5IBVHpFR7PrACOQkwdjPxCRNMFYrJH1OO/5gMYq0m0AtJ0orsIVvRxvp0+lfBo8u3bG86pEMyBtV82YoWXuERO+MZL8ugoDQyIWZosYh+qcfpcwoOpJC8HI73z0N1PRm4FYE6RLhjnJap+ISxiViqCPn2wHo72JDyUHThbOrHAWERbxCTvnMJuvDIdafEJHuDHb2bm6cPpWrROCg9kAk6XTkaITOgbYoFBzNQGwhYRZeY4Ug06UaJZQ9GC1qPPoAOwxdMdHkjGvpMrWoMpUBqxxYwijbgk6hKO2jM6mUrsaE5FaNDn0AFsxA3ph1F8vZcrqoLZ7hHrUGyMqEnvXu2WarCjugxnRp+FRdkk4UFUEEt0xwYY29FwkqbYAIATDwA0j84sVMkDDvSJJqKBfxw9XGTprAtG03CyS2xc7tLhekf6VMa29+lfew+AeBjuQxjJODPpwgGvS2cLIJiZONq8JBYT2WGv+2R7oCDarEdQvb//uOm+k6uRBnSiXL0WbwrqhD5dHTiQ8N8bIna1EnjgbK9GXqEUXw5yNv9qytQBxBO0/nsDnIU54qTfyRUpOLHyxCv/s+llfgFX/I71P5ev4kwnznKeqIN8j343V2QCPv0bOVfMHP53e5ztiJeR3nmekH7bjjFZYEv/ShmokfAf+87ema4nykMB+CiKCu47WnHBurXua3vu/76+KQOGLMjAED/mad9fttXiI6/JyclJskyzA0I+xOqJStCva6CYPje99PGTgE82VXS5cmMvB0s0iDwPgWLw7IoWC1X4IbGQZkk/AM0Kf9OuC6ar01mgWOpYhadS1/BnNjqx1DV0UfkohpS7s9PV+owrat4o8Fya2IEfQrLL5gjZHchigXe6AuWIQkw6vs91qPoSnk3mpzQrNNk06i6YzoEkjiRyT2fF09J9UeSl1bmR5Qs8nbxm5OGHUGR1JKSkidXAO5o49voUTle3uF6zAf8DS7zBD6HIpp4hVk6nJwkJRwNtTAUo3muCvJZi4hb+F9TUz0LDJIrV8N0GsuCztWxHFI+1EGfgy+44e7ucfjHtlhWImXEGAlCW3anaa02q1UmrsZ92l99bRblikUCOcBHWZ/WFsX7qyKQfFuDD/KPgPe/SWGWaeRChjJRQjJTf1x4PwZ9s/74HOMHo9F6+71L9p4jVQw9dum9zmPHT1TqiWQeComFbLEtWeCq5thgJvBpjOhR4/X3Nwif40MyU0JfVKQvfkmeIlXOvYWqIOBd1kbV3LmVqrhAnjJ4H4b+voA8pVeHESmNIznnn7AyhIe+3MwbQHuzg+/EMsTLosKjYi+jvzNClBARnbeG0hdgC6skq8Owy+ACj+9dibfJgo2aAY1nR8Q/QpnWIxFRbeWlXW5XPxeltfky+qvLFIvWh5s5C1NZUw+RQ5V5QgDNdBdG2X8pSDmowGnGJNWxxh7AQrYIY9/PRv5I8+qawmCVbrieI9UHC9g7iVriyIsOmTPUj1KiQvo/4ChxTDKQ9jEcseKXT7/WFHurfHCA86kNZe0k+Dk++WPkzKWroIHZE04d4YecO9/Y7a3qD7rbwGx3MZhiPWMqgDoSDhiHp5WMSi9BO7lka8sUaoMOrLZYlPJOiyRTLbHb2yHDufXI3nFeEzSgWsWCepS4dGq0cl1iESlKzZfLFstz4PG+L1SLH4HgWE86ZDnIAUPQG+soYJ2G9ImzzsYiV392jqxJGQX+NXSwcHyCRSBcrq3tSoCtEldGicP26cJb0nBtn2qeIOFY8cdrMd9eaYCpxiEVo1jAimdjFSuoyIuliLbz3p4B4opNb43IJXYPIpmez3w/O4LA2+QariSFYxCnWFKNj7cKJ9c+aJV2srXfOpoK4oD+zGxiIWKJX7FjO7Tt7Gqwi0CgahmEWn1gL/Bs69djF0pO4D4BssQ5UBrSCeKGqFwzI2aMbujUoO486xLbOHwVYxsoqFKolgTzbv8288xfmSWnXauGLtpZCP7ZK3GKhqUDikCsWuQ0n96c36mu/gDJVSrM734uwpmSD2Rc+h5XjBTH3h7p7hm8BWW6xiOXvVc06NbMkzs92PyY+cpXqsYqV0J14pYpFkljjkavTgOSw7F/P7ciDGhKWXbGqJOleD2qw0idavA7796xArMKyGER3xu2ozGM0ijvgGE7bkXtDItY/GmZJFqtJj4amrlh9d4csRqwr+YGINUPc80UKNO3j474y/bETiJWBkJzEU4Fr8GFe/SuzVLpNrPzCmlxryKElrjOULJaKNu4CiIErVuceG8y9E3pd/MWBFauHqSW3KRpNJaBYp/oOEINYA+Sp9eER8zbyWFHE2pLj+PkyoRMkDMlinekY4ODEWDOyFffceWBTIfEWEUsxcBJw4m8HRBTQwSwCxCFWOYUcwSdivKQFr4ogVikPd/JvJlJskrbaQ65YcyYEyDoPW6Q+1H6Kes9tkef2XbFeBdPPV/Tgt7ro3UAbdQexiFW/IkutCMEMO8hSykcTi5CvJDvKkivWDW3GawC38bmRXMPnfWGYSoaKmmtB0RXLwvFIVDpIUB+tvl4tAeIR6xNZtqNoQfh1FLnF4rv6ZB5mLVesAnv/rvhht0EkaTkyiBlXb4686PRwwxRaAVn3uf/10y8AMYn1iixWPtprS0OIQSyYUK12wsrrpYql1NiC9gJ+3EP3NqnqU+8FpXrZ042enXvSfXyfNuDHofEOcYk1MpDhM+KxCSUFYhFrjneSd46GVLGa3O4yGezdO7Ipie/39wr4ibe7s8Vq3QviCf3IvUB0sRrIoEY8kOOqQDxigYV3ErdZqlSxVDL4c7hhBeBGndG7cdMNa42KQZUammt7IY8VkE7qPUOsWcT2iphFvIpLrC56aEOikCcWCbHK3o9iBbCiVs9P3Dan6NjmsDPteqyDaPu+2/PFqiJNFcLSJ3F7HGKRQdB9ciNJyBRLMbmvUhZLcExRRaMVV6wGM+m1sgMuFXEJj7vC6hPEaiKNNop2wGZpBPGJBSsk6EtIEjLFKvN3L58yoE9/TBk3stowEahly7fCzS5gkGXu5ItVQAr9ABGYYGkNMYnFN6PJWlohUyySVSC0dfik+6+b06g17z0h+VRfv1r7RmDAM5AuVhlpPiAKSysLsYrVQA9FSBIyxWrds6MEFZtn/OLgnX8rOYJVmELNExSd0ePDBGlbulgNvrpLPsFi9b6nWN4gnWikGojo6d9mTmlyh90wpIjYg4u4id8ixUKaWGThR/h7KF+sFnpI1lIwiWKtTfziwlwvbV+xR7U+6SMoBqKeY/aoqUIFjfofzK705Yr1EqmuTr5YE/TwbYL3snCwUnLzxFTR6By6/Ed3xk1+ix3xII3hJFWsKmKEtkG+WFu8k7SjWSSJRdJ3Z2G0UlPor10RFvx9rqJ5MH1u/hUZCiN5Yo2MKOkN+WJlU98yQTolIRZXKzdhurU+WMhVxyywlqn59HI3ZKm9ShNrgKFm5eSLxb+vxB0zLFGsnjD6OXE919SOvjXk6kSLmDL9AuW6hhzay06OWBn0cg64yvPEqobOuSjlwUVt9HoNdfpWrkNYdrlif/H18szt5TCSKlb27fbrOr1bd+gTmDQDf3tAxNZQR9Ty3Hvzf08vKMBcDGWItY0ySShfrBmGC7Fm+4mBHsbV/SHMrT5ZGnpIb3uDemSxFJp1dgiEo1rS0UFfTdeCMH2siIqVzTpzeFy1Kxpstb+eugYxForQrWYIsa77RgDWC8AwHSV0ly9WBz20grRQNRRw3r/Dn7Dut1FAujKLJtYFU2kvaCzJSytIY1yoZtPONqyEqc0Jm+9qt0higg70rwEzkTyl/jpArDC0AJpRVofKF6uBXg7wiGUB/dArOQiivqihH9tiBLEuyJAigl505Li+s4dRfAqHigv2EzJMUVDcfTgEm/s6Uuvl4hTrEmEdhHyxWn/+ruoZfIiaD0jjGfiITi6sWCdkMMrUOhme2hxcyrZ4feFQsSusVSgDw1FnzeQlFaMXmvGJRd+WPQQjX6wXLWg5CaE5xgC0OfgzmmAA+imcWBdkMO+3fjdBDDCrSVpotv3Wc6JzK7S6KP5XwZ9uCv3ZFuMSi+5GuiAZsVgkKMgfu5kz0rwGVOsE8gGECHs2VeshxMogw/koriIRhyADJBtfESaCRXC7s1+Gbx9wSG95jA/YzuMRiwpb9RzIR7wS+j/qznO7cRuIwqA6RYkSJUq0eu/V6l68/3slJ04skXcAEBQ2J7k/vV6a5QOmYDCoNCoNu9ns43BqM7FsvRZiCXs29fOxwWrDfDmI1cmn+lI0A7VUhSKVuq6LStdLqlXAdCB/W0MDYNWuoc9rwHc33RSkKnGvmjymxgWNO0ClTjHBygBXQ3p7iKivy4V65KFHpY86IuelpM77fXGZvO77YKVHWltN/32wKhL/qMzVwgNukQK1UnMVWPQV91vhmizd1+UCzyz06LMpQYXCBhKsqJV8TNq1d8E6O7Cb34AMgmW7TKDCmGvIZpht0tAoqwYLuVrXXuiINYKW1CxUonMuTcjRA1gS9a5S6+++CVZWfwV6mGtnlKqfjLUxKm8YqQrXUh1WN7R0TSvBaksb77RVj1n4cZw6ZLVyltzOtUgKFivM+rJguPSvg7XicXRLDBZqfI7neHv2suvnV353WSXeRBeS2RE5zdystMjON5dGX2qTESyaK3HJymiaz/YOr7d+Oz4vUqIIwqNL5hBAAlgKzfZcrA+DYNkaS/sKdQyCxS10Rl0H4uTuywSxm90hT7kFO/Kq0fIF38K84sATycHKwHAQg7xPh99Aarl7nddcKqdyIMurWgMdsFB+VUKWwRnrPwoWuB0IxmgD73cEbhYZFmHXHrptYussAQu5qkgS3vOwU1YfhAymc4bEAj3o1/SGyx6AJVM244msoUuDNRo3Fep//W/A4m25IazuGKhmc1GtWTYVgWYeo8NhQwJWWxXNzsjgO3guZz7Bag0pb/IX3arUJdMNPtPQbirw4++15GUzZ+c3gTU1DBZfyrpp/orl398Fa5H8OohVveQKwaqDLZBljtYvVVXjFdT5gTdVoT/nsUgPYBcWK5JaxFwysHCLzt0cWD2DYOEVbzG7U07oS5zDj9DfxmvuVKHByrI2ciUGK1T0uT1ibm1/pFZ0LvSMNU4EFirfII1hIrCwWHW0Y2qdY3lyc/0lnb/UmARlz+GgsDtxj9lCsLZHfxpXGP2Y5bVWlgKrlV7iSAfd4uULL9S/rmkTULjSZYbDFH8wfZ0nHGQnBos14c2ZSTeUNBehQzisNp9rhKsi2sd0kp7xgC0gCnvEgNYxTPCFAmtkQ6Sh3FoQDCRgrRlV9LghwKKB27V4hiXRBqeMRWKwbA0c4FtJtHi35v2c84Txbzt+OXUd6hy0ihtL4KSpvYHPGJ2iWl1G6kYVLARPM471DQcErpy0rm57AJueCCyc7B/GwDprgwXaRXPrTbCE6k40eQdtYU7jmQP4UyqwPmU7nPGcT5zYbPIe5qTzTsaFY75mCTUB/yMpWA+wNkbASg30wUJN6SlrpXPPNt7WXWOjRgeSKAqwbsL7wIxugexg1yDBcsl9MI5DgNzgZWaKrG4SsNAsXGuGwLrWTIDFOmSw1dXp1T0FP33rafTi3KYgmyYFayo2qqji15B4uRUhWOjUBweihnT5xs7x3R0c2yRgwS6dkyGw1swAWHi2ywB+CE1c5c17LjCWujodCAIVWDNpGxmUlQkjsLKIGWv9AxYAZz8I76vzTj+xRYT9QkKwWFm3M2X6o4TyF2sA3QRYhTKRiLK1cm/F0JwH2SlX5zZHNQAr9us7OZxEK7d7fbktwscaC+6zwnkzW8S09hxgS97x38onAQs92eTGeQwhvAmwWJeofWlqIWxHEzMPrQ1vM5gyJWB5rtJdQ6Vu4WGwJhs6uWTEW2Rf+E+D1jvHD7ng1yYDq2umO9agBSbBCFi1PkZ1ZUA4dsIhwASaQiUIC2WmsD9QH6+Gui9ezB6CVRGAteTcqxU8tJ1l+JGOAsjdJQJrYKDbDHpeCxNg4cxc3AFYN6bQMtquMAeoxh/ACwlY6uuVPGWOohLKvEMtDUyBeZbDvHblDcsDOwKTgYVx8NxEoXGrZgQsNEVnSJyrwYqSmXkDrI0MLLWXOrCF0U765273R6oeq0RH9Ce2bcGs3RGme/Rt2K/EYPWMdPRrwrxnCCwfXe07xPdaYH3CnRoDS+0FlEKxBFZY9IjqhotgVd/9/vESImNf4tIcV9Pql8ZxEnVjPUg/DFjChzmwVg6YorJWu8MvqSkM3jSFKOukiAYEaDW/mSDqsbqCxmUD76/H3/X5J5QWLMkJc7O0+8pkkG8ALPBu4RsnO5WuZBAsCz7sXesxM9H82lLraedQRwJgoQMvVYFG65uOs4cVpL7I5N+/Le+Me5E/WQXDU1t06gfrmZySyDdkCpmb9IAmnFbgxk2bwgVkNiZaPmQ1GvaPhjrpBmuLYKEC5eM/N1JAyFnm3KXe7hf9aNXvOC4XXcv2huFLpMBVjWkK2+ZOpuCbRBMW/mnzzjt3of5zzxS6RhOkH6YTpIey/hlXHweB31/lvESdYNimbc392xFxttG5Yh4GS8Pd2YBXkwAsRBSLx/QvsDAIVgYKxsIZTu+ss9j3gBl6prMqu2YEWPtCHiv+1VoAWv3at6HuUIVXDYbq/LOGnomyXOYZ2QrGg8VutDJNDhZOWeUh09IBNtQZA6tQhDyW3mLfDBahj6FLTnTSfHUKrAWWYThzhlLvxfa/H+6T+j5jwbre/G9v/RRJfTVln9iOT4Nv9LzCdSFpDgsiY6NLOlWYhJRrOhX0kaoaZTM9ZdlM6gwBEF6V1snDYDrr4BO1BUsEw9Q/4+qDN6OeqSuZhjzRzAHFH6ms2RNWA82zCsFemALrTmUfq/E90a2F6dCphtkac9wFgbt0cJ9j88hiaGGhb3rgVar0p0WxEPx85kbYpu9G/CLLB/Xifs4i0wMLJ/yIDmmNsxTgpo2BlSPDiqU6iqVH6idRGbIXMU38KhOClW9BUW8cTbEm5BffH6lXnKdez88wHlrWIOyaHqAVkjovjBsCGppgqVfeiy6LJT8FDa1MgQW+i5emshtelqHonakuVRo1jV2z8UWDBeNLfNm0X5NULFe/nULrTD2FTzsKo90/8DUitvAk22Ppx1wpn+mCpe7d4nR1FoSeWpgD6yaaBcZxUQ7AwON1vXzMwm1nRYMFGX7Rt6t1rtFYYwI+ddbB9dq9IEOat55/JsNL4bjwUxLE4LoR3RPD274L1u7KQQ21n/BJ5I9NgTWcCPeUdWP+zQwYaWoj9SHmmcYVeRujCXYhCWm4HGE32gkEncc9un1VUXKs/JI62HuF0JgoFiAZpox5jgcwP7pg4UtEjXxFjmiNpUUFQ2DlMylJRFHG9rVqD+0O40GeKp9bMBfLwCqUo35q6CiJTIr6LgEOkDYydBHVYWRe8iVu6P9lHd6TBmi5OMfOb5KBpe5wZ29l/wM+PZiVJBtWj8P8JnfgKB8ssPxh2xBViBbeD9RjbiwY41KwmJsSbrFdVRxyIfVsYYDaxSnUh6nu+R5a6ec83gs5N7Z8r0JDva/wwAyAxTJ0tX9WtJR65ahu0q7Jk8rkT1UqwSEoe5xUA73qp+4uJInuUIMnHkWpDhjiRvRX8iqwWFdw0mR27Ajql3NEbDHkVhpyS7D49DTq/stIyoZAcuUb0K7zSCgAL75DgWW7Hyr1XHTgURUfLcXwduWEloZ7kIqr0/MwW9qvt3n0xxzAkIHJ97Mhe2qVsQCSJF2TS9RkkZrRbbquP+bRp6LTDRm2hmaQ+yFkZduR1Ako2Pz48IPZnajkAbBiqgIWltSo/nF++Whup2qp5hTzYJWUWxOKjY7v/qnSlOr12FW1NklVHx+LlbuadzN3DpowNVjI62hLtU3i5ctitTpdyvSw7KD3nhGZoG7I9ayNXn7pI1pH+oujvKD+uN0u9YBix08GFpJQG3ORrLLdftwu02Wj2o+BqXmwprh3RUu/wDvRUn8YC6xdMWqij1BUBoJsBrmjix9EvX9ebsB9TRIdIhZk0Nd9ZQbAguhXX2P2G8HKYWQ81rq5AkZaGvJWMY888elXnNPq63x3CnjAMr2ow+xwEe2H477MZt7gjcFU3hkDC4PS5Ncy3IP0f3GAwM9iAaRCdnsdH3KKWeaKyMmaRRZnby8FrOvoe/vFJcIA3yRYOJD1m4SaB2sq7TOgVnAkw+BEXCFYaKIxF3TS6ViYxcTcTZStG7Yi0V8ueNkTmdqGZ/lAx6c1CxYrwVX0Pr15sFo+o3Ws6sQoiQdRf8U0wDoeoref/yZDw9Yf1lSDziajVI8S99l+icYyEQyLPKZmzDRYbLDmGoKuw8bBqg6kh76r9ZD0sDNyrFxY51bUWanB8ypii24K/KlA1BvKh/Lsrx/QXMh+Dfe6HV+Tg4W6WVxLdpr9NrDKJSbTxuMK7U9MrGyTK2TdtM+E3kCqAteR5CsHu2IPZldh6VgTatiX3ae1t6Oms8nVap2YCbBQ5yqPrxG8BGNgOeMNUyjdkLtHDybXVE6mfU5wiv0XHXvMHBG8M/DVx7gNTrRJo4O2/vbx0/oCXP5aRR1Cp5khsFD+nseTk6uZaBGASu0n0zOLIVeSfWsPmEq7XEr8hheMUl7VqtKm10bOAR1aZLFoGQstA1FrnPQo6qOz2mn3k3LAvXg9OSfWlDFzYKF6f7R3pz1qQlEYgF9HZVFABK0oroO4bxRHHc///19NW5vWDvcibWmH5jxfjSYmN3o42zUpXb0d4xddSrVku47uLvqtDB+s9rqUwDyO8YjyaUcJuq6FZJvdsPbNxIzxxmjfrf3g5Wl3O+De+cFrmO1B0lSIgSRRwgOjhhs7oc42utZJpO6O8PsHK4BMKyiRVG2xwfuw9ZQPd99+GJwsPG5+sSf3lY6o5eDPcRzczJV9nb6pm8ocicIgacihLdi8L1nNqSa2Xqpuk5I0E3sOnMaznklnCrmRbwsP67BtaHhPyvPBadHrucrFb1UPyOqgGv6l0uv1Xqdra4scbQz/tddzF1NjA5FtI34Tdwn7Pl3ZeKSfnKZwQr1L9yZBf4u/pryudIZ1ulPa2a/WASxHlzCpXuiJbqE5Q6ghajrZzsOevt+Zprnb6xV/7uBvc9RWuFCutq7rvcqlP4vB8ra5HBKW3OpIdJXNRjlDaoGxm8EyYWbpqYok6hN9gFCLJg4Y+0o1kvaxHoVJwT6ETqSDsZvYSTg+pnAu3oRYmyIwJrvRzxPW030IaXtagzERV5x6PFNtC6Fyl+ZgTLI50RLOhSrSd3bHYEzAFXdUXuUX7M2otgVjoihLuLZpXCMbEmtava9KCXtPIqJIvJ8llJ+sDorH6fsbAPEGn6llsFyUh+KL9ALqxpDw6BlFM65RnQwgbOAznR9u83IiisTr8wKk/BuiYKJmWd0PgAuNAFg0BcuHdqYnVbxccYD/K86q7L+FACcAV6qA5cQjcsURWHcDmTm9FCtKUZvmDAACMm+Lf1leAsnWxFVaGFV96harN6Xcq+8P0GrTs49KPfzA2bjcbJqkQyCekAIpx6QZCmU0tDEqxSfbqV+1LhcQ8nMiWksWMxqQa9ARReF8LAOXJrzh4bDqUBX7ECw3HckO8Sl1VciFFKAgtFIb6KwQmUBEAaBzkJUjq0QLiCi0R4plc1iUQGtA51ozht4B1LoB9Gpg+TkSWZLgPkAKLShMQki9RmVg0AK0WRmwfLAc6bK64IoUpPFoVay8A/srRk0KITLe0QlptnqJ42D2hieaq7jtzBog1XryoQrG7i2oA6G4SwZSaUpN4fEd9hObFhCqTshDujjYcTDM7o2GNJOerBke8NF+HoCxHyypuYFQ+YXWeMSsoffB2KONe1qHBnjIzHX7nHtg300pgsTjWVD1VZmqYOxGoVD+soIHbQfR0eCfLXbTIAsSfdLxsGr/2P/I7U7si2eqysvVL+Ms66q8tWGNObfFgNVkCwlnRTNk4Gys1nvZ/8n+qfMQUgt6BWPZ7U1IzScdjsrZL9ivIKVdJx4Yy+zZhlzLvPKPFsuuYSOF0uHhdJadomuQW+oud1+xzPz2GCnWbZ83ZLGsjMoGKZxw0SrY6gb276nHJdKM+74FxjIZ9y2kGnszvquGZTT7iHQOlwJZVsslGHvrE4OwYceyQ4JyAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAB+CAMAAADP0p/sAAAAq1BMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Nr6iZAAAAOHRSTlMABcLhhlMcFkMQtCBuc1dJ+2go93fMkC0I2sfv5ap8uZg33YFN82EkDNavnIvRpFw9lew0vaAx6UBT/+UAABpzSURBVHja7N3pcqJAFAXgIy4sbigR9yW4g+ISjef9n2yGRhCSOKOTqZpJ7O9HKpRWpUxO3b70QvDHFs1JaeUbytr5KbvsHPq7wWZbgCT9qcxz6diY8iNm1sjlZbqk+zXLRpe/sdzlF5Ckm72sHN7GGs50SNINCgOH9zCNKiTpN7ZDfmjaWzc6uwa7neXJ5BungSxb0q9Ulnxn6Q0q27meAaBa0wKQUZvaLOcuTSYci5Ckj1UcpkwbJukjVmAvg4TizN8z5spoSR+pZplkHWawSQMxtceyNrZHnused/agpqlB2Cp9i2dHFZKUVu8wabhZADOykUFgoZWPnSlNk2lWZ1x91Wp+l6EBJCkhs2OC8yRKj0b2dCCj5ToWL6bZZUf5qbPsmQyYxnjgrcPvs1tIUkQ78eKgQdB77KqoxNWI1tofbLZ1/c2Kz1O/S+7XjazJwDEDSRJ2vDDqOHPJY3nKUONAJYPYol6tjVeet7OfSrPKZjbod9pRAE+yaEmBuvNRrFAjTYvCOtdEgwUIzdmxTWHvKH3f81zlMOz3XWN9shjKQZJmvHhC7NVkqD0oAhhzA2BeUkSXZYzzc9GavU5mtVqtlLP9oe8fjT1DHTlf+vB2vFAQ0UcUzOMzAi8cYZ7LksyutAUC8/LR7XvjWv65qGcgtOr5kcNA9wXSI8scmPCMszGFfbxSo7A8JKnMVAgVd93ol18yeO91dSLJDaTHpS6ZsEOosmegW0oPl05NP0fH3TtHDdeVTTGsSo9q3mPo1AiCpCJQUCiMEJm7JN2XKGRZ86Dh1woNkjakx9ScMmQ9H+NZ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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAABGCAMAAAAn+xosAAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAOnRSTlMAU/35KASKyqHFz5zn3PALgGwT9JY7NtlwJUmFWTHrGrZArqpfv7qyTQgsF+R64HVoRJEh1B0QpWTRVWDAIQAAEsRJREFUeNrkmdmamkAQhQtQkKCIII6Aivu+x23q/R8sUZMRqjdmki83+S9nhG67Tp2qakHOuTXeNCsz+8F01Exugwj+AeVl3D5W+vadydAx94MS/Fd8nyfO1LYse3I9tgcp/FUWy7hhOveoWrbdd5JxS73A6rBp9m3LmkyGzU38Hf6A1v5qGcigfxvdlsBnaZpJe9/QtEM4WEalDFEpHIRhrGm3RhKpFm7PashwGjZCUFFKxvNBN3qs2Arjn6t5ZvKkPZ53L8Bn7nXi8PFY1B3Mx0kLxDR22iEsRY8VBto+OcNvNt5YG4TL6PGfuNM25yDhsJt3o+hniPesqnaT/MG70/YZWLre728bLcO442mg5jJP+lukBLYzlqSuf+u7mMWwveXXHGN+fEMJFv+989ziegZDxw+kW+om7yjk7TgAKfPXygay9L4dtTqwOM/HPp4ag5iH5vXXZ1/xMPGB8bG2XgYx6/tHDc5i3Qpv68E1BMqebLsJCtJ9v4cidEuQUKnpIodZDGqo8dRQybSzYL0GC7BdgBBtigq+7XyZLFFJ1WSTf4N5ZPLtk4D7Wc0RGtIUeDKEHPUjinB85h15NiAlHgWowGqwpr5zUUD/c641uGIxahufViId1byJZWVhAareRVwKsQCBB4Q25umCmCsxwXImckwOgRAbn+ir/OHLUrrXIZHCPHuQoNlYhGri58uy7DF9B4XpDrE4PSKttJAeBQWiNWUUUDtNTtsAKeub0OsNLEKf1MMxOa8IxDhkL3m1EIgSON6eQJabYt/yAjEGCnu4as457booYw0F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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAABsCAMAAACBzDx8AAAArlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8tivQqAAAAOXRSTlMA+yEaXPhM3pAWq2dRu8V7a9XPLQ3AYlcmOxJICsq2hy/wsXDilUMGpvQ0dz9+6J2LN+2D2SqYoXRZ8WLqAAAZy0lEQVR42uzaXV+iQBgF8IOQGCApipoKLUKKloj5kuf7f7GVQc3d2la79fnfDdfnN4d5ZnAtfWm8LEa+ZyZmkjSDMH2yq5UJhPi5WePd0/iFpL6q3kOI690b7ya/M/VfZhDiKo415QW8+QZCXKiXm/xsGiW+xujvwIUOhLjA0vo7UWEeO7PNfRs2d8N2pVVt5KHJk2ZjCCGuiVUS3jHq4aBKAx82tpWxlOzkmCi+00v5IUu72JItlCoGo51VdwNzHbjhNh5v9FZ1FVAxOxDiX+Yaj+7S7hB4IV8B9Afz0ZqfafXVbr5osuAuIcRXBk0erR/0svs4wCYOI5YyP83jTvVx1ur1fj06u4WnMfPqrjnlXk36UHyhxqPAgNLXGA58Kh5p9IY40mfjarXrGMYuH7n19bSM4yOE+FPL44HXxYFPvrHQzFtdlp97xqI5JbVs7aZpukitxfPI9RKNygOEOGfwyMPRnIqZLwFoFqB3QpJaUDN0AL1B1+50Gg9Ptdr8qRZQCWXyIM7kPOmhVA3O55+jt4nhFUu7gr1No7bNHzrj2T0O+stdXSNptiDEgcWTGpRZyMLiF5QNk4h8f0VhvKiPckfHJ5XYJLUBhCgMXZYiMkJhkrOQblAaJKRnqJZrz103f8Q/TGokDQgBtJtUgkZE2ipHJgsuSgOXTJco9Ldrv4PvOBHZgBDHXIV4IpPT3GFKblDYjEj6UJ4zf4z/qASkDXHrJk0qz+iTNMpgkC8hw+PRMIypus9+8wa4wDspFzw3z6USq43qDRhMSUaviNSGNfPIBkYRAD3QYlxmRVYh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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAABQCAMAAADydPuqAAAAqFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8j1z1tAAAAN3RSTlMAGazn/coLXvHYLEXT9OMVA1U4QDQf358S7iTED9xPB/hldHpTaj2Bpb6Kls6bspG4b0vrWSip8dPEZwAAEI1JREFUeNrsm+eamzoQQAdTXXAF90JZGxv3Ou//Zjfs2paEMIgsN7m58fmTfF+IGA1HM2bWC13FeIFTbsCbNz/JAF9yluDNm+LFkt9i/YEMLx9ftE5NyMNbrDdp+KTjaJCHt1hv0ji+xXoT8ReKVdSHd+uiwV9K41KBfwHbbfznxbqPGwaGgncUY1DguEHyVOz24W9kNi2ZqEPRjPWDg8P/vFjjL8Du4p2uNBt/8v24GlEOEGt/YcWaVdd1/EELCkWbLg1E/APEejCe4J3yDIrhuov67N8pVhCd08LFGm9lRPyzxOo/K9akqHguiH+rWNoE/w2xLMS3WACtt1gFi1VRssXy3mL9j9HKv02sVnmjflI7/Pq0z6xORXuLRfH/Ees3Miw5iOj07LdYT95ifR8Xcad/6DtU9LdYD95ifZs5lm2IkGrovsW68xbru1SwBifl62mfcfgdsZqfwEtOeGczE1xvNh5rZMVsmlpf7Ppo5Rm5UHDtMdleLFBtPE69b7OGd6YgymeIzV8lVlOjM1LAE19iG3zleJqbZahiKCrWTHrwte6wFe7UiFEp1C1WnIb0yczFO+WhJlE0hmOII1WP64NaNs26qpb2bpu5YizF+Lyf5e1U2Tyr6uF2IgESHkH1T/5yVDaN8mi3n7fJ5tLWbvu7zfnH2ptVzwIabeFGGz+bxkY9rL2qBAyaLUX07QnecdnAbBsI1KrHKESzPFJvod7pQ3KQzc5TrHZsWYl/Uo1X2tjToDdS69EWdmt3MX7hOcnI43+VRmpEKXQXGne5UYvGwhpAiADds6hYVXMgRxiTK0DjuHKQ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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAABWCAMAAAAkLRi3AAAArlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8tivQqAAAAOXRSTlMAQckl84HuCQe19+YQDHEEwmz7VIrgpKnqeykYnkXNL4/bIXRnT8ZKNZlers9Z0zrXlGIUvRx3hblx0eODAAAb3ElEQVR42uyc6ZqiOBRAL4rggqLgQrmhguWCiIpb3v/FplDITcAFSme+7m88/6JlSO49ZINuiJgXIkz4M/ALIac5/AJhWx//8O20CwUPeLxT4TZ5+CX2OKR+gL8Puaf08j9M4DnVWuFK04U06KvhhdVwBn8Gk6hFaxeyM9+OyQXRWA1rwLNcD2/jwS85kRAtD38fXVu3A1cseI5fCvOy2UIaLBJhw59Bl0QcITOWSBjqwPNF7jCF34E1Vibw90Fbr8JTeiJGNQ0NErGEPwMUqwFZcQmHk7iL7jD7f4q1iBqfRqwWCSn9/8TypY9YWeh/xErHkfzXYhVIiPQXrrGK9Y9Y6TgTimSUCfn+iPUIefURKxXyhoSUa92up9f0f12svDu94M6q8NdRNSKx4L8TS5V9v6r+ssG+X0xmXVGKkKSo+L4iq9nFkhU/XmGV9r3/bAts7Bnq9fmNPigqvMRP+2JdxRbfRsbvb/RWvlXKlrMi/7uqRq60klX95NCX1XeLdZiO6htR3Hz33S5QpsfahaMelDzrWrJqBwDwG9a14EOv8PPTPoBy/ahmNXxQlp2VKA07ywMwTKan0rAiitK63m/MM4ilCl/OUBKNnFPzAJHHJKTwTKwOxOlaYe9cgEmttBEr3wtXvqTjpyO0J1f0Y1A8TmB+DL+yA4vmFg2Q0K6IkgsU7+gMjZ8QOJaA6TKPeM187bwWK7m+HrolXL+zrAnAdLEWxWF/CgF+EEtx3Vny3vb05j7IWb2/w5yptkWTpLr9nCSuHSt/+fOG1RjRedyKshqgCAWnPhaDutqWUH2f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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAACACAMAAADgSueFAAACxFBMVEUAAAD////////9/f3////////////////////t7u7////////////o6er////o6er////o6er////////////o6ero6er////////////////W1tbW1tb////a2tr////////////////////////////////Z2dn////////////z8/PT09Po6er////////////////u7u/////T09P////o6ere39/////////6+/vv7+/////////8/Pz////////Z2dn////////////b29zu7u/////////////////////Z2dn////////////////////////////f3+D////T09Po6erp6uvU1NT////////////////o6er////////o6erp6uv////////////////////Y2Nj////////////////o6er////X19f////////W1tbo6er////W1tbT09P////V1dX////////Z2dn////T09PZ2dno6erT09P////////////T09Po6erT09P////p6uv////////////////V1dXy8vLT09Po6er////o6er////////o6erV1dXV1dXW1tbo6er6+vvZ2dnp6uvp6uvo6er////U1NTo6erZ2dno6era2tr////Z2dn////o6er////o6erW1tbZ2dnT09Po6er////Z2dnp6uv////////T09PX19f////////o6erV1dXo6er////o6erZ2dnT09Pa2trZ2dno6ero6erV1dXZ2dnZ2dno6ero6ero6ero6ero6erW1tb////o6er////o6ero6ero6erV1dXo6ero6erZ2dn////o6ero6ero6erZ2dno6erZ2dnZ2dn////o6erT09PZ2dnp6uvY2Njq7O3S0tLX19fn6Onk5eXh4uLb29ze39/XG2GHAAAA3nRSTlMAaH4ImWJAzkwBFuo+IBzj89rYv+azpyEkqoInAYMf+S0T/fvoWlezS+8LBqc+GcekKwXWs9GKFuLbDw54RxH28uOTiUIMA8uNhkT09N+xnpByUjsbFPTy56x7dWpeOjYzKvfk07y1oV9PLicX7rmBW1ROMTAs5KhA8eza2cmqnok4Hhva07+srKZv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\"","export default __webpack_public_path__ + \"static/media/SEG-Library-Seismic-Soundoff-logo.1160afd3.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAABkCAMAAABtn74RAAAAmVBMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VHQRUAAAAMnRSTlMAC1Faarbvovp37GQZCMf10EgbFZCHpZkqIzixqDEDVuvkcNVBJ9+z6B0Obb9+2cytlWltTm4AAAhcSURBVHja7d3peppAFIDhA7gTVFyiYtCouCFu5/4vrm0oHcwAM0kYFHu+nz6oZ+CNfYoJgGyX2iqssYT/plEnWvSQPdhfLVZhNQ9KVXw5D1MXox5oKNVVMarOHtzjv3QoVQFGvcLDRLCieo2ywoov52EiWAQrjGARLIL1oBGshAgWwSJYDxrBSohgESyC9aA92XmsQmCN5y786XgZZfS2LhyWf30dhV0cKD7xkfCbx2bYcAJ3yNymHqz7w7I7uEOcA8AJM7MLh/XSwCgTvlPZfsS/2ium5d19OYcPHUc8AqwwM69wWP0ORhnw5QjWPZczRlOfbgbgoUewCFZ+bQNodHUMoNomWAQrv3YVwKqPVTDeCRbByhGWAQvEAGBOsAhWjnVHgIMDOnDdECyClV9mo3+6Ak4BmwSLYOVYgA4AeHj+znmsI3zuaWFdngvWVv1yttgOAgwA4Hquhr1tMKo23VbD2i4Pa+oZ//J8SO3FNmLpEwWwNM+INXdnkNDeND7l9aWmntvdpCOhGdELmj326LhisKRWbTlzg8+cW9KwdpfwOLGDJb8cLs0xEjL1GXCtdSOW3YdYbj14deCmAUa1ga+LyQU2JGZwT9g0rXxhOdUG3lYbTYBL/8HU8t8VHpEls+rxWweT20vDuoAgU7AclntpYGI1H27zjwv8VHsOfPKw0gr6wDXeYEIdO0dY1hSTOmbCYrUTpl6fkEv2txuamFZHB74rptV4kYa1hczGTIAIVh3Tamlw0zwR4GqvABbW1vApG1Nq5garv8HktnKwsDNOmDoXWGLs1hnVw9IRJWH5K5SFNcSUHAWwsPVpXziYmpkTLOuEab1K7uBa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\"","export default __webpack_public_path__ + \"static/media/SEG-Library-logo.892c397d.png\";","export default __webpack_public_path__ + \"static/media/SEG-Wiki-logo.ffc1bee5.png\";","export default \"data:image/jpeg;base64,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\"","export default __webpack_public_path__ + \"static/media/Seera-Thumb-1.278d11d0.png\";","export default __webpack_public_path__ + \"static/media/Seera-Thumb-2.22f803e1.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/Substrates.cb85c513.svg\";","export default \"data:image/jpeg;base64,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\"","export default __webpack_public_path__ + \"static/media/Susan-Nash.f300cced.png\";","export default __webpack_public_path__ + \"static/media/TASKcubes-logo.1302b197.jpg\";","export default __webpack_public_path__ + \"static/media/Welcome.d9770fff.jpg\";","export default __webpack_public_path__ + \"static/media/Welcome.88384eb5.mp4\";","export default __webpack_public_path__ + \"static/media/XWidget.3d086f35.svg\";","export default __webpack_public_path__ + \"static/media/Xrathus-Bichronous-Process-diagram.9325b304.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAogAAACmCAMAAABuro7nAAABs1BMVEUAAAD////////////////////////////////////////////////////////////////////////////+/v/////////X8Pv///////+ui83///9px+5xwy3SpxVxwy3SpxVpx+6ui83///////9/yUL///+O1fOHzE3s2p3////////////8/vv1+/D///////95xzn////ixmn////8+/3///////////+3mNPXxeb///////////////////////////////////////////+6ndX////////SpxX////dzur///////////9xwy37/fiui83SpxX////SpxX///+ui81xwy1px+6ui83SpxXlzXn////////4/PTVrCLp04qA0PGG0vGMz1XFrNz27tD////////7+O3M7Pn///////+k2Hhpx+5xwy2xkM/28vppx+7///////9px+5px+5xwy3///+Z1Gn07vj49+jSpxXk9fzs4/Nxwy3u3aKl2XqC0PHczenQ7fppx+6/o9dpx+6ui83SpxXSpxX///9px+6ui83SpxVxwy3TqBiwjs59Ut9qAAAAinRSTlMA4PCQQHCAEKBgAdHA+fMv+1D37OkgBc4JHKDloHBwQEAQECmX9iPk7890ZRbp28mG+trapuRZQgvz0r61S0bWzYvDsHg87rqUgDPPajcl8eS+t6yXfVs3FwoH1W0T3vvS7unp4M+cXtrOU+7a00791XgNVYjcWw/c09Pk0cegb9XPzcW1q4BrOCBxG/A1AAARNUlEQVR42uzbrU4DURCG4SqqQFCSMRgUjoRwM7WEVCJIiiEYEoLoSdtbhlVf6Onu2c6smMD7XsMjzs/MbLKuS9XNjGhcQKQ/FhApRUCkFAGRUgREShEQKUVApBQBkVIEREoREClFQKQUAZFSBERKERApRUCkFAGRpmy+GdXVx/J0iGvbjOpsRv+++TiHj+V1eSrEdSkGRIpArB0WSWxAlMOfDIgUgFg7lMQWRDnsMiBSGKIcSmIbohx2GRApDFEOJbENUQ67DIgUhyiHktiG+FWKMiBSBKIcquflGIgv5VcGRIpBlENJbECUQ2VAJCdEOawkNiDKoTIgkg+iHNYSeyHK4WEGRPJBlMNa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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAogAAACmCAMAAABuro7nAAABmFBMVEUAAABRKINRKINRKINRKINRKINRKINRKINRKINRKINRKINSKYNRKINRKINRKINRKINRKINRKINRKINRKINRKINRKYNRKINRKINXUqBRKINRKoJpx+6ui81RKINxwy3SpxVxwy1px+6ui83SpxVRKINRKINRKINRKINRKINRKINRKINRKINsqzpjoNSHXVVRKINvujJRKINUNHykejxRKINUK4Z/WaijgMVRKINRKINRKINRKINRKINRKINRKIOgfMJRKIPSpxV4UqJxwy1px+6ui83SpxXSpxWui81xwy1xwy2ui83SpxVutjRTL3+bcURtsTeRZ0zLoRr9/P5mj0pcM3mriMthPI9lr95kqNlyUZtrpT5cNIxrQm3EttVRKINZXqhRKINpx+7////29PmSbbebhLhpx+5px+5px+759/uok8GXc7tWRpjSpxVimM5TMX1xZqJnP5ViP4yfdUFlikxlrNzDtNObd75xwy1xwy1/VVyNY1Cui83SpxXSpxXSpxVRKINpx+7SpxWui81xwy3///9pxe2Y0GWMAAAAgXRSTlMA4PCQQIBwEKBgwen7BDDQ8x9QCvfud8rOGuWhoJZwcEAQEEBlOK5sFIYkpu7kz1r6RtraueTS80vWK9qLVSfutIDP8de+t5dbUzcKB/ff1fPS++7b2f727unp6dXPzpzO3RX93t7VeIcc49Pk0OTf3c/H59nVz86rppp0bGtKOCAjVLLCAAAQk0lEQVR42uzbvUpDQRCG4TSSQguLBAasvABB9Ba8BUGQNDYmhWhlnw3B2/YH4cNs1j2ZOcWg71ue+inO7s5MRuusVJ1PiIYFRPpjAZFSBERKERApRUCkFAGRUgREShEQKUVApBQBkVIEREoREClFQKQUAZFSBERKERBpzKbrQR2/rg6HuLT1oI4m9O+bDnN4V25Wh0JclmJApAjE2mGRxA5EOfzIgEgBiLVDSexAlMOvDIgUhiiHktiBKIffGRApCFEOJXEgxKW+GhApBFEOJfGhA1EOlQGRohDlUBL7EB/LjwyIFIMoh5LYgSiHyoBITohyWEnsQJRDZUAkH0Q5rCU2IcrhbgZE8kGUw1piC6IcVhkQyQdRDmuJDYhyWGdAJB/Ep7fSlNiAKIdVz0Ck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\"","export default __webpack_public_path__ + \"static/media/bg-About-Us.332ee573.jpg\";","export default __webpack_public_path__ + \"static/media/bg-Hex-Gradient-Hub.bb5bbd86.jpg\";","export default __webpack_public_path__ + \"static/media/bg-Hex-Gradient-White.4c6caecc.jpg\";","export default __webpack_public_path__ + \"static/media/bg-Join.dcf171ba.jpg\";","export default __webpack_public_path__ + \"static/media/bg-Login.eca53aeb.png\";","export default __webpack_public_path__ + \"static/media/bg-Personas.d07a00f3.jpg\";","export default __webpack_public_path__ + \"static/media/bg-Welcome.b491e1a8.jpg\";","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/bg-value-Advancements.5d530ea1.jpg\";","export default __webpack_public_path__ + \"static/media/bg-value-Collaboration.aef9b542.jpg\";","export default __webpack_public_path__ + \"static/media/bg-value-Economies.9e0db7f9.jpg\";","export default __webpack_public_path__ + \"static/media/bg-value-Efficiencies.bac16b9e.jpg\";","export default __webpack_public_path__ + \"static/media/bg-value-Opportunities.b50a9ad9.jpg\";","export default __webpack_public_path__ + \"static/media/icon-Connect-Blogosphere.2e288462.svg\";","export default __webpack_public_path__ + \"static/media/icon-Connect-Collaboration.5ca274d8.svg\";","export default __webpack_public_path__ + \"static/media/icon-Connect-Knowledgebase.b33b80f5.svg\";","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/icon-Hub-Analytics.5e8ca57d.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Challenges.5eaf0fd4.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Files.c5e0990d.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Models.2779c053.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Overview.52a78ade.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Pipeline.9385febe.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Projects.5d0de818.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Publish.0cf2f479.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Review.98203029.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Sharing.115ac19e.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Toolbox.ee74d353.svg\";","export default __webpack_public_path__ + \"static/media/icon-Hub-Workflow.a26320f8.svg\";","export default __webpack_public_path__ + \"static/media/icon-Marketplace-Solutions.5d1ad9a6.svg\";","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAMAAAC3Ycb+AAAAS1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////+DmQsHAAAAGHRSTlMALGO6nTrx1UiPVuOBcqvHEM9AUN+vcCCi8QYcAAALrUlEQVR42uzbS26EMBBF0cIgJM/84VP7X2mUSFGipqPQNOA3uGcLV9guDLZXWWKfHQfkPi4l2XlSjaR4W441nVIjzI6TzOHdJmVwnGoodlxgpbpADkdzTI5LTEeSlN5xmb7YaxJ7x8WGZC+oo+NiY7W9UnTcICbbZeVsdZO82g4dy9Vtxs7+FRw3CvQQE+ghJtBDTKCHmD+LdI4mOntq5bzbyLjaE4l5sJmcbIv3JQ1F26iOhqo9SGwgTY2Pixb3Hy1tF63iaKzYb9zXNtczoosJ9oPvSwRMPCBign1jRpeQOWKJKcwgWgb7khwiElu6lmCf+P9DxsyKJSbx3l1L5WJKS2Qq1JLZQsQwposptjiELOzpWiJ3hVp6DllasjmkEEQMQcQQRAxBxBBEDEHEEEQMQcQQRAxBxBBEDEHEEEQMQcQQRAxBxBBEDEHEEEQMQcQQRAxBxBBEDEHEEEQMQcQQRAxBxBBEDEHEEOSDvXtdTxSGojC8VkgCEg5/9/1f6czUtjggBbTA3prvAmx5XsmJVpWVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZSVQZT1diCp9N67jy7e96Uo651AUtfUJP6LrFqvSeVtQIomEDORrZrPk34PkL4h8ZF6k3cA8RWxIoZLlE3FNmaQzflArI1NlPV51iKSQXbh2E7iA9GJZJAtFYHYWvCrXrkiwCiSQdYXHfFArMqVs1Ijf7MEEuXMuoAH40V+KH4Ng7zC2QFJTHJeLfFwrKPMVDYcfQ29HRCHEOWkUkU8U+jlXt3Xyw43iB2QkkAt59QHPBk7GVe0JIacXDMD4gDQyRkVxNOxGWkEYmi4QcyAJA6XtZRCj9tfPXWOxKhWrpkBaYYVy1IqPT5FUtFUxKRhejQDQlxjIUvp9ADYusClKcYKSEesFFHr8VNOvrICUgOniJT7ekwH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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/icon-SubdirectoryPrimary.c52625b1.svg\";","export default __webpack_public_path__ + \"static/media/icon-Training-Courses.49ef7e62.svg\";","export default __webpack_public_path__ + \"static/media/icon-Training-Knowledge-Base.1f1a5828.svg\";","export default __webpack_public_path__ + \"static/media/icon-X.ad17aee1.svg\";","export default __webpack_public_path__ + \"static/media/icon-value-Advancements.1addaa8c.svg\";","export default __webpack_public_path__ + \"static/media/icon-value-Collaboration.60ecb102.svg\";","export default __webpack_public_path__ + \"static/media/icon-value-Economies.ac10e2c7.svg\";","export default __webpack_public_path__ + \"static/media/icon-value-Efficiencies.6db4e90f.svg\";","export default __webpack_public_path__ + \"static/media/icon-value-Opportunities.92058096.svg\";","const config = {\n version: '1.22.9',\n language: 'en-US',\n fileParams: {\n FPO: 'audio/*,video/*,image/*',\n accept: '.csv',\n acceptExtension: 'csv',\n acceptName: 'CSV',\n text_error_token: 'Your token has expired. Please log in.'\n },\n fileParamsChallenge: {\n fileLimit: 0,\n maxFileSize: 5000000000,\n maxFileSizeName: '5 GB',\n minFileSize: 1,\n minFileSizeName: '10 bytes',\n text_error_file: 'Sorry, there was an error uploading this file.',\n text_error_max_size: 'Your file must be under 5 GB in size.'\n },\n fileParamsProject: {\n fileLimit: 0,\n maxFileSize: 1000000000,\n maxFileSizeName: '1 GB',\n minFileSize: 1,\n minFileSizeName: '10 bytes',\n text_error_file: 'Sorry, there was an error uploading this file.',\n text_error_max_size: 'Your file must be under 1 GB in size.'\n },\n listStatus: {\n challenge_subscribed: false,\n project_invited: false,\n project_own: false,\n project_subscribed: false\n },\n pageSize: {\n mobile: 960,\n small: 680\n },\n eventConfigCurrent: {\n max_events: null,\n max_shares: null\n },\n eventConfigDefault: {\n max_events: 1,\n max_shares: 1,\n events: 1\n },\n eventConfigMin: {\n max_events: 0,\n max_shares: 1,\n events: 1\n },\n eventConfigUser: {\n max_events: null,\n max_shares: null,\n events: null\n },\n projectConfigCurrent: {\n max_dataset_size: null,\n max_shares: null,\n max_volumes: null\n },\n projectConfigDefault: {\n max_dataset_size: 1,\n max_shares: 5,\n max_volumes: 3,\n projects: 3\n },\n projectConfigMin: {\n max_dataset_size: 1,\n max_shares: 0,\n max_volumes: 0,\n projects: 0\n },\n projectConfigUser: {\n max_dataset_size: null,\n max_shares: null,\n max_volumes: null,\n projects: null\n },\n redirectUponLogin: '/x/connect/my-xrathus',\n routesFullWidth: [\n '/x/about',\n '/x/getting-started',\n '/x/privacy-policy',\n '/x/substrates',\n '/x/terms',\n '/x/use-cases'\n ],\n routesSubstrate: [\n 'connect',\n 'hub',\n 'marketplace',\n 'training'\n ],\n routesSysop: [\n '/x/admin',\n '/x/connect/challenges/add',\n '/x/connect/challenges',\n '/x/organization/add'\n ],\n tokensDefault: {\n idToken: null,\n token: null,\n refreshToken: null\n },\n urls: {\n api_url: '',\n forum_url: '',\n gitlab_url: '',\n lab_url: ''\n },\n user: {\n email: '',\n events: null,\n family_name: '',\n gitlab_user_name: '',\n given_name: '',\n groups: [],\n is_sysop: false,\n max_dataset_size: null,\n max_event_shares: null,\n max_events: null,\n max_shares: null,\n max_volumes: null,\n name: '',\n persona: {\n id: null,\n name: null,\n plural: null\n },\n preferred_username: '',\n projects: null\n }\n};\n\nexport default config;\n","/**\n * Determine if current runtime is local\n *\n * @type {boolean}\n */\nexport const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\n/**\n * Load JSON file with environment variables\n *\n * @return {Promise}\n */\nexport async function getEnvironmentConfig() {\n return fetch('/config.json')\n .then((response) => response.json())\n .then((data) => {\n return Promise.resolve(data);\n })\n .catch(error => {\n return Promise.reject(error);\n });\n}\n\n/**\n * Update an object via Object.assign\n *\n * @param oldObject\n * @param newValues\n * @return {any}\n */\nexport const updateObject = (oldObject, newValues) => {\n return Object.assign({}, oldObject, newValues)\n};\n\n/**\n * Copy an array\n *\n * @param array\n * @return {any}\n */\nexport const copyArray = (array) => {\n return JSON.parse(JSON.stringify(array))\n};\n\n/**\n * Combine two items into an array\n *\n * @param arr1\n * @param arr2\n * @return {*[]}\n */\nexport const combineArrays = (arr1, arr2) => {\n return [].concat(arr1, arr2);\n};\n\n/**\n * Convert bytes to a human-readable string\n *\n * @param bytes\n * @return {string}\n */\nexport const convertBytesToString = (bytes) => {\n let i = Math.floor(Math.log(bytes) / Math.log(1024)), sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];\n return (bytes / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + sizes[i];\n};\n\n/**\n * Sort array of objects alphanumerically\n *\n * @param arr\n * @param sortField\n * @param sortOrder\n */\nexport const sortArrayByKey = (arr, sortField, sortOrder = 'ASC') => {\n arr.sort(function (a, b) {\n return a[sortField].toString().toLowerCase().localeCompare(b[sortField].toString().toLowerCase());\n });\n if (sortOrder === 'DESC') {\n arr = arr.reverse();\n }\n return arr;\n};\n\n/**\n * Add items from one list to another without duplication\n *\n * @param list\n * @param newList\n * @param key\n * @returns {*}\n */\nexport const addItemsToListByKey = (list, newList, key = 'id') => {\n for (let i = 0; i < newList.length; i++) {\n if (list.findIndex(r => r[key] === newList[i][key]) === -1) {\n list.push(newList[i]);\n }\n }\n return list;\n};\n\n/**\n * Add commas to numerical strings\n *\n * @param nStr\n * @return {string}\n */\nexport const addCommas = (nStr) => {\n nStr += '';\n let x = nStr.split('.');\n let x1 = x[0];\n let x2 = x.length > 1 ? '.' + x[1] : '';\n let rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, '$1,$2');\n }\n return x1 + x2;\n};\n\n/**\n * Truncate a string with an ellipse\n *\n * @param str\n * @param n\n * @returns {string|*}\n */\nexport const truncateString = (str, n) => {\n if (str.length > n) {\n return str.substring(0, n) + '...';\n }\n return str;\n};\n\n/**\n * Convert file size to a stylized string\n *\n * @param num\n * @return {string|*}\n */\nexport const convertSizeToDisplayString = (num) => {\n if (num === null || num === undefined) {\n return '0k';\n }\n\n // For values under 1,000, return number with comma (1,234 bytes)\n if (num < 10000) {\n return addCommas(num) + ' bytes';\n }\n\n const symbol = ['', 'KB', 'MB', 'GB'];\n const tier = Math.log10(num) / 3 | 0;\n if (tier === 0) return num;\n\n const suffix = symbol[tier];\n const scale = Math.pow(10, tier * 3);\n const scaled = num / scale;\n if (isNaN(scaled)) {\n return '0 bytes';\n }\n // Allow 2 numbers after decimal point for millions (2.34M, 100.3k)\n const fixed = (tier > 1) ? 1 : 0;\n return scaled.toFixed(fixed) + suffix;\n};\n\n/**\n * Format a new datetime object\n * @param date\n * @return {string}\n */\nexport const createDateTimeObject = (date) => {\n // Format: YYYY-MM-DDTHH:MM:SS+07:00\n const dateObj = (date) ? date : new Date();\n const tzo = dateObj.getTimezoneOffset();\n const oHrs = padDateString(Math.abs(tzo / 60));\n const osMin = padDateString(Math.abs(tzo % 60));\n let tz_standard = 'Z';\n if (osMin < 0) {\n tz_standard = '+' + oHrs + ':' + osMin;\n } else if (osMin > 0) {\n tz_standard = '-' + oHrs + ':' + osMin;\n }\n\n return dateObj.getFullYear() + '-'\n + padDateString(dateObj.getMonth() + 1) + '-'\n + padDateString(dateObj.getDate()) + 'T'\n + padDateString(dateObj.getHours()) + ':'\n + padDateString(dateObj.getMinutes()) + ':'\n + padDateString(dateObj.getSeconds())\n + tz_standard;\n};\n\n/**\n * Assemble a human-readable date string\n *\n * @param datetime\n * @param order\n * @param withTime\n * @return {string}\n */\nexport const makeDateString = (datetime, order = 'm', withTime = true) => {\n const dateObj = new Date(datetime);\n const mo = dateObj.getMonth() + 1;\n const dy = dateObj.getDate();\n const yy = dateObj.getFullYear();\n let hr = dateObj.getHours();\n const ampm = (hr > 11) ? 'pm' : 'am';\n if (hr === 0) {\n hr = 12;\n }\n if (hr > 12) {\n hr -= 12;\n }\n let mn = dateObj.getMinutes();\n let minVal = String('00' + mn).slice(-2);\n let dateStr;\n if (order === 'm') {\n dateStr = mo + '/' + dy + '/' + yy;\n } else if (order === 'd') {\n dateStr = dy + '/' + mo + '/' + yy;\n } else {\n dateStr = mo + '/' + dy + '/' + yy;\n }\n if (withTime) {\n dateStr += ' ' + hr + ':' + minVal + ' ' + ampm;\n }\n if (isNaN(yy) || isNaN(mo)) {\n dateStr = 'No Date';\n }\n return dateStr;\n};\n\n/**\n * Pad numbers less than 10 with a leading zero\n *\n * @param num\n * @return {string}\n */\nexport const padDateString = (num) => {\n return String('00' + num).slice(-2);\n};\n\n/**\n * Determine whether a date is older than now\n *\n * @param date\n * @returns {boolean}\n */\nexport const dateIsPast = (date) => {\n return (new Date().getTime() - date.getTime() > 0);\n};\n\n/**\n * Check for a blank or invalid value\n *\n * @param term\n * @return {boolean}\n */\nexport const isBlank = (term) => {\n return (term === undefined || term === null || term === '');\n};\n\nexport const secondsToTimeString = (time) => {\n let mins = Math.floor(time / 60);\n let secs = time - mins * 60;\n let minStr = (mins > 0) ? (mins === 1) ? '1 minute ' : mins + ' minutes ' : '';\n let secStr = (secs > 0) ? (secs === 1) ? '1 second' : secs + ' seconds' : '';\n return minStr + secStr;\n};\n\n/**\n * Assemble a paginated, filtered query for GET calls\n *\n * @param params\n * @returns {string}\n */\nexport const assembleQuery = (params) => {\n const page = `page=${params.page}`;\n const perPage = `&per_page=${params.perPage}`;\n const search = (params.search) ? `&search=${params.search}` : '&search='\n const sortBy = (params.sortBy) ? `&sort_by=${params.sortBy}` : '&sort_by=id';\n const order = (params.order) ? `&order=${params.order}` : '&order=';\n return page + perPage + search + sortBy + order;\n};\n\n/**\n * Assemble \"ago\" string for dates\n *\n * @param timeStamp\n * @return {string}\n */\nexport const timeSince = (timeStamp) => {\n let now = new Date();\n let date = new Date(timeStamp);\n let secondsPast = (now.getTime() - date.getTime()) / 1000;\n if (secondsPast < 60) {\n return Math.round(secondsPast) + 's';\n }\n if (secondsPast < 3600) {\n return Math.round(secondsPast) + 'm';\n }\n if (secondsPast <= 86400) {\n return Math.round(secondsPast / 3600) + 'h';\n }\n if (secondsPast > 86400) {\n let day = date.getDate();\n let month = date.toDateString().match(/ [a-zA-Z]*/)[0].replace(\" \", \"\");\n let year = date.getFullYear() === now.getFullYear() ? '' : ', ' + date.getFullYear();\n return month + ' ' + day + year;\n }\n};\n\n/**\n * Get a Discourse Category link from stored object\n *\n * @param cat\n * @return {string|*}\n */\nexport const getForumCategoryLink = (cat) => {\n const cats = localStorage.getItem('forum_categories');\n if (cats && cats !== 'undefined') {\n const catsObj = JSON.parse(cats);\n if (catsObj && catsObj[cat]) {\n return catsObj[cat];\n }\n }\n return '';\n};\n\n/**\n * Get all Discourse Category links from stored object\n * @return {{}|any}\n */\nexport const getAllForumCategoryLinks = () => {\n const cats = localStorage.getItem('forum_categories');\n if (cats && cats !== 'undefined') {\n const catsObj = JSON.parse(cats);\n if (catsObj) {\n return catsObj;\n }\n }\n return {};\n};\n\nexport const extractDiscourseId = (forumPaths, key) => {\n const obj = forumPaths[key];\n if (obj) {\n const id = obj.split('/').pop();\n return (id) ? parseInt(id, 10) : null;\n }\n return null;\n};","import Config from '../config';\nimport {copyArray, updateObject} from '../utils/dataFunctions';\n\nconst INITIAL_STATE = {\n challenge_list_public: [],\n challenge_list_subscribed: [],\n challenge_list_subscribed_refresh: false,\n event_config: Config.eventConfigMin,\n event_config_current: Config.eventConfigCurrent,\n event_config_refresh: false,\n event_config_user: Config.eventConfigUser,\n event_config_user_refresh: false,\n event_id: null,\n event_list_invited: [],\n event_list_own: [],\n event_list_public: [],\n event_list_refresh: null,\n event_list_subscribed: [],\n event_list_subscribed_refresh: false,\n keycloakReady: false,\n list_status: Config.listStatus,\n project_config: Config.projectConfigMin,\n project_config_current: Config.projectConfigCurrent,\n project_config_refresh: false,\n project_config_user: Config.projectConfigUser,\n project_config_user_refresh: false,\n project_id: null,\n project_file_list: [],\n project_list_invited: [],\n project_list_own: [],\n project_list_refresh: null,\n project_list_subscribed: [],\n sidebarOpen: false,\n tokens: Config.tokensDefault,\n user: Config.user\n};\n\nconst reducer = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case 'LOG_OUT':\n let tokensDefault = updateObject(state.tokens, Config.tokensDefault);\n let userDefault = updateObject(state.user, Config.user);\n return {\n ...state,\n tokens: tokensDefault,\n user: userDefault\n };\n case 'SET_AUTHENTICATED':\n return {\n ...state,\n authenticated: action.authenticated,\n };\n case 'SET_KEYCLOAK_READY' :\n return {\n ...state,\n keycloakReady: true\n };\n case 'SET_LIST_STATUS':\n return {\n ...state,\n list_status: {\n ...state.list_status,\n [action.obj.list]: action.obj.status\n }\n };\n case 'SET_EVENT_CONFIG':\n return {\n ...state,\n event_config: action.event_config\n };\n case 'SET_EVENT_CONFIG_CURRENT':\n return {\n ...state,\n event_config_current: action.obj\n };\n case 'SET_EVENT_CONFIG_REFRESH':\n return {\n ...state,\n event_config_refresh: action.payload\n };\n case 'SET_EVENT_CONFIG_USER':\n return {\n ...state,\n event_config_user: action.obj\n };\n case 'SET_EVENT_CONFIG_USER_REFRESH':\n return {\n ...state,\n event_config_user_refresh: action.payload\n };\n case 'SET_EVENT_ID':\n return {\n ...state,\n event_id: action.event_id\n };\n case 'SET_EVENT_LIST_INVITED':\n let event_list_invited = copyArray(action.event_list_invited)\n return {\n ...state,\n event_list_invited: event_list_invited\n };\n case 'SET_EVENT_LIST_OWN':\n let event_list_own = copyArray(action.event_list_own)\n return {\n ...state,\n event_list_own: event_list_own\n };\n case 'SET_EVENT_LIST_PUBLIC':\n let event_list_public = copyArray(action.event_list_public)\n return {\n ...state,\n event_list_public: event_list_public\n };\n case 'SET_EVENT_LIST_REFRESH':\n return {\n ...state,\n event_list_refresh: action.payload\n };\n case 'SET_EVENT_LIST_SUBSCRIBED':\n let event_list_subscribed = copyArray(action.event_list_subscribed)\n return {\n ...state,\n event_list_subscribed: event_list_subscribed\n };\n case 'SET_EVENT_LIST_SUBSCRIBED_REFRESH':\n return {\n ...state,\n event_list_subscribed_refresh: action.payload\n };\n case 'SET_PROJECT_CONFIG':\n return {\n ...state,\n project_config: action.project_config\n };\n case 'SET_PROJECT_CONFIG_CURRENT':\n return {\n ...state,\n project_config_current: action.obj\n };\n case 'SET_PROJECT_CONFIG_REFRESH':\n return {\n ...state,\n project_config_refresh: action.payload\n };\n case 'SET_PROJECT_CONFIG_USER':\n return {\n ...state,\n project_config_user: action.obj\n };\n case 'SET_PROJECT_CONFIG_USER_REFRESH':\n return {\n ...state,\n project_config_user_refresh: action.payload\n };\n case 'SET_PROJECT_ID':\n return {\n ...state,\n project_id: action.project_id\n }\n case 'SET_PROJECT_FILE_LIST':\n let project_file_list = copyArray(action.project_file_list)\n return {\n ...state,\n project_file_list: project_file_list\n };\n case 'SET_CHALLENGE_LIST_PUBLIC':\n let challenge_list_public = copyArray(action.challenge_list_public)\n return {\n ...state,\n challenge_list_public: challenge_list_public\n };\n case 'SET_CHALLENGE_LIST_SUBSCRIBED':\n let challenge_list_subscribed = copyArray(action.challenge_list_subscribed)\n return {\n ...state,\n challenge_list_subscribed: challenge_list_subscribed\n };\n case 'SET_CHALLENGE_LIST_SUBSCRIBED_REFRESH':\n return {\n ...state,\n challenge_list_subscribed_refresh: action.payload\n };\n case 'SET_PROJECT_LIST_INVITED':\n let project_list_invited = copyArray(action.project_list_invited)\n return {\n ...state,\n project_list_invited: project_list_invited\n };\n case 'SET_PROJECT_LIST_OWN':\n let project_list_own = copyArray(action.project_list_own)\n return {\n ...state,\n project_list_own: project_list_own\n };\n case 'SET_PROJECT_LIST_PERSONAL':\n let project_list_personal = copyArray(action.project_list_personal)\n return {\n ...state,\n project_list_personal: project_list_personal\n };\n case 'SET_PROJECT_LIST_REFRESH':\n return {\n ...state,\n project_list_refresh: action.payload\n };\n case 'SET_PROJECT_LIST_SUBSCRIBED':\n let project_list_subscribed = copyArray(action.project_list_subscribed)\n return {\n ...state,\n project_list_subscribed: project_list_subscribed\n };\n case 'SET_SIDEBAR_VISIBILITY':\n return {\n ...state,\n sidebarOpen: action.payload\n };\n case 'SET_TOKENS':\n return {\n ...state,\n tokens: action.tokens\n };\n case 'SET_USER':\n return {\n ...state,\n user: action.obj\n };\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import {createStore, applyMiddleware, compose} from 'redux';\nimport thunk from 'redux-thunk';\nimport reducer from './reducers';\nimport Config from '../config';\n\nconst initialState = {\n challenge_list_public: [],\n challenge_list_subscribed: [],\n challenge_list_subscribed_refresh: false,\n event_config: Config.eventConfigMin,\n event_config_current: Config.eventConfigCurrent,\n event_config_refresh: false,\n event_config_user: Config.eventConfigUser,\n event_config_user_refresh: false,\n event_id: null,\n event_list_invited: [],\n event_list_own: [],\n event_list_public: [],\n event_list_refresh: null,\n event_list_subscribed: [],\n event_list_subscribed_refresh: false,\n keycloakReady: false,\n list_status: Config.listStatus,\n project_config: Config.projectConfigMin,\n project_config_current: Config.projectConfigCurrent,\n project_config_refresh: false,\n project_config_user: Config.projectConfigUser,\n project_config_user_refresh: false,\n project_id: null,\n project_file_list: [],\n project_list_invited: [],\n project_list_own: [],\n project_list_refresh: null,\n project_list_subscribed: [],\n sidebarOpen: false,\n tokens: Config.tokensDefault,\n user: Config.user\n};\n\n// Create a Redux store with initial state, Redux-Thunk and DevTools\nconst store = createStore(\n reducer,\n initialState,\n compose(\n applyMiddleware(thunk),\n (window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__()) || compose\n )\n);\n\nexport default store;\n","import EventEmitter from 'eventemitter3';\n\nconst eventEmitter = new EventEmitter();\n\nconst Emitter = {\n on: (event, fn) => eventEmitter.on(event, fn),\n once: (event, fn) => eventEmitter.once(event, fn),\n off: (event, fn) => eventEmitter.off(event, fn),\n emit: (event, payload) => eventEmitter.emit(event, payload)\n}\n\nObject.freeze(Emitter);\n\nexport default Emitter;\n","import {\n LOG_OUT,\n SET_AUTHENTICATED,\n SET_CHALLENGE_LIST_PUBLIC,\n SET_CHALLENGE_LIST_SUBSCRIBED,\n SET_CHALLENGE_LIST_SUBSCRIBED_REFRESH,\n SET_EVENT_CONFIG,\n SET_EVENT_CONFIG_CURRENT,\n SET_EVENT_CONFIG_REFRESH,\n SET_EVENT_CONFIG_USER,\n SET_EVENT_CONFIG_USER_REFRESH,\n SET_EVENT_ID,\n SET_EVENT_LIST_INVITED,\n SET_EVENT_LIST_OWN,\n SET_EVENT_LIST_PUBLIC,\n SET_EVENT_LIST_REFRESH,\n SET_EVENT_LIST_SUBSCRIBED,\n SET_EVENT_LIST_SUBSCRIBED_REFRESH,\n SET_KEYCLOAK_READY,\n SET_LIST_STATUS,\n SET_PROJECT_ID,\n SET_PROJECT_CONFIG,\n SET_PROJECT_CONFIG_CURRENT,\n SET_PROJECT_CONFIG_REFRESH,\n SET_PROJECT_CONFIG_USER,\n SET_PROJECT_CONFIG_USER_REFRESH,\n SET_PROJECT_FILE_LIST,\n SET_PROJECT_LIST_INVITED,\n SET_PROJECT_LIST_OWN,\n SET_PROJECT_LIST_REFRESH,\n SET_PROJECT_LIST_SUBSCRIBED,\n SET_SIDEBAR_VISIBILITY,\n SET_TOKENS,\n SET_USER\n} from './actionTypes';\n\n/*\n Auth / User :::::::::::::::::::::::::::::::::::::::::::::\n */\n\nexport const setAuthenticated = authenticated => ({\n type: SET_AUTHENTICATED,\n authenticated\n});\n\nexport const setKeycloakReady = () => {\n return {\n type: SET_KEYCLOAK_READY\n }\n};\n\nexport const setTokens = tokens => {\n return {\n type: SET_TOKENS,\n tokens\n };\n};\n\nexport const setUser = obj => {\n return {\n type: SET_USER,\n obj\n };\n};\n\nexport function logOutUser() {\n return {\n type: LOG_OUT\n }\n}\n\n/*\n UI :::::::::::::::::::::::::::::::::::::::::::::\n */\n\nexport const setSidebarVisibility = isOpen => ({\n type: SET_SIDEBAR_VISIBILITY,\n payload: isOpen,\n});\n\n/*\n Xrathus Challenges :::::::::::::::::::::::::::::::::::::::::::::\n */\n\nexport const setChallengeListPublic = challenge_list_public => {\n return {\n type: SET_CHALLENGE_LIST_PUBLIC,\n challenge_list_public\n };\n};\n\nexport const setChallengeListSubscribedRefresh = refresh => ({\n type: SET_CHALLENGE_LIST_SUBSCRIBED_REFRESH,\n payload: refresh,\n});\n\nexport const setChallengeListSubscribed = challenge_list_subscribed => {\n return {\n type: SET_CHALLENGE_LIST_SUBSCRIBED,\n challenge_list_subscribed\n };\n};\n\nexport const setListStatus = obj => {\n return {\n type: SET_LIST_STATUS,\n obj\n }\n};\n\n/*\n Xrathus Events :::::::::::::::::::::::::::::::::::::::::::::\n */\n\nexport const setEventConfig = event_config => {\n return {\n type: SET_EVENT_CONFIG,\n event_config\n };\n};\n\nexport const setEventConfigCurrent = obj => {\n return {\n type: SET_EVENT_CONFIG_CURRENT,\n obj\n };\n};\n\nexport const setEventConfigRefresh = refresh => ({\n type: SET_EVENT_CONFIG_REFRESH,\n payload: refresh,\n});\n\nexport const setEventConfigUser = obj => {\n return {\n type: SET_EVENT_CONFIG_USER,\n obj\n };\n};\n\nexport const setEventConfigUserRefresh = refresh => ({\n type: SET_EVENT_CONFIG_USER_REFRESH,\n payload: refresh,\n});\n\nexport const setEventId = event_id => {\n return {\n type: SET_EVENT_ID,\n event_id\n }\n};\n\nexport const setEventListInvited = event_list_invited => {\n return {\n type: SET_EVENT_LIST_INVITED,\n event_list_invited\n };\n};\n\nexport const setEventListOwn = event_list_own => {\n return {\n type: SET_EVENT_LIST_OWN,\n event_list_own\n };\n};\n\nexport const setEventListPublic = event_list_public => {\n return {\n type: SET_EVENT_LIST_PUBLIC,\n event_list_public\n };\n};\n\nexport const setEventListRefresh = type => ({\n type: SET_EVENT_LIST_REFRESH,\n payload: type,\n});\n\nexport const setEventListSubscribed = event_list_subscribed => {\n return {\n type: SET_EVENT_LIST_SUBSCRIBED,\n event_list_subscribed\n };\n};\n\nexport const setEventListSubscribedRefresh = refresh => ({\n type: SET_EVENT_LIST_SUBSCRIBED_REFRESH,\n payload: refresh,\n});\n\n/*\n Xrathus Projects and Files :::::::::::::::::::::::::::::::::::::::::::::\n */\n\nexport const setProjectConfig = project_config => {\n return {\n type: SET_PROJECT_CONFIG,\n project_config\n };\n};\n\nexport const setProjectConfigCurrent = obj => {\n return {\n type: SET_PROJECT_CONFIG_CURRENT,\n obj\n };\n};\n\nexport const setProjectConfigRefresh = refresh => ({\n type: SET_PROJECT_CONFIG_REFRESH,\n payload: refresh,\n});\n\nexport const setProjectConfigUser = obj => {\n return {\n type: SET_PROJECT_CONFIG_USER,\n obj\n };\n};\n\nexport const setProjectConfigUserRefresh = refresh => ({\n type: SET_PROJECT_CONFIG_USER_REFRESH,\n payload: refresh,\n});\n\nexport const setProjectId = project_id => {\n return {\n type: SET_PROJECT_ID,\n project_id\n }\n};\n\nexport const setProjectFileList = project_file_list => {\n return {\n type: SET_PROJECT_FILE_LIST,\n project_file_list\n };\n};\n\nexport const setProjectListInvited = project_list_invited => {\n return {\n type: SET_PROJECT_LIST_INVITED,\n project_list_invited\n };\n};\n\nexport const setProjectListOwn = project_list_own => {\n return {\n type: SET_PROJECT_LIST_OWN,\n project_list_own\n };\n};\n\nexport const setProjectListRefresh = type => ({\n type: SET_PROJECT_LIST_REFRESH,\n payload: type,\n});\n\nexport const setProjectListSubscribed = project_list_subscribed => {\n return {\n type: SET_PROJECT_LIST_SUBSCRIBED,\n project_list_subscribed\n };\n};\n","// Auth\nexport const LOG_OUT = 'LOG_OUT';\nexport const SET_AUTHENTICATED = 'SET_AUTHENTICATED';\nexport const SET_KEYCLOAK_READY = 'SET_KEYCLOAK_READY';\nexport const SET_TOKENS = 'SET_TOKENS';\nexport const SET_USER = 'SET_USER';\n\n// UI\nexport const SET_SIDEBAR_VISIBILITY = 'SET_SIDEBAR_VISIBILITY';\n\n// Xrathus\n\nexport const SET_CHALLENGE_LIST_PUBLIC = 'SET_CHALLENGE_LIST_PUBLIC';\nexport const SET_CHALLENGE_LIST_SUBSCRIBED = 'SET_CHALLENGE_LIST_SUBSCRIBED';\nexport const SET_CHALLENGE_LIST_SUBSCRIBED_REFRESH = 'SET_CHALLENGE_LIST_SUBSCRIBED_REFRESH';\n\nexport const SET_EVENT_CONFIG = 'SET_EVENT_CONFIG';\nexport const SET_EVENT_CONFIG_CURRENT = 'SET_EVENT_CONFIG_CURRENT';\nexport const SET_EVENT_CONFIG_REFRESH = 'SET_EVENT_CONFIG_REFRESH';\nexport const SET_EVENT_CONFIG_USER = 'SET_EVENT_CONFIG_USER';\nexport const SET_EVENT_CONFIG_USER_REFRESH = 'SET_EVENT_CONFIG_USER_REFRESH';\nexport const SET_EVENT_ID = 'SET_EVENT_ID';\nexport const SET_EVENT_LIST_INVITED = 'SET_EVENT_LIST_INVITED';\nexport const SET_EVENT_LIST_OWN = 'SET_EVENT_LIST_OWN';\nexport const SET_EVENT_LIST_PUBLIC = 'SET_EVENT_LIST_PUBLIC';\nexport const SET_EVENT_LIST_REFRESH = 'SET_EVENT_LIST_REFRESH';\nexport const SET_EVENT_LIST_SUBSCRIBED = 'SET_EVENT_LIST_SUBSCRIBED';\nexport const SET_EVENT_LIST_SUBSCRIBED_REFRESH = 'SET_EVENT_LIST_SUBSCRIBED_REFRESH';\n\nexport const SET_LIST_STATUS = 'SET_LIST_STATUS';\n\nexport const SET_PROJECT_CONFIG = 'SET_PROJECT_CONFIG';\nexport const SET_PROJECT_CONFIG_CURRENT = 'SET_PROJECT_CONFIG_CURRENT';\nexport const SET_PROJECT_CONFIG_REFRESH = 'SET_PROJECT_CONFIG_REFRESH';\nexport const SET_PROJECT_CONFIG_USER = 'SET_PROJECT_CONFIG_USER';\nexport const SET_PROJECT_CONFIG_USER_REFRESH = 'SET_PROJECT_CONFIG_USER_REFRESH';\nexport const SET_PROJECT_ID = 'SET_PROJECT_ID';\nexport const SET_PROJECT_FILE_LIST = 'SET_PROJECT_FILE_LIST';\nexport const SET_PROJECT_LIST_INVITED = 'SET_PROJECT_LIST_INVITED';\nexport const SET_PROJECT_LIST_OWN = 'SET_PROJECT_LIST_OWN';\nexport const SET_PROJECT_LIST_REFRESH = 'SET_PROJECT_LIST_REFRESH';\nexport const SET_PROJECT_LIST_SUBSCRIBED = 'SET_PROJECT_LIST_SUBSCRIBED';\n","import jwt_decode from 'jwt-decode';\n\n/**\n * Decode a JWT token and return its payload\n *\n * @param token\n * @return {any | undefined}\n */\nexport const decodeToken = (token) => {\n return jwt_decode(token);\n};\n\n/**\n * Determine if a user has a group among their roles\n *\n * @param groups\n * @param group\n * @return {boolean}\n */\nexport const hasGroup = (groups, group) => {\n const idx = groups.findIndex(r => r === group);\n return (idx !== -1);\n};\n\n/**\n * Check if a token's expiration has passed\n *\n * @param exp\n * @return {boolean}\n */\nexport const isTokenExpired = (exp) => {\n let nowDate = new Date();\n let expDate = new Date((exp * 1000));\n return (expDate - nowDate) <= 0;\n};\n\n/**\n * Extract User information from token\n *\n * @param token\n * @return {{email_verified: (*|string), name: (*|string), preferred_username: (*|string), given_name: (*|string), family_name: (*|string), email: (*|string)}|null}\n */\nexport const getUserInfoFromToken = (token) => {\n const dt = decodeToken(token);\n if (dt) {\n\n // Extract sysop and groups from roles\n const roles = (dt.realm_access && dt.realm_access.roles) ? dt.realm_access.roles : [];\n let isSysop = (roles.findIndex(r => r === 'sysop') !== -1);\n\n return {\n email: (dt && dt.email) ? dt.email : '',\n email_verified: (dt && dt.email_verified) ? dt.email_verified : '',\n family_name: (dt && dt.family_name) ? dt.family_name : '',\n given_name: (dt && dt.given_name) ? dt.given_name : '',\n groups: roles,\n is_sysop: isSysop,\n name: (dt && dt.name) ? dt.name : '',\n preferred_username: (dt && dt.preferred_username) ? dt.preferred_username : ''\n };\n }\n return null;\n};\n","import jwt_decode from 'jwt-decode';\n\n/**\n * Return authentication status from stored token or Keycloak values\n *\n * @param storedToken\n * @param keycloakToken\n * @param keycloakAuthenticated\n * @return {boolean|*}\n */\nexport const checkAuthentication = (storedToken, keycloakToken, keycloakAuthenticated) => {\n let keycloakTokenExists = (keycloakToken !== undefined && keycloakToken !== null);\n let storeTokenExists = (storedToken !== undefined && storedToken !== null);\n\n // Check that Keycloak has an authenticated value and a token value, and that the token has been stored in Redux:\n if (keycloakTokenExists && storeTokenExists && keycloakAuthenticated !== undefined) {\n // console.log('-- keycloakToken: ', (keycloakToken.substr(0, 8) + '...' + keycloakToken.substr(-6)));\n // console.log('-- storedToken: ', (storedToken.substr(0, 8) + '...' + storedToken.substr(-6)));\n if (tokenIsExpired(keycloakToken)) {\n return false;\n }\n\n // Return Keycloak's authenticated value\n return (keycloakAuthenticated);\n }\n return false;\n};\n\n/**\n * Determine if a token is expired from its exp value\n *\n * @param token\n */\nexport const tokenIsExpired = (token) => {\n let isExpired = false;\n const tokenValue = (token !== null) ? token : null;\n if (tokenValue) {\n // Decode the token and extract its expiration timestamp\n const decodedToken = jwt_decode(tokenValue);\n const tokenExp = decodedToken.exp;\n\n let nowDate = new Date();\n let expDate = new Date((tokenExp * 1000));\n isExpired = ((expDate - nowDate) <= 0);\n }\n return isExpired;\n};\n\n/**\n * Determine if user has role\n *\n * @param token\n * @param type\n * @param role\n * @return {boolean}\n */\nexport const hasRole = (token, type, role) => {\n const tokenValue = (token !== null) ? token : null;\n if (tokenValue) {\n const decodedToken = jwt_decode(tokenValue);\n let roles;\n let idx;\n if (type === 'realm') {\n roles = decodedToken.realm_access.roles;\n }\n if (type === 'resource') {\n roles = decodedToken.resource_access.account.roles;\n }\n idx = roles.findIndex(r => r === role);\n if (idx !== -1) {\n return true;\n }\n }\n return false;\n};\n","import Config from '../config';\n\n/**\n * Determine mobile state based on width\n *\n * @return {boolean}\n */\nexport const isMobile = () => {\n // @TODO implement once approved\n return false;\n // return (window.innerWidth < Config.pageSize.mobile);\n};\n\n/**\n * Return small mobile state based on width\n *\n * @return {boolean}\n */\nexport const isMobileSmall = () => {\n // @TODO implement once approved\n return false;\n // return (window.innerWidth < Config.pageSize.small);\n};\n\n/**\n * Get current body classes\n *\n * @return {DOMTokenList}\n */\nexport const getBodyClasses = () => {\n return document.body.classList;\n};\n\n/**\n * Determine if body has a specific class\n *\n * @param className\n * @return {boolean}\n */\nexport const bodyHasClass = (className) => {\n return document.body.classList.contains(className);\n};\n\n/**\n * Add a class to the body\n *\n * @param classes\n */\nexport const setBodyClasses = (classes) => {\n clearBodyClasses();\n document.body.classList.add(...classes);\n};\n\n/**\n * Remove all classes from body\n */\nconst clearBodyClasses = () => {\n let classList = getBodyClasses();\n while (classList.length > 0) {\n classList.remove(classList.item(0));\n }\n};\n\n/**\n * Set body classes from listed routes\n *\n * @param location\n * @param isAuthenticated\n */\nexport const setPathElements = (location, isAuthenticated) => {\n if (location) {\n let pathname = location.pathname;\n let hash = location.hash;\n let classArr = [];\n if (pathname && pathname.indexOf('/') !== -1) {\n let pathArray = pathname.split('/');\n if (pathArray[1] === 'x') {\n // Add all path elements\n for (let p = 2; p < pathArray.length; p++) {\n if (pathArray[p] !== '') {\n classArr.push(pathArray[p].replace('%20', '-'));\n }\n }\n } else {\n // For Pages without /x/, use the first value\n if (pathArray[1] !== '') {\n classArr.push(pathArray[1]);\n }\n for (let p = 1; p < pathArray.length - 1; p++) {\n if (pathArray[p] !== '') {\n classArr.push(pathArray[p].replace('%20', '-'));\n }\n }\n }\n // Add any hash elements\n let hashArray = hash.split('/');\n for (let h = 1; h < hashArray.length; h++) {\n classArr.push(hashArray[h].replace('%20', '-'));\n }\n } else {\n classArr.push(pathname);\n }\n\n // Set a class for the body based on route\n if (pathname === '/') {\n classArr.push('home', 'full-width');\n }\n\n // Add a class for substrate pages\n if (Config.routesSubstrate.findIndex(r => r === classArr[0]) !== -1) {\n classArr.push('substrate');\n }\n\n // Add a class for full-width pages\n if (isFullWidth(location)) {\n classArr.push('full-width');\n }\n\n // Add a class for mobile\n if (isMobile() === true) {\n // @TODO implement once approved\n // classArr.push('mobile');\n }\n\n\n // Add a class for authenticated state\n if (isAuthenticated) {\n classArr.push('authenticated')\n }\n\n setBodyClasses(classArr);\n }\n};\n\nexport const getSubstrate = (location) => {\n if (location) {\n let pathArray = location.pathname.split('/');\n for (let p = 0; p < pathArray.length - 1; p++) {\n if (Config.routesSubstrate.findIndex(r => r === pathArray[p]) !== -1) {\n return pathArray[p];\n }\n }\n }\n return '';\n};\n\nexport const isFullWidth = (location) => {\n if (location.pathname) {\n const routes = Config.routesFullWidth;\n for (let r = 0; r < routes.length; r++) {\n if (location.pathname.indexOf(routes[r]) !== -1) {\n return true;\n }\n }\n }\n return false;\n};\n\nexport const scrollToElement = (ref) => window.scrollTo(0, ref.current.offsetTop);\n\nexport const openHelpWidgetWithParams = (params, open = true) => {\n const widget = window.FreshworksWidget;\n if (widget) {\n widget('clear', 'ticketForm');\n widget('prefill', 'ticketForm', params);\n if (params.name || params.email || params.company) {\n widget('identify', 'ticketForm', {\n name: params.name,\n email: params.email,\n custom_fields: {\n cf_user_company: params.company,\n }\n });\n }\n if (open) {\n widget('open');\n }\n }\n};\n\nexport const openHelpWidget = () => {\n const widget = window.FreshworksWidget;\n if (widget) {\n widget('clear', 'ticketForm');\n widget('open');\n }\n};","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\n// Get Substrate and Widget ID from path\nconst getWidgetParams = (path) => {\n let substrate = 'General';\n let widget_id = 67000000652;\n\n if (path.indexOf('/x/connect') !== -1) {\n substrate = 'Connect';\n widget_id = 67000000653;\n } else if (path.indexOf('/x/hub') !== -1) {\n substrate = 'Hub';\n widget_id = 67000000654;\n } else if (path.indexOf('/x/training') !== -1) {\n substrate = 'Training';\n widget_id = 67000000655;\n } else if (path.indexOf('/x/marketplace') !== -1) {\n substrate = 'Marketplace';\n widget_id = 67000003568;\n }\n\n // @TODO override since multiple Widget IDs do work but\n // were specifically requested to be left as one\n //substrate = 'General';\n //widget_id = 67000000652;\n\n return {\n substrate: substrate,\n widget_id: widget_id\n };\n};\n\n/**\n * Class for rendering a support widget script\n *\n */\nclass SupportScript extends Component {\n constructor(props) {\n super(props);\n const widgetParams = getWidgetParams(props.path);\n this.state = {\n isAuthenticated: props.isAuthenticated,\n keycloakReady: props.keycloakReady,\n path: props.path,\n substrate: widgetParams.substrate,\n user: {\n name: props.user.name,\n email: props.user.email,\n preferred_username: props.user.preferred_username\n },\n widget_id: widgetParams.widget_id,\n };\n }\n\n componentDidMount() {\n if (this.state.keycloakReady && this.state.substrate && this.state.widget_id) {\n this.appendWindowScript();\n this.loadFWWidget();\n this.setFWSettings();\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let path = prevState.path;\n let updateState = false;\n let user = {\n email: prevState.user.email,\n name: prevState.user.name,\n preferred_username: prevState.user.preferred_username,\n };\n let widgetParams = {\n substrate: prevState.substrate,\n widget_id: prevState.widget_id\n };\n\n if (nextProps.isAuthenticated !== prevState.isAuthenticated) {\n updateState = true;\n }\n\n if (nextProps.keycloakReady !== prevState.keycloakReady) {\n updateState = true;\n }\n\n // If path changes, reset widget parameters\n if (nextProps.path !== prevState.path) {\n path = nextProps.path;\n widgetParams = getWidgetParams(path);\n updateState = true;\n }\n\n if (nextProps.user.preferred_username !== prevState.user.preferred_username) {\n user = {\n email: nextProps.user.email,\n name: nextProps.user.name,\n preferred_username: nextProps.user.preferred_username,\n };\n updateState = true;\n }\n if (updateState) {\n return {\n isAuthenticated: nextProps.isAuthenticated,\n keycloakReady: nextProps.keycloakReady,\n path: path,\n substrate: widgetParams.substrate,\n user: {\n name: user.name,\n email: user.email,\n preferred_username: user.preferred_username\n },\n widget_id: widgetParams.widget_id\n };\n }\n\n return null;\n }\n\n delay = ms => new Promise(res => setTimeout(res, ms));\n\n async componentDidUpdate(prevProps, prevState) {\n if (\n prevState.isAuthenticated !== this.props.isAuthenticated ||\n prevState.keycloakReady !== this.props.keycloakReady ||\n prevState.user.preferred_username !== this.props.user.preferred_username ||\n prevState.substrate !== this.state.substrate\n ) {\n //temporary fix for using multiple widget IDs\n this.removeScripts();\n //wait some time before going on to bypass 'postMessage' error\n await this.delay(100);\n this.appendWindowScript();\n await this.delay(200);\n this.loadFWWidget();\n await this.delay(300);\n this.setFWSettings();\n }\n }\n\n componentWillUnmount() {\n this.removeScripts();\n }\n\n // Load a script from Freshworks\n loadFWWidget = () => {\n let script = document.getElementById('support-widget-import');\n if (!script) {\n script = document.createElement('script');\n script.id = 'support-widget-import';\n script.async = true;\n script.defer = true;\n script.src = 'https://widget.freshworks.com/widgets/' + this.state.widget_id + '.js';\n document.body.appendChild(script);\n script.onload = () => {\n };\n }\n };\n\n // Create or update a script that sets Widget ID and widget access\n appendWindowScript = () => {\n window.fwSettings = {\n widget_id: this.state.widget_id\n };\n let script = document.getElementById('support-widget-window');\n if (!script) {\n script = document.createElement('script');\n const code = `!function(){if(\"function\"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}()`;\n script.id = 'support-widget-window';\n script.appendChild(document.createTextNode(code));\n document.body.appendChild(script);\n }\n };\n\n // Set and hide fields for widget\n async setFWSettings() {\n const widget = window.FreshworksWidget;\n if (widget) {\n const substrate = this.state.substrate;\n const user = this.state.user;\n\n //wait some time to make sure the user information is fully loaded\n await this.delay(100);\n\n if (!user.preferred_username) {\n widget('hide', 'ticketForm', ['custom_fields.cf_xrathus_username', 'custom_fields.cf_xrathus_substrate']);\n widget('identify', 'ticketForm', {\n custom_fields: {\n cf_xrathus_substrate: substrate,\n }\n });\n } else {\n widget('hide', 'ticketForm', ['custom_fields.cf_xrathus_username', 'custom_fields.cf_xrathus_substrate']);\n widget('identify', 'ticketForm', {\n name: user.name,\n email: user.email,\n custom_fields: {\n cf_xrathus_username: user.preferred_username,\n cf_xrathus_substrate: substrate,\n }\n });\n widget('disable', 'ticketForm', ['name', 'email']);\n }\n }\n }\n\n removeScripts = () => {\n const widget = window.FreshworksWidget;\n if (widget) {\n widget('destroy');\n }\n const wScript = document.getElementById('support-widget-window');\n if (wScript) {\n wScript.remove();\n }\n const fwScript = document.getElementById('support-widget-import');\n if (fwScript) {\n fwScript.remove();\n }\n const fwIFrame = document.getElementById('freshworks-frame');\n if (fwIFrame) {\n fwIFrame.remove();\n }\n //'name' query doesn't work, 'title' does, but throws an error, so the above frame removal makes \n //sure no error is thrown, though dom grows by an iframe each time substrate is \n //changed by user. Almost seems like a Freshworks bug, need more investigation to be sure.\n const fwIframes = document.querySelectorAll(`iframe[name=\"FreshworksWidget\"]`);\n fwIframes.forEach(function (frame) {\n frame.remove();\n });\n const fwContainer = document.getElementById('freshworks-container');\n if (fwContainer) {\n fwContainer.remove();\n }\n window.FreshworksWidget = null;\n };\n\n render() {\n return (\n <>\n \n );\n }\n}\n\nSupportScript.propTypes = {\n isAuthenticated: PropTypes.bool,\n keycloakReady: PropTypes.bool,\n path: PropTypes.string,\n substrate: PropTypes.string,\n user: PropTypes.object,\n widget_id: PropTypes.string\n};\n\nSupportScript.defaultProps = {\n isAuthenticated: false,\n keycloakReady: false,\n path: null,\n substrate: null,\n user: {\n name: '',\n email: '',\n preferred_username: ''\n },\n widget_id: null\n};\n\nexport default SupportScript;\n","import React, {Component} from 'react';\nimport AAPGLogo from '../css/images/AAPG-Logo.png';\nimport CriterionLogo from '../css/images/Criterion-Logo.jpg';\nimport DeasilLogo from '../css/images/Deasil-Works-logo.svg';\nimport MessageUpLogo from '../css/images/MessageUp-logo.jpg'\nimport SeeraLabsLogo from '../css/images/Seera-Labs-logo.svg';\nimport SeetaResourcesLogo from '../css/images/SeetaResources-logo.svg';\n\n/**\n * Component to display a grid of Collaborator logos and industries\n *\n */\nclass AboutCollaborators extends Component {\n render() {\n return (\n
\n
\n \"Criterion\"/\n \n IndustryGeothermal Power\n \n
\n
\n \"Deasil\n \n IndustrySoftware Development\n \n
\n
\n \"MessageUp\"/\n \n IndustryContent Marketing\n \n
\n
\n \"Seera\n \n IndustryMachine Learning\n \n
\n
\n \"Seeta\n \n IndustryRevenue Acceleration\n \n
\n
\n \"AAPG\"/\n \n IndustryPetroleum Geoscience\n \n
\n
\n )\n }\n}\n\nexport default AboutCollaborators;\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\n/**\n * Component to display Career item\n *\n */\nclass CareerLink extends Component {\n render() {\n const {\n data\n } = this.props;\n\n let link = null;\n let title = data.title;\n if (data.link_email) {\n link = 'mailto:' + data.link_email;\n title = 'Email your resume to ' + data.link_email;\n } else if (data.link) {\n link = data.link;\n }\n\n return (\n
\n {link &&\n \n {data.title}\n \n }\n {!link &&\n {data.title}\n }\n {data.label}\n
\n )\n }\n}\n\nCareerLink.propTypes = {\n data: PropTypes.object\n};\n\nexport default withRouter(CareerLink);\n","export const XRATHUS_CAREERS = {\n 'position-partnership-manager': {\n order: 1,\n title: 'Partnership Manager',\n label: 'Help us build our community of value-adding Collaborators.',\n link_email: 'info@xrathus.com',\n link: ''\n },\n 'position-business-development': {\n order: 2,\n title: 'Business Development',\n label: 'Show the world what Xrathus can do and help grow our user community.',\n link_email: 'info@xrathus.com',\n link: ''\n }\n};","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport {sortArrayByKey} from '../utils/dataFunctions';\nimport CareerLink from './CareerLink';\nimport {XRATHUS_CAREERS} from '../data/careers';\n\nclass CareerLinks extends Component {\n constructor(props) {\n super(props);\n\n const items = this.createCareerItems();\n this.state = {\n items: items\n };\n }\n\n createCareerItems = () => {\n let items = [];\n Object.keys(XRATHUS_CAREERS).forEach(function (key) {\n const item = XRATHUS_CAREERS[key];\n if (item.title) {\n const teamMember = {\n order: item.order,\n slug: key,\n label: item.label,\n link_email: item.link_email,\n link: item.link,\n title: item.title\n };\n items.push(teamMember);\n }\n });\n sortArrayByKey(items, 'order', 'ASC')\n return items;\n };\n\n renderCareerItems = () => {\n return (\n this.state.items.map((item, index) => (\n \n ))\n )\n };\n\n render() {\n return (\n
\n {[...this.renderCareerItems()]}\n
\n )\n }\n}\n\nexport default withRouter(CareerLinks);\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport ReactMarkdown from 'react-markdown';\n\n/**\n * Component to display News/Post excerpt\n *\n */\nclass NewsLink extends Component {\n render() {\n const {\n data\n } = this.props;\n\n return (\n
\n
\n \n {data.dateStr}:\n \n \n \n \n \n
\n
\n )\n }\n}\n\nNewsLink.propTypes = {\n data: PropTypes.object\n};\n\nexport default withRouter(NewsLink);\n","export const XRATHUS_NEWS = {\n 'cio-applications': {\n title: 'CIO Applications selects Xrathus as one of the Top Collaboration Solution Provider for 2023',\n date: '2023-06-05T00:00:00+07:00',\n excerpt: `\nArticle about Xrathus: A DXP for Innovation and Education can be \nfound [here](https://www.cioapplications.com/xrathus).\n `,\n article: `\n `,\n link: '/'\n },\n 'ion-houston': {\n title: 'Ion Houston leverages Xrathus DXP to organize Corporate Innovation Challenges for their partners',\n date: '2023-02-24T00:00:00+07:00',\n excerpt: ``,\n article: `\n `,\n link: '/'\n },\n 'created-taskcubes-program': {\n title: 'Created TASKcubes Program',\n date: '2022-08-01T00:00:00+07:00',\n excerpt: `\nTASKcubes is a B²Hub Accelerator Program & Xrathus Ecosystem Collaboration for Bootstraps, \nEarly-Stage, and Growth-Driven Startups.\n `,\n article: `\n `,\n link: '/'\n },\n 'bichronous-ecosystem': {\n title: 'Xrathus Bichronous Ecosystem Released',\n date: '2022-06-27T00:00:00+07:00',\n excerpt: `\nIncludes enhanced project functionality and on-demand real-time collaboration capabilities.\n `,\n article: `\n `,\n link: '/'\n },\n 'sponsored-pivoting-2021': {\n title: 'Sponsored Pivoting 2021, Thriving with Change Series ',\n date: '2021-01-15T00:00:00+07:00',\n excerpt: `\nAAPG interactive webinar series focused on innovation.\n `,\n article: `\n `,\n link: '/'\n },\n 'released-xrathus-platform': {\n title: 'Released Xrathus Collaboration Platform',\n date: '2020-10-01T00:00:00+07:00',\n excerpt: `\nCompleted integration of all substrates including Training.\n `,\n article: `\n `,\n link: '/'\n },\n 'released-crowdsourcing-functionality': {\n title: 'Released Crowdsourcing Functionality',\n date: '2020-08-01T00:00:00+07:00',\n excerpt: `\nIncluded Clusters, Data Science workspace and Challenge Functionality for SEAM AI.\n `,\n article: `\n `,\n link: '/'\n },\n 'incorporated-xrathus': {\n title: 'Incorporated Xrathus',\n date: '2019-12-14T00:00:00+07:00',\n excerpt: `\n `,\n article: `\n `,\n link: '/'\n },\n};\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport {sortArrayByKey} from '../utils/dataFunctions';\nimport NewsLink from './NewsLink';\nimport {XRATHUS_NEWS} from '../data/news';\n\nclass NewsLinks extends Component {\n constructor(props) {\n super(props);\n\n const items = this.createNewsItems();\n this.state = {\n items: items\n };\n }\n\n createNewsItems = () => {\n let items = [];\n Object.keys(XRATHUS_NEWS).forEach(function (key) {\n const item = XRATHUS_NEWS[key];\n // Convert date to human-readable\n const date = new Date(item.date.substring(0, 10));\n date.setTime(date.getTime() + (date.getTimezoneOffset() * 60 * 1000));\n const dateStr = date.toLocaleDateString('en-us', {year: 'numeric', month: 'short', day: 'numeric'});\n if (item.title) {\n const newsItem = {\n slug: key,\n article: item.article,\n date: item.date,\n dateStr: dateStr,\n excerpt: item.excerpt,\n link: item.link,\n title: item.title\n };\n items.push(newsItem);\n }\n });\n sortArrayByKey(items, 'date', 'DESC')\n return items;\n };\n\n renderNewsItems = () => {\n const list = this.state.items;\n if (!list || list.length === 0) {\n return (\n
\n

No News Articles Available

\n
\n )\n }\n\n return (\n list.map((item, index) => (\n \n ))\n )\n };\n\n render() {\n return (\n
\n {[...this.renderNewsItems()]}\n
\n )\n }\n}\n\nexport default withRouter(NewsLinks);\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nfunction TeamContainer(props) {\n const data = props.data;\n\n if (data.link) {\n return (\n \n {props.children}\n \n )\n }\n return (\n
\n {props.children}\n
\n )\n}\n\n/**\n * Component to display Team Member item\n *\n */\nclass TeamMemberLink extends Component {\n render() {\n const {\n data\n } = this.props;\n\n return (\n \n {data.thumb &&\n {data.name}/\n }\n {data.name}\n {data.role}\n \n )\n }\n}\n\nTeamMemberLink.propTypes = {\n data: PropTypes.object\n};\n\nexport default withRouter(TeamMemberLink);\n","export const XRATHUS_TEAM = {\n 'rekha-patel': {\n featured: true,\n order: 1,\n name: 'Rekha Patel',\n role: 'Founder and President',\n thumb: 'Team-Rekha-Patel.jpg',\n link: 'https://www.linkedin.com/in/rekhapatelxrathus/'\n },\n 'pradeep-anand': {\n featured: false,\n order: 2,\n name: 'Pradeep Anand',\n role: 'Advisor',\n thumb: 'Team-Pradeep-Anand.jpg',\n link: 'https://www.linkedin.com/in/pradeepanand/'\n },\n 'matt-bell': {\n featured: false,\n order: 3,\n name: 'Matt Bell',\n role: 'Advisor',\n thumb: 'Team-Matt-Bell.jpg',\n link: 'https://www.linkedin.com/in/mattbell/'\n },\n 'hani-elshahawi': {\n featured: false,\n order: 4,\n name: 'Hani Elshahawi',\n role: 'Advisor',\n thumb: 'Team-Hani-Elshahawi.jpg',\n link: 'https://www.linkedin.com/in/hani-elshahawi/'\n },\n 'lynette-kiss': {\n featured: false,\n order: 5,\n name: 'Lynnette Kiss',\n role: 'CFO (fractional)',\n thumb: 'Team-Lynnette-Kiss.jpg',\n link: 'https://www.linkedin.com/in/lynnette-m-kiss-cpa-aa4a5a44/'\n },\n 'egidio-marotta': {\n featured: false,\n order: 6,\n name: 'Egidio Marotta',\n role: 'Advisor',\n thumb: 'Team-Egidio-Marotta.jpg',\n link: 'https://www.linkedin.com/in/egidio-ed-marotta-8182021a9/'\n },\n 'susan-nash': {\n featured: false,\n order: 7,\n name: 'Susan Nash',\n role: 'Advisor',\n thumb: 'Team-Susan-Nash.jpg',\n link: 'https://www.linkedin.com/in/susannash/'\n },\n 'denis-potapov': {\n featured: false,\n order: 8,\n name: 'Denis Potapov',\n role: 'Advisor',\n thumb: 'Team-Denis-Potapov.jpg',\n link: 'https://www.linkedin.com/in/denis-potapov-60950a4/'\n },\n 'ken-tubman': {\n featured: false,\n order: 9,\n name: 'Ken Tubman',\n role: 'Advisor',\n thumb: 'Team-Ken-Tubman.jpg',\n link: 'https://www.linkedin.com/in/ktubman/'\n }\n};\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport {sortArrayByKey} from '../utils/dataFunctions';\nimport TeamMemberLink from './TeamMemberLink';\nimport {XRATHUS_TEAM} from '../data/team';\n\nclass TeamMemberLinks extends Component {\n constructor(props) {\n super(props);\n\n const items = this.createTeamItems();\n this.state = {\n items: items\n };\n }\n\n createTeamItems = () => {\n let items = [];\n Object.keys(XRATHUS_TEAM).forEach(function (key) {\n const item = XRATHUS_TEAM[key];\n if (item.name) {\n const teamMember = {\n slug: key,\n order: item.order,\n featured: item.featured,\n name: item.name,\n role: item.role,\n thumb: item.thumb,\n link: item.link\n };\n items.push(teamMember);\n }\n });\n sortArrayByKey(items, 'order', 'ASC')\n return items;\n };\n\n renderTeamItems = () => {\n return (\n this.state.items.map((item, index) => (\n \n ))\n )\n };\n\n render() {\n return (\n
\n {[...this.renderTeamItems()]}\n
\n )\n }\n}\n\nexport default withRouter(TeamMemberLinks);\n","import React, {Component} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\nimport {openHelpWidgetWithParams} from '../utils/pageFunctions';\nimport AboutCollaborators from '../partials/AboutCollaborators';\nimport CareerLinks from '../partials/CareerLinks';\nimport NewsLinks from '../partials/NewsLinks';\nimport TeamMemberLinks from '../partials/TeamMemberLinks';\nimport TeamBG from '../css/images/bg-Hex-Gradient-Connect.jpg';\nimport XrathusContinuousImage from '../css/images/Xrathus-Continuous-diagram.png';\nimport '../css/page.css';\n\nconst teamStyle = {\n backgroundImage: `url(${TeamBG})`\n};\n\nclass About extends Component {\n\n handleOpenWidget = (section) => {\n let params = {\n type: 'Demo Request'\n };\n if (section === 'schedule') {\n params.subject = 'Schedule a Call';\n }\n openHelpWidgetWithParams(params, true);\n };\n\n render() {\n return (\n
\n\n {/* Section: Hero */}\n
\n
\n
\n

\n At Xrathus, we believe problems are best solved\n \n by getting the right people working together.\n

\n

\n Xrathus empowers people to solve problems together by connecting\n \n them through an engaging digital collaboration ecosystem.\n

\n \n Join Our Team Today\n \n
\n
\n
\n\n {/* Section: Mission/Origin */}\n
\n
\n
\n

\n Empowering people to solve problems together\n \n through an engaging digital collaboration system.\n

\n

\n Organizations understand the need for open innovation and fast,\n effective commercialization of new solutions. What has been\n missing is an ecosystem within which individuals and teams can\n come together—across company boundaries—to make it happen.\n

\n

\n Xrathus is a customizable collaboration platform built for today's\n hybrid workplace. It creates a people-centric, discipline-agnostic\n place for continuous, accelerated innovation.\n

\n

\n Organizations of any shape and size can harness Xrathus to\n dramatically accelerate their journey from ideation, to feasibility,\n initial implementation, and out to the market.\n

\n
\n
\n
\n\n {/* Section: Team */}\n
\n
\n
\n
\n

Our Team

\n \n
\n
\n
\n\n {/* Section: Collaborators */}\n
\n
\n
\n

\n The following Collaborators are working with Xrathus to\n \n bring added value to our user community.\n

\n \n
\n
\n
\n\n {/* Section: Latest News */}\n
\n
\n
\n

Headlines

\n \n
\n
\n
\n\n {/* Section: Learn More */}\n
\n
\n
\n

\n Want to understand the backstory to Xrathus?\n

\n
\n

\n When we began developing the concept that would eventually become\n the Xrathus digital collaboration ecosystem, we gathered a lot of\n information about the way companies work and how today's\n organizations and offices impede effective collaboration.\n

\n

\n \n If you're curious to learn more, download a copy of our white paper.\n  \n \n \"\n className=\"btn btn-training btn-arrow table uppercase\"\n onClick={() => {\n window.open('/docs/Xrathus_WhitePaper.pdf');\n }}\n >\n Download Now\n \n

\n

\n \n If you still have questions, let's set up a call - we love to talk\n about this stuff.\n  \n \n this.handleOpenWidget('schedule')}\n >\n Contact Us >\n \n

\n \"Xrathus\n
\n
\n
\n\n {/* Section: Careers */}\n
\n
\n
\n

\n Join Us!\n

\n

\n Xrathus is looking for natural-born collaborators to join us on our\n quest to build the digital collaboration ecosystem that everyone\n wants to use. Here are links to our current open positions.\n

\n

\n Don't see anything that sounds like you? Email your resume to\n us here.\n

\n \n
\n
\n
\n
\n )\n }\n}\n\nexport default withRouter(About);\n","import {assembleQuery} from './utils/dataFunctions';\n\n/**\n * Resources for API\n * Challenge (Challenges, Joined, Public, User)\n * Discourse Topic\n * Organization (Organizations, Browse)\n * Project (Projects, Personal, Own)\n */\nexport const RESOURCES = {\n 'Challenge': {\n GET_LIST: function (params) {\n const orgId = params.orgId ? params.orgId : '0';\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/challenges/' + params.active + '/' + orgId + '?' + query\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/challenge/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/challenge/create'\n }\n },\n DELETE: function (params) {\n return {\n 'method': 'DELETE',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/challenge/' + params.id\n }\n },\n UPDATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/challenge/update'\n }\n }\n },\n 'ChallengeJoin': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': null,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/challenge/' + params.id + '/join'\n }\n }\n },\n 'ChallengePublic': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/public/challenges'\n }\n }\n },\n 'ChallengeUser': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/user/challenges'\n }\n }\n },\n 'DiscourseTopic': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/discourse/topics/' + params.discourse_id\n }\n },\n },\n 'GitLabProjectChallenge': {\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/challenge/' + params.id + '/gitlabProjectUrl'\n }\n }\n },\n 'GitLabProjectProject': {\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/personal/' + params.id + '/gitlabProjectUrl'\n }\n }\n },\n 'Organization': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/organizations/all/' + params.active\n }\n },\n GET_ONE: function (params) {\n let getBy = (params && params.getBy === 'machine_name') ? 'machineName' : 'id';\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/organization/' + getBy + '/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/organization/create'\n }\n },\n UPDATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/organization/update'\n // 'uri': 'https://api.xrathus.d4l.cloud/v1/mgmt/organization/update'\n }\n }\n },\n 'OrganizationBrowse': {\n GET_LIST: function (params) {\n const isActive = params.active === 'true' ? '1' : '0';\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/organizations/browse/' + isActive + '?' + query\n }\n },\n }\n};\n\n/* eslint import/no-anonymous-default-export: [2, {\"allowArrowFunction\": true}] */\nexport default (type, resource, params) => {\n\n /**\n * @param {string} type Request type, e.g. GET_LIST\n * @param {string} resource Resource name, e.g. \"Challenge\"\n * @param {Object} payload Request parameters. Depends on request type\n * @returns {Object} RESOURCES object\n */\n return (type, resource, params) => {\n return RESOURCES;\n }\n}\n","import store from '../store/store';\n\n/**\n * Retrieve token from Redux store\n *\n * @return {null|*}\n */\nexport const getStoreToken = () => {\n let state = store.getState();\n let tokens = state.tokens;\n if (tokens && tokens.token) {\n return tokens.token;\n }\n return null;\n};\nstore.subscribe(getStoreToken);\n\n/**\n * Create POST headers\n *\n * @return Object\n */\nexport const getAuthHeaders = () => {\n return {\n 'Cache-Control': 'no-cache',\n 'Content-Type': 'application/json'\n };\n};\n\n/**\n * Create POST headers using access or refresh token\n *\n * @param useBearer\n * @return {{\"Cache-Control\": string, \"Content-Type\": string}}\n */\nexport const getPostHeaders = (useBearer) => {\n const headers = {\n 'Cache-Control': 'no-cache',\n 'Content-Type': 'application/x-www-form-urlencoded'\n };\n if (useBearer) {\n // Set a Bearer token from the Access Token\n let storeToken = getStoreToken();\n headers.Authorization = 'Bearer ' + storeToken;\n }\n return headers;\n};\n\n/**\n * Create POST headers using access or refresh token\n *\n * @return {{\"Cache-Control\": string, \"Content-Type\": string}}\n */\nexport const getUploadPostHeaders = () => {\n let storeToken = getStoreToken();\n return {\n 'Accept': '*/*',\n 'Authorization': 'Bearer ' + storeToken,\n 'Cache-Control': 'no-cache',\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-Requested-With': 'XMLHttpRequest'\n };\n};\n\n/**\n * Create GET headers\n *\n * @return Object\n */\nexport const getGetHeaders = (isLoggedIn) => {\n const headers = {\n 'Cache-Control': 'no-cache',\n 'Content-Type': 'application/json',\n };\n // Set a Bearer token from the Access Token\n if (isLoggedIn) {\n let storeToken = getStoreToken();\n headers.Authorization = 'Bearer ' + storeToken;\n }\n return headers;\n};\n\n/**\n * Create DELETE headers using access or refresh token\n *\n * @param useBearer\n * @return {{\"Cache-Control\": string, \"Content-Type\": string}}\n */\nexport const getDeleteHeaders = (useBearer) => {\n const headers = {\n 'Cache-Control': 'no-cache',\n 'Content-Type': 'application/x-www-form-urlencoded'\n };\n if (useBearer) {\n // Set a Bearer token from the Access Token\n let storeToken = getStoreToken();\n headers.Authorization = 'Bearer ' + storeToken;\n }\n return headers;\n};\n","import axios from 'axios';\nimport {getGetHeaders} from './headers';\n\n/**\n * Make a get request with a specific resource\n *\n * @param resource\n * @param name\n * @param type\n * @param params\n * @param isLoggedIn\n * @return {Promise<*>}\n */\nexport async function makeGetDataRequest(resource, name, type, params, isLoggedIn = true) {\n let func;\n switch (type) {\n case 'GET_LIST':\n func = resource[name].GET_LIST(params);\n break;\n case 'GET_ONE':\n func = resource[name].GET_ONE(params);\n break;\n default:\n func = resource[name].GET_LIST(params);\n }\n try {\n return await getRequest(func.uri, isLoggedIn);\n } catch (e) {\n console.log('data error: ', e.message);\n return e;\n }\n}\n\n/**\n * Make GET request\n *\n * @param uri\n * @param isLoggedIn\n * @return {Promise>}\n */\nconst getRequest = (uri, isLoggedIn) => {\n return axios({\n method: 'get',\n url: uri,\n headers: getGetHeaders(isLoggedIn),\n maxBodyLength: Infinity,\n maxContentLength: Infinity\n }).then((response) => {\n if (response.data && response.data.payload) {\n // Payload of string or object\n return response.data.payload;\n } else if (response.data && response.data.payload === false) {\n // Payload of boolean\n return response.data.payload;\n } else if (response.data) {\n return response.data;\n } else if (response) {\n return response;\n }\n }).catch((error) => {\n if (error.response) {\n // Server response outside 2xx\n return error.response.data;\n } else if (error.request) {\n // No response\n return error.request;\n } else {\n return error;\n }\n });\n};\n\nexport default getRequest();\n","import React, {forwardRef} from 'react';\n\nconst SelectInput = forwardRef(\n (\n {\n id,\n label,\n name,\n instructions,\n multiple,\n className,\n options,\n optionPrompt,\n optionSelected,\n changeFunc,\n required,\n disabled,\n children\n }, ref) => {\n return (\n \n );\n }\n);\n\nexport default SelectInput;\n","import React from 'react';\nimport SelectInput from '../fields/SelectInput';\n\nconst ActiveFilter = ({handleActive, type}) => {\n return (\n
\n \n \n );\n};\n\nexport default ActiveFilter;","import React from 'react';\n\nconst ColumnFilter = ({column}) => {\n\n const {filterValue, setFilter} = column;\n\n return (\n \n setFilter(e.target.value)}/>\n \n );\n};\n\nexport default ColumnFilter;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Link} from 'react-router-dom';\nimport DocumentIcon from '../../css/images/icon-Table-Document.svg';\n\nconst DocumentButton = ({ basePath = '', record = {}, type, label = 'Edit Dataset' }) => {\n return (\n \n \"Document\n \n );\n};\n\nDocumentButton.propTypes = {\n /**\n * Currently not used\n */\n basePath: PropTypes.string,\n /**\n * The Link to the data repo in which the file is to be found\n */\n type: PropTypes.string,\n /**\n * The record from which the filepath for editing is extracted. (record.cell.row.original.data_id)\n */\n record: PropTypes.object,\n /**\n * The label displayed in browser tooltips\n */\n label: PropTypes.string,\n};\n\nexport default DocumentButton;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Link} from 'react-router-dom';\nimport EditIcon from '../../css/images/icon-Table-Edit.svg';\n\nconst EditButton = ({ basePath = '', record = {}, type, label = 'Edit' }) => {\n return (\n \n \"Edit\n \n );\n};\n\nEditButton.propTypes = {\n /**\n * Currently not used\n */\n basePath: PropTypes.string,\n /**\n * The Link to the data repo in which the file is to be found\n */\n type: PropTypes.string,\n /**\n * The record from which the filepath for editing is extracted. (record.cell.row.original_id)\n */\n record: PropTypes.object,\n /**\n * The label displayed in browser tooltips\n */\n label: PropTypes.string,\n};\n\nexport default EditButton;","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nconst styles = {\n centered: {\n display: 'block',\n textAlign: 'center',\n margin: '0 auto'\n },\n path_dark: {\n fill: '#5a358c'\n },\n path_light: {\n fill: '#fafafa'\n },\n};\n\nclass LoadingIndicator extends Component {\n\n render() {\n const {\n active,\n centered,\n color,\n size,\n speed\n } = this.props;\n\n const centerStyle = (centered) ? styles.centered : {};\n const pathStyle = (color === 'light') ? styles['path_light'] : styles['path_dark'];\n const sizePx = size + 'px';\n\n return (\n \n \n {active &&\n \n \n \n \n \n \n }\n \n \n );\n }\n}\n\nLoadingIndicator.propTypes = {\n active: PropTypes.bool,\n centered: PropTypes.bool,\n color: PropTypes.string,\n size: PropTypes.number,\n speed: PropTypes.string\n};\n\nLoadingIndicator.defaultProps = {\n centered: false,\n color: 'light',\n size: 50,\n speed: '0.8s'\n};\n\nexport default LoadingIndicator;\n","import React, {forwardRef, useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport Select, {createFilter} from 'react-select';\nimport {FixedSizeList as List} from 'react-window';\nimport {RESOURCES as resources} from '../../resources';\nimport {makeGetDataRequest} from '../../utils/getRequest';\nimport {copyArray} from '../../utils/dataFunctions';\n\n/**\n * React-Window Fixed Menu List for select options\n *\n * @param props\n * @return {JSX.Element}\n * @constructor\n */\nconst MenuList = (props) => {\n\n let itemSize = 35;\n let listSize = props.children.length>8 ? 300 : props.children.length*itemSize;\n\n return (\n \n {({index, style}) =>
{props.children[index]}
}\n \n );\n};\n\nMenuList.propTypes = {\n /**\n * Children array\n */\n children: PropTypes.array,\n /**\n * Initial Scroll offset\n */\n initialOffset: PropTypes.any,\n};\n\n/**\n * A component to retrieve data from a resource and create a React-Select input\n *\n * @type {React.ForwardRefExoticComponent & React.RefAttributes>}\n */\nconst ResourceSelectInput = forwardRef(\n ({\n id,\n label,\n instructions,\n changeFunc,\n resource,\n required,\n optionText = 'name',\n optionValue = 'id',\n addOption = null,\n addOptionPosition = 'start',\n params = {}\n }, ref) => {\n\n const [dataList, setDataList] = useState({\n list: []\n });\n const [selectOptions, setSelectOptions] = useState({\n options: []\n });\n const [selectLoading, setSelectLoading] = useState(false);\n\n useEffect(() => {\n if (resource && params) {\n const fetchData = () => {\n setSelectLoading(true);\n const request = makeGetDataRequest(resources, resource, 'GET_LIST', params);\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Select Data Error: ', result);\n setSelectLoading(false);\n setDataList(dataList => ({...dataList, list: []}));\n setSelectOptions(selectOptions => ({...selectOptions, options: []}));\n return Promise.resolve(result);\n }\n let list = [];\n let options = [];\n if (result && result.length > 0) {\n list = copyArray(result);\n for (let i = 0; i < list.length; i++) {\n let item = list[i];\n let option = {\n label: item[optionText],\n value: item[optionValue]\n };\n options.push(option);\n list[i].optionName = item[optionText];\n }\n if (addOption) {\n addOption.optionName = addOption.label;\n if (addOptionPosition === 'end') {\n options.push(addOption);\n list.push(addOption);\n } else {\n options.unshift(addOption);\n list.unshift(addOption);\n }\n }\n setDataList(dataList => ({...dataList, list: list}));\n setSelectOptions(selectOptions => ({...selectOptions, options: options}));\n }\n setSelectLoading(false);\n return Promise.resolve(result);\n } else {\n console.log('Select Data Error: No result');\n return Promise.reject('Select Data failed');\n }\n }).catch(error => {\n console.log('Select Data Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n if (resource) {\n fetchData();\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleChange = (e) => {\n let selected = e;\n const idx = dataList.list.findIndex(r => r[optionValue] === e.value);\n if (idx !== -1) {\n selected = dataList.list[idx];\n }\n if (typeof changeFunc === 'function') {\n changeFunc(selected);\n }\n };\n\n return (\n <>\n {selectOptions.options && selectOptions.options.length > 0 &&\n \n }\n \n );\n }\n);\n\n//@TODO: cleanup proptypes to have the right types on each variable\nResourceSelectInput.propTypes = {\n /**\n * ID\n */\n id: PropTypes.any,\n /**\n * Label\n */\n label: PropTypes.string,\n /**\n * Instructions\n */\n instructions: PropTypes.any,\n /**\n * Change Funcion\n */\n changeFunc: PropTypes.func,\n /**\n * Resource\n */\n resource: PropTypes.any,\n /**\n * Required\n */\n required: PropTypes.bool,\n /**\n * Disabled\n */\n disabled: PropTypes.bool,\n /**\n * Option Text\n */\n optionText: PropTypes.string,\n /**\n * Option Value\n */\n optionValue: PropTypes.string,\n /**\n * Add Option\n */\n addOption: PropTypes.any,\n /**\n * Add Option Position\n */\n addOptionPosition: PropTypes.string,\n /**\n * Params\n */\n params: PropTypes.any,\n};\n\nexport default ResourceSelectInput;\n","import React from 'react';\n\nconst SearchFilter = ({changeFunc, submitFunc, type, label = 'Search'}) => {\n return (\n
\n \n
\n );\n};\n\nexport default SearchFilter;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Link} from 'react-router-dom';\nimport ViewIcon from '../../css/images/icon-Table-View.svg';\n\nconst ViewButton = ({ basePath = '', record = {}, type, label = 'View' }) => {\n return (\n \n \"View\n \n );\n};\n\nViewButton.propTypes = {\n /**\n * Currently not used\n */\n basePath: PropTypes.string,\n /**\n * The Link to the data repo in which the file is to be found\n */\n type: PropTypes.string,\n /**\n * The record from which the filepath for viewing is extracted. (record.cell.row.original_id)\n */\n record: PropTypes.object,\n /**\n * The label displayed in browser tooltips\n */\n label: PropTypes.string,\n};\n\nexport default ViewButton;","import React, {useEffect, useMemo, useState} from 'react';\nimport {useTable, useSortBy, useFilters, usePagination} from 'react-table';\nimport {RESOURCES as resources} from '../resources';\nimport {makeGetDataRequest} from '../utils/getRequest';\nimport ActiveFilter from './filters/ActiveFilter';\nimport ChevronDown from '../css/images/icon-Table-Down-Chevron.svg';\nimport ChevronUp from '../css/images/icon-Table-Up-Chevron.svg';\nimport ColumnFilter from './filters/ColumnFilter';\nimport DocumentButton from './buttons/DocumentButton';\nimport EditButton from './buttons/EditButton';\nimport LoadingIndicator from './LoadingIndicator';\nimport ResourceSelectInput from './fields/ResourceSelectInput';\nimport SearchFilter from './filters/SearchFilter';\nimport ViewButton from './buttons/ViewButton';\n\n/**\n * Component that gets and displays Challenges in a React Table\n *\n * @param active\n * @param height\n * @return {JSX.Element}\n * @constructor\n */\nconst ChallengeTable = ({height = 'auto'}) => {\n\n const [itemList, setItemList] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [activeFilter, setActiveFilter] = useState('true');\n const [searchFilterValue, setSearchFilterValue] = useState('');\n const [searchFilterSubmit, setSearchFilterSubmit] = useState(false);\n const [orgIdFilter, setOrgIdFilter] = useState(0);\n const [totalRows, setTotalRows] = useState(0);\n const [pageState, setPageState] = useState(0);\n const [pageSizeState, setPageSizeState] = useState(5);\n const [sortColumn, setSortColumn] = useState('id');\n const [sortDesc, setSortDesc] = useState(false);\n\n useEffect(() => {\n const params = {\n active: activeFilter,\n orgId: orgIdFilter,\n page: pageState + 1,\n perPage: pageSizeState,\n sortBy: sortColumn,\n order: sortDesc ? 'DESC' : 'ASC',\n search: searchFilterValue\n };\n const fetchData = () => {\n setIsLoading(true);\n const request = makeGetDataRequest(resources, 'Challenge', 'GET_LIST', params);\n request.then(result => {\n setIsLoading(false);\n if (result) {\n if (typeof result === 'string') {\n console.log('Challenges Error: ', result);\n setItemList([]);\n setTotalRows(0);\n setPageState(0);\n return Promise.resolve(result);\n }\n if (result.Challenges) {\n setItemList(result.Challenges);\n setTotalRows(result.TotalRows);\n }\n return Promise.resolve(result);\n } else {\n console.log('Challenges Error: No result');\n return Promise.reject('Challenges failed');\n }\n }).catch(error => {\n console.log('Challenges Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeFilter, orgIdFilter, pageState, pageSizeState, sortColumn, sortDesc, searchFilterSubmit]);\n\n // Set org filter\n const handleOrgFilter = (e) => {\n setOrgIdFilter(e.id);\n setPageState(0);\n };\n\n // Set active filter\n const handleActiveFilter = (e) => {\n setActiveFilter(e.value);\n setPageState(0);\n };\n\n // Set search filter\n const handleSearchFilter = (e) => {\n setSearchFilterValue(e.target.value);\n setPageState(0);\n }\n\n const handleSearchSubmit = (e) => {\n e.preventDefault();\n setSearchFilterSubmit(!searchFilterSubmit);\n setPageState(0);\n }\n\n const handleSort = (id) => {\n if (id) {\n setSortColumn(id);\n setSortDesc(!sortDesc);\n setPageState(0);\n }\n };\n\n const handleTableRows = (e) => {\n setPageSizeState(e.target.value);\n setPageState(0);\n };\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'ID',\n accessor: 'id',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Title',\n accessor: 'title',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Published',\n accessor: 'published',\n Cell: (value) => (value.cell.row.original.published) ? 'Yes' : 'No',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Private',\n accessor: 'private',\n Cell: (value) => (value.cell.row.original.private) ? 'Yes' : 'No',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Complete',\n accessor: 'complete',\n Cell: (value) => (value.cell.row.original.complete) ? 'Yes' : 'No',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => ,\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => (),\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => (),\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n }\n ],\n []\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n page,\n state: {pageIndex},\n prepareRow\n } = useTable(\n {\n columns,\n data: tableData,\n initialState: {pageIndex: pageState, pageSize: pageSizeState},\n manualPagination: true,\n pageCount: totalRows\n },\n useFilters,\n useSortBy,\n usePagination\n );\n\n const totalPages = Math.ceil(totalRows / pageSizeState);\n\n return (\n <>\n
\n \n
\n handleOrgFilter(e))}\n />\n
\n \n
\n\n
\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n ))}\n \n ))}\n \n \n {page.map(row => {\n prepareRow(row);\n\n return (\n \n {row.cells.map(cell => {\n return (\n \n );\n })}\n \n );\n })}\n \n
\n {column.canSort &&\n handleSort(column.id)}\n className=\"no-wrap\"\n >\n {column.render('Header')}\n \n {(sortColumn === column.id) ?\n (sortDesc ?\n \"\"/ : \"\"/) : ''}\n \n \n }\n
\n {cell.render('Cell')}\n
\n {itemList.length === 0 &&\n \n \n \n \n \n \n
\n No Challenges found\n
\n }\n
\n {`Page ${pageIndex + 1} of ${totalPages} `}\n \n \n \n \n \n \n   Go to Page:\n {\n const pageNumber = e.target.value ? Number(e.target.value) - 1 : 0;\n setPageState(pageNumber);\n }}\n style={{width: '50px'}}\n />\n \n
\n
\n\n {isLoading &&\n \n }\n \n );\n};\n\nexport default ChallengeTable;\n","import {assembleQuery} from './utils/dataFunctions';\n\n/**\n * Resources for API\n * Event Configuration (Default)\n * Event Configuration (Event Override)\n * Non-Personal Events (pending)\n * Personal Events (CRUD)\n * Personal Events (Owned by User)\n * Personal Events (Joined by User)\n * Personal Events (Shared with User)\n * Shared Users\n * Airmeet Sessions\n * Join Personal Event\n * Reject Shared Personal Event\n * Share Personal Event with User\n * Unsubscribe User from Personal Event\n */\nexport const RESOURCES = {\n /* Event Configuration (Global Default) */\n 'EventConfiguration': {\n GET_LIST: function () {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/global/event/configs'\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/global/event/config/' + params.config\n }\n },\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/global/event/config/' + params.config + '/' + params.value\n }\n }\n },\n /* Personal Public Events */\n 'Event': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/browse/public/events?' + query\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/create/event'\n }\n },\n },\n /* Personal Events: List, Single, Create/Update */\n 'EventPersonal': {\n GET_LIST: function (params) {\n // @TODO need API\n console.log('GET EventPersonal');\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/event/browse/personal/' + params.active + '?' + query\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/create/event'\n }\n },\n UPDATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/update/event'\n }\n }\n },\n /* List: Personal Events owned by User */\n 'EventPersonalOwn': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/events/user/all'\n }\n }\n },\n /* List: Personal Events joined/subscribed to by User */\n 'EventPersonalSubscribed': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/browse/joined/events?' + query\n }\n }\n },\n /* List: Personal Events joined/subscribed to by Sysop */\n 'EventPersonalSubscribedSysop': {\n GET_LIST: function (params) {\n console.log('GET EventPersonalSubscribedSysop');\n // @TODO need API\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/event/browse/joined/personal/sysop?' + query\n }\n }\n },\n /* List: Personal Events shared with User */\n 'EventPersonalShared': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/browse/shared/events?' + query\n }\n }\n },\n /* List: Events in Admin (Sysop) */\n 'EventAdmin': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/events/all?' + query\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/create/event'\n }\n },\n },\n /* List: Users a Personal Event is shared with */\n 'EventPersonalSharedUsers': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/shares/' + params.id\n }\n }\n },\n /* List: Users a Personal Event is shared with */\n 'EventPublicSharedUsers': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/joins/' + params.id\n }\n }\n },\n /* List: Homepage Public Events */\n 'EventHomePagePublic': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/browse/homepage/public/events?' + query\n }\n }\n },\n /* Action: Delete a Personal Event */\n 'EventPersonalDelete': {\n DELETE: function (params) {\n return {\n 'method': 'DELETE',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/event/' + params.id\n }\n }\n },\n /* Action: Update a Personal Event's Max Shares */\n 'EventPersonalUpdateMaxShares': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/update/event/' + params.id + '/' + params.value\n }\n }\n },\n /* Action: Join a Personal Event */\n 'EventPersonalJoin': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/join/event/' + params.id\n }\n }\n },\n /* Action: Reject a Shared Personal Event */\n 'EventPersonalReject': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/reject/event/invite/' + params.id\n }\n }\n },\n /* Action: Share a Personal Event */\n 'EventPersonalShare': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/event/share/' + params.id + '/' + params.username\n }\n }\n },\n /* Action: Unsubscribe User from Personal Event (by self or by owner) */\n 'EventPersonalUnsubscribe': {\n POST: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/event/unsubscribe'\n }\n }\n },\n /* List, Action: Airmeet Sessions for a Public or Personal Event */\n 'AirmeetSessions': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/sessions/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/create/session'\n }\n }\n },\n};\n\n/* eslint import/no-anonymous-default-export: [2, {\"allowArrowFunction\": true}] */\nexport default (type, resource, params) => {\n\n /**\n * @param {string} type Request type, e.g. GET_LIST\n * @param {string} resource Resource name, e.g. \"Event\"\n * @param {Object} payload Request parameters. Depends on request type\n * @returns {Object} RESOURCES object\n */\n return (type, resource, params) => {\n return RESOURCES;\n }\n}\n","import React, {useEffect, useMemo, useState} from 'react';\nimport {useTable, useSortBy, useFilters, usePagination} from 'react-table';\nimport {RESOURCES as resources} from '../resourcesEvent';\nimport {makeGetDataRequest} from '../utils/getRequest';\nimport ChevronDown from '../css/images/icon-Table-Down-Chevron.svg';\nimport ChevronUp from '../css/images/icon-Table-Up-Chevron.svg';\nimport ColumnFilter from './filters/ColumnFilter';\nimport EditButton from './buttons/EditButton';\nimport LoadingIndicator from './LoadingIndicator';\nimport SearchFilter from './filters/SearchFilter';\nimport ViewButton from './buttons/ViewButton';\nimport {makeDateString} from '../utils/dataFunctions';\n\n/**\n * Component that gets and displays Events in a React Table\n *\n * @param height\n * @param eventType\n * @return {JSX.Element}\n * @constructor\n */\nconst EventTable = ({height = 'auto', eventType}) => {\n\n const [itemList, setItemList] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [searchFilterValue, setSearchFilterValue] = useState('');\n const [searchFilterSubmit, setSearchFilterSubmit] = useState(false);\n const [totalRows, setTotalRows] = useState(0);\n const [pageState, setPageState] = useState(0);\n const [pageSizeState, setPageSizeState] = useState(5);\n const [sortColumn, setSortColumn] = useState('id');\n const [sortDesc, setSortDesc] = useState(false);\n\n useEffect(() => {\n const params = {\n page: pageState + 1,\n perPage: pageSizeState,\n sortBy: sortColumn,\n order: sortDesc ? 'DESC' : 'ASC',\n search: searchFilterValue\n };\n const fetchData = () => {\n setIsLoading(true);\n let resource = 'Event';\n if (eventType === 'personal') {\n resource = 'Event';\n }\n if (eventType === 'admin') {\n resource = 'EventAdmin';\n }\n const request = makeGetDataRequest(resources, resource, 'GET_LIST', params);\n request.then(result => {\n setIsLoading(false);\n if (result) {\n if (typeof result === 'string' || !result.AirmeetEvents) {\n console.log('Event Error: ', result);\n setItemList([]);\n setTotalRows(0);\n setPageState(0);\n return Promise.resolve(result);\n }\n if (eventType === 'admin' && result.AirmeetEvents) {\n setItemList(result.AirmeetEvents);\n setTotalRows(result.TotalRows);\n }\n return Promise.resolve(result);\n } else {\n console.log('Events Error: No result');\n return Promise.reject('Events failed');\n }\n }).catch(error => {\n console.log('Events Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pageState, pageSizeState, sortColumn, sortDesc, searchFilterSubmit]);\n\n // Set search filter\n const handleSearchFilter = (e) => {\n setSearchFilterValue(e.target.value);\n setPageState(0);\n }\n\n const handleSearchSubmit = (e) => {\n e.preventDefault();\n setSearchFilterSubmit(!searchFilterSubmit);\n setPageState(0);\n }\n\n const handleSort = (id) => {\n if (id) {\n setSortColumn(id);\n setSortDesc(!sortDesc);\n setPageState(0);\n }\n };\n\n const handleTableRows = (e) => {\n setPageSizeState(e.target.value);\n setPageState(0);\n };\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n let eventPath = 'x/connect/event';\n if (eventType === 'admin') {\n eventPath = 'x/connect/event/personal';\n }\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'Name',\n accessor: 'name',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Event Creator',\n accessor: 'username',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Start Date/Time',\n accessor: 'start_time',\n Cell: (cell) => makeDateString(cell.value),\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Private',\n accessor: 'private',\n Cell: (cell) => cell.value ? 'Yes' : 'No',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => ,\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => (),\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n }\n ],\n [eventPath]\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n page,\n state: {pageIndex},\n prepareRow\n } = useTable(\n {\n columns,\n data: tableData,\n initialState: {pageIndex: pageState, pageSize: pageSizeState},\n manualPagination: true,\n pageCount: totalRows\n },\n useFilters,\n useSortBy,\n usePagination\n );\n\n const totalPages = Math.ceil(totalRows / pageSizeState);\n\n return (\n <>\n
\n \n
\n\n
\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n ))}\n \n ))}\n \n \n {page.map(row => {\n prepareRow(row);\n\n return (\n \n {row.cells.map(cell => {\n return (\n \n );\n })}\n \n );\n })}\n \n
\n {column.canSort &&\n handleSort(column.id)}\n className=\"no-wrap\"\n >\n {column.render('Header')}\n \n {(sortColumn === column.id) ?\n (sortDesc ?\n \"\"/ : \"\"/) : ''}\n \n \n }\n
\n {cell.render('Cell')}\n
\n {itemList.length === 0 &&\n \n \n \n \n \n \n
\n No Personal Events found\n
\n }\n
\n {`Page ${pageIndex + 1} of ${totalPages} `}\n \n \n \n \n \n \n   Go to Page:\n {\n const pageNumber = e.target.value ? Number(e.target.value) - 1 : 0;\n setPageState(pageNumber);\n }}\n style={{width: '50px'}}\n />\n \n
\n
\n\n {isLoading &&\n \n }\n \n );\n};\n\nexport default EventTable;\n","import React, {useEffect, useMemo, useState} from 'react';\nimport {useTable, useSortBy, useFilters, usePagination} from 'react-table';\nimport {RESOURCES as resources} from '../resources';\nimport {makeGetDataRequest} from '../utils/getRequest';\nimport ActiveFilter from './filters/ActiveFilter';\nimport ChevronDown from '../css/images/icon-Table-Down-Chevron.svg';\nimport ChevronUp from '../css/images/icon-Table-Up-Chevron.svg';\nimport ColumnFilter from './filters/ColumnFilter';\nimport EditButton from './buttons/EditButton';\nimport LoadingIndicator from './LoadingIndicator';\nimport SearchFilter from './filters/SearchFilter';\nimport ViewButton from './buttons/ViewButton';\n\n/**\n * Component that gets and displays Organizations in a React Table\n *\n * @param active\n * @param height\n * @return {JSX.Element}\n * @constructor\n */\nconst OrganizationTable = ({height = 'auto'}) => {\n\n const [itemList, setItemList] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [activeFilter, setActiveFilter] = useState('true');\n const [searchFilterValue, setSearchFilterValue] = useState('');\n const [searchFilterSubmit, setSearchFilterSubmit] = useState(false);\n const [totalRows, setTotalRows] = useState(0);\n const [pageState, setPageState] = useState(0);\n const [pageSizeState, setPageSizeState] = useState(5);\n const [sortColumn, setSortColumn] = useState('id');\n const [sortDesc, setSortDesc] = useState(false);\n\n useEffect(() => {\n const params = {\n active: activeFilter,\n page: pageState + 1,\n perPage: pageSizeState,\n sortBy: sortColumn,\n order: sortDesc ? 'DESC' : 'ASC',\n search: searchFilterValue\n };\n const fetchData = () => {\n setIsLoading(true);\n const request = makeGetDataRequest(resources, 'OrganizationBrowse', 'GET_LIST', params);\n request.then(result => {\n setIsLoading(false);\n if (result) {\n if (typeof result === 'string') {\n console.log('Organizations Error: ', result);\n setItemList([]);\n setTotalRows(0);\n setPageState(0);\n return Promise.resolve(result);\n }\n if (result.Organizations) {\n setItemList(result.Organizations);\n setTotalRows(result.TotalRows);\n }\n return Promise.resolve(result);\n } else {\n console.log('Organizations Error: No result');\n return Promise.reject('Organizations failed');\n }\n }).catch(error => {\n console.log('Organizations Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeFilter, pageState, pageSizeState, sortColumn, sortDesc, searchFilterSubmit]);\n\n // Set filter active status\n const handleActiveFilter = (e) => {\n setActiveFilter(e.value);\n setPageState(0);\n };\n\n // Set search filter\n const handleSearchFilter = (e) => {\n setSearchFilterValue(e.target.value);\n setPageState(0);\n }\n\n const handleSearchSubmit = (e) => {\n e.preventDefault();\n setSearchFilterSubmit(!searchFilterSubmit);\n setPageState(0);\n }\n\n const handleTableRows = (e) => {\n setPageSizeState(e.target.value);\n setPageState(0);\n };\n\n const handleSort = (id) => {\n if (id) {\n setSortColumn(id);\n setSortDesc(!sortDesc);\n setPageState(0);\n }\n };\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'ID',\n accessor: 'id',\n Filter: ColumnFilter,\n disableFilters: true\n\n },\n {\n Header: 'Name',\n accessor: 'name',\n Filter: ColumnFilter,\n disableFilters: true\n\n },\n {\n Header: 'City',\n accessor: 'city',\n Filter: ColumnFilter,\n disableFilters: true\n\n },\n {\n Header: 'State',\n accessor: 'state',\n Filter: ColumnFilter,\n disableFilters: true\n\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => ,\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => (),\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n }\n ],\n []\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n page,\n state: {pageIndex},\n prepareRow\n } = useTable(\n {\n columns,\n data: tableData,\n initialState: {pageIndex: pageState, pageSize: pageSizeState},\n manualPagination: true,\n pageCount: totalRows\n },\n useFilters,\n useSortBy,\n usePagination\n );\n\n const totalPages = Math.ceil(totalRows / pageSizeState);\n\n return (\n <>\n
\n \n \n
\n
\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n ))}\n \n ))}\n \n \n {page.map(row => {\n prepareRow(row);\n\n return (\n \n {row.cells.map(cell => {\n return (\n \n );\n })}\n \n );\n })}\n \n
\n {column.canSort &&\n handleSort(column.id)}\n className=\"no-wrap\"\n >\n {column.render('Header')}\n \n {(sortColumn === column.id) ?\n (sortDesc ?\n \"\"/ : \"\"/) : ''}\n \n \n }\n
\n {cell.render('Cell')}\n
\n {itemList.length === 0 &&\n \n \n \n \n \n \n
\n No Organizations found\n
\n }\n
\n {`Page ${pageIndex + 1} of ${totalPages} `}\n \n \n \n \n \n \n   Go to Page:\n {\n const pageNumber = e.target.value ? Number(e.target.value) - 1 : 0;\n setPageState(pageNumber);\n }}\n style={{width: '50px'}}\n />\n \n
\n
\n\n {isLoading &&\n \n }\n \n );\n};\n\nexport default OrganizationTable;\n","import {assembleQuery} from './utils/dataFunctions';\n\n/**\n * Resources for API\n * Project Configuration (Default)\n * Project Configuration (Project Override)\n * Non-Personal Projects (pending)\n * Personal Projects (CRUD)\n * Personal Projects (Owned by User)\n * Personal Projects (Joined by User)\n * Personal Projects (Shared with User)\n * Shared Users\n * Airmeet Sessions\n * Join Personal Project\n * Reject Shared Personal Project\n * Share Personal Project with User\n * Unsubscribe User from Personal Project\n */\nexport const RESOURCES = {\n /* Project Configuration (Default) */\n 'ProjectConfiguration': {\n GET_LIST: function () {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/configs/personal'\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/config/personal/' + params.config\n }\n },\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/config/personal/update/' + params.config + '/' + params.value\n }\n }\n },\n /* Project Configuration (Project Override) */\n 'ProjectPersonalConfig': {\n UPDATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/personal/update/configs'\n }\n }\n },\n /* non-Personal Projects (Available once non-Personal Projects are available) */\n 'Project': {\n GET_LIST: function () {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/projects/all'\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/' + params.id\n }\n }\n },\n /* Personal Projects: List, Single, Create/Update */\n 'ProjectPersonal': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/browse/personal/' + params.active + '?' + query\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/personal/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/personal/create'\n }\n },\n UPDATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/personal/update'\n }\n }\n },\n /* List: Personal Projects owned by User */\n 'ProjectPersonalOwn': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/all/personal/' + params.active\n }\n }\n },\n /* List: Personal Projects owned by User by Active Status */\n 'ProjectPersonalOwnByActive': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/all/personal/' + params.active\n }\n }\n },\n /* List: Personal Projects joined/subscribed to by User */\n 'ProjectPersonalSubscribed': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/browse/subscribed/personal?' + query\n }\n }\n },\n /* List: Personal Projects joined/subscribed to by Sysop */\n 'ProjectPersonalSubscribedSysop': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/browse/joined/personal/sysop?' + query\n }\n }\n },\n /* List: Personal Projects shared with User */\n 'ProjectPersonalShared': {\n GET_LIST: function (params) {\n const query = assembleQuery(params);\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/browse/shared/personal?' + query\n }\n }\n },\n /* List: Users a Personal Project is shared with */\n 'ProjectPersonalSharedUsers': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/shares/personal/' + params.id\n }\n }\n },\n /* Action: Delete a Personal Project */\n 'ProjectPersonalDelete': {\n DELETE: function (params) {\n return {\n 'method': 'DELETE',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/personal/' + params.id\n }\n }\n },\n /* Action: Join a Personal Project */\n 'ProjectPersonalJoin': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/join/personal/' + params.id\n }\n }\n },\n /* Action: Reject a Shared Personal Project */\n 'ProjectPersonalReject': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/rejectInvite/personal/' + params.id\n }\n }\n },\n /* Action: Share a Personal Project */\n 'ProjectPersonalShare': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/share/personal/' + params.id + '/' + params.username\n }\n }\n },\n /* Action: Unsubscribe User from Personal Project (by self or by owner) */\n 'ProjectPersonalUnsubscribe': {\n POST: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/project/unsubscribe/personal'\n }\n }\n },\n /* List, Action: Airmeet Sessions for a Challenge or Personal Project */\n 'AirmeetSessions': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/sessions/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/airmeet/create/session'\n }\n }\n },\n};\n\n/* eslint import/no-anonymous-default-export: [2, {\"allowArrowFunction\": true}] */\nexport default (type, resource, params) => {\n\n /**\n * @param {string} type Request type, e.g. GET_LIST\n * @param {string} resource Resource name, e.g. \"Challenge\"\n * @param {Object} payload Request parameters. Depends on request type\n * @returns {Object} RESOURCES object\n */\n return (type, resource, params) => {\n return RESOURCES;\n }\n}\n","import React, {useEffect, useMemo, useState} from 'react';\nimport {useTable, useSortBy, useFilters, usePagination} from 'react-table';\nimport {RESOURCES as resources} from '../resourcesProject';\nimport {makeGetDataRequest} from '../utils/getRequest';\nimport ActiveFilter from './filters/ActiveFilter';\nimport ChevronDown from '../css/images/icon-Table-Down-Chevron.svg';\nimport ChevronUp from '../css/images/icon-Table-Up-Chevron.svg';\nimport ColumnFilter from './filters/ColumnFilter';\nimport DocumentButton from './buttons/DocumentButton';\nimport EditButton from './buttons/EditButton';\nimport LoadingIndicator from './LoadingIndicator';\nimport SearchFilter from './filters/SearchFilter';\nimport ViewButton from './buttons/ViewButton';\n\n/**\n * Component that gets and displays Projects in a React Table\n *\n * @param active\n * @param height\n * @return {JSX.Element}\n * @constructor\n */\nconst ProjectTable = ({height = 'auto', projectType}) => {\n\n const [itemList, setItemList] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [activeFilter, setActiveFilter] = useState('true');\n const [searchFilterValue, setSearchFilterValue] = useState('');\n const [searchFilterSubmit, setSearchFilterSubmit] = useState(false);\n const [totalRows, setTotalRows] = useState(0);\n const [pageState, setPageState] = useState(0);\n const [pageSizeState, setPageSizeState] = useState(5);\n const [sortColumn, setSortColumn] = useState('id');\n const [sortDesc, setSortDesc] = useState(false);\n\n useEffect(() => {\n const params = {\n active: activeFilter,\n page: pageState + 1,\n perPage: pageSizeState,\n sortBy: sortColumn,\n order: sortDesc ? 'DESC' : 'ASC',\n search: searchFilterValue\n };\n const fetchData = () => {\n setIsLoading(true);\n let resource = 'Project';\n if (projectType === 'personal') {\n resource = 'ProjectPersonal';\n }\n if (projectType === 'personal_own') {\n resource = 'ProjectPersonalOwn';\n }\n if (projectType === 'personal_own_by_active') {\n resource = 'ProjectPersonalOwnByActive';\n }\n const request = makeGetDataRequest(resources, resource, 'GET_LIST', params);\n request.then(result => {\n setIsLoading(false);\n if (result) {\n if (typeof result === 'string' || !result.PsProjects) {\n console.log('Project Error: ', result);\n setItemList([]);\n setTotalRows(0);\n setPageState(0);\n return Promise.resolve(result);\n }\n if (projectType === 'personal' && result.PsProjects) {\n setItemList(result.PsProjects);\n setTotalRows(result.TotalRows);\n }\n return Promise.resolve(result);\n } else {\n console.log('Projects Error: No result');\n return Promise.reject('Projects failed');\n }\n }).catch(error => {\n console.log('Projects Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeFilter, pageState, pageSizeState, sortColumn, sortDesc, searchFilterSubmit]);\n\n // Set active filter\n const handleActiveFilter = (e) => {\n setActiveFilter(e.value);\n setPageState(0);\n };\n\n // Set search filter\n const handleSearchFilter = (e) => {\n setSearchFilterValue(e.target.value);\n setPageState(0);\n }\n\n const handleSearchSubmit = (e) => {\n e.preventDefault();\n setSearchFilterSubmit(!searchFilterSubmit);\n setPageState(0);\n }\n\n const handleSort = (id) => {\n if (id) {\n setSortColumn(id);\n setSortDesc(!sortDesc);\n setPageState(0);\n }\n };\n\n const handleTableRows = (e) => {\n setPageSizeState(e.target.value);\n setPageState(0);\n };\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n let projectPath = 'x/hub/project';\n if (projectType === 'personal') {\n projectPath = 'x/hub/project/personal';\n }\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'ID',\n accessor: 'id',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Name',\n accessor: 'title',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: 'Project Owner',\n accessor: 'username',\n Filter: ColumnFilter,\n disableFilters: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => ,\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => (),\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: '',\n accessor: ' ',\n Cell: (value) => (),\n maxWidth: 50,\n Filter: ColumnFilter,\n disableFilters: true,\n disableSortBy: true\n }\n ],\n [projectPath]\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n page,\n state: {pageIndex},\n prepareRow\n } = useTable(\n {\n columns,\n data: tableData,\n initialState: {pageIndex: pageState, pageSize: pageSizeState},\n manualPagination: true,\n pageCount: totalRows\n },\n useFilters,\n useSortBy,\n usePagination\n );\n\n const totalPages = Math.ceil(totalRows / pageSizeState);\n\n return (\n <>\n
\n \n \n
\n\n
\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n ))}\n \n ))}\n \n \n {page.map(row => {\n prepareRow(row);\n\n return (\n \n {row.cells.map(cell => {\n return (\n \n );\n })}\n \n );\n })}\n \n
\n {column.canSort &&\n handleSort(column.id)}\n className=\"no-wrap\"\n >\n {column.render('Header')}\n \n {(sortColumn === column.id) ?\n (sortDesc ?\n \"\"/ : \"\"/) : ''}\n \n \n }\n
\n {cell.render('Cell')}\n
\n {itemList.length === 0 &&\n \n \n \n \n \n \n
\n No Personal Projects found\n
\n }\n
\n {`Page ${pageIndex + 1} of ${totalPages} `}\n \n \n \n \n \n \n   Go to Page:\n {\n const pageNumber = e.target.value ? Number(e.target.value) - 1 : 0;\n setPageState(pageNumber);\n }}\n style={{width: '50px'}}\n />\n \n
\n
\n\n {isLoading &&\n \n }\n \n );\n};\n\nexport default ProjectTable;\n","import React, {Component} from 'react';\nimport {withKeycloak} from '@react-keycloak/web';\nimport {Link, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport ChallengeTable from '../partials/ChallengeTable';\nimport EventTable from '../partials/EventTable';\nimport OrganizationTable from '../partials/OrganizationTable';\nimport ProjectTable from '../partials/ProjectTable';\nimport '../css/challenge.css';\n\nclass AdminDashboard extends Component {\n constructor(props) {\n super(props);\n this.state = {\n datasetFormType: 'none',\n datasetId: null,\n showDatasetForm: false,\n };\n }\n\n // Handle form completion/error events\n handleFormEvent = (e, status, data) => {\n };\n\n render() {\n const {\n user\n } = this.props;\n\n if (!user.is_sysop) {\n return (\n <>\n
\n

\n Xrathus Administration\n

\n {user.name &&\n \n Welcome, {user.name}\n \n }\n

\n Sorry, you do not have access to this area.\n

\n
\n \n )\n }\n\n return (\n <>\n
\n

\n Xrathus Administration\n

\n {user.name &&\n \n Welcome, {user.name}\n \n }\n\n {/* Organizations */}\n
\n
\n
\n

Organizations

\n
\n

\n Review and edit Organization data.\n

\n \n
\n
\n \n Add Organization\n \n
\n
\n
\n
\n
\n\n {/* Personal Projects */}\n
\n
\n
\n

Personal User Projects

\n
\n

\n Review and edit Personal User Projects and Datasets.\n

\n \n
\n
\n
\n
\n\n {/* Challenges */}\n
\n
\n
\n

Challenges

\n
\n

\n Review and edit Challenges and Datasets.\n

\n \n
\n
\n \n Add Challenge\n \n
\n
\n
\n
\n
\n\n {/* Personal Events */}\n
\n
\n
\n

Personal User Events

\n
\n

\n Review and edit Personal User Events.\n

\n \n
\n
\n
\n
\n\n {/* Project Configuration */}\n
\n
\n
\n

Personal Project Configuration

\n
\n

\n Review and edit default Configurations for Personal Projects, and override\n Personal Project Configurations for specific Users.\n

\n
\n
\n \n Manage Configuration\n \n
\n
\n
\n
\n
\n\n {/* zEvent Configuration */}\n
\n
\n
\n

Personal Event Configuration

\n
\n

\n Review and edit default Configurations for Personal Events, and override\n Personal Event Configurations for specific Users.\n

\n
\n
\n \n Manage Configuration\n \n
\n
\n
\n
\n
\n\n
\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n tokens: {\n token: state.tokens.token\n },\n user: state.user\n };\n};\n\nexport default withKeycloak(\n withRouter(\n connect(\n mapStateToProps\n )(AdminDashboard)\n )\n);\n","import React, {Component} from 'react';\nimport AAPGLogo from '../css/images/AAPG-Logo.png';\nimport CriterionLogo from '../css/images/Criterion-Logo.jpg';\nimport DeasilLogo from '../css/images/Deasil-Works-logo.svg';\nimport SeeraLabsLogo from '../css/images/Seera-Labs-logo.svg';\nimport SeetaResourcesLogo from '../css/images/SeetaResources-logo.svg';\nimport SEGLogo from '../css/images/SEG-SoEG-logo.png';\nimport '../css/static.css';\n\nclass Collaborators extends Component {\n render() {\n\n return (\n <>\n
\n

\n Our Collaborators\n

\n

Industry

\n
\n
\n \n \"Criterion\"/\n \n
\n
\n \n \"Deasil\n \n
\n
\n \n \"Seera\n \n
\n
\n
\n
\n \n \"Seeta\n \n
\n
\n\n

Associations

\n
\n
\n \n \"AAPG\n \n
\n
\n \n \"SEG\n \n
\n
\n
\n \n );\n }\n}\n\nexport default Collaborators;\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\n\nclass FAQ extends Component {\n constructor(props) {\n super(props);\n this.state = {\n open: 'what-is'\n };\n }\n\n toggleContent = (e) => {\n let openState = this.state.open;\n let open = null;\n if (openState !== e) {\n open = e;\n }\n this.setState({\n open: open\n })\n };\n\n render() {\n const {open} = this.state;\n\n return (\n <>\n
\n

\n Frequently Asked Questions\n

\n\n
\n

this.toggleContent('what-is')}>\n What is Xrathus Communities and what can I do there?\n

\n
\n

Xrathus Communities is a unified collaboration platform comprised of four seamlessly\n integrated substrates - Connect, Hub, Training, and Marketplace. Xrathus provides an\n engagement framework for five personas: Domain, Data Scientist, Developer, Product Owner\n and Sponsor, enabling its members to work independently, on-demand or in full\n cooperation with collaborators to ideate and rapidly deliver optimal solutions.

\n
\n
\n\n
\n

this.toggleContent('substrates')}>\n What are the substrates of Xrathus Communities and how do I interact with them?\n

\n
\n

Xrathus communities is composed of the four following substrates:

\n
    \n
  • Connect - The connection and collaboration substrate is the main entry point\n to Xrathus Communities platform. Upon signing in, members are directed to their\n personalized \"My Xrathus\" page which enables users to customize their own experience\n with the networking components. In Connect, members can ideate, advertise,\n collaborate, review and partake in activities of choice while determining decisions\n on their interactions with community members. Xrathus members are enabled to\n leverage their network and add new members to their personalized network across all\n four substrates.\n
  • \n
  • Hub - Provides a fully integrated and choice collaboration data science\n environment for innovation, rapid prototyping and development of advanced solutions\n with readily available domain specific tools and libraries. Xrathus Hub enables\n member expedite adaptation to the Xrathus workspace environment to maximize\n collaborative solution deliveries. The Xrathus Hub also provisions for members\n seamless access to their network, Xrathus Training and industry Knowledge- Bases.\n
  • \n
  • Training - The Training substrate provides an open Knowledge Base which\n includes wikis and other repositories. Online, on-demand courses, webinars,\n workshops and such, will be facilitated through the Xrathus Training substrate.\n Xrathus Partners deliver and host high-value domain sciences, AI/ML and a host of\n software technologies training. Mentorships, advice and domain guidance from\n academia and industry mentors is available for all members.\n
  • \n
  • Marketplace (Coming Soon) - The Marketplace substrate optimizes on-demand\n provisioning of products, support, and service providers. Xrathus multi-sided\n marketplace will provide a catalog of products such as Apps, Algorithms, Datasets,\n and Learning content commercialized by Xrathus Members and Partners.\n
  • \n
\n
\n
\n\n
\n

this.toggleContent('personas')}>\n What are the personas of Xrathus Communities and how do I interact with\n them?\n

\n
\n

Members of Xrathus Communities are interested in generating/finding knowledge and\n delivering solutions, and their persona determines what role they play in those efforts.\n The five personas that Xrathus Communities is crafted around are:

\n
    \n
  • Domain - Collaborates on technical issues and innovation, imparts subject\n expertise and intuitions. Domain personas innovate, mentor, and deliver solutions in\n Xrathus Communities.\n
  • \n
  • Data Scientist - Analyzes data, seeks accessible infrastructure to design and\n build AI/ML models. Collaborates with Domain and Developer personas to smarten and\n optimize solutions.\n
  • \n
  • Developer - Optimizes algorithms, extends platform functionality, and ideates\n with other personas to create and deliver optimal deployments.\n
  • \n
  • Product Owner - Collaborates with fellow owners, such as portfolio, feature,\n scrum, component, platform owners, to glean updates, share experiences and\n expertise, and mentor on developments and more to maximize value for all solutions.\n
  • \n
  • Sponsor - Establishes and enhances network of contacts to implement delivery\n of strategic solutions and projects to completion. Participates in investment and\n market opportunities.\n
  • \n
\n
\n
\n\n
\n

this.toggleContent('get-started')}>\n How do I get started on Xrathus Communities?\n

\n
\n

Sign up for a Xrathus account to get started. You can use your Email, Google, Microsoft,\n or GitHub account. Part of the signup process is selecting your primary persona. This\n choice customizes your experience in Xrathus Communities.

\n
\n
\n\n
\n

this.toggleContent('request')}>\n How do I request more information about Xrathus Communities?\n

\n
\n

You can submit your questions by accessing the Contact Us link found in\n the \"Stay Connected\" section. Further, by clicking the Help button\n located in the bottom right of each page across the site and selecting the request type\n as information.

\n
\n
\n\n
\n

this.toggleContent('support')}>\n How do I direct support questions to Xrathus?\n

\n
\n

You can send your support inquiries by accessing the Support link found\n in the \"Quick Links\" section. You can also click the Help button\n located in the bottom right of each page across the site and selecting the corresponding\n request type.

\n
\n
\n
\n \n )\n }\n}\n\nexport default withRouter(FAQ);\n","import React from 'react';\n\nconst IconXrathusArrow = () => {\n return (\n \n \n\t\t\t\t\n\t\t\t\n \n )\n};\n\nexport default IconXrathusArrow;\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport IconXrathusArrow from '../partials/images/IconXrathusArrow';\nimport '../css/slideshow.css';\n\nclass GettingStarted extends Component {\n constructor(props) {\n super(props);\n this.state = {\n slide: 0,\n total: 6\n };\n }\n\n navigate = (dir, idx) => {\n let slide = this.state.slide;\n const max = this.state.total - 1;\n if (dir === 'prev') {\n slide = slide - 1;\n }\n if (dir === 'next') {\n slide = slide + 1;\n }\n if (dir === 'slide') {\n slide = idx;\n }\n if (slide < 0) {\n slide = 0;\n }\n if (slide >= max) {\n slide = max;\n }\n this.setState({\n slide: slide\n });\n };\n\n renderIndicators = () => {\n return (\n Array(this.state.total).fill().map((item, index) => (\n this.navigate('slide', index)}\n >\n {index}\n \n ))\n );\n };\n\n render() {\n const {\n slide,\n total\n } = this.state;\n\n return (\n <>\n
\n

\n Getting Started\n

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

Welcome to the Xrathus Communities Platform!

\n
\n
\n
\n \"Welcome\n
\n
\n
\n
\n\n
\n
\n
\n

First, create your Xrathus Account. From the Xrathus Homepage\n invoke Sign Up with Email or Sign In using Google,\n Microsoft, and/or GitHub to create a Xrathus Account.

\n \"Join\n
\n
\n
\n\n
\n
\n
\n

To participate in the community, review\n the Xrathus Terms of Use and provide requested information\n to create your personal Xrathus Account.

\n
\n
\n \"Registration\n
\n
\n

Upon receipt of your sign-in information, you will\n immediately receive an automated email to verify your choice of Email ID.\n Check your junk email or spam email in case you do not immediately receive\n the verification email. Once you verify your Email ID, your Xrathus Account\n will be activated and ready for immediate access.

\n

\n \"Registration\n

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

For all your future visits to the Xrathus Communities Platform, you\n can Sign-in with your credentials using the Sign-In link\n located at the top right-hand corner of the Xrathus Communities home page.

\n
\n
\n \"Xrathus\n
\n
\n \"Login\n
\n
\n
\n\n
\n
\n
\n

To optimize your journey through Xrathus Communities, you will be presented \n with our five personas at first sign-in. Review our five personas and select \n and save the one persona you most identify with as your primary persona. \n You will be enabled to select multiple personas as you progress your skills for the \n other personas.

\n
\n
\n \"Select\n
\n
\n
\n\n
\n
\n
\n

Once signed in, you land on the Connect Dashboard. This Dashboard is \n identical to the dashboards in the Hub and Training substrates, differentiated by the \n multiplicity of tools available in each.

\n
\n
\n \"Dashboards\"/\n
\n
\n
\n\n\n {/* Slide Navigation */}\n\n
\n this.navigate('prev', -1)}\n disabled={(slide === 0)}\n >\n Previous\n \n \n this.navigate('next', -1)}\n disabled={(slide >= (total - 1))}\n >\n Next\n \n \n
\n\n
\n\n
\n {[...this.renderIndicators()]}\n
\n\n
\n \n );\n }\n}\n\nexport default withRouter(GettingStarted);","/**\n * Messaging / Language\n * Personas\n * Substrates\n * Value Drivers\n */\nexport const language = {\n personas: {\n default: {\n description: `\n We are here for you. As a community member, find the tools, knowledge base, and support you need in our \n five core personas.\n `\n },\n data_scientist: {\n name: 'Data Scientist',\n description: `\n Analyzes data, seeks accessible infrastructure to design and builds AI/ML models. Collaborates with \n Domain and Developer personas to smarten and optimize solutions\n `,\n icon: 'icon-role-Data-Scientist.svg'\n },\n developer: {\n name: 'Developer',\n description: `\n Optimizes algorithms, extends platform functionality and ideates with other personas to create and \n deliver optimal deployments\n `,\n icon: 'icon-role-Developer.svg'\n },\n domain: {\n name: 'Domain',\n description: `\n Collaborates on technical issues and innovation, imparts subject expertise and intuitions. Domain \n personas innovate, mentor and deliver solutions in Xrathus Communities\n `,\n icon: 'icon-role-Domain.svg'\n },\n product_owner: {\n name: 'Product Owner',\n description: `\n Collaborates with fellow owners, such as portfolio, feature, scrum, component, platform owners, to \n glean updates, share experiences and expertise and mentor on developments and more to maximize value \n for all solutions\n `,\n icon: 'icon-role-Product-Owner.svg'\n },\n sponsor: {\n name: 'Sponsor',\n description: `\n Establishes and enhances network of contacts to implement delivery of strategic solutions and projects \n to completion. Participates in investment and market opportunities\n `,\n icon: 'icon-role-Sponsor.svg'\n }\n },\n substrates: {\n connect: {\n name: 'Connect',\n description_short: 'Connection and collaboration substrate',\n description: `\n Convening substrate for large scale, multi-party cross-disciplinary collaboration and ideation\n `\n },\n hub: {\n name: 'Hub',\n description_short: 'Innovation and development substrate',\n description: `\n Collaborative data science environment & on-demand AI/ML tools to advance solutions\n `\n },\n marketplace: {\n name: 'Marketplace',\n description_short: 'Commercialization substrate',\n description: `\n Community-powered marketplace optimizing the on-demand provisioning of services and products\n `\n },\n training: {\n name: 'Training',\n description_short: 'Learning and knowledge Base substrate',\n description: `\n On-demand, cross-disciplinary learning with robust knowledge bases\n `\n }\n }\n};\n","import React, {Component} from 'react';\nimport HomeHeroBG from '../css/images/Home-Hero-bg.jpg';\n\nconst homeHeroStyle = {\n backgroundImage: `url(${HomeHeroBG})`\n};\n\nclass HomeHero extends Component {\n render() {\n return (\n
\n
\n \n

\n Join the digital ecosystem where\n \n productive collaboration happens.\n

\n

\n Xrathus is your venue for collaborating productively across\n \n time zones and organizational boundaries.\n

\n
\n
\n \n );\n }\n}\n\nexport default HomeHero;\n","import React, {Component} from 'react';\nimport AAPGLogo from '../css/images/AAPG-Logo.png';\nimport BizHubBAMLogo from '../css/images/BizHub-BAM-logo.png';\nimport CriterionLogo from '../css/images/Criterion-Logo.jpg';\nimport SEGLogo from '../css/images/SEG-SoEG-logo.png';\n\n/**\n * Component to display a grid of Organization logos\n *\n */\nclass HomeOrganizations extends Component {\n render() {\n return (\n
\n
\n \"BizHub\"/\n
\n
\n \"Criterion\"/\n
\n
\n \"Society\n
\n
\n \"AAPG\"/\n
\n
\n )\n }\n}\n\nexport default HomeOrganizations;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nclass HomePersona extends Component {\n\n handleHover = (type) => {\n if (typeof this.props.onHoverFunc === 'function') {\n this.props.onHoverFunc((type === 'over') ? this.props.typeName : null);\n }\n };\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc(this.props.type);\n }\n };\n\n render() {\n const {\n content,\n icon,\n selected,\n type\n } = this.props;\n\n return (\n <>\n
this.handleHover('over')}\n onMouseOut={() => this.handleHover('out')}\n onClick={(e) => this.handleClick(e)}\n >\n {icon &&\n {content.name}/\n }\n \n {content.name}\n \n
\n \n )\n }\n}\n\nHomePersona.propTypes = {\n content: PropTypes.object,\n icon: PropTypes.any,\n onClickFunc: PropTypes.func,\n onHoverFunc: PropTypes.func,\n rotation: PropTypes.string,\n selected: PropTypes.bool,\n style: PropTypes.object,\n type: PropTypes.string,\n typeName: PropTypes.string\n};\n\nHomePersona.defaultProps = {\n content: {\n name: ''\n },\n rotation: '0deg',\n selected: false,\n style: {},\n type: 'developer',\n typeName: 'developer'\n};\n\nexport default HomePersona;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ValueImage from '../css/images/Home-Value-Collaboration.jpg';\n\nclass HomeValueSectionCollaboration extends Component {\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc({\n type: 'Question',\n subject: 'Shared Projects'\n });\n }\n };\n\n render() {\n return (\n <>\n
\n
\n
\n
\n \"Collaboration\"/\n
\n
\n

\n Bring people together, no matter what silo or state they live in.\n

\n

\n Combine the power of collaboration with the efficiency of a\n digital workspace and sprinkle in some powerful data science\n tools to accelerate solutions from ideas to commercial\n implementation.\n

\n\n this.handleClick(e)}\n >\n Learn More >\n \n
\n
\n
\n
\n \n )\n }\n}\n\nHomeValueSectionCollaboration.propTypes = {\n onClickFunc: PropTypes.func\n};\n\nexport default HomeValueSectionCollaboration;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ValueImage from '../css/images/Home-Value-Bichronous.jpg';\n\nclass HomeValueSectionBichronous extends Component {\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc({\n type: 'Question',\n subject: 'Bichronous Collaboration'\n });\n }\n };\n\n render() {\n return (\n <>\n
\n
\n
\n
\n \"Bichronous\"/\n
\n
\n

\n Harness the power of working bichronously.\n

\n

\n Get ready to learn your new favorite word!\n

\n

\n Bichronous = synchronous + asynchronous\n

\n

\n The Xrathus platform is built for all modes of work, including\n on-demand real-time collaboration, so your project team members\n can switch effortlessly between working in sync and working\n independently, all within the same dedicated space.\n

\n\n this.handleClick(e)}\n >\n Learn More >\n \n
\n
\n
\n
\n \n )\n }\n}\n\nHomeValueSectionBichronous.propTypes = {\n onClickFunc: PropTypes.func\n};\n\nexport default HomeValueSectionBichronous;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ValueImage from '../css/images/Home-Value-Marketplace.jpg';\n\nclass HomeValueSectionMarketplace extends Component {\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc({\n type: 'Question',\n subject: 'Marketplace'\n });\n }\n };\n\n render() {\n return (\n <>\n
\n
\n
\n
\n \"marketplace\"/\n
\n
\n

\n Find the services and expertise you need, when you need them,\n through our community-powered marketplace.\n

\n

\n We're building a network of partners and collaborators to\n deliver the support and services your project needs, whenever\n you realize it needs them.\n

\n this.handleClick(e)}\n >\n Learn More >\n \n
\n
\n
\n
\n \n )\n }\n}\n\nHomeValueSectionMarketplace.propTypes = {\n onClickFunc: PropTypes.func\n};\n\nexport default HomeValueSectionMarketplace;\n","export const XRATHUS_PAGE_FORM = {\n 'home': {\n title: 'How can we help you collaborate more productively?',\n content1: 'Ready to see what Xrathus can do for you?',\n content2: `\nBook a demo today or fill in the contact form and one of our specialists will get in touch to learn more about your business and explore how we can help you collaborate.\n `\n },\n 'substrates': {\n title: 'Which aspect of collaboration interests you most?',\n content1: 'Ready to put Xrathus to the test?',\n content2: `\nBook a demo today or fill in the contact form and one of our specialists will get in touch to learn more about your collaboration challenge.\n `\n },\n 'use-cases': {\n title: 'How can Xrathus help your ideas flourish?',\n content1: 'Ready to work in the Xrathus ecosystem?',\n content2: `\nBook a demo today or fill in the contact form and one of our specialists will get in touch to learn more about your collaboration challenge.\n `\n }\n};\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withKeycloak} from '@react-keycloak/web';\nimport {checkAuthentication} from '../utils/authFunctions';\nimport {XRATHUS_PAGE_FORM} from '../data/page-form';\nimport '../css/page-form.css';\nimport {connect} from 'react-redux';\n\nclass PagePrompt extends Component {\n constructor(props) {\n super(props);\n this.state = {\n formValues: {\n company: '',\n email: '',\n name: '',\n },\n page: XRATHUS_PAGE_FORM[props.type]\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let updateState = false;\n let user = {\n email: prevState.formValues.email,\n name: prevState.formValues.name\n };\n const isAuthenticated = checkAuthentication(nextProps.tokens.token, nextProps.keycloak.token, nextProps.keycloak.authenticated);\n if (\n isAuthenticated &&\n nextProps.keycloakReady &&\n (nextProps.user.name !== prevState.formValues.name)\n ) {\n user = {\n email: nextProps.user.email,\n name: nextProps.user.name\n };\n updateState = true;\n }\n if (updateState) {\n return {\n formValues: {\n name: user.name,\n email: user.email\n }\n };\n }\n\n return null;\n }\n\n handleClick = (type) => {\n let args = {\n form: null\n };\n if (type === 'form') {\n let formValues = this.state.formValues;\n args.type = 'Book A Call';\n args.subject = 'Book A Call';\n if (formValues.name) {\n args.name = formValues.name;\n }\n if (formValues.company) {\n args.company = formValues.company;\n }\n if (formValues.email) {\n args.email = formValues.email;\n }\n }\n if (type === 'demo') {\n args.type = 'Demo Request';\n args.subject = 'Demo Request';\n }\n if (typeof this.props.onSubmitFunc === 'function') {\n this.props.onSubmitFunc(args);\n }\n };\n\n render() {\n const {\n page\n } = this.state;\n\n return (\n
\n
\n
\n
\n
\n
\n
\n {page.title &&\n

\n {page.title}\n

\n }\n {page.content1 &&\n

{page.content1}

\n }\n {page.content2 &&\n

{page.content2}

\n }\n
\n
\n
\n
\n
\n
\n
\n
\n this.handleClick('demo')}\n >\n Book A Demo >\n \n
\n
\n this.handleClick('form')}\n >\n Request A Call >\n \n
\n
\n
\n
\n
\n
\n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n keycloakReady: state.keycloakReady,\n tokens: {\n token: state.tokens.token\n },\n user: state.user\n };\n};\n\nPagePrompt.propTypes = {\n onSubmitFunc: PropTypes.func,\n type: PropTypes.string.isRequired\n};\n\nexport default withKeycloak(\n connect(mapStateToProps)(PagePrompt)\n);","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {Link, withRouter} from 'react-router-dom';\n\nclass HomeSubstrate extends Component {\n\n handleMouseOver = (e) => {\n if (typeof this.props.onMouseOverFunc === 'function') {\n this.props.onMouseOverFunc(this.props.type);\n }\n };\n\n handleMouseOut = (e) => {\n if (typeof this.props.onMouseOutFunc === 'function') {\n this.props.onMouseOutFunc(null);\n }\n };\n\n render() {\n const {\n active,\n allowHover,\n content,\n link,\n type\n } = this.props;\n\n const activeClass = (allowHover && active) ? 'active' : '';\n const allowHoverClass = (allowHover) ? 'allow-hover' : '';\n\n if (link) {\n return (\n this.handleMouseOver(e)}\n onMouseOut={(e) => this.handleMouseOut(e)}\n >\n {content.name}\n {content.description_short}\n {content.description}\n \n )\n }\n\n return (\n this.handleMouseOver(e)}\n onMouseOut={(e) => this.handleMouseOut(e)}\n >\n {content.name}\n {content.description_short}\n {content.description}\n \n )\n }\n}\n\nHomeSubstrate.propTypes = {\n active: PropTypes.bool,\n allowHover: PropTypes.bool,\n content: PropTypes.object,\n link: PropTypes.string,\n onMouseOutFunc: PropTypes.func,\n onMouseOverFunc: PropTypes.func,\n type: PropTypes.string\n};\n\nHomeSubstrate.defaultProps = {\n active: false,\n allowHover: true,\n content: {\n name: '',\n description: '',\n description_short: ''\n },\n type: 'connect',\n};\n\nexport default withRouter(HomeSubstrate);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {language} from '../data/language';\nimport HomeSubstrate from '../partials/HomeSubstrate';\nimport SubstratesConnect from '../css/images/Substrates-Connect.svg';\nimport SubstratesHub from '../css/images/Substrates-Hub.svg';\nimport SubstratesMarketplace from '../css/images/Substrates-Marketplace.svg';\nimport SubstratesTraining from '../css/images/Substrates-Training.svg';\nimport '../css/substrates-icon-links.css';\n\nclass SubstratesIconLinks extends Component {\n constructor(props) {\n super(props);\n this.state = {\n activeSubstrate: null\n };\n }\n\n /**\n * Set selected Substrate to active\n */\n setActiveSubstrate = (e) => {\n if (this.props.allowHover) {\n const activeState = this.state.activeSubstrate;\n if (e !== activeState) {\n this.setState({\n activeSubstrate: e\n });\n }\n }\n };\n\n render() {\n const {\n allowLink,\n isAuthenticated\n } = this.props;\n\n const {\n activeSubstrate\n } = this.state;\n\n const connectLink = (allowLink)\n ? (isAuthenticated) ? '/x/connect' : '/x/substrates#connect'\n : null;\n const hubLink = (allowLink)\n ? (isAuthenticated) ? '/x/hub' : '/x/substrates#hub'\n : null;\n const marketplaceLink = (allowLink)\n ? (isAuthenticated) ? '/x/marketplace' : '/x/substrates#marketplace'\n : null;\n const trainingLink = (allowLink)\n ? (isAuthenticated) ? '/x/training' : '/x/substrates#training'\n : null;\n\n return (\n
\n
\n \"Substrates\n \"Substrates\n \"Substrates\n \"Substrates\n\n
this.setActiveSubstrate(null)}>\n this.setActiveSubstrate('connect')}>\n \n this.setActiveSubstrate('hub')}>\n \n this.setActiveSubstrate('marketplace')}>\n \n this.setActiveSubstrate('training')}>\n \n
\n this.setActiveSubstrate(e)}\n onMouseOutFunc={(e) => this.setActiveSubstrate(e)}\n link={connectLink}\n />\n this.setActiveSubstrate(e)}\n onMouseOutFunc={(e) => this.setActiveSubstrate(e)}\n link={hubLink}\n />\n this.setActiveSubstrate(e)}\n onMouseOutFunc={(e) => this.setActiveSubstrate(e)}\n link={marketplaceLink}\n />\n this.setActiveSubstrate(e)}\n onMouseOutFunc={(e) => this.setActiveSubstrate(e)}\n link={trainingLink}\n />\n
\n
\n );\n }\n}\n\nSubstratesIconLinks.propTypes = {\n allowHover: PropTypes.bool,\n allowLink: PropTypes.bool,\n isAuthenticated: PropTypes.bool\n};\n\nSubstratesIconLinks.defaultProps = {\n allowHover: true,\n allowLink: true,\n isAuthenticated: false\n};\n\nexport default SubstratesIconLinks;\n","import React from 'react';\nimport {Link} from 'react-router-dom';\nimport ReactMarkdown from 'react-markdown';\nimport {makeDateString} from '../utils/dataFunctions';\n\n//@TODO: Create an Image List for existing organizations once API is in place for images related to orgs.\n// const organizationList = []\n\n/**\n * Challenge Item (grid)\n *\n * @param projectItem\n * @param idx\n * @param classes\n * @param inUserChallenges\n * @param clickFunc\n * @param clickLink\n * @param progress\n * @return {*}\n * @constructor\n */\nexport default function ChallengeItem({\n projectItem,\n idx,\n classes,\n inUserChallenges = false,\n clickFunc = null,\n clickLink = null,\n progress = false\n}) {\n\n // @TODO Completed Challenge: display with seal\n\n // Set classes, button text, strings\n const classStr = (classes) ? classes : '';\n const buttonText = (inUserChallenges) ? 'Access' : 'Preview';\n const dateObj = (projectItem.due_date) ? new Date(projectItem.due_date.replace(/-/g, '/').replace(/T.+/, '')) : null;\n const dueStr = (dateObj) ? makeDateString(dateObj, 'm', false) : null;\n\n // If requested, create a Progress element with days remaining\n let days, remainingStr;\n let percent = 0;\n if (progress) {\n const created = new Date(projectItem.created_on);\n const due = new Date(projectItem.due_date);\n const today = new Date();\n days = (Math.ceil((today.getTime() - due.getTime()) / (1000 * 60 * 60 * 24))) * -1;\n percent = ((today.getTime() - created.getTime()) / (due.getTime() - created.getTime()) * 100);\n if (percent < 0.1) {\n percent = 1;\n }\n if (percent > 99.9) {\n percent = 100;\n }\n remainingStr = (days === 1) ? days + ' day left' : days + ' days left';\n if (days < 0) {\n remainingStr = 'Due Date Past';\n percent = 100;\n }\n }\n\n const handleClick = (e) => {\n e.preventDefault();\n if (clickFunc) {\n clickFunc(projectItem.id);\n }\n };\n\n return (\n
\n {progress &&\n
\n
\n Challenge\n {remainingStr}\n
\n
\n \n \n
\n
\n }\n
\n\n
\n
\n
\n

{projectItem.title}

\n
\n
\n
\n\n
\n
\n \n
\n {dueStr ?\n
\n

\n

\n Due Date: {dueStr}\n

\n
\n :\n
\n

\n

\n

\n }\n
\n\n
\n {clickFunc !== null &&\n \n }\n {clickLink !== null &&\n {buttonText}\n }\n
\n
\n
\n );\n}\n","import React from 'react';\nimport {Link} from 'react-router-dom';\nimport ReactMarkdown from 'react-markdown';\nimport {makeDateString} from '../utils/dataFunctions';\n\n/**\n * Event Item (grid)\n *\n * @param eventItem\n * @param classes\n * @param inInvitedEvents\n * @param inOwnEvents\n * @param inUserOrOwnEvents\n * @param clickFunc\n * @param clickLink\n * @param isAuthenticated\n * @return {*}\n * @constructor\n */\nexport default function EventItem({\n eventItem,\n classes,\n inInvitedEvents = false,\n inOwnEvents = false,\n inUserOrOwnEvents = false,\n clickFunc = null,\n clickLink = null,\n isAuthenticated\n }) {\n\n // Set classes, button text, strings\n const classStr = (classes) ? classes : '';\n const buttonText = (inUserOrOwnEvents) ? 'Access' : 'Preview';\n const startDateStr = (eventItem.start_time) ? makeDateString(eventItem.start_time, 'm', true) : '';\n const endDateStr = (eventItem.end_time) ? makeDateString(eventItem.end_time, 'm', true) : '';\n\n\n const handleClick = (e) => {\n e.preventDefault();\n if (clickFunc) {\n clickFunc(eventItem.id);\n }\n };\n\n return (\n
\n
\n\n
\n
\n
\n

{eventItem.name}

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

\n Event Creator: {eventItem.username}\n

\n {startDateStr !== '' &&\n

\n Starts: {startDateStr}\n

\n }\n {endDateStr !== '' &&\n

\n Ends: {endDateStr}\n

\n }\n
\n
\n\n
\n {clickFunc !== null &&\n \n }\n {clickLink !== null && isAuthenticated &&\n {buttonText}\n }\n {clickLink !== null && !isAuthenticated &&\n {buttonText}\n }\n
\n
\n
\n );\n}\n","import React from 'react';\nimport {Link} from 'react-router-dom';\nimport ReactMarkdown from 'react-markdown';\nimport {makeDateString} from '../utils/dataFunctions';\n\n//@TODO: Create an Image List once API is in place for images related to Projects.\n\n/**\n * Project Item (grid)\n *\n * @param projectItem\n * @param classes\n * @param inInvitedProjects\n * @param inOwnProjects\n * @param inUserOrOwnProjects\n * @param clickFunc\n * @param clickLink\n * @param progress\n * @return {*}\n * @constructor\n */\nexport default function ProjectItem({\n projectItem,\n classes,\n inInvitedProjects = false,\n inOwnProjects = false,\n inUserOrOwnProjects = false,\n clickFunc = null,\n clickLink = null,\n progress = false\n}) {\n\n // Set classes, button text, strings\n const classStr = (classes) ? classes : '';\n const buttonText = (inUserOrOwnProjects) ? 'Access' : 'Preview';\n const dateObj = (projectItem.due_date) ? new Date(projectItem.due_date.replace(/-/g, '/').replace(/T.+/, '')) : null;\n const dueStr = (dateObj) ? makeDateString(dateObj, 'm', false) : null;\n\n // If requested, create a Progress element with days remaining\n let days, remainingStr;\n let percent = 0;\n let projectType = 'Personal Project';\n if (progress) {\n const created = new Date(projectItem.created_on);\n const due = new Date(projectItem.due_date);\n const today = new Date();\n days = (Math.ceil((today.getTime() - due.getTime()) / (1000 * 60 * 60 * 24))) * -1;\n remainingStr = (days === 1) ? days + ' day left' : days + ' days left';\n if (days < 0) {\n remainingStr = 'Due Date Past';\n }\n percent = ((today.getTime() - created.getTime()) / (due.getTime() - created.getTime()) * 100);\n if (percent < 0.1) {\n percent = 1;\n }\n if (percent > 99.9) {\n percent = 100;\n }\n if (inInvitedProjects) {\n projectType = 'Shared Personal Project';\n }\n }\n\n const handleClick = (e) => {\n e.preventDefault();\n if (clickFunc) {\n clickFunc(projectItem.id);\n }\n };\n\n return (\n
\n {progress &&\n
\n
\n {projectType}\n {remainingStr}\n
\n
\n \n \n
\n
\n }\n
\n\n
\n
\n
\n

{projectItem.title}

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

\n Project Owner: {projectItem.username}\n

\n {dueStr &&\n

\n Due Date: {dueStr}\n

\n }\n
\n
\n\n
\n {clickFunc !== null &&\n \n }\n {clickLink !== null &&\n {buttonText}\n }\n
\n
\n
\n );\n}\n","import React from 'react';\nimport ChallengeItem from '../partials/ChallengeItem';\nimport EventItem from \"../partials/EventItem\";\nimport ProjectItem from '../partials/ProjectItem';\n\n/**\n * Generate an array of Challenge Items for a grid\n *\n * @param project_list\n * @param user_challenge_list\n * @param empty_message\n * @return {JSX.Element|*}\n */\nexport const setChallengesList = (project_list, user_challenge_list, empty_message = 'No Challenges') => {\n if (!project_list || project_list.length === 0) {\n return (\n [0].map(() => (\n
\n
\n {empty_message}\n
\n
\n ))\n );\n }\n return (\n project_list.map((item, index) => (\n
\n \n
\n ))\n );\n};\n\n/**\n * Generate an array of Event Items for a grid\n *\n * @param list_type\n * @param event_list\n * @param user_event_list\n * @param empty_message\n * @param isAuthenticated\n * @return {JSX.Element|*}\n */\nexport const setEventsList = (list_type, event_list, user_event_list, empty_message = 'No Events', isAuthenticated = true) => {\n\n if (!event_list || event_list.length === 0) {\n return (\n [0].map(() => (\n
\n
\n {empty_message}\n
\n
\n ))\n );\n }\n\n return (\n event_list.map((item, index) => {\n let clickLink;\n if(isAuthenticated) {\n clickLink = `/x/connect/event/${(list_type === 'events-public') ? 'public' : 'personal'}/${item.id}/overview`;\n } else {\n clickLink = `https://www.airmeet.com/e/${item.id}`\n }\n\n return (\n
\n \n
\n )\n })\n );\n};\n\n/**\n * Generate an array of Project Items for a grid\n *\n * @param project_list\n * @param user_project_list\n * @param empty_message\n * @return {JSX.Element|*}\n */\nexport const setProjectsList = (project_list, user_project_list, empty_message = 'No Projects') => {\n if (!project_list || project_list.length === 0) {\n return (\n [0].map(() => (\n
\n
\n {empty_message}\n
\n
\n ))\n );\n }\n\n return (\n project_list.map((item, index) => (\n
\n \n
\n ))\n );\n};\n\n/**\n * Determine if an ID is in a list of Challenges, Projects, or Events\n *\n * @param list\n * @param id\n * @returns {boolean}\n */\nexport const inUserList = (list, id) => {\n const idx = list.findIndex(r => r.id === id);\n return (idx !== -1);\n};\n\n/**\n * Determine if a Data ID is in a list of Challenges, Projects, or Events\n *\n * @param list\n * @param dataId\n * @returns {boolean}\n */\nexport const datasetInUserList = (list, dataId) => {\n const idx = list.findIndex(r => r.data_id === dataId);\n return (idx !== -1);\n};\n\n/**\n * Get Events permissions (Sysop or Event Owner) by Event ID\n *\n * @param user\n * @param list\n * @param eventId\n * @returns {{owner: boolean, sysop: (boolean|*)}}\n */\nexport const getEventPermissions = (user, list, eventId) => {\n return {\n sysop: user?.is_sysop ?? false,\n owner: inUserList(list, eventId)\n };\n};\n\n/**\n * Get Project permissions (Sysop or Project Owner) by Project ID or Dataset ID\n *\n * @param user\n * @param list\n * @param projectId\n * @param dataId\n * @returns {{owner: boolean, sysop: (boolean|*)}}\n */\nexport const getProjectPermissions = (user, list, projectId, dataId) => {\n const inOwnProjects = ((projectId)\n ? inUserList(list, projectId)\n : datasetInUserList(list, dataId)\n );\n return {\n sysop: user?.is_sysop ?? false,\n owner: inOwnProjects\n };\n};\n\n/**\n * Assemble Max Dataset Size values from all configurations\n *\n * @param config\n * @param userConfig\n * @param projectConfig\n * @returns {{default, project: (null|*), user: *}}\n */\nexport const getMaxDatasetSize = (config, userConfig, projectConfig) => {\n const project = projectConfig ?? {max_dataset_size: null};\n return {\n default: config.max_dataset_size,\n project: (project.max_dataset_size !== null)\n ? project.max_dataset_size : (userConfig.max_dataset_size !== null)\n ? userConfig.max_dataset_size : config.max_dataset_size,\n user: (userConfig.max_dataset_size !== null) ? userConfig.max_dataset_size : config.max_dataset_size\n };\n};\n\n/**\n * Assemble Max Event Shares values from all configurations\n *\n * @param config\n * @param userConfig\n * @param eventConfig\n * @returns {{default, project: (null|*), user: *}}\n */\nexport const getMaxEventShares = (config, userConfig, eventConfig) => {\n const event = eventConfig ?? {max_shares: null};\n return {\n default: config.max_shares,\n event: (event.max_shares !== null)\n ? event.max_shares : (userConfig.max_shares !== null)\n ? userConfig.max_event_shares : config.max_shares,\n user: (userConfig.max_event_shares !== null) ? userConfig.max_event_shares : config.max_shares\n };\n};\n\n/**\n * Assemble Max Project Shares values from all configurations\n *\n * @param config\n * @param userConfig\n * @param projectConfig\n * @returns {{default, project: (null|*), user: *}}\n */\nexport const getMaxShares = (config, userConfig, projectConfig) => {\n const project = projectConfig ?? {max_shares: null};\n return {\n default: config.max_shares,\n project: (project.max_shares !== null)\n ? project.max_shares : (userConfig.max_shares !== null)\n ? userConfig.max_shares : config.max_shares,\n user: (userConfig.max_shares !== null) ? userConfig.max_shares : config.max_shares\n };\n};\n\n/**\n * Assemble Max Volumes values from all configurations\n *\n * @param config\n * @param userConfig\n * @param projectConfig\n * @returns {{default, project: *, user: *}}\n */\nexport const getMaxVolumes = (config, userConfig, projectConfig) => {\n const project = projectConfig ?? {max_volumes: null};\n return {\n default: config.max_volumes,\n project: (project.max_volumes !== null)\n ? project.max_volumes : (userConfig.max_volumes !== null)\n ? userConfig.max_volumes : config.max_volumes,\n user: (userConfig.max_volumes !== null) ? userConfig.max_volumes : config.max_volumes\n };\n};\n\n/**\n * Determine if newly uploaded files and existing files surpass the Dataset Size limit\n *\n * @param existingFiles\n * @param newFiles\n * @param maxSize\n * @returns {boolean}\n */\nexport const withinDatasetSize = (existingFiles, newFiles, maxSize) => {\n let existingSize = 0;\n let newSize = 0;\n for (let e = 0; e < existingFiles.length; e++) {\n existingSize += existingFiles[e].size;\n }\n for (let n = 0; n < newFiles.length; n++) {\n newSize += newFiles[n].file.size;\n }\n return (existingSize + newSize) < (maxSize * 1000000000);\n};\n\n/**\n * Populate User Personal Event Configuration from global values\n *\n * @param defaultConfig\n * @param userConfig\n * @returns {{}}\n */\nexport const populatePersonalEventUserConfig = (defaultConfig, userConfig) => {\n let config = {};\n config.max_shares = userConfig?.max_shares ?? defaultConfig.max_shares;\n config.max_events = userConfig?.max_events ?? defaultConfig.max_events;\n return config;\n};\n\n/**\n * Populate User Personal Project Configuration from global values\n *\n * @param defaultConfig\n * @param userConfig\n * @returns {{}}\n */\nexport const populatePersonalProjectUserConfig = (defaultConfig, userConfig) => {\n let config = {};\n config.max_dataset_size = userConfig?.max_dataset_size ?? defaultConfig.max_dataset_size;\n config.max_shares = userConfig?.max_shares ?? defaultConfig.max_shares;\n config.max_volumes = userConfig?.max_volumes ?? defaultConfig.max_volumes;\n config.projects = userConfig?.projects ?? defaultConfig.projects;\n return config;\n};\n\n/**\n * Populate a short description for a Challenge, Event or Project from its Summary\n *\n * @param data\n * @param type\n * @returns {string}\n */\nexport const populateShortDescription = (data, type) => {\n let summary;\n summary = data?.summary ?? '';\n\n if (type === 'event') {\n summary = data?.short_desc ?? '';\n }\n\n const ell = (summary.length > 100) ? '...' : '';\n return summary.substr(0, 100) + ell;\n};\n\n/**\n * Create a future due date\n *\n * @param separator\n * @returns {{due_str: string, due_date: Date}}\n */\nexport const setDueDate = (separator = '/') => {\n const today = new Date();\n const due = new Date(today);\n due.setDate(due.getDate() + 1);\n return {\n due_date: due,\n due_str: due.getFullYear() + separator + (due.getMonth() + 1) + separator + due.getDate()\n };\n};\n\n/**\n * Prevent previous date selection\n *\n * @param time\n * @returns {boolean}\n */\nexport const filterPassedTime = (time) => {\n const currentDate = new Date();\n const selectedDate = new Date(time);\n\n return currentDate.getTime() < selectedDate.getTime();\n};\n\n/**\n * Assemble a URL for an Airmeet URL and launch a tab\n *\n * @param projectType\n * @param projectId\n * @param type\n * @param uuid\n * @param launch\n */\nexport const launchAirmeet = (projectType, projectId, type, uuid, launch = true) => {\n\n // Assemble Airmeet path with type and UUID\n let path = '';\n switch (projectType) {\n case 'challenge':\n path = '/x/hub/challenge/';\n break;\n case 'event':\n path = '/x/connect/event/';\n break;\n case 'project':\n path = '/x/hub/project/personal/';\n break;\n case 'project_personal':\n path = '/x/hub/project/personal/';\n break;\n default:\n break;\n }\n path += projectId + '/rtc/';\n path += (type === 'session') ? 's/' : 'e/';\n path += uuid;\n if (launch) {\n window.open(window.location.origin + path, '_self');\n }\n};\n\n/**\n * Assemble path for an Airmeet embed view\n *\n * @param projectType\n * @param projectId\n * @param type\n * @param uuid\n * @returns {string}\n */\nexport const assembleAirmeetPath = (projectType, projectId, type, uuid) => {\n let path = '';\n switch (projectType) {\n case 'challenge':\n path = '/x/hub/challenge/';\n break;\n case 'event':\n path = '/x/connect/event/';\n break;\n case 'project':\n path = '/x/hub/project/personal/';\n break;\n case 'project_personal':\n path = '/x/hub/project/personal/';\n break;\n default:\n break;\n }\n path += projectId + '/rtc/';\n path += (type === 'session') ? 's/' : 'e/';\n path += uuid;\n return path;\n};\n","import {useState, useEffect} from \"react\";\nimport {setEventsList} from \"../utils/projectFunctions\";\nimport {makeGetDataRequest} from \"../utils/getRequest\";\nimport {RESOURCES as resources} from \"../resourcesEvent\";\n\nconst EventCarrousel = ({isAuthenticated}) => {\n const [publicList, setPublicList] = useState([]);\n const [totalPages, setTotalPages] = useState(1);\n const [currentPage, setCurrentPage] = useState(1);\n\n useEffect(() => {\n const params = {\n order: 'ASC',\n page: currentPage,\n perPage: 3,\n sort: 'ASC',\n sortBy: 'start_time'\n }\n\n const request = makeGetDataRequest(resources, 'EventHomePagePublic', 'GET_LIST', params, isAuthenticated);\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Events Retrieval Error: ', result);\n setPublicList(null);\n return Promise.resolve(result);\n }\n const totalPages = Math.ceil(result.TotalRows / 3);\n setPublicList(result.AirmeetEvents);\n setTotalPages(totalPages);\n return Promise.resolve(result);\n } else {\n console.log('Events Retrieval Error: No result');\n return Promise.reject('Events Retrieval failed');\n }\n }).catch(error => {\n console.log('Events Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n }, [currentPage, isAuthenticated])\n\n function handleRightClick() {\n setCurrentPage((prevState) => prevState + 1);\n }\n\n function handleLeftClick() {\n setCurrentPage((prevState) => prevState - 1);\n }\n\n return (\n <>\n
\n {[...setEventsList('events-public', publicList, publicList, 'No Public Events found.', isAuthenticated)]}\n {publicList && publicList.length > 0 &&\n
\n \n \n
\n }\n
\n \n )\n}\n\nexport default EventCarrousel;","import PropTypes from 'prop-types';\nimport {withKeycloak} from '@react-keycloak/web';\nimport {connect} from 'react-redux';\nimport {checkAuthentication} from '../utils/authFunctions';\nimport {openHelpWidgetWithParams} from '../utils/pageFunctions';\nimport {language} from '../data/language';\nimport HomeHero from '../partials/HomeHero';\nimport HomeOrganizations from '../partials/HomeOrganizations';\nimport HomePersona from '../partials/HomePersona';\nimport HomeValueSectionCollaboration from '../partials/HomeValueSectionCollaboration';\nimport HomeValueSectionBichronous from '../partials/HomeValueSectionBichronous';\nimport HomeValueSectionMarketplace from '../partials/HomeValueSectionMarketplace';\nimport PagePrompt from '../partials/PagePrompt';\nimport RoleDataScientist from '../css/images/icon-role-Data-Scientist.svg';\nimport RoleDeveloper from '../css/images/icon-role-Developer.svg';\nimport RoleDomain from '../css/images/icon-role-Domain.svg';\nimport RoleProductOwner from '../css/images/icon-role-Product-Owner.svg';\nimport RoleSponsor from '../css/images/icon-role-Sponsor.svg';\nimport SubstratesIconLinks from '../partials/SubstratesIconLinks';\nimport '../css/home.css';\nimport '../css/persona.css';\nimport EventCarrousel from \"../partials/EventCarrousel\";\n\nconst Home = ({keycloak, keycloakReady, tokens}) => {\n\n const handleOpenWidget = (section, args = null) => {\n let params = {\n type: 'Question'\n };\n if (section === 'personas') {\n params.subject = 'Personas';\n }\n if (section === 'schedule-demo') {\n params.subject = 'Schedule A Demo';\n params.type = 'Demo Request';\n }\n if (section === 'value') {\n params.subject = args.subject;\n params.type = args.type;\n }\n if (section === 'page-form') {\n params.subject = args.subject;\n params.type = args.type;\n if (args.name) {\n params.name = args.name;\n }\n if (args.company) {\n params.company = args.company;\n }\n if (args.email) {\n params.email = args.email;\n }\n }\n openHelpWidgetWithParams(params, true);\n };\n\n if (!keycloakReady) {\n return (\n <>\n
\n
\n \n );\n }\n\n const isAuthenticated = checkAuthentication(tokens.token, keycloak.token, keycloak.authenticated);\n const displayEvents = true;\n\n return (\n <>\n
\n\n {/* Section: Hero/Intro */}\n \n\n {/* Section: Personas */}\n
\n
\n
\n

\n Bring people, knowledge, and resources together to create\n deployment-ready solutions.\n

\n

\n As a Xrathus community member, you'll find all the tools,\n knowledge, and support you need to create, manage, and\n contribute to projects that drive business forward.\n

\n handleOpenWidget('personas')}\n >\n Learn More >\n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n\n {/* Section: Substrates */}\n \n
\n handleOpenWidget('schedule-demo')}\n >\n Schedule A Live Demo >\n \n
\n\n {/* Section: Value Drivers */}\n handleOpenWidget('value', args)}/>\n handleOpenWidget('value', args)}/>\n handleOpenWidget('value', args)}/>\n\n {/* Section: Organizations */}\n
\n
\n
\n

\n Work alongside all types of leading organizations\n

\n

\n We have created an ecosystem that feels like home to some of the\n world's leading organizations, including global corporations,\n industrial societies, accelerators, incubators, consortia, and\n academic institutions.\n

\n \n
\n
\n
\n\n {/* Section: Events */}\n {displayEvents &&\n
\n
\n
\n

\n Join our Community Events and Programs\n

\n
\n
\n
\n
\n {/* Place Event objects or components in columns */}\n \n
\n
\n
\n }\n\n {/* Section: Form */}\n handleOpenWidget('page-form', args)}/>\n\n
\n \n );\n\n}\n\nconst mapStateToProps = (state) => {\n return {\n keycloakReady: state.keycloakReady,\n tokens: {\n token: state.tokens.token,\n idToken: state.tokens.idToken,\n refreshToken: state.tokens.refreshToken\n },\n };\n};\n\nHome.propTypes = {\n keycloak: PropTypes.any,\n keycloakReady: PropTypes.any,\n tokens: PropTypes.any,\n};\n\nexport default withKeycloak(\n connect(mapStateToProps)(Home)\n);\n","import React, {Component} from 'react';\n\nclass LoggedOut extends Component {\n render() {\n return (\n <>\n
\n

\n Please Log In\n

\n

\n (login)\n

\n
\n \n )\n }\n}\n\nexport default LoggedOut;\n","import React, {Component} from 'react';\n\nclass NotFound extends Component {\n render() {\n return (\n <>\n
\n

\n Not Found\n

\n

Sorry, this page was not found.

\n
\n \n )\n }\n}\n\nexport default NotFound;\n","import React, {Component} from 'react';\n\nclass ParticipationTerms extends Component {\n\n // @TODO\n\n render() {\n return (\n <>\n
\n

\n Training and Challenge Participation Terms (the \"Participation Terms\")\n

\n

\n Last Updated: October 1, 2020\n

\n\n
\n \n )\n }\n}\n\nexport default ParticipationTerms;\n","import React, {Component, Suspense} from 'react';\n\nconst Content = React.lazy(() => import('../data/content/PrivacyPolicy'));\n\nclass PrivacyPolicy extends Component {\n render() {\n return (\n <>\n
\n Xrathus Communities Platform Privacy Policy}>\n \n \n
\n \n )\n }\n}\n\nexport default PrivacyPolicy;\n","import React, {Component} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\n\nclass Release extends Component {\n render() {\n return (\n <>\n
\n
\n
\n
\n

Xrathus Communities Touchpoint

\n

Closed Beta Release Statement

\n

\n Welcome to Xrathus Touchpoint Community Preview! Please join us to discover our\n community-enriched platform which enables you to transform your research and technology\n advancement process from ideas to solutions. This preview will allow you to work independently,\n on-demand or in full cooperation with collaborators to ideate and rapidly deliver optimal\n solutions.\n

\n

Focus on Community and Solution Building

\n

\n Explore and evolve ideas being shared across the community via Clusters in Connect, Xrathus\n connection and the collaboration substrate. Access our Knowledge Base to obtain instant and\n in- depth information to accelerate and optimize your ideas and research.\n

\n

\n Design and build out your solution(s) using the on-demand Data Science work environment in\n Xrathus Hub, the innovation and development substrate. Explore Xrathus Workspace for rapid\n prototyping and elaboration of advanced solutions with widely used open technologies and\n readily available domain specific tools.\n

\n

\n Get to know Xrathus Communities substrates features and capabilities by following\n the Getting Started guide.\n

\n

Launch Plan

\n

\n Xrathus Communities Touchpoint is open to everyone. The Xrathus Hub substrate is accessible by\n invitation only. Once you sign up, if you have been selected as an invitee, you will receive\n an email confirming your invitation and access. Invitations will be sent out during the\n duration of the event.\n

\n

\n As an invitee, please keep in mind that Touchpoint Community Previews are designed to give you\n a sneak peek at upcoming technologies. They are non-final versions of our product and should\n NOT be taken as a measure of the fit, finish, capability, and overall quality of the final\n release.\n

\n

Start Date

\n

\n Xrathus Touchpoint Community Preview will be launched on:\n

\n
    \n
  • October 1st @ 10:30h CST / 11:30h EST
  • \n
\n

\n For more information about our Touchpoint Community Preview, feel free to contact us\n at info@xrathus.com.\n

\n
\n
\n \n )\n }\n}\n\nexport default withRouter(Release);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport SectionImage from '../css/images/Substrates-Section-Connect.jpg';\n\nclass SubstrateSectionConnect extends Component {\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc({\n type: 'Question',\n subject: 'Connect Substrate'\n });\n }\n };\n\n render() {\n return (\n <>\n
\n
\n
\n
\n \"Connect\"/\n
\n
\n

\n Discuss. Solve. Repeat.\n

\n

\n The Connect substrate is the nucleus of\n collaboration projects, where formal and informal discussions\n happen between participants with similar interests and goals.\n Private and public discussion forums are available for ideation,\n problem solving, and building valuable relationships.\n

\n this.handleClick(e)}\n >\n Let's Chat More About This\n \n
\n
\n
\n
\n \n )\n }\n}\n\nSubstrateSectionConnect.propTypes = {\n onClickFunc: PropTypes.func\n};\n\nexport default SubstrateSectionConnect;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport SectionImage from '../css/images/Substrates-Section-Hub.jpg';\n\nclass SubstrateSectionHub extends Component {\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc({\n type: 'Question',\n subject: 'Hub Substrate'\n });\n }\n };\n\n render() {\n return (\n <>\n
\n
\n
\n
\n \"Hub\"/\n
\n
\n

Where the action happens.

\n

\n The Hub substrate gives you seamless access\n to all Xrathus' asynchronous and synchronous capabilities,\n including the pre-configured data science environment. This\n is where agile innovation, improvement, and integration\n cycles happen.\n

\n

\n Each project is automatically equipped with a virtual Real\n Time Collaboration (RTC) zone, which persists throughout\n the project's life-cycle.\n

\n this.handleClick(e)}\n >\n Show Me More\n \n
\n
\n
\n
\n \n )\n }\n}\n\nSubstrateSectionHub.propTypes = {\n onClickFunc: PropTypes.func\n};\n\nexport default SubstrateSectionHub;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport SectionImage from '../css/images/Substrates-Section-Marketplace.jpg';\n\nclass SubstrateSectionMarketplace extends Component {\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc({\n type: 'Question',\n subject: 'Marketplace Substrate'\n });\n }\n };\n\n render() {\n return (\n <>\n
\n
\n
\n
\n \"Marketplace\"/\n
\n
\n

The fast track to commerciality.

\n

\n The Marketplace is where viable products and\n services get their start on the pathway to commercial success.\n

\n

\n As a community member, you can advertise and sell your solutions\n and services and receive feedback from early adopters to drive\n further development.\n

\n this.handleClick(e)}\n >\n Show Me How This Works\n \n
\n
\n
\n
\n \n )\n }\n}\n\nSubstrateSectionMarketplace.propTypes = {\n onClickFunc: PropTypes.func\n};\n\nexport default SubstrateSectionMarketplace;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport SectionImage from '../css/images/Substrates-Section-Training.jpg';\n\nclass SubstrateSectionTraining extends Component {\n\n handleClick = (e) => {\n e.preventDefault();\n if (typeof this.props.onClickFunc === 'function') {\n this.props.onClickFunc({\n type: 'Question',\n subject: 'Training Substrate'\n });\n }\n };\n\n render() {\n return (\n <>\n
\n
\n
\n
\n \"Training\"/\n
\n
\n

Sharing Knowledge.
Developing People.

\n

\n The Training substrate provides tools for\n course creators and administrators to set up and deliver\n cross-domain learning activities and events.\n

\n

\n By integrating with the Connect substrate,\n this helps you share knowledge and empower people to take\n your ideas further.\n

\n this.handleClick(e)}\n >\n Show Me How\n \n
\n
\n
\n
\n \n )\n }\n}\n\nSubstrateSectionTraining.propTypes = {\n onClickFunc: PropTypes.func\n};\n\nexport default SubstrateSectionTraining;\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport {openHelpWidgetWithParams} from '../utils/pageFunctions';\nimport PagePrompt from '../partials/PagePrompt';\nimport SubstratesIconLinks from '../partials/SubstratesIconLinks';\nimport SubstratesProcess from '../css/images/Substrates-Process.png';\nimport SubstrateSectionConnect from '../partials/SubstrateSectionConnect';\nimport SubstrateSectionHub from '../partials/SubstrateSectionHub';\nimport SubstrateSectionMarketplace from '../partials/SubstrateSectionMarketplace';\nimport SubstrateSectionTraining from '../partials/SubstrateSectionTraining';\nimport '../css/page.css';\n\nclass Substrates extends Component {\n\n handleOpenWidget = (section, args = null) => {\n let params = {\n type: 'Question'\n };\n if (section === 'connect' || section === 'hub' || section === 'marketplace' || section === 'training') {\n params.subject = args.subject;\n params.type = args.type;\n }\n if (section === 'page-form') {\n params.subject = args.subject;\n params.type = args.type;\n if (args.name) {\n params.name = args.name;\n }\n if (args.company) {\n params.company = args.company;\n }\n if (args.email) {\n params.email = args.email;\n }\n }\n openHelpWidgetWithParams(params, true);\n };\n\n render() {\n return (\n
\n\n {/* Section: Hero */}\n
\n
\n
\n
\n
\n

\n Connect, innovate, commercialize, capture, and learn.\n

\n

\n Xrathus provides the collaboration functionality you need\n to manage projects and knowledge from inception to\n completion.\n

\n
\n
\n \n
\n
\n
\n
\n
\n\n {/* Section: Introduction */}\n
\n
\n
\n

\n Xrathus enables faster, better outcomes by fostering\n \n multidisciplinary interactions and new ways of working.\n

\n
\n

\n The Xrathus environment is built on four\n substrates: Connect\n , Hub\n , Marketplace\n , and Training.\n

\n

\n Each substrate contains a framework of on-demand tools that\n stimulate collaboration through continuous feedback loops and\n seamless integration.\n

\n

\n Workflows help participants move between tools, streamlining\n projects, evolving collective knowledge, and minimizing delivery\n times.\n

\n

\n The real-time collaboration zone within\n the Hub substrate makes\n bichronous collaboration available to all project participants.\n

\n \"Xrathus\n
\n
\n
\n\n {/* Section: Substrates */}\n this.handleOpenWidget('connect', args)}/>\n this.handleOpenWidget('hub', args)}/>\n this.handleOpenWidget('training', args)}/>\n this.handleOpenWidget('marketplace', args)}/>\n\n {/* Section: Form */}\n this.handleOpenWidget('page-form', args)}/>\n\n
\n )\n }\n}\n\nexport default withRouter(Substrates);\n","import React, {Component} from 'react';\n\nclass Support extends Component {\n render() {\n return (\n <>\n
\n

\n Support\n

\n
\n \n )\n }\n}\n\nexport default Support;\n","import React, {Component, Suspense} from 'react';\n\nconst Content = React.lazy(() => import('../data/content/Terms'));\n\nclass Terms extends Component {\n render() {\n return (\n <>\n
\n Xrathus Communities Platform Terms of Use}>\n \n \n
\n \n )\n }\n}\n\nexport default Terms;\n","import React, {Component} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\nimport {openHelpWidgetWithParams} from '../utils/pageFunctions';\nimport PagePrompt from '../partials/PagePrompt';\nimport SectionCollaborationImage from '../css/images/Use-Cases-Section-Collaboration.jpg';\nimport SectionHackathonImage from '../css/images/Use-Cases-Section-Hackathon.jpg';\nimport SectionIdeationImage from '../css/images/Use-Cases-Section-Ideation.jpg';\nimport SectionLearningImage from '../css/images/Use-Cases-Section-Learning.jpg';\nimport SectionOpenProjectImage from '../css/images/Use-Cases-Section-Open-Project.jpg';\nimport '../css/page.css';\n\nclass UseCases extends Component {\n\n handleOpenWidget = (section, args = null) => {\n let params = {\n type: 'Question'\n };\n if (section === 'hackathon') {\n params.subject = 'Hackathon';\n }\n if (section === 'collaboration') {\n params.subject = 'Collaboration';\n }\n if (section === 'open-project') {\n params.subject = 'Open Project';\n }\n if (section === 'learning') {\n params.subject = 'Learning';\n }\n if (section === 'ideation') {\n params.subject = 'Ideation';\n }\n if (section === 'your-idea') {\n params.type = 'Information';\n params.subject = 'Ideas for Xrathus';\n }\n if (section === 'page-form') {\n params.subject = args.subject;\n params.type = args.type;\n if (args.name) {\n params.name = args.name;\n }\n if (args.company) {\n params.company = args.company;\n }\n if (args.email) {\n params.email = args.email;\n }\n }\n openHelpWidgetWithParams(params, true);\n };\n\n render() {\n return (\n
\n {/* Section: Hero */}\n
\n
\n
\n

\n Xrathus gives you a thousand ways to collaborate.\n \n Here are five examples to get your neurons firing.\n

\n\n
\n \n Hackathon\n \n Bring in-house and external experts together for\n intensive problem-solving.\n \n \n \n Collaboration\n \n Connect participants across boundaries to work together\n without inhibitions.\n \n \n \n Open Project\n \n Let the world know what you're tackling and invite them\n to contribute.\n \n \n \n Learning\n \n Share your knowledge and empower others to take it\n forward.\n \n \n \n Ideation\n \n Great ideas don't grow on trees, but they flourish\n in the Xrathus environment.\n \n \n this.handleOpenWidget('your-idea')}\n >\n Your Idea Here\n \n How are you going to use Xrathus? Let's discuss\n your first project today.\n \n \n
\n
\n
\n
\n\n {/* Section: Use Case: Hackathon */}\n
\n
\n
\n
\n
\n \"Hackathon\"/\n
\n
\n

Set Challenges. Drive Innovation.

\n

\n Run hackathons to promote multidisciplinary collaboration\n and shorten innovation cycles to address fast-changing\n customer demands.\n

\n

\n Xrathus helps you find talent, improve engagement,\n accelerate problem solving, reduce R&D cost, and build\n community, brand, and leadership.\n

\n

\n Get a head start in the race to market.\n

\n this.handleOpenWidget('hackathon')}\n >\n Let's Chat More About This\n \n
\n
\n
\n
\n
\n\n {/* Section: Use Case: Open Project */}\n
\n
\n
\n
\n
\n \"Open\n
\n
\n

Hello, can you help me?

\n

\n Create your project and share it for qualified community\n members to view and join. Then, take advantage of all the\n scalable collaboration tools that Xrathus has to offer.\n

\n

\n Update project details, add and remove files, network with\n participants, manage real-time sessions, upload datasets,\n save code and documentation in your project's repository,\n and apply real-time knowledge capture for future\n redeployment.\n

\n this.handleOpenWidget('open-project')}\n >\n Show Me More\n \n
\n
\n
\n
\n
\n\n {/* Section: Use Case: Ideation */}\n
\n
\n
\n
\n
\n \"Ideation\"/\n
\n
\n

Conceptualize your next solution.

\n

\n Solutions come from tangible concepts, and concepts come\n from bright ideas. Tap into the Xrathus community and\n ecosystem to generate the sparks that light your\n innovation fire.\n

\n

\n Gathering more ideas from a greater diversity of minds and\n experiences means accelerated innovation with superior\n odds of commercial success.\n

\n this.handleOpenWidget('ideation')}\n >\n Let's Chat More About This\n \n
\n
\n
\n
\n
\n\n {/* Section: Use Case: Collaboration */}\n
\n
\n
\n
\n
\n \"Collaboration\"/\n
\n
\n

Goodbye, boundaries.
Hello, effective digital teamwork.

\n

\n Break down the barriers within your organization or with\n suppliers, customers, and consortium members.\n

\n

\n Securely create and share projects and manage them from\n ideation to solutions, taking advantage of all the\n collaboration tools and modes of working enabled by the\n Xrathus ecosystem.\n

\n this.handleOpenWidget('collaboration')}\n >\n Show Me More\n \n
\n
\n
\n
\n
\n\n {/* Section: Use Case: Learning */}\n
\n
\n
\n
\n
\n \"Learning\"/\n
\n
\n

Upskill, cross-train, or teach.

\n

\n Within the Xrathus ecosystem you can easily deliver or\n participate in online, on-demand courses and workshops.\n

\n

\n Our open Knowledge Base includes wikis and other\n repositories to help you upskill, cross-train, and\n teach.\n

\n

\n Our Collaborators and industry partners use the\n platform to host high-value science, AI/ML, and software\n training accessible to all community members.\n

\n this.handleOpenWidget('learning')}\n >\n Tell Me More About Courses & Skilling\n \n
\n
\n
\n
\n
\n\n {/* Section: Form */}\n this.handleOpenWidget('page-form', args)}/>\n\n
\n )\n }\n}\n\nexport default withRouter(UseCases);\n","/**\n * User Resources for API\n *\n */\nexport const RESOURCES = {\n 'User': {\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/user/profile'\n }\n },\n UPDATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/user/update'\n }\n }\n },\n 'UserInfo': {\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/user/info/' + params.username\n }\n }\n },\n 'UserInit': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/user/init/' + params.persona\n }\n }\n },\n 'UserPersona': {\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/user/update/primaryPersona/' + params.persona\n }\n }\n }\n};\n\n/* eslint import/no-anonymous-default-export: [2, {\"allowArrowFunction\": true}] */\nexport default (type, resource, params) => {\n\n /**\n * @param {string} type Request type, e.g. GET_LIST\n * @param {string} resource Resource name, e.g. \"UserPersona\"\n * @param {Object} payload Request parameters. Depends on request type\n * @returns {Object} RESOURCES object\n */\n return (type, resource, params) => {\n return RESOURCES;\n }\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport Emitter from './eventEmitter';\nimport {RESOURCES as resourcesUser} from '../resourcesUser';\nimport {makeGetDataRequest} from './getRequest';\nimport {setEventConfigUser, setEventConfigUserRefresh, setProjectConfigUser, setProjectConfigUserRefresh, setUser} from '../store/actions';\nimport Config from '../config';\n\n/**\n * Component for retrieving User data\n */\nclass APIUser extends Component {\n\n componentDidMount() {\n if (this.props.user.preferred_username !== '') {\n this.checkUserInfo();\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n // Get User Info/Config if the username has changed or if the Config needs to refresh\n const username = this.getUsername();\n const userRefresh = this.props.project_config_user_refresh;\n if (\n (username !== '' && prevProps.user.preferred_username !== username) ||\n (userRefresh && userRefresh !== prevProps.project_config_user_refresh)\n ) {\n this.checkUserInfo();\n }\n }\n\n getUsername = () => {\n return this.props.user.preferred_username;\n };\n\n /**\n * Process user info and handle rechecking\n *\n * @param result\n */\n processUserInfo = (result) => {\n if (result.error) {\n // No user info exists; set form to select Persona and initialize the user\n Emitter.emit('selectPersona', 'init');\n } else if (result.username && !result.primary_persona) {\n // User exists but has not selected a Primary Persona; set form to select Persona\n Emitter.emit('selectPersona', 'persona');\n } else if (result.primary_persona) {\n // Primary Persona exists in data; store it\n Emitter.emit('loadedPersona', result.primary_persona);\n }\n\n // Update User data with additional parameters\n const gitlab_user_name = result?.gitlab_user_name ?? '';\n if (gitlab_user_name !== '') {\n const userObj = JSON.parse(JSON.stringify(this.props.user));\n userObj.gitlab_user_name = gitlab_user_name;\n this.props.setUser(userObj);\n }\n // Store Project Configurations for this User\n let userConfig = JSON.parse(JSON.stringify(Config.projectConfigUser));\n if (result.max_dataset_size) {\n userConfig.max_dataset_size = result.max_dataset_size;\n }\n if (result.max_event_shares) {\n userConfig.max_event_shares = result.max_event_shares;\n }\n if (result.max_events) {\n userConfig.max_events = result.max_events;\n }\n if (result.max_shares) {\n userConfig.max_shares = result.max_shares;\n }\n if (result.max_volumes) {\n userConfig.max_volumes = result.max_volumes;\n }\n if (result.projects) {\n userConfig.projects = result.projects;\n }\n\n this.props.setProjectConfigUser(userConfig);\n this.props.setProjectConfigUserRefresh(false);\n this.props.setEventConfigUser(userConfig);\n this.props.setEventConfigUserRefresh(false);\n\n\n };\n\n /**\n * Get User Info\n */\n checkUserInfo = () => {\n const username = this.getUsername();\n if (username) {\n const request = makeGetDataRequest(resourcesUser, 'User', 'GET_ONE', {});\n request.then(result => {\n this.processUserInfo(result);\n return Promise.resolve(result);\n }).catch(error => {\n console.log('User Info Error: ', error);\n return Promise.reject('Server Error');\n });\n }\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n project_config_user_refresh: state.project_config_user_refresh\n };\n};\n\nconst mapDispatchToProps = {\n setProjectConfigUser: setProjectConfigUser,\n setProjectConfigUserRefresh: setProjectConfigUserRefresh,\n setEventConfigUser: setEventConfigUser,\n setEventConfigUserRefresh: setEventConfigUserRefresh,\n setUser: setUser\n};\n\nAPIUser.propTypes = {\n user: PropTypes.object\n};\n\nAPIUser.defaultProps = {\n user: Config.user\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(APIUser);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withKeycloak} from '@react-keycloak/web';\nimport {Link, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {checkAuthentication} from '../utils/authFunctions';\nimport {populatePersonalProjectUserConfig} from '../utils/projectFunctions';\nimport APIUser from '../utils/APIUser';\n\nclass UserDashboard extends Component {\n\n render() {\n const {\n keycloak,\n keycloakReady,\n project_config,\n project_config_user,\n tokens,\n user\n } = this.props;\n\n const isAuth = checkAuthentication(tokens.token, keycloak.token, keycloak.authenticated);\n const userConfig = populatePersonalProjectUserConfig(project_config, project_config_user);\n\n return (\n <>\n
\n

\n My Profile\n

\n {user.name &&\n \n Welcome, {user.name}\n \n }\n\n {/* User Profile */}\n
\n
\n
\n

Overview

\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Username:{user.preferred_username}
Email Address:{user.email}
Persona:{user.persona.name}
\n
\n\n
\n
\n
\n

Number of Projects

\n

\n The maximum number of Personal Projects you may create.\n

\n

\n {userConfig.projects}\n

\n
\n
\n

Max Number of Shares

\n

\n The maximum number of times you may share Projects with other users.\n

\n

\n {userConfig.max_shares}\n

\n
\n
\n

Max Dataset Size

\n

\n The maximum size (in GB) of Datasets and their files you may possess.\n

\n

\n {userConfig.max_dataset_size} GB\n

\n
\n
\n

Max Number of Volumes

\n

\n The maximum number of versioned volumes of a Dataset you may create.\n

\n

\n {userConfig.max_volumes}\n

\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n\n {user.is_sysop &&\n <>\n {/* Administration */}\n
\n
\n
\n

Administration

\n
\n

\n Manage Organization details, Challenges and Datasets created for\n Organizations, and Project Configuration.\n

\n
\n \n Admin\n \n
\n
\n
\n
\n
\n \n }\n
\n {keycloakReady && isAuth &&\n \n }\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n keycloakReady: state.keycloakReady,\n project_config: state.project_config,\n project_config_user: state.project_config_user,\n tokens: {\n token: state.tokens.token\n },\n user: state.user\n };\n};\n\nUserDashboard.propTypes = {\n keycloak: PropTypes.any,\n keycloakReady: PropTypes.any,\n project_config: PropTypes.any,\n project_config_user: PropTypes.any,\n tokens: PropTypes.any,\n user: PropTypes.any,\n};\n\nexport default withKeycloak(\n withRouter(\n connect(\n mapStateToProps\n )(UserDashboard)\n )\n);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withRouter, Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {copyArray, dateIsPast, sortArrayByKey} from '../utils/dataFunctions';\nimport ChallengeItem from '../partials/ChallengeItem';\n\n/**\n * A component to assemble and display Challenge result items by Due Date\n */\nclass DashboardChallenges extends Component {\n constructor(props) {\n super(props);\n this.state = {\n challengeList: []\n };\n }\n\n componentDidMount() {\n this.assembleChallengeList();\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (JSON.stringify(prevProps.challenge_list_subscribed) !== JSON.stringify(this.props.challenge_list_subscribed)) {\n this.assembleChallengeList();\n }\n }\n\n /**\n * Assemble list of joined Challenges by Due Date\n */\n assembleChallengeList = () => {\n const onComplete = this.props.onComplete;\n let joined = copyArray(this.props.challenge_list_subscribed);\n let sorted = [];\n if (joined.length > 0) {\n for (let i = 0; i < joined.length; i++) {\n const dueDate = joined[i].due_date;\n if (dueDate) {\n if (joined[i].created_on === '0001-01-01T00:00:00Z') {\n joined[i].created_on = '2021-05-01T00:00:00Z';\n }\n if (!dateIsPast(new Date(dueDate))) {\n sorted.push(joined[i]);\n }\n }\n }\n sorted = sortArrayByKey(sorted, 'due_date', 'ASC');\n // Keep the latest two\n if (sorted.length > 2) {\n sorted.length = 2;\n }\n this.setState({\n challengeList: sorted\n });\n }\n if (typeof onComplete === 'function') {\n onComplete(sorted);\n }\n };\n\n /**\n * Set pair of Challenge result cards\n *\n * @param list\n * @returns {*}\n */\n setChallengeItems = (list) => {\n return (\n list.map((item, index) => (\n
\n \n
\n ))\n )\n };\n\n render() {\n const {\n challengeList\n } = this.state;\n\n return (\n <>\n {challengeList.length > 0 &&\n
\n

Challenges

\n
\n {[...this.setChallengeItems(challengeList)]}\n
\n
\n \n Show More\n \n
\n
\n }\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n challenge_list_subscribed: state.challenge_list_subscribed\n };\n};\n\nDashboardChallenges.propTypes = {\n onComplete: PropTypes.func\n};\n\nexport default withRouter(\n connect(\n mapStateToProps\n )(DashboardChallenges)\n);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {RESOURCES as resources} from '../resources';\nimport {makeGetDataRequest} from './getRequest';\n\n/**\n * Component for retrieving Discourse Topics by ID\n */\nclass APICluster extends Component {\n\n componentDidMount() {\n this.getCluster();\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.refresh && !prevProps.refresh) {\n this.getCluster();\n }\n }\n\n /**\n * Get Discourse Topic by Discourse ID\n */\n getCluster = () => {\n const request = makeGetDataRequest(resources, 'DiscourseTopic', 'GET_LIST', {discourse_id: this.props.discourseId});\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Discourse Topics Error: ', result);\n this.processData([], []);\n return Promise.resolve(result);\n }\n if (result.topic_list && result.topic_list.topics && result.users) {\n this.processData(result.topic_list.topics, result.users);\n }\n return Promise.resolve(result);\n } else {\n console.log('Discourse Topics Error: No result');\n this.processData([], []);\n return Promise.reject('Discourse Topics failed');\n }\n }).catch(error => {\n console.log('Discourse Topics Error: ', error);\n this.processData([], []);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Assemble Discourse Topic and User data\n *\n * @param topics\n * @param users\n */\n processData = (topics, users) => {\n let list = [];\n const topicsLength = topics.length;\n if (topics && topicsLength > 0) {\n const forumUrl = localStorage.getItem('forum_url');\n for (let i = 0; i < topicsLength; i++) {\n const topic = topics[i];\n\n // Set Activity date based on last post or created\n let lastPosted = topic.last_posted_at;\n topics[i].activity_date = (!lastPosted || lastPosted === '0001-01-01T00:00:00Z')\n ? topic.created_at\n : topic.last_posted_at;\n\n // Add User data (username, avatar) to list of Posters on this Topic\n const posters = topic.posters;\n for (let p = 0; p < posters.length; p++) {\n const posterIdx = users.findIndex(r => r.id === posters[p].user_id);\n if (posterIdx !== -1) {\n const avatarTemplate = users[posterIdx].avatar_template.replace('{size}', '25');\n const avatar = (avatarTemplate.charAt(0) === '/') ? avatarTemplate.substr(1) : avatarTemplate;\n topics[i].posters[p].avatar = forumUrl + avatar;\n topics[i].posters[p].name = users[posterIdx].name;\n topics[i].posters[p].username = users[posterIdx].username;\n }\n }\n\n // Assemble link to Topic\n topics[i].link = forumUrl + 't/' + topic.slug + '/' + topic.id;\n\n list.push(topics[i]);\n }\n }\n if (typeof this.props.onResult === 'function') {\n this.props.onResult(list);\n }\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nAPICluster.propTypes = {\n discourseId: PropTypes.number,\n onResult: PropTypes.func,\n refresh: PropTypes.bool,\n};\n\nAPICluster.defaultProps = {\n refresh: false,\n};\n\nexport default APICluster;\n","import React, {useEffect, useMemo, useState} from 'react';\nimport {useTable} from 'react-table';\nimport {timeSince} from '../utils/dataFunctions';\nimport APICluster from '../utils/APICluster';\n\n/**\n * Assemble User Avatars for a table row\n *\n * @param users\n * @return {JSX.Element|*}\n */\nconst createUserAvatars = (users) => {\n if (!users || !users.length) {\n return (\n \n \n )\n }\n if (users.length > 5) {\n users.length = 5;\n }\n return (\n users.map((user, index) => (\n \n {user.name}/\n \n ))\n )\n};\n\n/**\n * Component that displays Discourse Category Topics in a React Table with optional API\n *\n * @param discourseId\n * @param clusterList\n * @param height\n * @return {JSX.Element}\n * @constructor\n */\nconst ClusterTable = ({discourseId, clusterList = null, height = 'auto'}) => {\n\n const [topicsList, setTopicsList] = useState(clusterList ?? []);\n\n useEffect(\n () => {\n if (clusterList && clusterList.length > 0) {\n setTopicsList(clusterList)\n }\n }, [clusterList]\n );\n\n const handleData = (list) => {\n setTopicsList(topicsList => [...topicsList, ...list])\n };\n\n // Set table data\n const tableData = useMemo(() => topicsList, [topicsList]);\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'Topic',\n accessor: 'title',\n Cell: ({row}) => ({row.original.title}),\n className: 'topic th'\n },\n {\n Header: '',\n accessor: 'id',\n Cell: ({row}) => (\n \n {[...createUserAvatars(row.original.posters)]}\n \n ),\n className: 'avatars-td right'\n }, {\n Header: 'Posts',\n accessor: 'posts_count',\n width: 80,\n maxWidth: 80,\n className: 'center'\n },\n {\n Header: 'Views',\n accessor: 'views',\n width: 80,\n maxWidth: 80,\n className: 'center'\n },\n {\n Header: 'Activity',\n accessor: 'last_posted_at',\n Cell: ({row}) => ({timeSince(row.original.activity_date)}),\n className: 'center'\n }\n ],\n []\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow\n } = useTable({columns, data: tableData});\n\n return (\n <>\n
\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n ))}\n \n ))}\n \n \n {rows.map(row => {\n prepareRow(row)\n\n return (\n \n {row.cells.map(cell => {\n return (\n \n )\n })}\n \n )\n })}\n \n
\n {column.render('Header')}\n
\n {cell.render('Cell')}\n
\n
\n {!clusterList && discourseId &&\n handleData(e)}/>\n }\n \n )\n};\n\nexport default ClusterTable;\n","import React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport {extractDiscourseId, getAllForumCategoryLinks} from '../utils/dataFunctions';\nimport ClusterTable from '../partials/ClusterTable';\n\nconst forumPaths = getAllForumCategoryLinks();\n\n/**\n * A component to retrieve and display Discourse Topics by Persona\n */\nclass DashboardClustersPersona extends Component {\n constructor(props) {\n super(props);\n const personaId = (props.user?.persona?.id) ? extractDiscourseId(forumPaths, props.user.persona.id) : null;\n this.state = {\n discourseIdPersona: personaId\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n // Extract Discourse ID from user Persona\n let persona = nextProps.user?.persona?.id ?? null;\n if (persona && !prevState.discourseIdPersona) {\n const personaId = extractDiscourseId(forumPaths, persona);\n return {\n discourseIdPersona: personaId\n }\n }\n return null\n }\n\n render() {\n const {\n discourseIdPersona\n } = this.state;\n\n return (\n <>\n {discourseIdPersona &&\n
\n

Relevant for you

\n \n
\n }\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.user\n };\n};\n\nexport default connect(\n mapStateToProps\n)(DashboardClustersPersona);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {addItemsToListByKey, copyArray} from '../utils/dataFunctions';\nimport APICluster from '../utils/APICluster';\nimport ClusterTable from '../partials/ClusterTable';\n\n/**\n * A component to retrieve and display multiple Discourse Topics by ID\n */\nclass DashboardClustersProjects extends Component {\n constructor(props) {\n super(props);\n this.state = {\n discourseClusters: [],\n discourseIdList: []\n };\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (\n JSON.stringify(prevProps.challengeList) !== JSON.stringify(this.props.challengeList) ||\n JSON.stringify(prevProps.projectList) !== JSON.stringify(this.props.projectList)\n ) {\n this.assembleDiscourseIds();\n }\n }\n\n // Assemble array of Discourse IDs for Cluster population\n assembleDiscourseIds = () => {\n let discourseIdList = copyArray(this.state.discourseIdList);\n const challenge1 = this.props.challengeList[0]?.discourse_id ?? null;\n const challenge2 = this.props.challengeList[1]?.discourse_id ?? null;\n const project1 = this.props.projectList[0]?.discourse_id ?? null;\n const project2 = this.props.projectList[0]?.discourse_id ?? null;\n if (challenge1 && discourseIdList.findIndex(r => r === challenge1) === -1) {\n discourseIdList.push(challenge1);\n }\n if (challenge2 && discourseIdList.findIndex(r => r === challenge2) === -1) {\n discourseIdList.push(challenge2);\n }\n if (project1 && discourseIdList.findIndex(r => r === project1) === -1) {\n discourseIdList.push(project1);\n }\n if (project2 && discourseIdList.findIndex(r => r === project2) === -1) {\n discourseIdList.push(project2);\n }\n this.setState({\n discourseIdList: discourseIdList\n });\n };\n\n // Set Cluster table rows\n setDiscourseAPIs = () => {\n return (\n this.state.discourseIdList.map((id, index) => (\n this.handleClusterAPIResults(e)}\n />\n ))\n );\n };\n\n // Assemble Cluster list from Discourse API results\n handleClusterAPIResults = (list) => {\n let clusters = copyArray(this.state.discourseClusters);\n clusters = addItemsToListByKey(clusters, list, 'id');\n this.setState({\n discourseClusters: clusters\n });\n };\n\n render() {\n const {\n discourseClusters\n } = this.state;\n\n return (\n <>\n {[...this.setDiscourseAPIs()]}\n {discourseClusters.length > 0 &&\n
\n
\n
\n

Latest Project Discussions

\n \n
\n
\n
\n }\n \n )\n }\n}\n\nDashboardClustersProjects.propTypes = {\n challengeList: PropTypes.array,\n projectList: PropTypes.array\n};\n\nexport default DashboardClustersProjects;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withRouter, Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {copyArray, dateIsPast, sortArrayByKey} from '../utils/dataFunctions';\nimport {inUserList} from '../utils/projectFunctions';\nimport ProjectItem from '../partials/ProjectItem';\n\n/**\n * A component to assemble and display Project result items by Due Date\n */\nclass DashboardProjects extends Component {\n constructor(props) {\n super(props);\n this.state = {\n projectList: []\n };\n }\n\n componentDidMount() {\n this.assembleProjectList();\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (\n JSON.stringify(prevProps.project_list_invited) !== JSON.stringify(this.props.project_list_invited) ||\n JSON.stringify(prevProps.project_list_own) !== JSON.stringify(this.props.project_list_own) ||\n JSON.stringify(prevProps.project_list_subscribed) !== JSON.stringify(this.props.project_list_subscribed)\n ) {\n this.assembleProjectList();\n }\n }\n\n /**\n * Add Projects that have not expired to list\n *\n * @param list\n * @param newList\n * @returns {*}\n */\n addProjectsToList = (list, newList) => {\n for (let i = 0; i < newList.length; i++) {\n if (list.findIndex(r => r.id === newList[i].id) === -1) {\n const dueDate = newList[i].due_date;\n if (dueDate) {\n if (!dateIsPast(new Date(dueDate))) {\n list.push(newList[i]);\n }\n }\n }\n }\n return list;\n };\n\n /**\n * Assemble list of invited, joined and owned Projects by Due Date\n */\n assembleProjectList = () => {\n const onComplete = this.props.onComplete;\n let invited = copyArray(this.props.project_list_invited);\n let joined = copyArray(this.props.project_list_subscribed);\n let own = copyArray(this.props.project_list_own);\n // Combine all Project arrays\n let sorted = [];\n sorted = this.addProjectsToList(sorted, invited);\n sorted = this.addProjectsToList(sorted, joined);\n sorted = this.addProjectsToList(sorted, own);\n sorted = sortArrayByKey(sorted, 'due_date', 'ASC');\n // Keep the latest two\n if (sorted.length > 2) {\n sorted.length = 2;\n }\n this.setState({\n projectList: sorted\n });\n if (typeof onComplete === 'function') {\n onComplete(sorted);\n }\n };\n\n /**\n * Set pair of Project result cards\n *\n * @param list\n * @returns {*}\n */\n setProjectItems = (list) => {\n return (\n list.map((item, index) => (\n
\n \n
\n ))\n )\n };\n\n render() {\n const {\n projectList\n } = this.state;\n\n return (\n <>\n {projectList.length > 0 &&\n
\n

Projects

\n
\n {[...this.setProjectItems(projectList)]}\n
\n
\n \n Show More\n \n
\n
\n }\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n project_list_invited: state.project_list_invited,\n project_list_own: state.project_list_own,\n project_list_subscribed: state.project_list_subscribed\n };\n};\n\nDashboardProjects.propTypes = {\n onComplete: PropTypes.func\n};\n\nexport default withRouter(\n connect(\n mapStateToProps\n )(DashboardProjects)\n);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\n\nclass SubstrateGreeting extends Component {\n render() {\n const {\n substrate,\n user\n } = this.props;\n\n let welcome = (user.name) ? ', ' + user.name : '';\n let persona = (user.persona.plural) ? ' for ' + user.persona.plural : '';\n let greeting = 'Welcome' + welcome + '.';\n greeting += (substrate !== 'Marketplace' && substrate !== 'Events')\n ? ' You are on the ' + substrate + ' Dashboard, a customizable page' + persona + '.'\n : '';\n\n return (\n \n {greeting}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.user\n };\n};\n\nSubstrateGreeting.propTypes = {\n user: PropTypes.any,\n substrate: PropTypes.any,\n};\n\nexport default connect(\n mapStateToProps,\n {}\n)(SubstrateGreeting);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {setProjectId} from '../../store/actions';\nimport DashboardChallenges from '../../partials/DashboardChallenges';\nimport DashboardClustersPersona from '../../partials/DashboardClustersPersona';\nimport DashboardClustersProjects from '../../partials/DashboardClustersProjects';\nimport DashboardProjects from '../../partials/DashboardProjects';\nimport SubstrateGreeting from '../../partials/SubstrateGreeting';\nimport '../../css/challenge.css';\n\n/**\n * Page: Connect\n */\nclass XConnect extends Component {\n constructor(props) {\n super(props);\n this.state = {\n challengeList: [],\n projectList: [],\n };\n }\n\n componentDidMount() {\n this.props.setProjectId(null);\n }\n\n /**\n * Handle event from Dashboard Challenges or Projects\n *\n * @param type\n * @param list\n */\n onAssembledProjects = (type, list) => {\n if (type === 'challenge') {\n this.setState({\n challengeList: list\n });\n }\n if (type === 'project') {\n this.setState({\n projectList: list\n });\n }\n };\n\n render() {\n const {\n challengeList,\n projectList\n } = this.state;\n\n return (\n
\n

\n My Xrathus\n

\n \n\n {!challengeList.length && !projectList.length &&\n
\n
\n
\n You are on the Connect Dashboard, which will be populated with your choices once\n you browse and join Challenges, subscribe to Clusters, create, or join\n Projects and Training courses.\n
\n
\n
\n }\n\n {/* Row: Challenges and Projects */}\n\n
\n this.onAssembledProjects('challenge', e)}/>\n this.onAssembledProjects('project', e)}/>\n
\n\n {/* Row: Discourse Clusters (by Persona) */}\n\n
\n
\n

Clusters

\n
\n
\n\n
\n
\n \n
\n
\n\n {/* Row: Discourse Clusters (Challenges & Projects) */}\n\n \n\n
\n );\n }\n}\n\nconst mapDispatchToProps = {\n setProjectId: setProjectId\n};\n\nXConnect.propTypes = {\n setProjectId: PropTypes.any,\n};\n\nexport default connect(\n null,\n mapDispatchToProps\n)(XConnect);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {RESOURCES as resources} from '../resourcesProject';\nimport {makeGetDataRequest} from './getRequest';\n\n/**\n * Component for retrieving Airmeet Sessions for a Challenge, Project, or Event\n */\nclass APIAirmeetSessions extends Component {\n\n componentDidMount() {\n this.getList();\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.refresh === true) {\n this.getList();\n }\n }\n\n /**\n * Get Airmeet Sessions\n *\n */\n getList = () => {\n const id = this.props.id;\n const request = makeGetDataRequest(resources, 'AirmeetSessions', 'GET_LIST', {id: id});\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Airmeet Sessions Retrieval Error: ', result);\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(null);\n }\n return Promise.resolve(result);\n }\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(result);\n }\n return Promise.resolve(result);\n } else {\n console.log('Airmeet Sessions Retrieval Error: No result');\n return Promise.reject('Airmeet Sessions Retrieval failed');\n }\n }).catch(error => {\n console.log('Airmeet Sessions Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nAPIAirmeetSessions.propTypes = {\n id: PropTypes.number,\n onResult: PropTypes.func,\n params: PropTypes.object,\n refresh: PropTypes.bool\n};\n\nAPIAirmeetSessions.defaultProps = {\n params: {},\n refresh: false\n};\n\nexport default APIAirmeetSessions;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {RESOURCES as resources} from '../resources';\nimport {\n setChallengeListPublic,\n setChallengeListSubscribed,\n setChallengeListSubscribedRefresh,\n setListStatus,\n setProjectId\n} from '../store/actions';\nimport {makeGetDataRequest} from './getRequest';\nimport {copyArray} from './dataFunctions';\nimport {populateShortDescription} from './projectFunctions';\n\n/**\n * Component for retrieving Challenge Lists and single Challenge items\n */\nclass APIChallenges extends Component {\n\n componentDidMount() {\n const getType = this.props.getType;\n if (getType === 'list') {\n this.getChallenges();\n }\n if (getType === 'single') {\n this.getChallenge();\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const getType = this.props.getType;\n if (this.props.refresh === true) {\n if (getType === 'list') {\n this.getChallenges();\n }\n if (getType === 'single') {\n this.getChallenge();\n }\n } else if (this.props.challenge_list_subscribed_refresh === true) {\n if (getType === 'list' && this.props.viewType === 'subscribed') {\n this.getChallenges();\n }\n }\n }\n\n\n /**\n * Get Challenges with optional parameters\n *\n */\n getChallenges = () => {\n let resourceName = 'ChallengePublic';\n if (this.props.viewType === 'subscribed') {\n resourceName = 'ChallengeUser'\n }\n const params = this.props.params;\n const request = makeGetDataRequest(resources, resourceName, 'GET_LIST', params);\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Challenges Retrieval Error: ', result);\n this.processList(null);\n return Promise.resolve(result);\n }\n this.processList(result);\n return Promise.resolve(result);\n } else {\n console.log('Challenges Retrieval Error: No result');\n return Promise.reject('Challenges Retrieval failed');\n }\n }).catch(error => {\n console.log('Challenges Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Get single Challenge\n */\n getChallenge = () => {\n const id = this.props.id;\n if (!id) {\n return Promise.reject('No ID provided');\n }\n const request = makeGetDataRequest(resources, 'Challenge', 'GET_ONE', {id: id});\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Challenge Retrieval Error: ', result);\n this.processSingle(null);\n return Promise.resolve(result);\n }\n this.processSingle(result);\n return Promise.resolve(result);\n } else {\n console.log('Challenge Retrieval Error: No result');\n return Promise.reject('Challenge Retrieval failed');\n }\n }).catch(error => {\n console.log('Challenge Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Return and/or Store list data\n *\n * @param data\n */\n processList = (data) => {\n let list = [];\n if (data && data.length > 0) {\n list = copyArray(data);\n for (let i = 0; i < list.length; i++) {\n let c = list[i];\n c.short_desc = populateShortDescription(c);\n }\n }\n\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(list);\n }\n // Store results in Redux\n if (this.props.storeExists && this.props.storeResults) {\n if (this.props.viewType === 'public') {\n this.props.setChallengeListPublic(list);\n }\n if (this.props.viewType === 'subscribed') {\n this.props.setChallengeListSubscribed(list);\n this.props.setListStatus({list: 'challenge_subscribed', status: true});\n this.props.setChallengeListSubscribedRefresh(false);\n }\n }\n };\n\n /**\n * Return single result\n *\n * @param data\n */\n processSingle = (data) => {\n if (data) {\n data.short_desc = populateShortDescription(data);\n }\n\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(data);\n }\n // Store results in Redux\n if (this.props.storeExists && this.props.storeResults) {\n this.props.setProjectId(data.id);\n }\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n challenge_list_subscribed_refresh: state.challenge_list_subscribed_refresh\n };\n};\n\nconst mapDispatchToProps = {\n setChallengeListPublic: setChallengeListPublic,\n setChallengeListSubscribed: setChallengeListSubscribed,\n setChallengeListSubscribedRefresh: setChallengeListSubscribedRefresh,\n setListStatus: setListStatus,\n setProjectId: setProjectId\n};\n\nAPIChallenges.propTypes = {\n getType: PropTypes.string,\n id: PropTypes.number,\n onResult: PropTypes.func,\n params: PropTypes.object,\n refresh: PropTypes.bool,\n storeExists: PropTypes.bool,\n storeResults: PropTypes.bool,\n viewType: PropTypes.string\n};\n\nAPIChallenges.defaultProps = {\n getType: 'list',\n params: {\n active: true\n },\n refresh: false,\n storeExists: true,\n storeResults: true,\n viewType: 'public'\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(APIChallenges);\n","export const airmeetStyles = {\n container: {\n height: 'calc(100vh - 210px)',\n minHeight: 520\n },\n iframe: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 1000\n },\n title: {\n display: 'inline-block',\n width: 'calc(100% - 200px)'\n }\n};\n","import React, {Component} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport Iframe from 'react-iframe';\nimport {inUserList} from '../../utils/projectFunctions';\nimport APIAirmeetSessions from '../../utils/APIAirmeetSessions';\nimport APIChallenges from '../../utils/APIChallenges';\nimport LoadingIndicator from '../../partials/LoadingIndicator';\nimport {airmeetStyles} from '../../utils/stylesAirmeet';\n\n/**\n * Page: Airmeet embed for specified Challenge\n */\nclass XConnectChallengeAirmeet extends Component {\n constructor(props) {\n super(props);\n // Get Challenge ID from path\n const pathArr = this.props.location.pathname.split('/');\n const challengeIdx = pathArr.findIndex(c => c === 'challenge');\n const challengeId = Number(pathArr[challengeIdx + 1]);\n const hasUserList = !!(this.props.challenge_list_subscribed?.length);\n \n // Get Airmeet type and UUID from path\n const airmeetIdx = pathArr.findIndex(c => c === 'rtc');\n let airmeetType = pathArr[airmeetIdx + 1];\n let airmeetId = pathArr[airmeetIdx + 2];\n\n this.state = {\n challenge: null,\n challengeId: challengeId,\n challengeTab: 'overview',\n airmeetType: airmeetType,\n airmeetId: airmeetId,\n airmeetUrl: null,\n hasUserList: hasUserList\n };\n }\n\n // Store Challenge and set the Airmeet URL\n setChallenge = (data) => {\n this.setState({\n challenge: data\n }, () => {\n if (this.state.airmeetType === 'e') {\n this.setAirmeetURL(null);\n }\n });\n };\n\n // Set the Airmeet URL from the Event or Session Entry Link\n setAirmeetURL = (sessions) => {\n let url;\n if (sessions) {\n const session = sessions.find(r => r.session_id === this.state.airmeetId);\n url = session?.entry_link ?? null;\n } else {\n url = this.state.challenge?.airmeet_entry_link ?? null;\n }\n this.setState({\n airmeetUrl: url\n });\n };\n\n render() {\n const {\n challenge_list_subscribed,\n user\n } = this.props;\n\n const {\n airmeetType,\n airmeetUrl,\n challenge,\n challengeId\n } = this.state;\n\n const inSubscribedChallenges = (inUserList(challenge_list_subscribed, challengeId));\n\n return (\n
\n {/* User is not sysop or has not joined Challenge */}\n {!user.is_sysop && !inSubscribedChallenges &&\n <>\n
\n
\n

\n {(challenge && challenge.title) ? challenge.title : 'Challenge'}\n

\n \n Back to Challenge\n \n
\n
\n
\n
\n
\n You do not have permission to access this Challenge's Airmeet\n Events or Sessions.\n
\n
\n
\n \n }\n\n {/* User is sysop or has joined Challenge */}\n {(user.is_sysop || inSubscribedChallenges) &&\n <>\n {!challengeId &&\n \n }\n\n {challenge && challengeId &&\n <>\n
\n
\n

\n {(challenge.title) ? challenge.title : 'Challenge'}\n

\n \n Back to Challenge\n \n
\n
\n\n
\n
\n {airmeetUrl &&\n \n }\n
\n
\n\n {airmeetType === 's' &&\n this.setAirmeetURL(e)}\n refresh={false}\n />\n }\n \n }\n\n \n \n }\n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n challenge_list_subscribed: state.challenge_list_subscribed,\n user: state.user\n };\n};\n\nexport default withRouter(\n connect(\n mapStateToProps\n )(XConnectChallengeAirmeet)\n);\n","import React, {Component} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\n/**\n * Component to display article thumbnail\n *\n */\nclass ArticleLink extends Component {\n render() {\n const {\n article,\n classes,\n slug\n } = this.props;\n\n const style = {backgroundImage: `url(/images/${article.thumb})`};\n\n return (\n
\n \n \n \n {article.thumb_title &&\n \n {article.thumb_title}\n \n }\n \n
\n )\n }\n}\n\nArticleLink.propTypes = {\n article: PropTypes.object,\n classes: PropTypes.string,\n slug: PropTypes.string\n};\n\nArticleLink.defaultProps = {\n classes: ''\n};\n\nexport default withRouter(ArticleLink);\n","export const articles = {\n 'why-incubate-when-you-can-accelerate': {\n featured: true,\n title: 'Why Incubate when you can Accelerate?',\n thumb_title: 'Michael Crain on Why Incubate when you can Accelerate?',\n subtitle: '',\n author: 'Michael Crain',\n article: `\n![](/images/blog-when-incubate-michael.png)\n\nMay 27, 6 min read.\n\nUpdated: May 28\n\n![](/images/blog-when-incubate-idea.jpg)\n\nUnique and mature businesses will continue to evaluate various opportunities, transitioning into influential entrepreneurs with vital market solutions while preparing to penetrate new markets or disrupt oversaturated markets with innovative initiatives and futuristic brands. The crucial development includes streamlining the core business process and functional capabilities. When developing a concept or articulating the hypotheses, many will wonder how to build a solid foundation, how to move an idea forward, and where to obtain the necessary capital. Collectively, many variables are considered relevant to risk, opportunity, and required credentials to ensure success.\n\n**Does a question become whether to incubate or accelerate?**\n\nThere is considerable overlap between the two methods as many inquiries continue to seek the applied benefits. The underlying objectives require proactively identifying risks, materializing a strategy, and managing the probabilities to ensure a specific outcome. Critical elements address the ability to move the concept into the market, creating a niche or first-to-market condition that stimulates a competitive advantage and initiates traction assurance. The idea generated by the startup mandates continuous support and a process of intense, rapid, and immersive education to condense years of learning-by-doing into merely a few months.\n\n**When considering the difference in the value offered, consider the following incentives and expectations.**\n\n- Time commitment\n- The ability to work with like-minded people with similar interests and goals\n- Associated cost\n- Cyclical to the business cycle\n- Venture stage of capturing investors\n- The approach of applying education\n- Enabling a partnership through mentorship\n\n![](/images/blog-when-incubate-table.jpg)\n\nOver the years, two major premier \"accelerator programs\" continue to flourish. The most popular include Y Combinator, launched as the first \"seed\" accelerator program. TechStars has two locations, (1) Boulder, Colorado, and (2) Seattle, Washington, providing services across the global landscape. Much of the growth of accelerators began in 2008, collectively with venture investments becoming broadly interested in various markets with a notable increase averaging 50% each year – between 2008 and 2014. More importantly, accelerators invested in more than 5,000 U.S. startups while raising $20 billion in funding with an expectation of increasing accelerator programs. A few companies have used accelerators, such as Airbnb, Dropbox, and Stripe, among several others.\n\n**Today's Success of Accelerators**\n\nThe data presented by SEEd-DB is appropriate to Accelerators, and their portfolio of companies continues to impress with accomplishments. Seed-DB is worth mentioning, taking into consideration the aggregate amount of dollars. In my opinion, the top-ten accelerators would be the following:\n\n1. Y Combinator - $5B\n2. Techstars - $1B\n3. AngelPad - $493M\n4. DreamIT Ventures - $397M\n5. fbFund - $359M\n6. LaunchpadLA - $185M\n7. SeedCamp - $137M\n8. NYC SeedStart - $130M\n9. LA - $57M\n10. Wayra - $44M\n\n![](/images/blog-when-incubate-ideas.gif)\n\n**Why Accelerators?**\n\n(1) Why have accelerators taken hold in recent years?\n\n(2) What makes them different from other early-stage programs?\n\nAccelerators provide _ **vital support for a challenging startup** _, from knowledgeable business owners and academic professionals to the program's founders. The program continues to grow from instituting an experience distinguishable from other early-stage programs. Furthermore, the versatility of various resources contributes to new ventures beginning with several modular stages that infuse an immersive educational element to boost the acceleration of weak startups while demonstrating a unique method. Brad Feld, the co-founder of TechStars, said, \"The focus is to learn at a rapid pace while learning-by-doing is vital when scaling ventures.\" Their long-term success is notable by compressing years of experience to create a readiness to launch in a complex market\n\n **The benefits relevant to an Accelerator Program;**\n\n(1) When enrolling in an accelerator program, participants seek a _ **rapid timeline to develop** _, merge into the market, and have the knowledge to remain successful. The program offers feedback, meetings with mentors, social activities, and other interactive events that directly apply to the startup.\n\n(2) _ **Investor access for startups** _ is readily available from direct connections to local bankers, Angel Funding, Venture Capital, and Private Equity opportunities. Investor conversation is conducted on behalf of the entrepreneur to develop the startup further while illustrating the potential for return.\n\n(3) An accelerator program furnishes a considerable amount of information from \"_years of experience and skills_\" that each mentor or board member has acquired. Such concentration of knowledge and expertise enables startups and early-stage companies to _ **speed up their development with confidence** _. Instead of reinventing the wheel using predetermined templates, participants can leverage their years of accumulated wisdom to launch a startup in a more calculated, strategic method, suggesting an increase in success rates.\n\n(4) In many cases, an accelerator program _ **focuses on instruction, curriculum, and expanding knowledge and skills** _ essential to operating a business and strengthening sustainability. Specific education points include sales and marketing to unlock new opportunities to grow revenue streams and engage new companies. The baseline of education focuses on developing necessary skills appropriate to market strategies, finance, and technical skills and sustaining a solid pulse relevant to key performance indicators, business objectives, and meeting critical milestones.\n\n(5) Risk remains at the forefront for many, as the current failure rate of 50% remains for startups reaching five years. The risk is compounding when preparing to penetrate new markets, increase product offerings, and sell concepts. _ **Extensive planning** _ is the answer for the success of startups, collectively with various functions applicable to product development, price modeling, marketing strategies, ensuring an effective and efficient operation, and auditing finance capabilities, all of which directly impact the venture's performance. Startups are finding it is safe to innovate through the process of development, exploring new possibilities, and implementing a different approach while capitalizing on a unique mindset that embodies a diverse experience, perspectives, and multiple resources.\n\n(6) It can seemingly be overwhelming for various startups and early-stage businesses and impossible to visualize where the company may be in six months or even a year. However, it's essential to _ **imagine a long-term vision to forge critical objectives** _ when evaluating the big picture. Mentors are motivated to assist in the complexity and guide the entrepreneur in the right direction. Their expertise enables the vital questions requiring critical thinking to assembling essential tools and practical tactics when navigating through the journey.\n\n(7) The characterization of the _ **accelerator model fosters growth** _ in all phases of development. BAM nourishes a unique platform for startups, early-stage, and growth-driven businesses. The venue solves problems, emerges a concept, develops market strategies, uncovers detailed objectives, implements critical goals, and creates a plan to confirm current and future market share. The environment encourages a partnership between mentors and entrepreneurs to guide development through phases of the platform. Many have used the accelerator for the expertise to launch a more diversified venture or expand into new markets. Accelerators are known for _ **solving problems** _, cultivating innovative methodologies to empower growth, and facilitating the necessary resources to maintain market success.\n\n(8) The collective and _ **collaborative environment** _ motivates entrepreneurs to develop a product/service-market fit that aligns with early adopters. Interaction with other business owners, founders, and professionals is an inspirational reinforcement. It resonates when you hear their personal challenges, self-doubts, and extraordinary accomplishments. Moreover, their testimony reminds us that it is possible to overcome uncertainty while working together to remove the obstacles.\n\n(9) The _ **Accelerator Program does not end after launch** _ or when entering a perspective market. A long-term relationship remains available throughout the life of the business. In addition, the alumni network is an added source to inquire about available talent and various investors and soliciting feedback throughout the startup or supplemental support in future developments.\n\nIn an article by _ **Harvard Business Review, Ian Hathaway** _ believes \"_a comparison of graduates of top accelerators with a set of similar startups that instead raised angel funding from leading angel investment groups - found that the accelerator graduates were more likely to receive their next round of financing significantly sooner._\"\n\n- Additional research indicates accelerators aid venture development, establishing a foundation to primarily educate throughout the accelerator experience, exemplifying the value of a stable learning environment that promotes a higher success rate.\n- In most cases, accelerators positively affect startups relevant to performance compared with early-stage investors and sustain the ability to have a positive impact when attracting seed funding.\n\nEvidence is encouraging when driving a favorable startup ecosystem across the global landscape when considering the _ **rapid growth of accelerators** _. Universities may believe it doesn't make much difference, but many do by referencing the success provided by accelerators. The ones that find accelerators most beneficial are the _ **ones that significantly improve the odds of success.** _\n\n![](/images/blog-when-incubate-b2hub.png)\n\nThe unique development of the _ **B²Hub Accelerator Program** _ capitalizes on expertise from our board members, resource partners, and investors. The board demonstrates various proficiencies from grant writing, industry experts, attorneys, accountants, and academic advisors that can offer essential services. The service side of development includes market research to find market gaps and evaluate competitors and market trends relevant to the selected demographics. Other services provided include patents, trademarks, copyrights, websites, advertising platforms (strategies), and contracts. As education and mentorship are the foundation of our success, we offer many online courses to build the proficiency of business owners and employees to safeguard sustainable success relevant to creating flexibility.\n\n**BAM - B²Hub Accelerator Program**\n\n![](/images/blog-when-incubate-mentorship.jpg)\n\n[BAMBIZHUB.COM](http://bambizhub.com/)\n\nFor more information call 432-247-8840\n\nEmail: [info@bamconsulting.com](mailto:info@bamconsulting.com)\n\nThank you for all your support!\n`,\n thumb: 'blog-default-thumb.png',\n },\n 'planning-your-pivot': {\n featured: true,\n title: 'Planning your Pivot',\n thumb_title: 'Angel Garcia on Planning your Pivot',\n subtitle: '',\n author: 'Angel Garcia, MBA',\n article: `\nMay 8, 2021, 4 min read\n\n\"Don't lose faith guys, we've got a great name. We've got a great team. We've got a great logo, and we've got a great name. Now we just need an idea. _ **Let's pivot!!** _\"\n\n- Jared, Silicon Valley, TV Show\n\n**Have a purpose, find the path, and navigate the pivot.**\n\n![](/images/blog-planning-your-pivot.jpg)\n\nOn a fundamental level, a _pivot_ is _'a change in direction.'_ In the business vernacular, a pivot is loosely defined as 'a _significant_ change in strategy _without a vision change_.'\n\nToday's entrepreneur savvy social media-driven business landscape has dramatically overused the term watering it down to the point of meaning to make any simple adjustment.\n\nOriginally used to denote a significant transition for a business, specifically a _startup_, the utilization of \"pivot\" refers to redirecting an ineffective business model and defining a multiple business transition to one much more efficient, productive, and conducive to sustainability.\n\nWhereas today, for example, the term is used to explain a nuance as simple as a change in the number of posts per day on social media. A simple adjustment is not a pivot by any means and only a difference in deploying a single tactic within the overall strategy.\n\nTo paraphrase the legendary general, Sun Tzu, employing strategy without tactics is the most passive way to gain customers and grow your business. Tactical implementation without a plan leads to spending marketing dollars resulting in low sales, declining ROI, and accelerating business failure.\n\n**A pivot is not a single tactic but a 90-degree shift to a set of tactics to achieve a specific outcome.**\n\nA real-world example of an authentic pivot was Charles Schwab, when they foresaw that the future of the brokerage industry due to the internet was an opportunity and made the pivot to online stock trading.\n\nTo do this, they created a separate _Strategic Business Unit_, SBU, and the employees making the transition over to the new business unit was made for walking across the Golden Gate Bridge and back to the office to mark the event.\n\nThe Charles Schwab pivot meant that a client no longer had to wait several days to physically speak with a broker and then for the broker to make the call in to purchase or sell the stocks. The customer could now conduct transactions online, which attracted new customers activating sustainable growth.\n\n**When to Pivot?**\n\n![](/images/blog-planning-your-pivot-change-plan.jpg)\n\nIn referencing the above essential elements, a business should remain in a favorable position to grow. If not, it is time to pivot and improve the various aspects of the company.\n\nFor example, the failure of Blockbuster to make the pivot online was catastrophic in hindsight; however, all the new information, market trends, data, and availability of new technology was the same for them as anyone else.\n\nIf Blockbuster would have made a pivot online before Netflix and did it better at the time, the world would still have Blockbuster and may not have ever heard the name Netflix.\n\nThey were in an optimal position to embrace the innovative technology of the time and pivot to online streaming; however, they chose to double-down on the physical DVD medium, their champion product, and ignore what the data, trends, new information begged them to do.\n\nWhen a company invests in product development before it has identified a market, there is no new customer buy-in, subsequently followed by loyal customers abandoning the brand to discover other initiatives, innovation, and convenient technology. The situation should require an executive team to continually evaluate the applied analytics, patterns of data, and high-quality data sources to ensure a pivot is necessary.\n\n_ **As demonstrated by Blockbuster, the number one reason businesses fail –** _\n\n_ **is because their product or service does not have a market.** _\n\n**To answer the question - When to pivot?**\n\n![](/images/blog-planning-your-pivot-simple.jpg)\n\nThe question requires the ability of business owners or executives to connect with data models to enable market trends and quantitative analysis relevant to establishing market position, new initiatives, and competitive innovation, which together formulate a market shift. The importance of data relates to the ability to expedite answers, direction, and preparation to market disruption while advancing a strategic pivot.\n\nThis will inform that they are either losing market share or an innovative technology looms on the horizon destined to change how business is done in the industry, disrupting the current business model. This is known as a disruptive technology. This is an excellent sign to implement a smart pivot as soon as possible. Be first to market. Be Charles Schwab and Netflix, don't be Blockbuster.\n\nWhen a product or service is fully loaded with bells and whistles at the initial launch, there may not be enough customers who embrace it, and the company would have spent much more money in development than necessary and will likely have missed the mark of incorporating a sustainable solution that incentivizes growth.\n\nThe purpose of any business is to prove viability, which influences sustainable growth. The process includes developing and revealing an MVP, _Minimal Viable Product_, as a new version or a completely new product to ensure product-market fit by maximizing validation with early adopters.\n\nBy developing and deploying the MVP within a given product life cycle to a market, the company can collect and analyze crucial data on how to further develop the next generation of the product or services, hence the consistency of a sustainable business model.\n\nCheck out this online class addressing [Business Management](https://bam.coursecatalog.com/CourseListAccordion?type=src&keyword=managing).\n\nFor more information on developing a sustainable business model strategy, please reference our Blog, [Business Development Strategy: Theory to](https://www.bamconsulting.com/post/business-development-strategy-theory-to-application-written-by-angel-m-garcia-mba) Application, and give us a call with any questions you may have.\n\n1-833-BAM-IDEA (226-4332) or (512)736-1931 or email: info@bamconsulting.com\n\n[Visit our website: www.bamconsulting.com, and follow us on social media FB, IG, Li.](https://linktr.ee/BAMConsulting)\n`,\n thumb: 'blog-default-thumb.png',\n },\n 'seera-labs-on-data-science': {\n featured: true,\n title: 'Seera Labs on Data Science',\n thumb_title: 'Seera Labs on Data Science',\n subtitle: '',\n author: '',\n article: `\nDigital data collected by many industries support many, if not, most of its activities. Data integrity, security, mining, analysis, and transfer are critical to its particular goal of providing insight. Related topics such as the use and management of massive data sets (\"big data\"), data value and ownership, cybersecurity, cloud computing, machine learning, and virtual twin modeling and simulation represent only a small subset of the derivative uses of digital data being contemplated by all industries. Particular questions to be answered by data analysts, data scientists, and/or subject material experts are:\n\n- Once data has been collected, what we do with it?\n- How do we extract knowledge and value from collected data to benefit operations, gain efficiencies, and improve safety and security?\n- What are the business propositions that sensed data collection, storage, and analysis bring to the table?\n- How effectively is data analyzed?\n- What data analysis methods and tools should the industry be adopting that aren't now being used?\n\nTo help answer some or all of the questions, Seera Labs provides the \"Student/Professional Client\" the knowledge and skills to achieve a level as a \"citizen data scientist\". This requires a mix of statistical understanding, code programming, data mining & visualization, and the ability to apply engineering knowledge in new and challenging pursuits within his/her respective engineering domain. Hence, this leads to Seera Labs vision and mission:\n\n![Trending in Education](/images/blog-Seera-Labs-On-Data-Science-Trending.png#thumbnail)\n*We believe that industries that uplearn/upskill their workforce with data science fundamentals through microlearning leads to value-creation and retention.*\n\n![Educational Experience](/images/blog-Seera-Labs-On-Data-Science-Hands.png#thumbnail)\n*To provide an unparalleled educational experience that invites professionals to discover data science and all its insightful benefits.*\n`,\n thumb: 'blog-Seera-Labs-On-Data-Science-thumb.jpg',\n },\n 'susan-nash-on-collaboration': {\n featured: true,\n title: 'Susan Nash on Collaboration',\n thumb_title: 'Susan Nash on Collaboration',\n subtitle: 'What does effective collaboration involve now, in the \"new normal\"?',\n author: 'Susan Nash, PhD',\n article: `\nImagine this scenario: Your company has an opportunity to partner with a company that specializes in providing sensors to alternative energy electricity generation of all kinds. The market is robust, but you have to make sure your sensors work in all kinds of alternative energy sources, ranging from geothermal to wind to solar to small hydroelectric. Your team consists of a heterogeneous \"dog's breakfast\" of engineers, geologists, psychology majors, sales reps, attorneys, and creative writing and designers. Somehow, you've got to come together, define your mission and goals, and develop a plan that will work in this wildly unpredictable world, now in the \"new normal.\"\n\nHow would you get started?\n\nIt would be very tempting to start with the tools we have at hand. After all, we live in a world with a number of collaborative tools and cloud-based programs. Perhaps you've worked for years with Google apps, Microsoft Teams and then project management platforms such as Trello and Basecamp. You might have also worked with distributed teams using collaborative publishing platforms such as Panopto. You may have also worked in collaborative environments with blogs (Blogger, WordPress) and social media (Twitter, Instagram, LinkedIn, FaceBook, etc.).\n\nIn theory, these products and platforms are perfect for creating collaborative environments, and in reality, they have worked in the sense that tasks were distributed and products/services were produced. Organizational continuity was assured, although, chances are, not much innovation or creative thinking emerged.\n\nHowever, the problem with most tools and platforms is that they encourage you to replicate your old way of doing business, with the idea that however you were working in the past, in the traditional office environment or from distributed, remote sites worked really well, and it should be the way of the future.\n\nIn reality, to replicate the past is to be consigned to the past. At best, all we'll see is a repetition of old patterns and ways of thinking.\n\nEffective collaboration in the \"new normal\" of distributed, remote teams, and a highly fluid environment characterized by constant change requires a new way of thinking, and in such an environment, it requires new structures.\n\nAn effective collaboration space will allow the team members to do the following:\n\n**SMART goal-setting**: Specific, Measurable, Achievable, Relevant, Time-based\n\n**Stackable goals and scaffolding**: The best goals are those that are building-block goals, and are sufficiently granular to be done quickly so that they quickly contribute to the overall goal.\n\n**Role-reversals**: Team members will be required to assume the part of what they might consider their absolute antithesis. The highly technical data scientist now has to design logos. The marketing strategy director now has to make three data-supported recommendations that will measurably improve operations performance. What does it mean to suddenly have to live the life of someone you've observed from afar? After tackling the kinds of problems and challenges they face in their day to day job, how quickly will you throw stones now?\n\n**Personae correspond to stakeholders**: What's the role you will play? What is your persona? When working within a simulation or role-playing, be sure to select a role to play that corresponds to a true stakeholder, a person who has a lot of skin in the game.\n\n**Ongoing SWOT analyses**: Technology and business conditions change quickly, and yet decisions may be made based on analyses performed in the past. In an ideal collaboration space, relevant data gathered from independent third parties should be referred to constantly. Each team member can provide an individual assessment of Strengths, Weaknesses, Opportunities, and Threats, which can then be used as a point of departure for evaluating paths forward. SWOT analyses should be fluid and ongoing, to allow for proactive planning.\n\n**Cloud access / shared repositories**: Collaborative teams work together, and it is more important than ever to be able to share files and resources. Not only repositories are cloud-based, but increasingly, the programs are cloud-based and accessible using mobile devices.\n\n**Critical Path project planning**: Critical paths continue to be useful, with milestones and goals. However, collaborative teams use them as scenarios, and develop contingency plans.\n\nEach one of the points mentioned in this post is in reality worthy of being the topic of an entire blog post. In addition, effective collaboration requires an awareness of how the mind works and makes meaning, which include cognitive bias and pitfalls. There is a great deal to learn about how best to work in a new framework, and how best to create settings that allow new solutions to emerge rather than simply replicating the past.\n`,\n thumb: 'blog-Nash-Collaboration-thumb.jpg',\n }\n};\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport ArticleLink from '../partials/ArticleLink';\nimport {getSubstrate} from '../utils/pageFunctions';\nimport {articles} from '../data/articles';\n\nclass ArticleLinks extends Component {\n constructor(props) {\n super(props);\n\n const substrate = getSubstrate(props.location);\n const links = this.createLinks(substrate);\n\n this.state = {\n links: links,\n substrate: substrate\n };\n }\n\n createLinks = (substrate) => {\n let links = [];\n let a = 0;\n Object.keys(articles).forEach(function (key) {\n if (articles[key].title && articles[key].featured) {\n const article = {\n slug: key,\n title: articles[key].title,\n thumb_title: articles[key].thumb_title,\n subtitle: articles[key].subtitle,\n author: articles[key].author,\n link: `/x/${substrate}/blogosphere/${key}`,\n thumb: articles[key].thumb,\n };\n links.push(article);\n a++;\n if (a > 2) {\n return;\n }\n }\n });\n return links;\n };\n\n renderLinks = () => {\n const list = this.state.links;\n if (!list || list.length === 0) {\n return (\n
\n

No Articles Available

\n
\n )\n }\n\n return (\n list.map((article, index) => (\n \n ))\n )\n };\n\n render() {\n return (\n
\n {[...this.renderLinks()]}\n
\n )\n }\n}\n\nexport default withRouter(ArticleLinks);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport ArticleLinks from '../../partials/ArticleLinks';\n\nclass XConnectBlogosphere extends Component {\n render() {\n const {\n user\n } = this.props;\n\n return (\n <>\n
\n

\n Blogosphere\n

\n {user.name &&\n \n Welcome, {user.name}.\n \n }\n\n

New on the Blog

\n \n\n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.user\n };\n};\n\nXConnectBlogosphere.propTypes = {\n user: PropTypes.any,\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n null\n )(XConnectBlogosphere)\n);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ReactMarkdown from 'react-markdown';\nimport {articles} from '../data/articles';\n\n/**\n * Component to display article content\n *\n */\nclass Article extends Component {\n render() {\n const {\n slug\n } = this.props;\n\n const article = articles[slug];\n let content = article.article.replace('\\n', '
');\n\n return (\n <>\n
\n
\n {article.title &&\n

{article.title}

\n }\n {article.subtitle &&\n

{article.subtitle}

\n }\n {article.author &&\n
{article.author}
\n }\n\n \n
\n
\n \n )\n }\n}\n\nArticle.propTypes = {\n slug: PropTypes.string\n};\n\nexport default Article;\n","import {filter, orderBy, reject, reverse, sortBy} from 'lodash';\n\n/**\n * Filter a Project/Challenge List's attributes by a value\n *\n * @param list\n * @param searchValue\n * @param attributes\n * @returns {*[]|*}\n */\nexport const filterListByValue = (list, searchValue, attributes = []) => {\n\n if (!list || list.length === 0) {\n return [];\n }\n const value = searchValue?.toLowerCase() ?? '';\n if (!value || value === '') {\n return list;\n }\n\n // Filter list by each attribute\n return list.filter(item => {\n for (let i = 0; i < attributes.length; i++) {\n const term = attributes[i];\n if (item[term] && item[term].toLowerCase().indexOf(value) !== -1) {\n return true;\n }\n }\n return false;\n });\n};\n\n/**\n * Sort a Project/Challenge list by selected sort value\n *\n * @param list\n * @param sortValue\n * @param sortTypes\n * @returns {unknown[]|*[]|*}\n */\nexport const sortListByValue = (list, sortValue, sortTypes) => {\n\n if (!list || list.length === 0) {\n return [];\n }\n if (!sortValue || sortValue === '') {\n return list;\n }\n let tempList = JSON.parse(JSON.stringify(list));\n\n // Sort by Sort value\n let nullValues = filter(tempList, [sortTypes[sortValue], null]);\n tempList = orderBy(reject(tempList, [sortTypes[sortValue], null]), [item => item[sortTypes[sortValue]].toLowerCase()], sortTypes[sortValue]);\n if (sortValue === 'latest' || sortValue === 'popular') {\n tempList = reverse(tempList);\n }\n\n // Sort nullvalues by default sort (Latest) @TODO: Change to Popular when API for it exists\n nullValues = reverse(sortBy(nullValues, sortTypes['latest']));\n tempList.push(...nullValues);\n\n return tempList;\n};","import axios from 'axios';\nimport {getAuthHeaders, getPostHeaders, getUploadPostHeaders} from './headers';\n\n/**\n * Make a post request with a specific resource\n *\n * @param resource\n * @param name\n * @param type\n * @param params\n * @param useBearer\n * @return {Promise<*>}\n */\nexport async function makePostDataRequest(resource, name, type, params, useBearer = true) {\n let func;\n let method = 'POST';\n switch (type) {\n case 'AUTH':\n func = resource[name].AUTH(params);\n break;\n case 'CREATE':\n func = resource[name].CREATE(params);\n break;\n case 'GET_ONE':\n func = resource[name].GET_ONE(params);\n break;\n case 'POST':\n func = resource[name].POST(params);\n break;\n case 'POST_UPLOAD':\n func = resource[name].POST_UPLOAD(params);\n break;\n case 'PUT':\n method = 'PUT';\n func = resource[name].PUT(params);\n break;\n case 'UPDATE':\n func = resource[name].UPDATE(params);\n break;\n default:\n func = resource[name].GET_ONE();\n }\n try {\n return await postRequest(type, func.uri, method, func.data, useBearer);\n } catch (e) {\n console.log('data error: ', e.message);\n return e;\n }\n}\n\n/**\n * Make POST request\n *\n * @param type\n * @param uri\n * @param method\n * @param payload\n * @param useBearer\n * @return {Promise>}\n */\nconst postRequest = (type, uri, method, payload, useBearer = true) => {\n let headers;\n if (type === 'AUTH') {\n headers = getAuthHeaders();\n } else if (type === 'POST_UPLOAD') {\n headers = getUploadPostHeaders();\n } else {\n headers = getPostHeaders(useBearer);\n }\n return axios({\n method: method,\n url: uri,\n data: payload,\n headers: headers\n }).then((response) => {\n if (response.data && response.data.payload) {\n return response.data.payload;\n } else if (response.data) {\n return response.data;\n } else if (response) {\n return response;\n }\n }).catch((error) => {\n if (error.response && error.response.data) {\n // Server response outside 2xx\n return error.response.data;\n } else if (error.response) {\n // Server response outside 2xx\n return error.response;\n } else if (error.request) {\n // No response\n return error.request;\n } else {\n console.log('CATCH error ', error);\n return error;\n }\n })\n};\n\nexport default postRequest;\n","import React, {forwardRef} from 'react';\n\nconst BaseInput = forwardRef(\n (\n {id, label, name, placeholder, instructions, className, changeFunc, children, defaultValue, required, disabled, value, type = 'text'}, ref) => {\n return (\n \n );\n }\n);\n\nexport default BaseInput;\n","import React from 'react';\n\n/**\n * Form Error Element\n *\n * @param id\n * @param text\n * @param className\n * @return {*}\n * @constructor\n */\nexport default function FormError({id, text, className = 'error'}) {\n return (\n \n {text}\n \n );\n}\n","import React, {forwardRef} from 'react';\n\nconst TextAreaInput = forwardRef(\n (\n {id, label, name, placeholder, instructions, className, changeFunc, children, defaultValue, required, value, maxLength, rows = 5, cols = 33}, ref) => {\n return (\n \n );\n }\n);\n\nexport default TextAreaInput;\n","export const CHALLENGE_TABS = {\n confirm: {tab: 'confirm', title: 'Confirm and Save'},\n fail: {tab: 'fail', title: 'Error'},\n information: {tab: 'information', title: 'Information'},\n overview: {tab: 'overview', title: 'Overview'},\n saving: {tab: 'saving', title: 'Saving Challenge'},\n success: {tab: 'success', title: 'Challenge Saved'},\n};\n\nexport const PROJECT_TABS = {\n config: {tab: 'config', title: 'Configurations'},\n confirm: {tab: 'confirm', title: 'Confirm and Save'},\n fail: {tab: 'fail', title: 'Error'},\n information: {tab: 'information', title: 'Information'},\n overview: {tab: 'overview', title: 'Overview'},\n saving: {tab: 'saving', title: 'Saving Project'},\n success: {tab: 'success', title: 'Project Saved'},\n};\n\nexport const EVENT_TABS = {\n confirm: {tab: 'confirm', title: 'Confirm and Save'},\n fail: {tab: 'fail', title: 'Error'},\n overview: {tab: 'overview', title: 'Overview'},\n saving: {tab: 'saving', title: 'Saving Event'},\n success: {tab: 'success', title: 'Event Saved'},\n};\n","export const BOOLEAN_OPTIONS = [\n {id: 'true', value: true, name: 'True'},\n {id: 'false', value: false, name: 'False'}\n];\n","import React, {useState} from 'react';\nimport {Link} from 'react-router-dom';\nimport {Controller, useForm} from 'react-hook-form';\nimport DatePicker from 'react-datepicker';\nimport {RESOURCES as resources} from '../../resources';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport {createDateTimeObject} from '../../utils/dataFunctions';\nimport {setDueDate} from '../../utils/projectFunctions';\nimport BaseInput from '../fields/BaseInput';\nimport SelectInput from '../fields/SelectInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport ResourceSelectInput from '../fields/ResourceSelectInput';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport {CHALLENGE_TABS} from '../../data/formTabs';\nimport {BOOLEAN_OPTIONS} from '../../data/objects';\nimport 'react-datepicker/dist/react-datepicker.min.css';\n\n/**\n * Form: Add Challenge\n *\n * @param challengePath\n * @param formStage\n * @param onFormEvent\n * @param basePath\n * @returns {JSX.Element}\n * @constructor\n */\nexport default function FormChallengeAdd(\n {\n challengePath,\n formStage,\n onFormEvent,\n basePath = ''\n }) {\n\n // Set up form and state\n const {register, errors, formState, getValues, handleSubmit, control} = useForm({mode: 'onBlur'});\n\n // State: Form Stage (from parent)\n const [formStageState, updateFormStageState] = useState(\n {\n stage: formStage\n }\n );\n if (formStageState.stage !== formStage) {\n updateFormStageState({...formStageState, stage: formStage});\n }\n // Initial Form State\n const [fieldState, updateFieldState] = useState(\n {\n active: true,\n community_desc: '',\n complete: false,\n due_date: createDateTimeObject(new Date()),\n gitlab_group_id: '',\n goals: '',\n introduction: '',\n org_id: '',\n org_select: null,\n private: true,\n published: false,\n title: '',\n reward: '',\n summary: ''\n }\n );\n // State: Due Date Object\n const [dueDateState, updateDueDateState] = useState(\n {\n min_date_obj: setDueDate('/'),\n due_date_obj: setDueDate('/').due_date\n }\n );\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n // State: Current Tab\n const [tabState, setTab] = useState(CHALLENGE_TABS.overview);\n // State: Created Challenge\n const [challengeId, setChallengeId] = useState('');\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n !formState.isDirty ||\n getValues('org_id') === '' ||\n getValues('introduction') === '' ||\n getValues('reward') === '' ||\n getValues('summary') === '' ||\n getValues('title') === '' ||\n tabState.tab === 'saving' ||\n (errors &&\n (\n errors.introduction ||\n errors.reward ||\n errors.summary ||\n errors.title\n ))\n );\n };\n\n // Handle change from specific form fields\n const handleFormChange = (e) => {\n if (e.name === 'due_date') {\n // Set a Due Date object\n const dateString = createDateTimeObject(e.value);\n updateFieldState({...fieldState, [e.name]: dateString});\n updateDueDateState({...dueDateState, due_date_obj: e.value});\n\n } else if (e.name === 'org_select') {\n // Populate form values\n updateFieldState({...fieldState, gitlab_group_id: e.value.gitlab_org_id, org_id: e.value.id});\n } else if (e.name === 'active' || e.name === 'complete' || e.name === 'published' || e.name === 'private') {\n updateFieldState({...fieldState, [e.name]: (e.value.toString() === 'true')});\n } else {\n updateFieldState({...fieldState, [e.name]: e.value});\n }\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // console.log('SUBMIT fieldState: ', fieldState);\n // console.log('SUBMIT data args before: ', data);\n\n // Set parameters from form state\n data.gitlab_group_id = fieldState.gitlab_group_id;\n data.org_id = fieldState.org_id;\n data.active = fieldState.active;\n data.complete = fieldState.complete;\n data.private = fieldState.private;\n data.published = fieldState.published;\n\n // Delete unused parameters before submitting\n delete data.org_select;\n\n // console.log('SUBMIT data args: ', data);\n\n // Submit form to API\n setTab(CHALLENGE_TABS.saving);\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'Challenge', 'CREATE', data);\n request.then(result => {\n if (result && !result.error) {\n updateSuccessState({success: true, message: ''});\n setTab(CHALLENGE_TABS.success);\n setChallengeId(result.id);\n setPostChallenge(result);\n return Promise.resolve(result);\n } else {\n updateSuccessState({success: false, message: 'Sorry, your Challenge could not be created.'});\n setTab(CHALLENGE_TABS.fail);\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Add Challenge Error: ', error);\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Challenge: ' + error});\n setTab(CHALLENGE_TABS.fail);\n return Promise.reject('Server Error');\n });\n };\n\n // Process after Challenge form completion\n const setPostChallenge = (data) => {\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n // Notify the page that Challenge has been created\n onFormEvent('challenge', 'complete', data);\n }\n };\n\n return (\n
\n
\n\n {/* Form Menu */}\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n
\n\n
\n\n {/* Tab: Overview */}\n\n
\n

\n Select an Organization this Challenge is associated with.
\n Enter basic Challenge information. Click Next to enter Description information.\n

\n\n
\n (\n handleFormChange({name: 'org_select', value: e})}\n className=\"form-input\"\n {...props}\n />\n )}\n />\n
\n
\n {/* Title */}\n ),\n minLength: {\n value: 3,\n message: ()\n },\n maxLength: {\n value: 80,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.title ? 'input-error' : ''}`}\n >\n {errors.title && errors.title.message}\n \n
\n
\n {/* Reward */}\n )\n })}\n required\n className={`form-input ${errors.reward ? 'input-error' : ''}`}\n >\n {errors.reward && errors.reward.message}\n \n
\n
\n {/* Goals */}\n \n \n
\n
\n {/* Due Date */}\n \n {/* Challenge Active */}\n handleFormChange({name: 'active', value: e.value})}\n optionSelected={fieldState.active}\n ref={register()}\n >\n \n
\n
\n {/* Private */}\n handleFormChange({name: 'private', value: e.value})}\n optionSelected={true}\n disabled\n ref={register()}\n >\n \n
\n
\n {/* Published */}\n handleFormChange({name: 'published', value: e.value})}\n optionSelected={fieldState.published}\n disabled\n ref={register()}\n\n >\n \n
\n
\n {/* Complete */}\n handleFormChange({name: 'complete', value: e.value})}\n optionSelected={fieldState.complete}\n ref={register()}\n >\n \n
\n\n \n {/**/}\n
\n\n {/* Tab: Information */}\n\n
\n

\n Enter Challenge descriptive data. Markdown may be used, but no HTML is allowed. When all\n information is completed, click Next to confirm and Save the Challenge.\n

\n
\n {/* Summary */}\n )\n })}\n required\n className={`form-input ${errors.summary ? 'input-error' : ''}`}\n >\n {errors.summary && errors.summary.message}\n \n
\n
\n {/* Introduction */}\n )\n })}\n required\n className={`form-input ${errors.introduction ? 'input-error' : ''}`}\n >\n {errors.introduction && errors.introduction.message}\n \n
\n
\n {/* Community Description */}\n \n \n
\n
\n\n {/* Tab: Confirm && Save */}\n\n
\n

\n Save your Challenge. Once the Challenge is saved, you will be able to upload a Dataset\n associated with this Challenge if desired.\n

\n
\n\n {/* Tab: Saving */}\n\n
\n

Saving Challenge...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Challenge Saved

\n

\n Your Challenge has been saved. If this Challenge needs a Dataset, add one below. You can\n add a Dataset at any time by viewing a Challenge and\n clicking Edit Dataset.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue saving this Challenge.\n

\n }\n
\n\n {/* Actions */}\n\n
\n
\n {tabState.tab === 'overview' &&\n <>\n \n \n }\n {tabState.tab === 'information' &&\n <>\n \n \n \n }\n {tabState.tab === 'confirm' &&\n <>\n \n \n \n }\n {tabState.tab === 'success' &&\n \n View Challenge Details\n \n }\n
\n
\n
\n
\n
\n );\n}\n\n","import React, {Component} from 'react';\nimport FormChallengeAdd from '../forms/FormChallengeAdd';\n\nclass ChallengeAddModalContent extends Component {\n render() {\n return (\n <>\n

Add Challenge

\n
\n \n
\n \n )\n }\n}\n\nexport default ChallengeAddModalContent;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport './modal.css';\n\nconst modalStyle = {\n width: '80%'\n};\n\n/**\n * Generic Modal container\n */\nexport default class Modal extends Component {\n\n onClose = () => {\n this.props.onClose();\n };\n\n render() {\n const {\n allowClose,\n classes,\n closeButtonOnly,\n children,\n header,\n id,\n show,\n style\n } = this.props;\n\n let modalClass = (show) ? ' toggled-on' : '';\n let modalContentClass = (show) ? ' active' : '';\n if (header) {\n modalContentClass += ' has-header';\n }\n if (classes) {\n modalContentClass += ' ' + classes;\n }\n\n return (\n
\n
(closeButtonOnly) ? undefined : this.onClose()}>\n
\n
\n {children}\n {allowClose &&\n \n }\n
\n
\n );\n }\n}\n\nModal.propTypes = {\n allowClose: PropTypes.bool,\n classes: PropTypes.string,\n closeButtonOnly: PropTypes.bool,\n header: PropTypes.bool,\n id: PropTypes.string,\n onClose: PropTypes.func,\n show: PropTypes.bool,\n style: PropTypes.object\n};\n\nModal.defaultProps = {\n allowClose: true,\n closeButtonOnly: false,\n header: false,\n id: 'modal',\n style: modalStyle\n};\n","import React from 'react';\n\n// Select component.\nexport const Select = ({values, onChange, className}) => {\n return (\n
\n
\n \n
\n
\n \n
\n \n {values.map((value, i) => (\n \n ))}\n \n
\n );\n};\n\n// Input component.\nexport const Input = ({onKeyUp, className, placeholder = 'Search...'}) => (\n
\n
\n \n
\n \n
\n);\n\n// Button component.\nexport const Button = ({onClick}) => (\n \n);\n\n// Header component.\nexport const Header = ({children}) => (\n <>\n
{children}
\n \n);","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport Emitter from '../../utils/eventEmitter';\nimport {filterListByValue, sortListByValue} from '../../utils/filterFunctions';\nimport {setChallengesList} from '../../utils/projectFunctions';\nimport APIChallenges from '../../utils/APIChallenges';\nimport ChallengeAddModalContent from '../../partials/modal/ChallengeAddModalContent';\nimport Modal from '../../partials/modal/Modal';\nimport {Select, Header, Input} from \"../../partials/filters/ChallengeFilterComponents\";\nimport '../../css/challenge.css';\nimport '../../css/search-filter.css';\n\n/**\n * Set current list type based on Challenge route\n *\n * @param path\n * @returns {string}\n */\nconst setListType = (path) => {\n if (path.indexOf('challenges/list/completed') !== -1) {\n return 'challenges-completed';\n } else if (path.indexOf('challenges/list/popular') !== -1) {\n return 'challenges-popular';\n } else if (path.indexOf('challenges/list/trending') !== -1) {\n return 'challenges-popular';\n } else if (\n path.indexOf('challenges') !== -1 ||\n path.indexOf('challenges/list') !== -1 ||\n path.indexOf('challenges/list/all') !== -1\n ) {\n return 'challenges-all';\n }\n return 'challenges-all';\n};\n\n/**\n * Set page title based on Challenge list type\n *\n * @param listType\n * @return {string}\n */\nconst setChallengePageTitle = (listType) => {\n if (listType === 'challenges-completed') {\n return 'Completed Challenges';\n } else if (listType === 'challenges-popular' || listType === 'challenges-trending') {\n return 'Popular Challenges';\n } else if (listType === 'challenges-all') {\n return 'All Challenges';\n }\n return 'Challenges';\n};\n\nconst sortTypes = {\n latest: 'created_on',\n popular: 'created_on',\n alphabetically: 'title',\n}\n\n/**\n * Page: Challenges List (All, Popular, Trending, Completed)\n */\nclass XConnectChallenges extends Component {\n constructor(props) {\n super(props);\n\n const listType = setListType(props.location.pathname);\n const pageTitle = setChallengePageTitle(listType);\n const publicChallenges = (props.challenge_list_public.length > 0) ? props.challenge_list_public : [];\n this.state = {\n filteredList: [],\n listTotals: {\n challengePublic: 0,\n challengeUser: 0\n },\n listType: listType,\n mainList: publicChallenges,\n modalChallengeOpen: false,\n pageTitle: pageTitle,\n params: {\n active: true\n },\n pathname: '',\n refreshChallenges: false,\n resetList: true,\n search: {\n value: ''\n },\n sort: {\n value: 'latest'\n }\n };\n }\n\n componentDidMount() {\n Emitter.on('addChallenge', () => this.setChallengeModal(true));\n\n if (this.state.resetList === true) {\n this.setMainList();\n this.setReset(false);\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.state.resetList === true) {\n this.setMainList();\n this.setReset(false);\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n // Update state on location change\n if (nextProps.location.pathname !== prevState.pathname) {\n const listType = setListType(nextProps.location.pathname);\n const pageTitle = setChallengePageTitle(listType);\n if (document.getElementById('searchHeader')) {\n document.getElementById('searchHeader').reset();\n }\n\n return {\n filteredList: [],\n listType: listType,\n pageTitle: pageTitle,\n pathname: nextProps.location.pathname,\n resetList: true,\n search: {\n value: ''\n },\n sort: {\n value: 'latest'\n }\n };\n }\n\n // Reset current list if stored totals have changed or populated\n if (prevState.listTotals.challengePublic !== nextProps.challenge_list_public.length) {\n return {\n listTotals: {\n challengePublic: nextProps.challenge_list_public.length,\n challengeUser: 0\n },\n resetList: true,\n }\n }\n\n return null;\n }\n\n componentWillUnmount() {\n Emitter.off('addChallenge');\n }\n\n setChallengeModal = (isOpen) => {\n this.setState({\n modalChallengeOpen: isOpen\n });\n };\n\n // Handle event from Filter By Title\n setSearch = (value) => {\n this.setState({\n search: {value: value}\n }, () => {\n this.filterAndSortList();\n });\n }\n\n // Handle event from Sort By filter\n setSort = (value) => {\n this.setState({\n sort: {value: value}\n }, () => {\n this.filterAndSortList();\n });\n }\n\n setReset = (value) => {\n this.setState({\n resetList: value\n }, () => {\n this.filterAndSortList();\n });\n }\n\n setMainList = () => {\n this.setState({\n mainList: this.props.challenge_list_public\n }, () => {\n this.filterAndSortList();\n })\n }\n\n filterAndSortList = () => {\n let tempList = JSON.parse(JSON.stringify(this.state.mainList));\n if (!tempList || tempList.length === 0) {\n return;\n }\n\n // Apply Text Filter\n tempList = filterListByValue(tempList, this.state.search?.value?.toLowerCase(), ['title', 'summary']);\n\n // Apply sorting\n tempList = sortListByValue(tempList, this.state.sort?.value, sortTypes);\n\n this.setState({\n filteredList: tempList\n })\n }\n\n render() {\n const {\n challenge_list_subscribed\n } = this.props;\n\n const {\n filteredList,\n listType,\n modalChallengeOpen,\n pageTitle,\n refreshChallenges,\n search,\n sort\n } = this.state;\n\n return (\n <>\n
\n

\n {pageTitle}\n

\n
\n
\n this.setSearch(e.target.value)}\n className=\"control-search\"\n />\n this.setSort(e.target.value)}\n className=\"control-sort\"\n />\n
\n Sort By:\n
\n
\n
\n\n {/* Row: Public Challenges */}\n {(listType === 'challenges-all' || listType === 'challenges-completed') &&\n
\n {[...setChallengesList(filteredList, challenge_list_subscribed, 'No Challenges to display.')]}\n
\n }\n\n
\n\n this.setChallengeModal(false)}\n closeButtonOnly={true}\n header={true}\n classes=\"no-padding\"\n style={{maxWidth: '90%', minHeight: 200}}\n >\n {modalChallengeOpen &&\n \n }\n \n\n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n challenge_list_public: state.challenge_list_public,\n challenge_list_subscribed: state.challenge_list_subscribed\n };\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n null\n )(XConnectChallenges)\n);\n","/**\n * Resources for API\n * Data\n * File\n * Volume\n */\nexport const RESOURCES = {\n 'Data': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/data'\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/data/' + params.id\n }\n },\n CREATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/data/create'\n }\n },\n DELETE: function (params) {\n return {\n 'method': 'DELETE',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/data/' + params.id\n }\n },\n UPDATE: function (params) {\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/data/update'\n }\n },\n },\n 'DataAssociation': {\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/data/' + params.data_id + '/association'\n }\n }\n },\n 'DataSize': {\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/bucket/size/' + params.data_id\n }\n }\n },\n 'File': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/files/getAll/' + params.data_id + '/'\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/file/' + params.data_id + '/' + params.filepath\n }\n },\n POST_UPLOAD: function (params) {\n let path = (params.path) ? '/' + params.path : '';\n return {\n 'method': 'POST',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/file/' + params.data_id + path\n }\n },\n DELETE: function (params) {\n return {\n 'method': 'DELETE',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/file/' + params.data_id + params.filepath\n }\n }\n },\n 'Volume': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/volume/list/' + params.data_id\n }\n },\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/volume/info/' + params.data_id + '/' + params.volume_name\n }\n },\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/volume/create/' + params.data_id\n }\n },\n DELETE: function (params) {\n return {\n 'method': 'DELETE',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/volume/delete/' + params.data_id + '/' + params.volume_name\n }\n }\n },\n 'VolumeFile': {\n GET_LIST: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/volume/fileTree/' + params.data_id + '/' + params.volume_name\n }\n }\n },\n 'VolumeStatus': {\n GET_ONE: function (params) {\n return {\n 'method': 'GET',\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/pv/status/' + params.data_id + '/' + params.volume_name\n }\n },\n PUT: function (params) {\n return {\n 'method': 'PUT',\n 'data': params,\n 'uri': localStorage.getItem('server') + '/api/v1/mgmt/volume/update/' + params.data_id + '/' + params.volume_name + '/' + params.status\n }\n }\n }\n};\n\n/* eslint import/no-anonymous-default-export: [2, {\"allowArrowFunction\": true}] */\nexport default (type, resource, params) => {\n\n /**\n * @param {string} type Request type, e.g. GET_LIST\n * @param {string} resource Resource name, e.g. \"Volume\"\n * @param {Object} payload Request parameters. Depends on request type\n * @returns {Object} RESOURCES object\n */\n return (type, resource, params) => {\n return RESOURCES;\n }\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {RESOURCES as resources} from '../resourcesData';\nimport {setProjectFileList} from '../store/actions';\nimport {makeGetDataRequest} from './getRequest';\nimport {copyArray} from './dataFunctions';\n\n/**\n * Component for retrieving File Lists and single Dataset and Files for Challenges and Projects\n */\nclass APIProjectDataset extends Component {\n\n componentDidMount() {\n const type = this.props.type;\n if (type === 'dataset') {\n this.getDataset();\n this.getProjectFiles();\n }\n if (type === 'file') {\n this.getProjectFile();\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.refresh === true) {\n const type = this.props.type;\n if (type === 'dataset') {\n this.getDataset();\n this.getProjectFiles();\n }\n if (type === 'file') {\n this.getProjectFile();\n }\n }\n }\n\n /**\n * Get Project Dataset Files with optional parameters\n *\n */\n getProjectFiles = () => {\n const id = this.props.id;\n if (!id) {\n return Promise.reject('No ID provided');\n }\n const params = {\n data_id: id\n };\n const request = makeGetDataRequest(resources, 'File', 'GET_LIST', params);\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Dataset Files Retrieval Error: ', result);\n this.processFileList(null);\n return Promise.resolve(result);\n }\n this.processFileList(result);\n return Promise.resolve(result);\n } else {\n console.log('Dataset Files Retrieval Error: No result');\n return Promise.reject('Dataset Files Retrieval failed');\n }\n }).catch(error => {\n console.log('Dataset Files Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Get single Dataset\n */\n getDataset = () => {\n const id = this.props.id;\n if (!id) {\n return Promise.reject('No ID provided');\n }\n const request = makeGetDataRequest(resources, 'Data', 'GET_ONE', {id: id});\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Dataset Retrieval Error: ', result);\n this.processDataset(null);\n return Promise.resolve(result);\n }\n this.processDataset(result);\n return Promise.resolve(result);\n } else {\n console.log('Dataset Retrieval Error: No result');\n return Promise.reject('Dataset Retrieval failed');\n }\n }).catch(error => {\n console.log('Dataset Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Get single Dataset File\n */\n getProjectFile = () => {\n const id = this.props.id;\n if (!id) {\n return Promise.reject('No ID provided');\n }\n const request = makeGetDataRequest(resources, 'File', 'GET_ONE', {data_id: id});\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Challenge Retrieval Error: ', result);\n this.processSingleFile(null);\n return Promise.resolve(result);\n }\n this.processSingleFile(result);\n return Promise.resolve(result);\n } else {\n console.log('Challenge Retrieval Error: No result');\n return Promise.reject('Challenge Retrieval failed');\n }\n }).catch(error => {\n console.log('Challenge Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Return single Dataset result\n *\n * @param data\n */\n processDataset = (data) => {\n if (data && this.props.onDataResult) {\n this.props.onDataResult(data);\n }\n };\n\n /**\n * Return and/or Store list data\n *\n * @param data\n */\n processFileList = (data) => {\n let list = [];\n if (data && data.files && data.files.length > 0) {\n list = copyArray(data.files);\n }\n\n // Pass results to parent\n if (this.props.onFileListResult) {\n this.props.onFileListResult(list);\n }\n // Store results in Redux\n if (this.props.store) {\n this.props.setProjectFileList(list);\n }\n };\n\n /**\n * Return single Dataset File result\n *\n * @param data\n */\n processSingleFile = (data) => {\n if (data && this.props.onFileResult) {\n this.props.onFileResult(data);\n }\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n project_file_list: state.project_file_list,\n };\n};\n\nconst mapDispatchToProps = {\n setProjectFileList: setProjectFileList\n};\n\nAPIProjectDataset.propTypes = {\n id: PropTypes.number,\n onDataResult: PropTypes.func,\n onFileResult: PropTypes.func,\n onFileListResult: PropTypes.func,\n refresh: PropTypes.bool,\n store: PropTypes.bool,\n type: PropTypes.string\n};\n\nAPIProjectDataset.defaultProps = {\n refresh: false,\n store: true,\n type: 'data'\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(APIProjectDataset);\n","import React, {Fragment} from 'react';\nimport {useTable, useExpanded} from 'react-table';\n\n/**\n * Basic React Table\n *\n * @param columns\n * @param data\n * @param buttonsClass\n * @param subrowComponent\n * @returns {JSX.Element}\n * @constructor\n */\nconst TableWithSubrows = ({columns, data, buttonsClass, subrowComponent}) => {\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n footerGroups,\n rows,\n prepareRow,\n visibleColumns\n } = useTable(\n {\n columns,\n data\n },\n useExpanded);\n\n return (\n
\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => {\n return (\n \n {column.render('Header')}\n \n )\n })}\n \n ))}\n \n \n {rows.map((row, i) => {\n prepareRow(row);\n return (\n \n \n {row.cells.map(cell => {\n return \n {cell.render('Cell')}\n \n })}\n \n {row.isExpanded ? (\n \n \n \n ) : null}\n \n )\n })}\n \n {footerGroups.length > 0 &&\n \n {footerGroups.map(group => (\n \n {group.headers.map(column => (\n \n ))}\n \n ))}\n \n }\n
\n {subrowComponent({row})}\n
{column.render('Footer')}
\n
\n )\n}\n\nexport default TableWithSubrows;","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {makeDateString, sortArrayByKey} from '../utils/dataFunctions';\nimport APIAirmeetSessions from '../utils/APIAirmeetSessions';\nimport TableWithSubrows from './tables/TableWithSubrows';\nimport ChevronDown from '../css/images/icon-Table-Down-Chevron.svg';\nimport ChevronUp from '../css/images/icon-Table-Up-Chevron.svg';\n\n/**\n * Component that displays a Challenge's, Project's, or Event's active Airmeet Sessions in a React Table\n *\n * @param airmeetView\n * @param itemId\n * @param onList\n * @param onAirmeetLink\n * @param inPanel\n * @param refresh\n * @return {JSX.Element}\n * @constructor\n */\nconst AirmeetSessionsTable = ({\n airmeetView,\n itemId,\n onList,\n onAirmeetLink,\n inPanel = true,\n refresh = false\n }) => {\n\n const [hasLinks, setHasLinks] = useState(false);\n const [itemList, setItemList] = useState([]);\n const [refreshList, setRefreshList] = useState(refresh);\n\n const joinBtn = (airmeetView === 'owner') ? 'Join Session' : 'Launch RTC';\n\n useEffect(\n () => {\n return setRefreshList(refresh);\n }, [refresh]\n );\n\n // Set list of Airmeet Sessions for current Challenge, Project, or Event\n const setAirmeetSessions = (data) => {\n let sorted = [];\n let entryLinks = 0;\n if (data.length > 0) {\n for (let i = 0; i < data.length; i++) {\n let session = data[i];\n if (!session.title || session.title === '') {\n session.title = '(No Title)';\n }\n session.start_date_str = (session.start_date) ? makeDateString(session.start_date, 'm', true) : '';\n session.duration_str = (session.duration > 0) ? (session.duration === 1) ? '1 minute ' : session.duration + ' minutes ' : '';\n if (session.entry_link && session.entry_link !== '') {\n entryLinks++;\n }\n sorted.push(session);\n }\n sorted = sortArrayByKey(sorted, 'start_date', 'ASC');\n setItemList(sorted);\n if (entryLinks > 0) {\n setHasLinks(true);\n }\n if (typeof onList === 'function') {\n onList(sorted);\n }\n }\n setRefreshList(false);\n };\n\n // Handle click from Session Join button\n const launchAirmeetSession = useCallback((uuid) => {\n if (typeof onAirmeetLink === 'function') {\n onAirmeetLink('session', uuid);\n }\n }, [onAirmeetLink]);\n\n // Display subrow with Airmeet Summary\n const renderSubrow = useCallback(\n ({row}) => (\n

\n {row.original.summary}\n

\n ),\n []\n );\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n // Set table columns\n const tableColumns = useMemo(() => {\n const columns = [\n {\n Header: 'Session Title',\n id: 'session_title',\n Cell: ({row}) => (\n <>\n {row.original.title}\n {row.original.summary !== '' &&\n \n {row.isExpanded\n ? \"Close\"/\n : \"View}\n\n \n }\n \n ),\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: 'Starts',\n id: 'start_date_str',\n Cell: ({row}) => {\n return (row.original.start_date)\n ? {row.original.start_date_str}\n : N/A\n },\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: 'Duration',\n id: 'duration',\n Cell: ({row}) => {\n return (row.original.duration_str)\n ? {row.original.duration_str}\n : N/A\n },\n disableFilters: true,\n disableSortBy: true\n }\n ];\n // Only joined Users and (Project/Event) Owners may launch Sessions\n if (hasLinks) {\n columns.push({\n Header: '',\n id: 'entry_link',\n Cell: ({row}) => (\n launchAirmeetSession(row.original.session_id)\n : undefined}\n >\n {joinBtn}\n \n ),\n disableFilters: true,\n disableSortBy: true\n });\n }\n\n return columns;\n }, [hasLinks, launchAirmeetSession, joinBtn]);\n\n return (\n <>\n {inPanel && itemList.length > 0 &&\n
\n
\n
\n

Real Time Collaboration Sessions

\n \n
\n
\n
\n }\n {!inPanel && itemList.length > 0 &&\n \n }\n\n setAirmeetSessions(e)}\n refresh={refreshList}\n />\n \n );\n};\n\nexport default AirmeetSessionsTable;\n","import React, {useState, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {RESOURCES as resources} from '../../resources';\nimport {makeGetDataRequest} from '../../utils/getRequest';\n\n/**\n * Button with GitLab Project retrieval\n *\n * @param type\n * @param id\n * @param label\n * @returns {JSX.Element}\n * @constructor\n */\nconst EditFilesButton = (\n {\n type,\n id,\n label = 'Edit Files'\n }) => {\n\n const [link, setLink] = useState(null);\n\n useEffect(() => {\n const params = {\n id: id\n };\n const fetchData = () => {\n const resource = (type === 'challenge') ? 'GitLabProjectChallenge' : 'GitLabProjectProject';\n const request = makeGetDataRequest(resources, resource, 'GET_ONE', params);\n request.then(result => {\n if (result) {\n if (result.error) {\n return Promise.resolve(result);\n }\n if (result.web_url) {\n setLink(result.web_url);\n }\n return Promise.resolve(result);\n } else {\n console.log('GitLab URL Error: No result');\n return Promise.reject('Projects failed');\n }\n }).catch(error => {\n console.log('GitLab URL Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n if (!link) {\n return fetchData();\n }\n\n }, [id, link, type]);\n\n return (\n <>\n \n {label}\n \n \n );\n}\n\nEditFilesButton.propTypes = {\n type: PropTypes.string,\n label: PropTypes.string,\n};\n\nexport default EditFilesButton;","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nclass FileDatasetListItem extends Component {\n\n render() {\n const {\n item\n } = this.props;\n\n /*\ncontent_type: \"file\"\nfailed: false\nmessage: \"\"\nmodified: \"2020-07-29T00:12:30+0000\"\nobject: \"/drag folder one/project files/secondary folder/tertiary folder/bootstrap.css\"\nsize: 145933\n */\n\n return (\n \n \n {item.object}\n \n \n )\n }\n}\n\nFileDatasetListItem.propTypes = {\n item: PropTypes.object,\n name: PropTypes.string,\n path: PropTypes.string,\n};\n\nFileDatasetListItem.defaultProps = {\n item: {}\n};\n\nexport default FileDatasetListItem;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport FileDatasetListItem from './FileDatasetListItem';\n\nclass FileDatasetList extends Component {\n\n setFileItems = () => {\n const list = this.props.list;\n if (!list || list.length === 0) {\n return (\n No Files Uploaded\n )\n }\n\n return (\n list.map((item, index) => (\n \n ))\n )\n };\n\n render() {\n return (\n
\n {this.props.list.length > 0 &&\n <>\n {[...this.setFileItems()]}\n \n }\n
\n )\n }\n}\n\nFileDatasetList.propTypes = {\n list: PropTypes.array\n};\n\nFileDatasetList.defaultProps = {\n list: []\n};\n\nexport default FileDatasetList;\n","import React from 'react';\n\nconst IconCheckmark = () => {\n return (\n \n \n \n \n \n \n \n )\n};\n\nexport default IconCheckmark;\n","import React, {useState, useEffect, useCallback} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\nimport ReactMarkdown from 'react-markdown';\nimport {RESOURCES as resources} from '../resources';\nimport {isBlank, makeDateString} from '../utils/dataFunctions';\nimport {makePostDataRequest} from '../utils/postRequest';\nimport EditFilesButton from './buttons/EditFilesButton';\nimport FileDatasetList from './FileDatasetList';\nimport LoadingIndicator from './LoadingIndicator';\nimport IconCheckmark from './images/IconCheckmark';\n\nconst tabs = {\n overview: {tab: 'overview', title: 'Overview'},\n description: {tab: 'description', title: 'Description'},\n data: {tab: 'data', title: 'Data'}\n};\n\nconst lab_url = localStorage.getItem('lab_url');\n\n/**\n * Panel: Challenge Detail\n *\n * @param isCreator\n * @param isSysop\n * @param basePath\n * @param projectItem\n * @param projectDataset\n * @param projectFiles\n * @param onAirmeetLink\n * @param onJoinFunc\n * @param inSubscribedChallenges\n * @param allowLab\n * @param tab\n * @return {*}\n * @constructor\n */\nconst ChallengeDetail = (\n {\n isCreator,\n isSysop,\n basePath = '',\n projectItem,\n projectDataset,\n projectFiles,\n onAirmeetLink,\n onJoinFunc,\n inSubscribedChallenges = false,\n allowLab = false,\n tab = 'overview'\n }) => {\n\n const [tabState, setTab] = useState({\n tab: tabs.overview.tab,\n title: tabs.overview.title\n });\n\n const [joining, setJoining] = useState(false);\n const [joinMessage, setJoinMessage] = useState({\n error: false,\n message: ''\n });\n const [labMessage, setLabMessage] = useState(false);\n\n // Set tab if an outside source requests it\n useEffect(() => {\n // @TODO first click from outside after internal tabState change fails\n // @TODO avoid checking/update internally\n if (tabs[tab] && (tabs[tab].tab)) {\n // console.log('useEffect check tab: current ' + tabState.tab + ', new: ', tab);\n // console.log('useEffect tabs[tab].tab: ', tabs[tab].tab);\n // changeTab(tabs[tab].tab, tabs[tab].title);\n }\n }, [tab]);\n\n const changeTab = (tab, title) => {\n setJoining(false);\n setJoinMessage({error: false, message: ''});\n setTab({tab: tab, title: title});\n };\n\n const joinChallenge = () => {\n setJoining(true);\n const request = makePostDataRequest(resources, 'ChallengeJoin', 'PUT', {id: projectItem.id});\n let errorMessage = 'Sorry, there was an issue joining this Challenge.';\n request.then(result => {\n setJoining(false);\n if (result && (result.sign_up_date || result === 'OK')) {\n setJoinMessage({error: false, message: 'You have successfully joined this Challenge.'});\n // Notify the parent page\n if (typeof onJoinFunc === 'function') {\n onJoinFunc();\n }\n return Promise.resolve(result);\n\n } else if (result && result.data) {\n // console.log('Join Challenge error: ', result);\n let error = result.data.error;\n if (error && error.indexOf('no challenge found') !== -1) {\n errorMessage = 'Sorry, no Challenge was found to join. Please try another Challenge.';\n }\n if (error && error.indexOf('already participating') !== -1) {\n errorMessage = 'You are already participating in this Challenge.';\n }\n setJoinMessage({\n error: true,\n message: errorMessage\n });\n return Promise.resolve();\n\n } else {\n setJoinMessage({\n error: true,\n message: errorMessage\n });\n return Promise.resolve();\n }\n }).catch(error => {\n // console.log('Join Challenge Error: ', error);\n setJoining(false);\n setJoinMessage({\n error: true,\n message: errorMessage\n });\n return Promise.reject('Server Error');\n });\n };\n\n // Handle click from Session Join button\n const launchAirmeetEvent = useCallback((uuid) => {\n if (typeof onAirmeetLink === 'function') {\n onAirmeetLink('event', uuid);\n }\n }, [onAirmeetLink]);\n\n const displayLabMessaging = () => {\n setLabMessage(true);\n };\n\n const dateObj = (projectItem.due_date) ? new Date(projectItem.due_date.replace(/-/g, '/').replace(/T.+/, '')) : null;\n const dueStr = (dateObj) ? makeDateString(dateObj, 'm', false) : null;\n const discourseLink = (projectItem.discourse_id)\n ? localStorage.getItem('forum_url') + 'c/challenge/-/' + projectItem.discourse_id\n : null;\n const hasAirmeet = (!isBlank(projectItem.airmeet_id));\n\n return (\n
\n\n

{tabState.title}

\n\n
\n\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n
  • \n {discourseLink &&\n
  • \n \n View Cluster\n \n
  • \n }\n
\n
\n\n
\n {/* Tab: Overview */}\n {tabState.tab === 'overview' &&\n <>\n

Short Description

\n \n\n {projectItem.goals &&\n <>\n

Goals

\n \n \n }\n\n {projectItem.reward &&\n <>\n

Reward

\n \n \n }\n\n {dueStr &&\n <>\n

Due Date

\n

{dueStr}

\n \n }\n {isSysop &&\n
\n \n

Active

\n

{projectItem.active ? 'Yes' : 'No'}

\n
\n\n \n

Published

\n

{projectItem.published ? 'Yes' : 'No'}

\n
\n\n \n

Private

\n

{projectItem.private ? 'Yes' : 'No'}

\n
\n\n \n

Complete

\n

{projectItem.complete ? 'Yes' : 'No'}

\n
\n
\n }\n \n }\n\n {/* Tab: Description */}\n {tabState.tab === 'description' &&\n <>\n

Introduction

\n \n

Summary

\n \n

Community Description

\n \n \n }\n\n {/* Tab: Data */}\n {tabState.tab === 'data' &&\n <>\n {projectDataset &&\n <>\n

Data Description

\n \n \n }\n {projectFiles && projectFiles.length > 0 &&\n <>\n

Files ({projectFiles.length})

\n \n \n }\n \n }\n\n
\n {joining &&\n

\n \n

\n }\n {!joinMessage.error && joinMessage.message !== '' &&\n

\n \n

\n }\n {joinMessage.message !== '' &&\n

\n {joinMessage.message}\n

\n }\n {!inSubscribedChallenges &&\n \n }\n {isSysop &&\n \n Edit Challenge\n \n }\n {isSysop &&\n <>\n \n Edit Dataset\n \n \n \n }\n {(inSubscribedChallenges || isCreator) && hasAirmeet &&\n \n }\n {allowLab && inSubscribedChallenges &&\n \n Launch Workspace\n \n }\n {!allowLab && inSubscribedChallenges &&\n \n }\n
\n {labMessage &&\n
\n

You need to be granted access to the Xrathus Lab.
\n Once status is granted, please logout and log back in to access.\n

\n
\n }\n\n
\n
\n
\n );\n};\n\nexport default withRouter(ChallengeDetail);\n","import React, {forwardRef} from 'react';\n\nconst NumberInput = forwardRef(\n (\n {id, label, name, placeholder, instructions, className, changeFunc, children, defaultValue, required, min, max, step, disabled, value}, ref) => {\n return (\n \n );\n }\n);\n\nexport default NumberInput;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {useForm} from 'react-hook-form';\nimport DatePicker from 'react-datepicker';\nimport {RESOURCES as resources} from '../../resourcesProject';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport BaseInput from '../fields/BaseInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport Modal from '../modal/Modal';\nimport NumberInput from '../fields/NumberInput';\nimport 'react-datepicker/dist/react-datepicker.min.css';\n\nconst defaultDuration = 30;\nconst today = new Date();\n\n/**\n * Button with Create Airmeet Session functionality\n *\n * @param item\n * @param itemType\n * @param onFormEvent\n * @param type\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormAirmeetSessionCreate = (\n {\n item,\n itemType,\n onFormEvent\n }) => {\n\n const {errors, getValues, handleSubmit, register, setValue, setError, clearErrors} = useForm({mode: 'onBlur'});\n\n const [modalStatus, setModalStatus] = useState(false);\n const [createError, setCreateError] = useState(null);\n const [formStageState, setFormStageState] = useState('form');\n const [fieldState, updateFieldState] = useState(\n {\n duration: defaultDuration,\n event_id: item?.airmeet_id ?? '',\n start_time: today.getTime(),\n summary: '',\n title: ''\n }\n );\n const [startTime, updateStartTime] = useState({\n obj: today,\n ms: today.getTime()\n });\n\n const filterPassedTime = (time) => {\n const currentDate = new Date();\n const selectedDate = new Date(time);\n\n return currentDate.getTime() < selectedDate.getTime();\n };\n\n const reset = () => {\n setValue('duration', defaultDuration);\n setValue('title', '');\n setValue('summary', '');\n updateFieldState({\n ...fieldState,\n duration: defaultDuration,\n start_time: today.getTime(),\n summary: '',\n title: ''\n });\n updateStartTime({...startTime, obj: today, ms: today.getTime()});\n setFormStageState('form');\n setCreateError(null);\n };\n\n const open = () => {\n reset();\n setModalStatus(true);\n };\n\n const close = () => {\n reset();\n setModalStatus(false);\n };\n\n const handleFormChange = (e) => {\n if (e.name === 'start_time') {\n let date = e.value;\n const stDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()));\n const stMs = stDate.getTime();\n const now = new Date();\n const nowDate = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds()));\n const nowMs = nowDate.getTime();\n if (stMs < nowMs) {\n setError('start_time', {\n type: 'manual',\n message: 'Dates and Times must be from now onward.',\n });\n updateStartTime({...startTime, obj: nowDate, ms: nowMs});\n } else {\n clearErrors('start_time');\n updateStartTime({...startTime, obj: stDate, ms: stMs});\n }\n } else if (e.name === 'duration_minutes') {\n // Airmeet API actually needs minutes despite its documentation\n let mins = (e.value) ? parseInt(e.value, 10) : 30;\n updateFieldState({...fieldState, duration: mins});\n } else {\n updateFieldState({...fieldState, [e.name]: e.value});\n }\n };\n\n const disableSubmit = () => {\n return !!(\n getValues('title') === '' ||\n getValues('start_time') === -1 ||\n (errors &&\n (\n errors.title\n ))\n );\n };\n\n const onSubmit = () => {\n const eventId = getValues('event_id');\n const params = {\n eventId: eventId,\n sessionTitle: getValues('title'),\n sessionStartTime: parseInt(getValues('start_time'), 10),\n sessionDuration: parseInt(getValues('duration'), 10),\n sessionSummary: getValues('summary')\n };\n if (!eventId || eventId === '') {\n setCreateError('Sorry, there was an error accessing the Airmeet Event.');\n } else {\n setCreateError(null);\n setFormStageState('saving');\n submitForm(params);\n }\n };\n\n const submitForm = (params) => {\n const request = makePostDataRequest(resources, 'AirmeetSessions', 'CREATE', params);\n request.then(result => {\n if (result && result.uid) {\n close();\n setCreateError(null);\n setFormStageState('form');\n if (typeof onFormEvent === 'function') {\n onFormEvent();\n }\n return Promise.resolve(result);\n } else if (result.error) {\n if (result.error.indexOf('overlapping') !== -1) {\n setCreateError('Sorry, this Session overlaps an existing Session and could not be created.');\n } else {\n setCreateError('Sorry, this Session could not be created. Error: ' + result.error);\n }\n setFormStageState('form');\n } else {\n console.log('Error: Unable to create Session');\n setCreateError('Sorry, this Session could not be created.');\n setFormStageState('form');\n return Promise.reject('Create Session failed');\n }\n }).catch(error => {\n console.log('Error: ', error);\n setCreateError('Sorry, this Session could not be created.');\n setFormStageState('form');\n return Promise.reject('Server Error');\n });\n };\n\n const setItemStr = (type) => {\n if (type === 'challenge') {\n return 'Challenge';\n }\n if (type === 'event') {\n return 'Event';\n }\n return 'Project';\n };\n\n const itemStr = setItemStr(itemType);\n\n return (\n <>\n
\n open()}\n >\n Create Session\n \n
\n close()}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: 200,\n top: 20,\n transform: 'translate(-50%, 0)'\n }}\n >\n
\n

\n Create Session\n

\n

Enter data below to create a Real Time Collaboration Session for\n this {itemStr}'s Event.

\n\n
\n
\n ),\n minLength: {\n value: 3,\n message: ()\n },\n maxLength: {\n value: 100,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.title ? 'input-error' : ''}`}\n >\n {errors.title && errors.title.message}\n \n
\n
\n \n \n
\n
\n \n
\n\n
\n handleFormChange({name: 'duration_minutes', value: e.value})}\n className=\"form-input half\"\n >\n \n \n
\n\n \n \n\n
\n \n \n Create Session\n \n {formStageState === 'saving' &&\n \n }\n
\n \n\n {createError &&\n

\n {createError}\n

\n }\n
\n \n \n );\n};\n\nFormAirmeetSessionCreate.propTypes = {\n item: PropTypes.object,\n itemType: PropTypes.string\n};\n\nFormAirmeetSessionCreate.defaultProps = {\n itemType: 'project'\n};\n\nexport default FormAirmeetSessionCreate;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {Link, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport Emitter from '../../utils/eventEmitter';\nimport {setChallengeListSubscribedRefresh} from '../../store/actions';\nimport {isBlank} from '../../utils/dataFunctions';\nimport {assembleAirmeetPath, inUserList} from '../../utils/projectFunctions';\nimport {hasGroup} from '../../utils/tokenFunctions';\nimport APIChallenges from '../../utils/APIChallenges';\nimport APIProjectDataset from '../../utils/APIProjectDataset';\nimport AirmeetSessionsTable from '../../partials/AirmeetSessionsTable';\nimport ChallengeDetail from '../../partials/ChallengeDetail';\nimport ClusterTable from '../../partials/ClusterTable';\nimport FormAirmeetSessionCreate from '../../partials/forms/FormAirmeetSessionCreate';\nimport '../../css/challenge.css';\n\n/**\n * Page: Single Challenge with additional panels\n */\nclass XConnectChallenge extends Component {\n constructor(props) {\n super(props);\n\n // Get Project ID from path: /x/{substrate}/challenge/{id}/{subpage}\n const pathArr = this.props.location.pathname.split('/');\n const challengeIdx = pathArr.findIndex(c => c === 'challenge');\n const challengeId = Number(pathArr[challengeIdx + 1]);\n const hasUserList = !!(this.props.challenge_list_subscribed?.length);\n this.state = {\n challenge: null,\n challengeId: challengeId,\n challengeRefresh: false,\n challengeTab: 'overview',\n dataId: null,\n dataset: null,\n datasetFiles: [],\n hasUserList: hasUserList\n };\n\n this.launchAirmeetView = this.launchAirmeetView.bind(this);\n this.setChallenge = this.setChallenge.bind(this);\n }\n\n componentDidMount() {\n Emitter.on('setChallengeTab', (e) => this.setChallengeTab(e));\n }\n\n componentWillUnmount() {\n Emitter.off('setChallengeTab');\n }\n\n // Set Challenge information and Data ID\n setChallenge = (data) => {\n\n // @TODO store in redux as current challenge for sidebar routes\n\n let dataId = (data && data.data_id) ? data.data_id : null;\n this.setState({\n challenge: data,\n dataId: dataId\n });\n };\n\n // Set Dataset description\n setDataset = (data) => {\n this.setState({\n dataset: data\n });\n };\n\n // Set Dataset File list\n setDatasetFiles = (data) => {\n this.setState({\n datasetFiles: data\n });\n };\n\n // Set the current tab of the Challenge detail\n setChallengeTab = (tab) => {\n this.setState({\n challengeTab: tab\n });\n };\n\n refreshChallenge = () => {\n this.setState({\n challengeRefresh: true\n }, () => {\n this.setState({\n challengeRefresh: false\n });\n });\n };\n\n // Notify the API Challenges component to update the User Challenge List\n handleJoinChallenge = () => {\n this.refreshChallenge();\n this.props.setChallengeListSubscribedRefresh(true);\n };\n\n launchAirmeetView = (projectType, challengeId, type, uuid, launch = true) => {\n const path = assembleAirmeetPath(projectType, challengeId, type, uuid);\n if (launch && path) {\n this.props.history.push(path);\n }\n };\n\n render() {\n const {\n challenge_list_subscribed,\n user\n } = this.props;\n\n const {\n challengeId,\n challengeRefresh,\n challengeTab,\n dataId,\n dataset,\n datasetFiles\n } = this.state;\n\n let {\n challenge\n } = this.state;\n\n const hasLab = hasGroup(user.groups, 'lab');\n const isCreator = (challenge && challenge.username === user.preferred_username);\n const inSubscribedChallenges = (inUserList(challenge_list_subscribed, challengeId));\n const airmeetView = (user.is_sysop) ? 'sysop' : 'user';\n const hasAirmeet = (challenge && !isBlank(challenge.airmeet_id));\n\n return (\n <>\n
\n {challenge &&\n <>\n

\n {challenge.title}\n

\n\n {/* Row: Challenges */}\n\n
\n
\n this.launchAirmeetView('challenge', challengeId, type, uuid, true)}\n onJoinFunc={() => this.handleJoinChallenge()}\n allowLab={hasLab}\n inSubscribedChallenges={inSubscribedChallenges}\n tab={challengeTab}\n isCreator={isCreator}\n isSysop={user.is_sysop}\n />\n
\n
\n \n }\n\n {/* Row: Leaderboard / Submissions */}\n\n
\n
\n
\n

Leaderboard

\n
\n \n View\n \n
\n
\n
\n
\n

Submissions

\n
\n \n View\n \n
\n
\n
\n\n {/* Row: Discourse Forum/Cluster Links */}\n\n\n\n {challenge && challenge.discourse_id &&\n
\n
\n

Clusters

\n
\n
\n
\n

Challenge Discussions

\n \n
\n
\n
\n }\n\n {(user.is_sysop || inSubscribedChallenges) && challenge && challengeId && hasAirmeet &&\n <>\n {/* Row: Airmeet Sessions Table and Create button */}\n\n
\n
\n
\n

Real Time Collaboration Sessions

\n\n {(user.is_sysop) &&\n this.refreshChallenge()}\n />\n }\n\n this.launchAirmeetView('challenge', challengeId, type, uuid, true)}\n />\n
\n
\n
\n \n }\n
\n\n \n\n {dataId &&\n \n }\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n challenge_list_subscribed: state.challenge_list_subscribed,\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setChallengeListSubscribedRefresh: setChallengeListSubscribedRefresh\n};\n\nXConnectChallenge.propTypes = {\n user: PropTypes.any,\n location: PropTypes.any,\n challenge_list_subscribed: PropTypes.array,\n setChallengeListSubscribedRefresh: PropTypes.any,\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(XConnectChallenge)\n);\n","import axios from 'axios';\nimport {getStoreToken, getUploadPostHeaders} from './headers';\n\n/**\n * Return a Promise for a timeout\n *\n * @param delay\n * @return {Promise}\n */\nconst asyncTimeout = (delay) => {\n return (\n new Promise(resolve => {\n setTimeout(() => resolve(delay), delay)\n }))\n .then(d => `Waited ${d} seconds`);\n};\n\n/**\n * Return a Promise for File Upload\n *\n * @param data\n * @return {Promise}\n */\nconst asyncFileUpload = (data) => {\n return uploadFiles(data.data_id, data.index, data.path, data.collection, data.progressFunc);\n};\n\n/**\n * Execute a Promise-based task\n *\n * @param spec\n * @return {*}\n */\nexport const runFileUploadTask = (spec) => {\n return (spec && spec.task === 'wait') ? asyncTimeout(spec.duration) : asyncFileUpload(spec.data);\n};\n\n/**\n * POST a set of Dataset-specific files to the server\n *\n * @param data_id\n * @param index\n * @param path\n * @param collection\n * @param progressFunc\n * @return {Promise}\n */\nexport const uploadFiles = (data_id, index, path, collection, progressFunc) => {\n\n return new Promise(function (resolve, reject) {\n\n // Assemble File objects into FormData\n const fd = new FormData();\n collection.forEach(file => {\n fd.append('files', file);\n });\n fd.append('timestamp', new Date().getTime().toString());\n\n // Create a function to lift loading progress\n const progressConfig = {\n onUploadProgress: function (progressEvent) {\n if (typeof progressFunc === 'function') {\n progressFunc('fileUpload', {\n index: index,\n loaded: progressEvent.loaded,\n path: path,\n total: progressEvent.total\n });\n }\n }\n }\n\n const onFailure = function (result) {\n return reject('File Upload failed: ', result);\n }\n\n const onSuccess = function (result) {\n return resolve(result);\n }\n\n // Set the folder path the files will upload to\n let pathStr = (path) ? path : '/';\n const url = localStorage.getItem('server') + \"/api/v1/mgmt/file/\" + data_id + pathStr;\n\n // Set headers\n const headers = getUploadPostHeaders();\n\n try {\n axios({\n method: 'POST',\n url: url,\n data: fd,\n headers: headers,\n onUploadProgress: progressConfig.onUploadProgress\n })\n .then((result) => {\n if (result && result.data) {\n return onSuccess(result.data);\n }\n })\n .catch((error) => {\n if (error.response) {\n // Server response outside 2xx\n console.log('File Upload Error response: ', error);\n onFailure(error.response);\n } else if (error.request) {\n // No response\n console.log('File Upload Error request: ', error);\n onFailure(error.request);\n } else {\n console.log('File Upload Error: ', error);\n onFailure(error);\n }\n });\n } catch (err) {\n console.log('File Upload try/catch error: ', err);\n onFailure(err);\n }\n });\n};\n\n/**\n * Get request for a File download\n *\n * @param filename\n * @param progressFunc\n */\nexport const downloadFile = (filename, progressFunc) => {\n\n let xhr = new XMLHttpRequest();\n let downloadUrl;\n return new Promise(function (resolve, reject) {\n\n xhr.onreadystatechange = function () {\n // console.log(`Ready State: ${xhr.readyState}`);\n if (xhr.readyState === 4) {\n if (xhr.response) {\n // console.log(`response?: `, xhr.response.substr(0, 100));\n }\n }\n };\n\n xhr.onload = function () {\n if (xhr.response) {\n // Create a link element to download a file\n if (downloadUrl) {\n URL.revokeObjectURL(downloadUrl);\n }\n downloadUrl = URL.createObjectURL(new Blob([xhr.response], {type: 'text/csv'}));\n const link = document.createElement('a');\n link.href = downloadUrl;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n // const downloadFileName = filename.replace(/\\.[^/.]+$/, \"\") + '.csv';\n link.setAttribute('download', filename);\n link.click();\n return resolve(xhr.response);\n } else {\n console.log('File Download failed: ', xhr);\n return reject('File Download failed');\n }\n };\n\n xhr.onerror = function () {\n console.log(`Network Error ${xhr.status}: ${xhr.statusText}`, xhr);\n return reject('File Download failed: ', xhr.statusText);\n };\n\n xhr.onprogress = function (event) {\n progressFunc('fileDownload', {loaded: event.loaded, total: event.total});\n };\n\n xhr.ontimeout = function (event) {\n console.log(`File Download Timeout: `, event);\n };\n\n xhr.onabort = function (event) {\n console.log(`File Download Aborted: `, event);\n };\n\n const url = localStorage.getItem('server') + \"/api/v1/file/\" + filename;\n xhr.open('GET', url);\n\n xhr.setRequestHeader('Cache-Control', 'no-cache');\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n // xhr.setRequestHeader('Content-Type', 'text/csv');\n const token = getStoreToken();\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\n xhr.responseType = 'text';\n\n try {\n return xhr.send();\n } catch (err) {\n console.log('try/catch error: ', err);\n }\n });\n};\n","import {sortArrayByKey} from './dataFunctions';\n\n/**\n * Extract files and folders from a DataTransfer of folders\n *\n * @param dataTransfer\n * @return {Promise<[]>}\n */\nexport const getFilesAsync = async (dataTransfer) => {\n const files = [];\n const length = dataTransfer.items.length;\n for (let i = 0; i < length; i++) {\n let item = dataTransfer.items[i];\n if (item && item.kind === 'file') {\n let entry;\n if (typeof item.getAsEntry === 'function') {\n entry = item.getAsEntry();\n } else if (typeof item.webkitGetAsEntry === 'function') {\n entry = item.webkitGetAsEntry();\n }\n if (entry) {\n const entryContent = await readEntryContentAsync(entry);\n files.push(...entryContent);\n continue;\n }\n\n const file = item.getAsFile();\n if (file) {\n files.push(file);\n }\n }\n }\n return files;\n};\n\n/**\n * Read a DataTransfer File or Folder Entry\n *\n * @param entry\n * @return {Promise}\n */\nexport const readEntryContentAsync = (entry) => {\n return new Promise((resolve, reject) => {\n let reading = 0;\n const contents = [];\n\n readEntry(entry);\n\n function readEntry(entry) {\n if (entry.isFile) {\n let path = entry.fullPath;\n reading++;\n entry.file(file => {\n reading--;\n if (file.name.substring(0, 1) !== '.') {\n // Create an object storing the File and the full path\n let obj = {\n file: file,\n path: path\n };\n contents.push(obj);\n }\n if (reading === 0) {\n resolve(contents);\n }\n });\n } else if (entry.isDirectory) {\n readReaderContent(entry.createReader());\n }\n }\n\n function readReaderContent(reader) {\n reading++;\n reader.readEntries(function (entries) {\n reading--;\n for (const entry of entries) {\n readEntry(entry);\n }\n if (reading === 0) {\n resolve(contents);\n }\n });\n }\n });\n};\n\n/**\n * Update all file items in an array with consistent path behavior\n *\n * @param list\n * @return {*}\n */\nexport const setFilePaths = (list) => {\n if (list && list.length > 0) {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n let path = item.path;\n // Add slash to beginning of path if needed\n if (path.charAt(0) !== '/') {\n item.path = '/' + path;\n }\n // If path is empty, set it to the file name\n if (item.path === '/') {\n item.path = '/' + item.file.name;\n }\n }\n }\n return list;\n};\n\n/**\n * Add one or more items to a list of File objects\n *\n * @param fileList\n * @param array\n * @return {*}\n */\nexport const updateFileList = (fileList, array) => {\n if (array && array.length > 0) {\n for (let a = 0; a < array.length; a++) {\n let item = array[a];\n // let dir = item.path.split('/');\n\n const pathIdx = fileList.findIndex(r => r.path === item.path);\n if (pathIdx !== -1) {\n // If this file matches an existing item, replace it\n fileList.splice(pathIdx, 1);\n fileList.push(item);\n } else {\n // Add this item\n fileList.push(item);\n }\n }\n\n // Sort the array by directories\n fileList = sortArrayByKey(fileList, 'path', 'ASC');\n }\n\n return fileList;\n};\n\n/**\n * Remove an item by path from a list of File objects\n *\n * @param fileList\n * @param path\n * @return {*}\n */\nexport const removeFromFileList = (fileList, path) => {\n const idx = fileList.findIndex(r => r.path === path);\n if (idx !== -1) {\n fileList.splice(idx, 1);\n }\n\n return fileList;\n};\n\n/**\n * Create/Update an array of directories with files\n *\n * @param directoryList\n * @param array\n * @return {*}\n */\nexport const updateDirectoryList = (directoryList, array) => {\n if (array && array.length > 0) {\n for (let a = 0; a < array.length; a++) {\n let item = array[a];\n // Extract the directory path and remove the filename\n let arr = item.path.split('/');\n arr.pop();\n // Create a string for assembly\n let dirStr = arr.join('/');\n if (dirStr === '') {\n dirStr = '/';\n }\n // Create/update an array of directories containing files\n const dirIdx = directoryList.findIndex(r => r.directory === dirStr);\n if (dirIdx === -1) {\n let obj = {\n directory: dirStr,\n files: [],\n progress: 0\n };\n obj.files.push(item.file);\n directoryList.push(obj);\n } else {\n const fileIdx = directoryList[dirIdx].files.findIndex(r => r.name === item.file.name);\n // Add file if it is not already in this directory\n if (fileIdx === -1) {\n directoryList[dirIdx].files.push(item.file);\n }\n }\n }\n }\n return directoryList;\n};\n\n/**\n * Remove a file from a list of directory objects\n *\n * @param directoryList\n * @param path\n * @return {*}\n */\nexport const removeFromDirectoryList = (directoryList, path) => {\n let pathArr = path.split('/');\n let filename = pathArr.pop();\n // Cycle through all directories and remove the requested file\n for (let d = 0; d < directoryList.length; d++) {\n let dir = directoryList[d];\n const idx = dir.files.findIndex(r => r.name === filename);\n if (idx !== -1) {\n directoryList[d].files.splice(idx, 1);\n break;\n }\n }\n // If a directory is empty due to having removed all its files, remove the directory\n let directories = directoryList.length;\n for (let d = directories - 1; d >= 0; d--) {\n let dir = directoryList[d];\n if (dir.files.length === 0) {\n directoryList.splice(d, 1);\n }\n }\n\n return directoryList;\n};\n\n/**\n * Update a directory object with upload progress\n *\n * @param directoryList\n * @param path\n * @param progress\n * @return {*}\n */\nexport const updateDirectoryListProgress = (directoryList, path, progress) => {\n const idx = directoryList.findIndex(r => r.directory === path);\n if (idx !== -1) {\n directoryList[idx].progress = progress;\n }\n return directoryList;\n};\n","import React from 'react';\n\nconst IconAddCircle = () => {\n return (\n \n \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n \n \n )\n};\n\nexport default IconAddCircle;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {readEntryContentAsync} from '../utils/fileFunctions';\nimport IconAddCircle from './images/IconAddCircle';\nimport '../css/drag.css';\n\n/**\n * A Drag and Drop component for files and folders\n */\nclass FileDrag extends Component {\n constructor(props) {\n super(props);\n this.state = {\n drag: false,\n error: null,\n };\n this.dragCounter = 0;\n }\n\n componentDidMount() {\n this.addDragListeners();\n }\n\n componentWillUnmount() {\n this.removeDragListeners();\n }\n\n addDragListeners = () => {\n this.removeDragListeners();\n let el = document.getElementById(this.props.id);\n el.addEventListener('dragenter', event => this.handleDragIn(event));\n el.addEventListener('dragleave', event => this.handleDragOut(event));\n el.addEventListener('dragover', event => this.handleDrag(event));\n el.addEventListener('drop', event => this.handleDrop(event));\n };\n\n removeDragListeners = () => {\n let el = document.getElementById(this.props.id);\n el.removeEventListener('dragenter', event => this.handleDragIn(event));\n el.removeEventListener('dragleave', event => this.handleDragOut(event));\n el.removeEventListener('dragover', event => this.handleDrag(event));\n el.removeEventListener('drop', event => this.handleDrop(event));\n };\n\n resetFileUpload = (file = null) => {\n this.props.onReady((file) ? file : null);\n };\n\n handleDrag(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n handleDragIn(e) {\n e.preventDefault();\n e.stopPropagation();\n\n this.dragCounter++;\n this.setState({\n drag: true\n });\n }\n\n handleDragOut(event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.dragCounter--;\n if (this.dragCounter === 0) {\n this.setState({\n drag: false,\n error: null\n });\n }\n }\n\n handleDrop = async (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n let dtFiles, dtItems;\n let filesList = [];\n let entryList = [];\n let processed = 0;\n\n if (e.dataTransfer) {\n dtFiles = e.dataTransfer.files;\n dtItems = e.dataTransfer.items;\n const dtFileLength = dtFiles.length;\n\n const updateProcessed = () => {\n processed++;\n if (processed >= dtItemLength) {\n this.setState({\n drag: false\n });\n this.dragCounter = 0;\n e.dataTransfer.clearData();\n this.processItems(entryList);\n }\n };\n\n // Store Files temporarily to reference in collection\n if (dtFiles && dtFileLength > 0) {\n for (let i = 0; i < dtFileLength; i++) {\n let file = dtFiles[i];\n if (file.name.substring(0, 1) !== '.') {\n filesList.push(file);\n }\n }\n }\n\n // Cycle through DataTransfer items\n const dtItemLength = dtItems.length;\n if (dtItems && dtItemLength > 0) {\n for (let i = 0; i < dtItemLength; i++) {\n let item = dtItems[i];\n if (item) {\n let entry = (item.getAsEntry) ? item.getAsEntry() : item.webkitGetAsEntry();\n // If item is a file, add it to the list\n if (entry.isFile && entry.name.substring(0, 1) !== '.') {\n let file = filesList.find(f => f.name === entry.name);\n if (file) {\n let obj = {\n file: file,\n path: entry.fullPath\n };\n entryList.push(obj);\n updateProcessed();\n }\n }\n // If item is a directory, extract it and its contents recursively\n if (entry.isDirectory) {\n readEntryContentAsync(entry)\n .then((collection) => {\n entryList.push(...collection);\n updateProcessed();\n }).catch(error => {\n console.log('error: ', error);\n });\n }\n }\n }\n }\n }\n };\n\n /**\n * Arrange dragged files and pass to parent\n *\n * @param collection\n */\n processItems = (collection) => {\n this.props.onReady(collection);\n };\n\n render() {\n const {\n id\n } = this.props;\n\n const {\n drag,\n error\n } = this.state;\n\n let containerClasses;\n if (error) {\n containerClasses = 'error';\n } else if (drag) {\n containerClasses = 'drag';\n } else {\n containerClasses = 'ready';\n }\n\n return (\n
\n
\n \n
\n
\n )\n }\n}\n\nFileDrag.propTypes = {\n id: PropTypes.string,\n onReady: PropTypes.func\n};\n\nFileDrag.defaultProps = {\n id: 'drag-container'\n};\n\nexport default FileDrag;\n","import React, {Component, createRef} from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * A Browse Files/Folders input component\n */\nclass FileBrowse extends Component {\n constructor(props) {\n super(props);\n this.inputDirectoryBrowseRef = createRef();\n this.inputFileBrowseRef = createRef();\n }\n\n resetFileUpload = () => {\n if (this.inputDirectoryBrowseRef && this.inputDirectoryBrowseRef.current) {\n this.inputDirectoryBrowseRef.current.value = null;\n }\n if (this.inputFileBrowseRef && this.inputFileBrowseRef.current) {\n this.inputFileBrowseRef.current.value = null;\n }\n };\n\n handleBrowseClick = (e, type) => {\n e.preventDefault();\n e.stopPropagation();\n if (type === 'folder') {\n this.inputDirectoryBrowseRef.current.click();\n }\n if (type === 'file') {\n this.inputFileBrowseRef.current.click();\n }\n };\n\n handleBrowseChange = async (e) => {\n const {target} = e;\n\n // Filter any Files meant to be hidden\n let filteredList = [];\n for (let i = 0; i < target.files.length; i++) {\n let file = target.files[i];\n if (file.name.substring(0, 1) !== '.') {\n // Create an object storing the File and the full path\n let obj = {\n file: file\n };\n obj.path = (file.webkitRelativePath) ? file.webkitRelativePath : '';\n filteredList.push(obj);\n }\n }\n\n if (filteredList.length > 0) {\n this.props.onReady(filteredList);\n }\n // Clear the input in case of future browse events\n target.value = null;\n this.resetFileUpload(true);\n };\n\n render() {\n const {\n placement\n } = this.props;\n\n return (\n <>\n {placement === 'form' &&\n <>\n \n \n \n }\n\n this.handleBrowseChange(e)}\n />\n this.handleBrowseChange(e)}\n />\n \n )\n }\n}\n\nFileBrowse.propTypes = {\n onReady: PropTypes.func,\n placement: PropTypes.string\n};\n\nexport default FileBrowse;\n","import React from 'react';\n\nconst IconDeleteCircle = () => {\n return (\n \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n \n )\n};\n\nexport default IconDeleteCircle;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport IconDeleteCircle from './images/IconDeleteCircle';\n\nclass FileUploadListItem extends Component {\n\n handleRemoveClick = () => {\n if (typeof this.props.onRemove === 'function') {\n this.props.onRemove(this.props.path);\n }\n };\n\n render() {\n const {\n path,\n sizeStr\n } = this.props;\n\n return (\n \n \n {path}\n \n \n {sizeStr}\n \n \n \n \n \n )\n }\n}\n\nFileUploadListItem.propTypes = {\n name: PropTypes.string,\n path: PropTypes.string,\n onRemove: PropTypes.func,\n size: PropTypes.number,\n sizeStr: PropTypes.string\n};\n\nexport default FileUploadListItem;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {convertSizeToDisplayString} from '../utils/dataFunctions';\nimport FileUploadListItem from './FileUploadListItem';\n\nclass FileUploadList extends Component {\n\n handleRemoveClick = (e) => {\n if (typeof this.props.onRemove === 'function') {\n this.props.onRemove(e);\n }\n };\n\n setFileItems = () => {\n const list = this.props.list;\n if (!list || list.length === 0) {\n return (\n No Files Uploaded\n )\n }\n\n return (\n list.map((item, index) => (\n \n ))\n )\n };\n\n render() {\n return (\n
\n {this.props.list.length > 0 &&\n <>\n {[...this.setFileItems()]}\n \n }\n
\n )\n }\n}\n\nFileUploadList.propTypes = {\n list: PropTypes.array,\n onRemove: PropTypes.func\n};\n\nFileUploadList.defaultProps = {\n list: []\n};\n\nexport default FileUploadList;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nclass FileDirectoryUploadItem extends Component {\n\n setFileItems = () => {\n const files = this.props.files;\n if (!files || files.length === 0) {\n return (\n No Files\n )\n }\n return (\n files.map((file, index) =>\n (\n \n {file.name}
\n
\n )\n )\n )\n };\n\n render() {\n const {\n files,\n path,\n percent,\n totalFiles\n } = this.props;\n\n const totalStr = '(' + totalFiles + ((totalFiles === 1) ? ' File)' : ' Files)');\n const width = percent.toString() + '%';\n const right = (100 - percent);\n const rightPos = right.toString() + '%';\n const opacity = (percent >= 10) ? 1 : 0;\n\n return (\n \n \n \n {path} {totalStr}\n \n \n \n \n \n {percent}%\n \n \n \n \n {files.length > 0 &&\n <>\n {[...this.setFileItems()]}\n \n }\n \n \n )\n }\n}\n\nFileDirectoryUploadItem.propTypes = {\n path: PropTypes.string,\n percent: PropTypes.number,\n totalFiles: PropTypes.number\n};\n\nFileDirectoryUploadItem.defaultProps = {\n path: '/',\n percent: 0,\n totalFiles: 0\n};\n\nexport default FileDirectoryUploadItem;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport FileDirectoryUploadItem from './FileDirectoryUploadItem';\n\nclass FileDirectoryUpload extends Component {\n\n setFileItems = () => {\n const list = this.props.list;\n if (!list || list.length === 0) {\n return (\n No Files Uploading\n )\n }\n return (\n list.map((dir, index) => (\n \n ))\n )\n };\n\n render() {\n const {\n list\n } = this.props;\n\n return (\n
\n {list.length > 0 &&\n <>\n {[...this.setFileItems()]}\n \n }\n
\n )\n }\n}\n\nFileDirectoryUpload.propTypes = {\n list: PropTypes.array\n};\n\nFileDirectoryUpload.defaultProps = {\n list: []\n};\n\nexport default FileDirectoryUpload;\n","import React, {useEffect, useState} from 'react';\nimport FileDirectoryUpload from '../FileDirectoryUpload';\nimport Modal from '../modal/Modal';\n\n/**\n * Modal for File Upload Progress\n *\n * @param open\n * @param list\n * @param title\n * @returns {JSX.Element}\n * @constructor\n */\nconst FileUploadProgressModal = ({open, list = [], title = 'Uploading Files'}) => {\n\n const [modalStatus, setModalStatus] = useState(open);\n\n useEffect(\n () => {\n setModalStatus(open);\n }, [open]\n );\n\n return (\n setModalStatus(false)}\n allowClose={false}\n closeButtonOnly={true}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n maxWidth: '80%',\n minHeight: 320,\n top: '50%',\n transform: 'translate(-50%, -90%)'\n }}\n >\n
\n

{title}

\n
\n

Caution: Do not navigate away from this page while files are uploading to the server.

\n \n
\n
\n \n );\n};\n\nexport default FileUploadProgressModal;","import React, {useState} from 'react';\nimport {Link} from 'react-router-dom';\nimport {useForm} from 'react-hook-form';\nimport {RESOURCES as resources} from '../../resourcesData';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport {runFileUploadTask} from '../../utils/apiFileFunctions';\nimport {\n removeFromDirectoryList,\n removeFromFileList,\n setFilePaths,\n updateDirectoryList,\n updateDirectoryListProgress,\n updateFileList\n} from '../../utils/fileFunctions';\nimport {withinDatasetSize} from '../../utils/projectFunctions';\nimport FileDrag from '../FileDrag';\nimport FileBrowse from '../FileBrowse';\nimport FileUploadList from '../FileUploadList';\nimport FileUploadProgressModal from '../modal/FileUploadProgressModal';\nimport FormError from './FormError';\nimport IconCheckmark from '../images/IconCheckmark';\nimport LoadingIndicator from '../LoadingIndicator';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport '../../css/file.css';\n\n/**\n * Form: Add Dataset and Volume (Data, Files, Volumes)\n *\n * @param dataId\n * @param formType\n * @param formStage\n * @param onFormEvent\n * @param projectId\n * @param projectPath\n * @param projectString\n * @param projectType\n * @param isSysop\n * @param maxDatasetSize\n * @param basePath\n * @return {*}\n * @constructor\n */\nexport default function FormDataFilesVolumes(\n {\n dataId,\n formType,\n formStage,\n onFormEvent,\n projectId,\n projectPath,\n projectString,\n projectType,\n isSysop,\n maxDatasetSize,\n basePath = ''\n }) {\n\n // Set up form and state\n const {register, errors, formState, getValues, handleSubmit} = useForm({mode: 'onBlur'});\n\n // State: Process/Messaging\n const [processState, updateProcessState] = useState(\n {\n message: '',\n processing: false\n }\n );\n\n // State: Dataset Form Success\n const [successState, updateSuccessState] = useState(false);\n\n // Uploaded Files and Directories\n let fileList = [];\n const [fileListState, updateFileListState] = useState({\n list: []\n });\n let directoryList = [];\n const [directoryListState, updatedDirectoryListState] = useState({\n list: []\n });\n const [filesComplete, setFilesComplete] = useState(false);\n const [allowUpload, setAllowUpload] = useState(true);\n\n // Handle input or drag events and update directory & file lists\n const handleFilesAdded = (arr) => {\n // Update all file paths to be consistent\n let list = setFilePaths(arr);\n\n // Add file to file list and directory list\n fileList = updateFileList(fileListState.list, list);\n directoryList = updateDirectoryList(directoryListState.list, fileList);\n updateFileListState({list: fileList});\n updatedDirectoryListState({list: directoryList});\n setFilesComplete(false);\n updateProcessState({message: '', processing: false});\n\n // Disallow upload if newly uploaded files surpass the Dataset Size limit\n if (projectType === 'project' && maxDatasetSize) {\n const withinLimits = withinDatasetSize([], fileList, maxDatasetSize.project);\n setAllowUpload((withinLimits));\n } else {\n setAllowUpload(true);\n }\n };\n\n // Handle remove event and update directory & file lists\n const handleRemoveFile = (path) => {\n // Remove file from file list and directory list\n fileList = removeFromFileList(fileListState.list, path);\n updateFileListState({list: fileList});\n directoryList = removeFromDirectoryList(directoryListState.list, path);\n updatedDirectoryListState({list: directoryList});\n setAllowUpload(true);\n };\n\n // Files: Handle event for XHR progress\n const handleFileUploadProgress = (event, args) => {\n if (event === 'fileUpload') {\n if (args.loaded && args.total) {\n let percent = Math.round((args.loaded * 100) / args.total);\n if (percent < 0.1) {\n percent = 0;\n }\n if (percent > 99.9) {\n percent = 100;\n }\n // Update each directory being uploaded\n let directoryList = updateDirectoryListProgress(directoryListState.list, args.path, percent);\n updatedDirectoryListState({list: directoryList});\n }\n }\n };\n\n // Dataset: Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n !formState.isDirty ||\n getValues('description') === '' ||\n errors.description ||\n processState.processing ||\n !fileListState.list.length ||\n filesComplete ||\n !allowUpload\n );\n };\n\n // Dataset: Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // Add parameters\n let message = '';\n if (formType === 'create') {\n message = 'Saving new Dataset...';\n }\n if (formType === 'update') {\n data.id = dataId;\n message = 'Updating Dataset...';\n }\n\n // Submit form to API\n updateProcessState({message: message, processing: true});\n submitDataForm(data);\n }\n };\n\n // Dataset: Handle API call and post-submission\n const submitDataForm = (data) => {\n const postType = (formType === 'create') ? 'CREATE' : 'UPDATE';\n const request = makePostDataRequest(resources, 'Data', postType, data);\n request.then(result => {\n if (result) {\n setTimeout(() => {\n if (fileListState.list && fileListState.list.length > 0) {\n // If files have been added, begin the upload process\n setPostSubmitFiles(result);\n } else {\n // Otherwise, the dataset is complete\n updateProcessState({message: 'Dataset saved.', processing: false});\n updateSuccessState(true);\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n onFormEvent({type: 'data', state: 'complete'});\n }\n }\n return Promise.resolve(result);\n }, 500);\n } else {\n updateProcessState({\n message: 'Sorry, your ' + projectString + ' could not be created.',\n processing: false\n });\n updateSuccessState(false);\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Add ' + projectString + ' Error: ', error);\n updateProcessState({\n message: 'Sorry, there was an error with your ' + projectString + '.',\n processing: false\n });\n updateSuccessState(false);\n return Promise.reject('Server Error');\n });\n };\n\n // Files: Process Files after completion of Dataset submission\n const setPostSubmitFiles = async (data) => {\n\n // If files have been added to this Dataset, begin upload\n if (fileListState.list && fileListState.list.length > 0) {\n\n updateProcessState({message: 'Dataset saved, uploading Files...', processing: true});\n\n // Assemble an array of actions to execute sequentially\n let tasks = [];\n let taskLength = 0;\n for (let i = 0; i < directoryListState.list.length; i++) {\n const task = directoryListState.list[i];\n if (task.files && task.files.length > 0) {\n tasks.push({\n index: taskLength,\n task: 'get',\n data: {\n data_id: data.id,\n index: taskLength,\n path: task.directory,\n collection: task.files,\n progressFunc: handleFileUploadProgress\n }\n })\n taskLength++;\n }\n }\n\n // Start a Promise sequence with all tasks\n const starterPromise = Promise.resolve(null);\n await tasks.reduce(\n (p, spec) => p.then(() => runFileUploadTask(spec)\n .then((result) => {\n // If all tasks in the list have completed:\n if (spec.index >= (taskLength - 1)) {\n // Note that Files are completed\n updateProcessState({message: 'File upload complete.', processing: false});\n setFilesComplete(true);\n updateFileListState({list: []});\n updatedDirectoryListState({list: []});\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n onFormEvent('files', 'complete', data);\n }\n }\n })), starterPromise)\n .catch((error) => {\n console.log('File Upload error: ', error);\n updateProcessState({\n message: 'There was an error uploading one or more of your files. Please ensure all files are in the same location and that none was moved or deleted.',\n processing: false\n });\n updateSuccessState(false);\n });\n } else {\n updateProcessState({message: 'Dataset saved.', processing: false});\n updateSuccessState(true);\n }\n };\n\n return (\n
\n
\n
\n\n
\n

\n Enter a Dataset description and add, remove or replace files if needed.\n

\n\n
\n {/* Data Description */}\n )\n })}\n required\n className={`form-input ${errors.description ? 'input-error' : ''}`}\n >\n {errors.description && errors.description.message}\n \n
\n\n
\n \n

\n If files are associated with this Dataset, add them here. You may browse or drag\n multiple folders or files.\n

\n

\n Note: If you need to move files into different directories after adding, remove them\n below and re-add.\n

\n {!isSysop && projectType === 'project' &&\n

\n You may upload a maximum total of {maxDatasetSize.project} GB in files for this Project.\n

\n }\n\n
\n
\n \n
\n
\n \n
\n
\n\n {!processState.processing &&\n
\n

Files to Upload

\n \n
\n }\n\n 0 && processState.processing)}\n />\n\n

\n {fileListState.list && fileListState.list.length > 0 &&\n <>\n {!isSysop && !allowUpload && projectType === 'project' &&\n <>\n Note: Adding these files will exceed this Project's Dataset Size limit, which\n is set to {maxDatasetSize.project}. Please remove or replace these files, or\n delete one of the existing Files from the Dataset.\n

\n \n }\n {allowUpload &&\n <>\n Once your Dataset is saved with files, you may view the new {projectString} to\n edit its dataset or files, access the workspace, or create a versioned,\n persistent volume of your Dataset.\n

\n After upload begins, do not navigate away from this page.\n \n }\n \n }\n

\n
\n
\n\n
\n

Dataset Saved

\n

\n Your Dataset has been saved. Visit your User Dashboard to view and add more Datasets.\n

\n
\n\n {/* Actions and Messaging */}\n\n
\n {successState === true &&\n <>\n

\n \n

\n \n }\n {processState.message !== '' &&\n

\n {processState.message}\n

\n }\n\n \n \n Save Dataset and Upload Files\n \n {projectType === 'challenge' &&\n \n View Challenge Details\n \n }\n {projectType === 'project' &&\n \n View Project Details\n \n }\n
\n
\n
\n
\n );\n}\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport FormChallengeAdd from '../../partials/forms/FormChallengeAdd';\nimport FormDataFilesVolumes from '../../partials/forms/FormDataFilesVolumes';\nimport '../../css/challenge.css';\n\n/**\n * Page: Create Challenge & Datasets forms\n */\nclass XConnectChallengeAdd extends Component {\n constructor(props) {\n super(props);\n\n const pathArr = this.props.location.pathname.split('/');\n const challengeId = Number(pathArr.pop());\n const challengePath = (this.props.location.pathname.indexOf('x/hub') !== -1) ? 'hub' : 'connect';\n\n // @TODO reset dataId = ''\n // @TODO reset Dataset display\n\n this.state = {\n challenge: null,\n challengePath: challengePath,\n dataId: '',\n formStage: 'challenge',\n challengeId: challengeId\n };\n }\n\n // Handle form completion/error events\n handleFormEvent = (e, status, data) => {\n if (e === 'challenge' && status === 'complete') {\n // Upon completed Challenge, populate the Dataset's data ID\n this.setState({\n challengeId: data.id,\n dataId: data.data_id\n }, () => {\n // Display the Dataset/Files form\n this.updateFormStage('dataset');\n })\n }\n };\n\n // Set form toggling\n updateFormStage = (stage) => {\n this.setState({\n formStage: stage\n });\n };\n\n render() {\n const {\n challengeId,\n challengePath,\n dataId,\n formStage\n } = this.state;\n\n return (\n <>\n
\n

\n Create a Challenge\n

\n\n
\n

Challenge

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

Dataset

\n
\n
\n \n \n
\n
\n
\n
\n \n\n \n )\n }\n}\n\nexport default withRouter(XConnectChallengeAdd);\n","import React from 'react';\n\nconst IconUser = () => {\n return (\n \n \n \n\t\n \n \n )\n};\n\nexport default IconUser;\n","import React, {useState, useEffect} from 'react';\nimport {Link} from 'react-router-dom';\nimport {useForm} from 'react-hook-form';\nimport DatePicker from 'react-datepicker';\nimport {RESOURCES as resources} from '../../resources';\nimport {makeGetDataRequest} from '../../utils/getRequest';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport {createDateTimeObject} from '../../utils/dataFunctions';\nimport {setDueDate} from '../../utils/projectFunctions';\nimport BaseInput from '../fields/BaseInput';\nimport SelectInput from '../fields/SelectInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport IconUser from '../images/IconUser';\nimport {CHALLENGE_TABS} from '../../data/formTabs';\nimport {BOOLEAN_OPTIONS} from '../../data/objects';\nimport 'react-datepicker/dist/react-datepicker.min.css';\n\n/**\n * Form: Edit Challenge\n *\n * @param basePath\n * @param challengeId\n * @param challengePath\n * @param formStage\n * @param onFormEvent\n * @returns {JSX.Element}\n * @constructor\n */\nexport default function FormChallengeEdit(\n {\n basePath = '',\n challengeId,\n challengePath,\n formStage,\n onFormEvent\n }) {\n\n // Set up form and state\n const {register, errors, getValues, handleSubmit, setValue} = useForm({mode: 'onBlur'});\n\n // State: Form Stage (from parent)\n const [formStageState, updateFormStageState] = useState(\n {\n stage: formStage\n }\n );\n if (formStageState.stage !== formStage) {\n updateFormStageState({...formStageState, stage: formStage});\n }\n\n // State: Organization Name\n const [orgName, setOrgName] = useState('');\n\n // State: Due Date Object\n const [dueDateState, updateDueDateState] = useState(\n {\n min_date_obj: setDueDate('/'),\n due_date_obj: ''\n }\n );\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n // State: Current Tab\n const [tabState, setTab] = useState(CHALLENGE_TABS.overview);\n\n useEffect(() => {\n const params = {\n id: challengeId\n };\n const fetchData = () => {\n const request = makeGetDataRequest(resources, 'Challenge', 'GET_ONE', params);\n request.then(result => {\n if (result) {\n const data = JSON.parse(JSON.stringify(result));\n fetchOrgData({getBy: 'id', id: data.org_id});\n setValue('id', result?.id ?? '');\n setValue('active', !!(result.active));\n setValue('community_desc', result?.community_desc ?? '');\n setValue('complete', !!(result.complete));\n setValue('due_date', result?.due_date ?? '');\n setValue('goals', result?.goals ?? '');\n setValue('introduction', result?.introduction ?? '');\n setValue('private', !!(result.private));\n setValue('published', !!(result.published));\n setValue('title', result?.title ?? '');\n setValue('reward', result?.reward ?? '');\n setValue('summary', result?.summary ?? '');\n\n const due_date_obj = (data.due_date) ? new Date(data.due_date.replace(/-/g, '/').replace(/T.+/, '')) : '';\n updateDueDateState({...dueDateState, due_date_obj: due_date_obj});\n return Promise.resolve(result);\n } else {\n console.log('Challenge Error: No result');\n return Promise.reject('Challenge failed');\n }\n }).catch(error => {\n console.log('Challenge Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const fetchOrgData = (params) => {\n const request = makeGetDataRequest(resources, 'Organization', 'GET_ONE', params);\n request.then(result => {\n if (result) {\n const data = JSON.parse(JSON.stringify(result));\n setOrgName(data.name);\n return Promise.resolve(result);\n } else {\n console.log('Organization Error: No result');\n return Promise.reject('Challenge failed');\n }\n }).catch(error => {\n console.log('Organization Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n getValues('introduction') === '' ||\n getValues('reward') === '' ||\n getValues('summary') === '' ||\n getValues('title') === '' ||\n tabState.tab === 'saving' ||\n (errors &&\n (\n errors.introduction ||\n errors.reward ||\n errors.summary ||\n errors.title\n ))\n );\n };\n\n // Handle change from specific form fields\n const handleFormChange = (e) => {\n if (e.name === 'due_date') {\n // Set a Due Date object\n const dateString = createDateTimeObject(e.value);\n setValue(e.name, dateString);\n updateDueDateState({...dueDateState, due_date_obj: e.value});\n }\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // console.log('SUBMIT data args before: ', data);\n\n // Set parameters from form state\n data.id = parseInt(getValues('id'), 10);\n data.active = (getValues('active').toString() === 'true');\n data.complete = (getValues('complete').toString() === 'true');\n data.private = (getValues('private').toString() === 'true');\n data.published = (getValues('published').toString() === 'true');\n\n // console.log('SUBMIT data args: ', data);\n\n // Submit form to API\n setTab(CHALLENGE_TABS.saving);\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'Challenge', 'UPDATE', data);\n request.then(result => {\n if (result && result.id) {\n updateSuccessState({success: true, message: ''});\n setTab(CHALLENGE_TABS.success);\n setPostChallenge(result);\n return Promise.resolve(result);\n } else {\n updateSuccessState({success: false, message: 'Sorry, your Challenge could not be updated.'});\n setTab(CHALLENGE_TABS.fail);\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Updated Challenge Error: ', error);\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Challenge: ' + error});\n setTab(CHALLENGE_TABS.fail);\n return Promise.reject('Server Error');\n });\n };\n\n // Process after Challenge form completion\n const setPostChallenge = (data) => {\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n // Notify the page that Challenge has been created\n onFormEvent('challenge', 'complete', data);\n }\n };\n\n return (\n
\n
\n\n {/* Form Menu */}\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n
\n\n
\n\n {/* Tab: Overview */}\n\n
\n

\n Select an Organization this Challenge is associated with.
\n Enter basic Challenge information. Click Next to enter Description information.\n

\n
\n {/* Organization Name */}\n \n \n
\n
\n {/* Title */}\n ),\n minLength: {\n value: 3,\n message: ()\n },\n maxLength: {\n value: 80,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.title ? 'input-error' : ''}`}\n >\n {errors.title && errors.title.message}\n \n
\n
\n {/* Reward */}\n )\n })}\n required\n className={`form-input ${errors.reward ? 'input-error' : ''}`}\n >\n {errors.reward && errors.reward.message}\n \n
\n
\n {/* Goals */}\n \n \n
\n
\n {/* Due Date */}\n \n {/* Challenge Active */}\n \n \n
\n
\n {/* Private */}\n \n \n
\n
\n {/* Published */}\n \n \n
\n
\n {/* Complete */}\n \n \n
\n \n
\n\n {/* Tab: Information */}\n\n
\n

\n Enter Challenge descriptive data. Markdown may be used, but no HTML is allowed. When all\n information is completed, click Next to confirm and Save the Challenge.\n

\n
\n {/* Summary */}\n )\n })}\n required\n className={`form-input ${errors.summary ? 'input-error' : ''}`}\n >\n {errors.summary && errors.summary.message}\n \n
\n
\n {/* Introduction */}\n )\n })}\n required\n className={`form-input ${errors.introduction ? 'input-error' : ''}`}\n >\n {errors.introduction && errors.introduction.message}\n \n
\n
\n {/* Short Description */}\n \n \n
\n
\n\n {/* Tab: Confirm && Save */}\n\n
\n

\n Update your Challenge. Once the Challenge is updated, you will be able to upload a Dataset\n associated with this Challenge if desired.\n

\n
\n\n {/* Tab: Saving */}\n\n
\n

Updating Challenge...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Challenge Updated

\n

\n Your Challenge has been updated. If this Challenge needs a Dataset go to\n your Account Dashboard and upload one.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue updating this Challenge.\n

\n }\n
\n\n {/* Actions */}\n\n
\n
\n {tabState.tab === 'overview' &&\n <>\n \n \n }\n {tabState.tab === 'information' &&\n <>\n \n \n \n }\n {tabState.tab === 'confirm' &&\n <>\n \n \n \n }\n {tabState.tab === 'success' &&\n <>\n \n \n Admin\n \n \n }\n
\n
\n
\n {!successState.success &&\n \n Cancel\n \n }\n {successState.success &&\n \n View Challenge Details\n \n }\n
\n
\n
\n
\n );\n}\n\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport FormChallengeEdit from '../../partials/forms/FormChallengeEdit';\nimport '../../css/challenge.css';\n\n/**\n * Page: Edit Challenge & Datasets forms\n */\nclass XConnectChallengeEdit extends Component {\n constructor(props) {\n super(props);\n\n const pathArr = this.props.location.pathname.split('/');\n const challengeId = Number(pathArr.reverse()[1]);\n const challengePath = (this.props.location.pathname.indexOf('x/hub') !== -1) ? 'hub' : 'connect';\n this.state = {\n challenge: null,\n dataId: '',\n formStage: 'challenge',\n challengeId: challengeId,\n challengePath: challengePath,\n pathArr: pathArr\n };\n }\n\n // Handle form completion/error events\n handleFormEvent = (e, status, data) => {\n if (e === 'challenge' && status === 'complete') {\n // Upon completed Challenge, populate the Dataset's data ID\n this.setState({\n dataId: data.data_id\n }, () => {\n // Display the Dataset/Files form\n this.updateFormStage('dataset');\n })\n }\n };\n\n // Set form toggling\n updateFormStage = (stage) => {\n this.setState({\n formStage: stage\n });\n };\n\n render() {\n const {\n challengeId,\n challengePath,\n formStage,\n pathArr\n } = this.state;\n\n return (\n <>\n
\n

\n Edit Challenge\n

\n\n
\n

Challenge

\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n \n )\n }\n}\n\nexport default withRouter(XConnectChallengeEdit);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {RESOURCES as resources} from '../resourcesEvent';\nimport {\n setListStatus,\n setEventId,\n setEventListInvited,\n setEventListOwn,\n setEventListRefresh,\n setEventListSubscribed\n} from '../store/actions';\nimport {makeGetDataRequest} from './getRequest';\nimport {copyArray} from './dataFunctions';\nimport {populateShortDescription} from './projectFunctions';\n\n/**\n * Component for retrieving Event Lists and single Event items\n *\n */\nclass APIEvents extends Component {\n\n componentDidMount() {\n const getType = this.props.getType;\n if (getType === 'list') {\n this.getEvents();\n }\n if (getType === 'single') {\n this.getEvent();\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const getType = this.props.getType;\n if (this.props.refresh === true) {\n if (getType === 'list') {\n this.getEvents();\n }\n if (getType === 'single') {\n this.getEvent();\n }\n } else if (this.props.event_list_refresh !== null) {\n if (getType === 'list') {\n this.getEvents();\n }\n }\n }\n\n\n /**\n * Get Events with optional parameters\n *\n */\n getEvents = () => {\n const refreshType = this.props.event_list_refresh;\n const viewType = this.props.viewType;\n // If Events are being refreshed, only do so if this API matches the refresh type\n if (refreshType && refreshType !== viewType) {\n return;\n }\n let resourceName = 'Event';\n if (viewType === 'personal_own') {\n resourceName = 'EventPersonalOwn';\n }\n if (viewType === 'home_public') {\n resourceName = 'EventHomePagePublic';\n }\n if (viewType === 'personal_public') {\n resourceName = 'Event';\n }\n if (viewType === 'admin') {\n resourceName = 'EventAdmin';\n }\n if (viewType === 'shared') {\n resourceName = 'EventPersonalShared';\n }\n if (viewType === 'subscribed') {\n resourceName = 'EventPersonalSubscribed';\n }\n if (viewType === 'subscribed_sysop') {\n resourceName = 'EventPersonalSubscribedSysop';\n }\n const params = this.props.params;\n\n const request = makeGetDataRequest(resources, resourceName, 'GET_LIST', params);\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Events Retrieval Error: ', result);\n this.processList(null);\n return Promise.resolve(result);\n }\n this.processList(result);\n return Promise.resolve(result);\n } else {\n console.log('Events Retrieval Error: No result');\n return Promise.reject('Events Retrieval failed');\n }\n }).catch(error => {\n console.log('Events Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Get single Event\n */\n getEvent = () => {\n const id = this.props.id;\n if (!id) {\n return Promise.reject('No ID provided');\n }\n const viewType = this.props.viewType;\n let resource = 'Event';\n if (viewType === 'personal' || viewType === 'personal_own') {\n resource = 'EventPersonal';\n }\n\n const request = makeGetDataRequest(resources, resource, 'GET_ONE', {id: id});\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Event Retrieval Error: ', result);\n this.processSingle(null);\n return Promise.resolve(result);\n }\n this.processSingle(result);\n return Promise.resolve(result);\n } else {\n console.log('Event Retrieval Error: No result');\n return Promise.reject('Event Retrieval failed');\n }\n }).catch(error => {\n console.log('Event Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Return and/or Store list data\n *\n * @param data\n */\n processList = (data) => {\n let list = [];\n const viewType = this.props.viewType;\n\n // Events owned by User\n if (viewType === 'personal_own') {\n if (data && data.length > 0) {\n list = copyArray(data);\n }\n }\n\n // All Public Events\n if (viewType === 'personal_public' || viewType === 'shared' || viewType === 'subscribed') {\n if (data && data.AirmeetEvents && data.AirmeetEvents.length > 0) {\n list = copyArray(data.AirmeetEvents);\n }\n }\n\n if (viewType === 'home_public') {\n if (data && data.AirmeetEvents && data.AirmeetEvents.length > 0) {\n list = copyArray(data);\n }\n }\n\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(list);\n }\n // Store results in Redux for specific lists\n if (this.props.storeExists && this.props.storeResults) {\n if (viewType === 'personal_own') {\n this.props.setEventListOwn(list);\n this.props.setListStatus({list: 'event_own', status: true});\n }\n if (viewType === 'shared') {\n this.props.setEventListInvited(list);\n this.props.setListStatus({list: 'event_invited', status: true});\n }\n if (viewType === 'subscribed' || viewType === 'subscribed_sysop') {\n this.props.setEventListSubscribed(list);\n this.props.setListStatus({list: 'event_subscribed', status: true});\n }\n this.props.setEventListRefresh(null);\n }\n };\n\n /**\n * Return single result\n *\n * @param data\n */\n processSingle = (data) => {\n if (data) {\n data.short_desc = populateShortDescription(data, 'event');\n }\n\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(data);\n }\n // Store results in Redux\n if (this.props.storeExists && this.props.storeResults) {\n this.props.setEventId(data.id);\n }\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n event_list_refresh: state.event_list_refresh\n };\n};\n\nconst mapDispatchToProps = {\n setListStatus: setListStatus,\n setEventId: setEventId,\n setEventListInvited: setEventListInvited,\n setEventListOwn: setEventListOwn,\n setEventListRefresh: setEventListRefresh,\n setEventListSubscribed: setEventListSubscribed\n};\n\nAPIEvents.propTypes = {\n getType: PropTypes.string,\n id: PropTypes.string,\n onResult: PropTypes.func,\n params: PropTypes.object,\n refresh: PropTypes.bool,\n storeExists: PropTypes.bool,\n storeResults: PropTypes.bool,\n viewType: PropTypes.string\n};\n\nAPIEvents.defaultProps = {\n getType: 'list',\n params: {\n active: true\n },\n refresh: false,\n storeExists: true,\n storeResults: true,\n viewType: 'subscribed'\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(APIEvents);\n","import axios from 'axios';\nimport {getDeleteHeaders} from './headers';\n\n/**\n * Make a delete request with a specific resource\n *\n * @param resource\n * @param name\n * @param type\n * @param params\n * @param useBearer\n * @return {Promise<*>}\n */\nexport async function makeDeleteDataRequest(resource, name, type, params, useBearer = true) {\n let func = resource[name].DELETE(params);\n let method = 'DELETE';\n try {\n return await deleteRequest(type, func.uri, method, func.data, useBearer);\n } catch (e) {\n console.log('data error: ', e.message);\n return e;\n }\n}\n\n/**\n * Make POST request\n *\n * @param type\n * @param uri\n * @param method\n * @param payload\n * @param useBearer\n * @return {Promise>}\n */\nconst deleteRequest = (type, uri, method, payload, useBearer = true) => {\n let headers = getDeleteHeaders(true);\n return axios({\n method: method,\n url: uri,\n data: payload,\n headers: headers\n }).then((response) => {\n if (response.data && response.data.payload) {\n return response.data.payload;\n } else if (response.data) {\n return response.data;\n } else if (response) {\n return response;\n }\n }).catch((error) => {\n if (error.response) {\n // Server response outside 2xx\n return error.response;\n } else if (error.request) {\n // No response\n return error.request;\n } else {\n return error;\n }\n })\n};\n\nexport default deleteRequest;\n","import React, {useState} from 'react';\nimport {RESOURCES as resources} from '../../resourcesEvent';\nimport {makeDeleteDataRequest} from '../../utils/deleteRequest';\nimport LoadingIndicator from '../LoadingIndicator';\nimport Modal from '../modal/Modal';\n\nconst DeleteEventButton = ({eventId, eventName, onDeletedEvent, disabled}) => {\n const [modalStatus, setModalStatus] = useState(false);\n const [deleted, setDeleted] = useState(false);\n const [saving, setSaving] = useState(false);\n\n const handleDeleteConfirmation = () => {\n setSaving(true);\n const params = {\n id: eventId\n };\n const request = makeDeleteDataRequest(resources, 'EventPersonalDelete', 'DELETE', params);\n request.then(result => {\n if (result) {\n if (typeof result === 'string' && result.indexOf('Deleted') !== -1) {\n handlePostDeletion();\n } else if (result?.error?.indexOf('no personal event found') !== -1) {\n console.log('Event Deletion Error: No Event found');\n }\n return Promise.resolve(result);\n } else {\n console.log('Event Deletion Error');\n return Promise.reject('Event Deletion failed');\n }\n }).catch(error => {\n console.log('Event Deletion Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n const handlePostDeletion = () => {\n setDeleted(true);\n setSaving(false);\n setTimeout(() => {\n if (typeof onDeletedEvent === 'function') {\n onDeletedEvent({type: 'event', state: 'deleted'});\n }\n setModalStatus(false);\n }, 1000);\n };\n\n return (\n <>\n setModalStatus(true)}\n >\n Delete Event\n \n setModalStatus(false)}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n maxWidth: '40%',\n minHeight: 200,\n top: '50%',\n transform: 'translate(-50%, -100%)'\n }}\n >\n
\n

Are you sure you want to delete this Event?

\n {eventName &&\n

Event: {eventName}

\n }\n

Note: Any users who have joined this Event will no longer be able to access it.

\n {!saving && !deleted &&\n
\n \n \n
\n }\n {saving &&\n <>\n \n
\n Deleting Event...\n
\n \n }\n {deleted &&\n
\n This Event has been deleted.\n
\n }\n
\n \n \n );\n};\n\nexport default DeleteEventButton;\n","import React, {useCallback, useEffect, useState} from 'react';\nimport {RESOURCES as resources} from '../../resourcesUser';\nimport {makeGetDataRequest} from '../../utils/getRequest';\nimport Config from '../../config';\n\n/**\n * Event Configuration Fields and Inputs\n *\n * @param viewType\n * @param event\n * @param config\n * @param ownEvent\n * @param onConfigUpdated\n * @returns {JSX.Element}\n * @constructor\n */\nconst EventConfigFields = ({viewType, event, config, ownEvent, onConfigUpdated}) => {\n const [global, setGlobal] = useState({\n max_event_shares: config?.max_shares ?? Config.eventConfigDefault.max_shares\n });\n const [configValues, setConfigValues] = useState({\n max_event_shares: event?.max_shares ?? global.max_event_shares\n\n });\n // Callback: Set Config values with fallback\n const updateConfig = useCallback((userConfig) => {\n let config = {};\n // Set Event value, User value, or global default value\n if (event.max_shares !== null) {\n config.max_event_shares = event.max_shares;\n } else {\n config.max_event_shares = (userConfig.max_event_shares !== null)\n ? userConfig.max_event_shares : global.max_event_shares;\n }\n setConfigValues(config);\n\n if (typeof onConfigUpdated === 'function') {\n onConfigUpdated(config);\n }\n }, [event, global, onConfigUpdated])\n\n // Effect: Update Global default Configurations\n useEffect(\n () => {\n const updateGlobalConfig = () => {\n setGlobal({\n max_event_shares: config?.max_event_shares ?? Config.eventConfigDefault.max_shares\n });\n };\n\n return updateGlobalConfig();\n\n }, [config]\n )\n\n // Effect: Get Configurations from Event's Creator (if any)\n useEffect(() => {\n const params = {\n username: event.username\n };\n const fetchUserData = () => {\n const resource = (ownEvent) ? 'User' : 'UserInfo';\n const request = makeGetDataRequest(resources, resource, 'GET_ONE', params);\n request.then(result => {\n if (result) {\n updateConfig({\n max_event_shares: result?.max_event_shares ?? null\n });\n return Promise.resolve(result);\n } else {\n console.log('User Error: No result');\n return Promise.reject('Get User failed');\n }\n }).catch(error => {\n console.log('Get User Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchUserData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [event.username, ownEvent]);\n\n if (viewType === 'edit') {\n return (\n <>\n \n )\n }\n\n return (\n
\n \n

Max Invites

\n\n

{configValues.max_event_shares}

\n
\n
\n );\n};\n\nexport default EventConfigFields;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {RESOURCES as eventResources} from '../../resourcesEvent';\nimport {RESOURCES as projectResources} from '../../resourcesProject';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport BaseInput from '../fields/BaseInput';\nimport Modal from '../modal/Modal';\n\n/**\n * Button with Unsubscribe Self functionality\n *\n * @param eventId\n * @param projectId\n * @param username\n * @param onFormEvent\n * @param type\n * @returns {JSX.Element}\n * @constructor\n */\nconst UnsubscribeSelfButton = (\n {\n eventId,\n projectId,\n username,\n onFormEvent,\n type = 'unsubscribe'\n }) => {\n\n const [modalStatus, setModalStatus] = useState(false);\n const [unsubscribeNotes, setUnsubscribeNotes] = useState('');\n const [unsubscribeError, setUnsubscribeMessage] = useState(null);\n\n const handleNotesUpdate = (e) => {\n setUnsubscribeNotes(e?.value ?? '');\n };\n\n const handleConfirmation = () => {\n let label = (eventId) ? 'Event' : 'Project';\n let resource = (eventId) ? eventResources : projectResources;\n let actions = (type === 'reject')\n ? {\n present: 'rejecting',\n past: 'rejected',\n func: 'reject',\n method: 'PUT',\n params: {}\n }\n : {\n present: 'unsubscribing from',\n past: 'unsubscribed from',\n func: 'subscribe',\n method: 'POST',\n params: {}\n };\n if (eventId) {\n if (type === 'reject') {\n actions.params.id = eventId;\n actions.resource = 'EventPersonalReject';\n }\n if (type === 'unsubscribe') {\n actions.params.event_id = eventId;\n actions.resource = 'EventPersonalUnsubscribe';\n }\n } else if (projectId) {\n if (type === 'reject') {\n actions.params.id = projectId;\n actions.resource = 'ProjectPersonalReject';\n }\n if (type === 'unsubscribe') {\n actions.params.project_id = projectId;\n actions.resource = 'ProjectPersonalUnsubscribe';\n }\n }\n if (type === 'unsubscribe') {\n if (eventId) {\n actions.params.event_id = eventId;\n } else if (projectId) {\n actions.params.project_id = projectId;\n }\n actions.params.unsubscribed_notes = unsubscribeNotes;\n actions.params.username = username;\n }\n let errorMessage = 'Sorry, there was an issue ' + actions.present + ' this ' + label + '.';\n const request = makePostDataRequest(resource, actions.resource, actions.method, actions.params);\n request.then(result => {\n if (result && result === 'OK') {\n setModalStatus(false);\n setUnsubscribeMessage('You have successfully ' + actions.past + ' this ' + label + '.');\n if (typeof onFormEvent === 'function') {\n onFormEvent();\n }\n return Promise.resolve(result);\n } else {\n if (result?.data?.error) {\n if (result.data.error.indexOf('no personal project share found') !== -1) {\n errorMessage = 'No Personal Project was found.';\n }\n if (result.data.error.indexOf('no personal event share found') !== -1) {\n errorMessage = 'No Personal Event was found.';\n }\n }\n console.log('Error: Unable to process Unsubscribe request');\n setUnsubscribeMessage(errorMessage);\n return Promise.reject('Unsubscribe failed');\n }\n }).catch(error => {\n console.log('Error: ', error);\n setUnsubscribeMessage('Sorry, there was an error processing this request.');\n return Promise.reject('Server Error');\n });\n };\n\n const labelType = (eventId) ? 'Event' : 'Project';\n const btnLabelAction = (type === 'reject') ? 'Reject' : 'Leave';\n const btnLabel = btnLabelAction + ' ' + labelType;\n\n return (\n <>\n setModalStatus(true)}\n >\n {btnLabel}\n \n setModalStatus(false)}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n maxWidth: '40%',\n minHeight: 200,\n top: '50%',\n transform: 'translate(-50%, -100%)'\n }}\n >\n
\n {type === 'reject' &&\n <>\n

\n Are you sure you want to reject this shared {labelType}?\n

\n {eventId &&\n

You will not be able to view this Event's details.

\n }\n {projectId &&\n

You will not be able to view this Project's details or access its files.

\n }\n \n }\n {type === 'unsubscribe' &&\n <>\n

\n Are you sure you want to leave this {labelType}?\n

\n {eventId &&\n

This will disconnect your associations from this Event.

\n }\n {projectId &&\n

This will disconnect your associations from this Project and Dataset. Your own\n forks will remain accessible.

\n }\n

If desired, add brief notes regarding the reason for your leaving this {labelType}:

\n
\n handleNotesUpdate(e)}\n >\n \n
\n \n }\n\n {unsubscribeError &&\n

\n {unsubscribeError}\n

\n }\n\n
\n \n \n
\n
\n \n \n );\n};\n\nUnsubscribeSelfButton.propTypes = {\n username: PropTypes.string\n};\n\nexport default UnsubscribeSelfButton;\n","import React, {useState, useEffect, useCallback} from 'react';\nimport {Link, Redirect, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {setEventConfigUserRefresh, setEventListRefresh} from '../store/actions';\nimport ReactMarkdown from 'react-markdown';\nimport {RESOURCES as resources} from '../resourcesEvent';\nimport {isBlank, makeDateString} from '../utils/dataFunctions';\nimport {makePostDataRequest} from '../utils/postRequest';\nimport DeleteEventButton from './buttons/DeleteEventButton';\nimport EventConfigFields from './forms/EventConfigFields';\nimport LoadingIndicator from './LoadingIndicator';\nimport UnsubscribeSelfButton from './buttons/UnsubscribeSelfButton';\nimport IconCheckmark from './images/IconCheckmark';\n\nconst tabs = {\n overview: {tab: 'overview', title: 'Overview'},\n description: {tab: 'description', title: 'Description'}\n};\n\n/**\n * Panel: Event Detail\n *\n * @param isSysop\n * @param basePath\n * @param eventConfig\n * @param eventItem\n * @param eventType\n * @param user\n * @param onAirmeetLink\n * @param onJoinOrLeaveFunc\n * @param inInvitedEvents\n * @param inSubscribedEvents\n * @param inOwnEvents\n * @param tab\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst EventDetail = (\n {\n isSysop,\n basePath = '',\n eventConfig,\n eventItem,\n eventType,\n user,\n onAirmeetLink,\n onJoinOrLeaveFunc,\n inInvitedEvents = false,\n inSubscribedEvents = false,\n inOwnEvents = false,\n tab = 'overview',\n ...props\n }) => {\n\n const [tabState, setTab] = useState({\n tab: tabs.overview.tab,\n title: tabs.overview.title\n });\n\n const [isSaving, setIsSaving] = useState(false);\n const [message, setMessage] = useState({\n error: false,\n message: ''\n });\n const [redirect, setRedirect] = useState(false);\n\n // Set tab if an outside source requests it\n useEffect(() => {\n // @TODO first click from outside after internal tabState change fails\n // @TODO avoid checking/update internally\n if (tabs[tab] && (tabs[tab].tab)) {\n // console.log('useEffect check tab: current ' + tabState.tab + ', new: ', tab);\n // console.log('useEffect tabs[tab].tab: ', tabs[tab].tab);\n // changeTab(tabs[tab].tab, tabs[tab].title);\n }\n }, [tab]);\n\n const changeTab = (tab, title) => {\n setIsSaving(false);\n setMessage({error: false, message: ''});\n setTab({tab: tab, title: title});\n };\n\n // API: Join Event\n const joinEvent = () => {\n setIsSaving(true);\n const request = makePostDataRequest(resources, 'EventPersonalJoin', 'PUT', {id: eventItem.id});\n let errorMessage = 'Sorry, there was an issue joining this Event.';\n request.then(result => {\n setIsSaving(false);\n if (result && (result.sign_up_date || result === 'OK')) {\n setMessage({error: false, message: 'You have successfully joined this Event.'});\n // Notify the parent page\n if (typeof onJoinOrLeaveFunc === 'function') {\n onJoinOrLeaveFunc('subscribe');\n }\n return Promise.resolve(result);\n } else {\n if (result?.data?.error) {\n if (\n result.data.error.indexOf('no personal event share found') !== -1 ||\n result.data.error.indexOf('no event found') !== -1\n ) {\n errorMessage = 'No Personal Event was found.';\n }\n if (result.data.error.indexOf('already') !== -1) {\n errorMessage = 'You are already participating in this Event.';\n }\n }\n setMessage({\n error: true,\n message: errorMessage\n });\n return Promise.reject('Unsubscribe failed');\n }\n }).catch(error => {\n // console.log('Join Event Error: ', error);\n setIsSaving(false);\n setMessage({\n error: true,\n message: errorMessage\n });\n return Promise.reject('Server Error');\n });\n };\n\n const handleUnsubscribe = (e) => {\n const actions = (e === 'reject')\n ? {\n past: 'rejected',\n func: 'reject',\n }\n : {\n past: 'unsubscribed from',\n func: 'subscribe',\n };\n if (typeof onJoinOrLeaveFunc === 'function') {\n onJoinOrLeaveFunc(actions.func);\n }\n setMessage({\n error: false,\n message: 'You have successfully ' + actions.past + ' this Event.'\n });\n setTimeout(() => {\n setRedirect(true);\n }, 100);\n };\n\n const handleDeleted = () => {\n // Refresh User Configuration (for Event limits) and list of own Events\n props.setEventConfigUserRefresh(true);\n props.setEventListRefresh('personal_own');\n setTimeout(() => {\n setRedirect(true);\n }, 200);\n };\n\n // Handle click from Session Join button\n const launchAirmeetEvent = useCallback((uuid) => {\n if (typeof onAirmeetLink === 'function') {\n onAirmeetLink('event', uuid);\n }\n }, [onAirmeetLink]);\n\n const setButtonDisplay = () => {\n return {\n join: (!(inSubscribedEvents || inOwnEvents)),\n launch: !!(inSubscribedEvents || inOwnEvents),\n leave: (inSubscribedEvents && !inOwnEvents && !isSysop),\n reject: (inInvitedEvents && !inSubscribedEvents)\n };\n };\n\n if (redirect) {\n return \n }\n\n const startDateStr = (eventItem.start_time) ? makeDateString(eventItem.start_time, 'm', true) : '';\n const endDateStr = (eventItem.end_time) ? makeDateString(eventItem.end_time, 'm', true) : '';\n const eventPath = (eventType === 'personal' || eventType === 'personal_own') ? 'event/personal' : 'event/public';\n const buttonDisplay = setButtonDisplay();\n const hasAirmeet = (!isBlank(eventItem.entry_link));\n\n return (\n
\n\n

{tabState.title}

\n\n
\n\n {/* Left Side Detail Menu */}\n\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n
  • \n
\n
\n\n {/* Right-Side Detail Content */}\n\n
\n {/* Tab: Overview */}\n {tabState.tab === 'overview' &&\n <>\n {eventItem.username &&\n <>\n

Event Creator

\n

{eventItem.username}

\n \n }\n\n {eventItem.speaker &&\n <>\n

Event Speaker

\n

{eventItem.speaker}

\n \n }\n\n

Short Description

\n \n\n {startDateStr &&\n <>\n

Start Date

\n

{startDateStr}

\n \n }\n {endDateStr &&\n <>\n

End Date

\n

{endDateStr}

\n \n }\n {(isSysop || inOwnEvents) &&\n
\n \n

Private

\n

{eventItem.private ? 'Yes' : 'No'}

\n
\n
\n }\n\n {/* Event Configuration (Sysop or creator only) */}\n {(isSysop || inOwnEvents) &&\n \n }\n \n }\n\n {/* Tab: Description */}\n {tabState.tab === 'description' &&\n <>\n

Description

\n \n \n }\n\n {/* Buttons and Messaging */}\n\n
\n {isSaving &&\n

\n \n

\n }\n {!message.error && message.message !== '' &&\n

\n \n

\n }\n {buttonDisplay.join &&\n \n }\n {buttonDisplay.reject &&\n handleUnsubscribe('reject')}\n />\n }\n {eventItem.private === true && buttonDisplay.leave &&\n handleUnsubscribe('unsubscribe')}\n />\n }\n {(isSysop || inOwnEvents) &&\n \n Edit Event\n \n }\n {(inSubscribedEvents || inOwnEvents) && hasAirmeet &&\n \n }\n {(isSysop || inOwnEvents) &&\n handleDeleted()}\n />\n }\n
\n\n {message.message !== '' &&\n
\n

\n {message.message}\n

\n
\n }\n\n
\n
\n
\n );\n};\n\nconst mapDispatchToProps = {\n setEventConfigUserRefresh: setEventConfigUserRefresh,\n setEventListRefresh: setEventListRefresh\n};\n\nexport default withRouter(\n connect(\n null,\n mapDispatchToProps\n )(EventDetail)\n);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {RESOURCES as eventResources} from '../resourcesEvent';\nimport {RESOURCES as projectResources} from '../resourcesProject';\nimport {makeGetDataRequest} from './getRequest';\n\n/**\n * Component for retrieving Users of a Shared Project or Event\n */\nclass APISharedUsers extends Component {\n\n componentDidMount() {\n this.getList();\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (!prevProps.refresh && this.props.refresh) {\n this.getList();\n }\n }\n\n /**\n * Get Users of a Shared Event\n *\n */\n getList = () => {\n const params = {\n id: this.props.id\n };\n let request;\n if (this.props.getType === 'event') {\n request = makeGetDataRequest(eventResources, 'EventPersonalSharedUsers', 'GET_LIST', params);\n }\n if (this.props.getType === 'event-public') {\n request = makeGetDataRequest(eventResources, 'EventPublicSharedUsers', 'GET_LIST', params);\n }\n if (this.props.getType === 'project') {\n request = makeGetDataRequest(projectResources, 'ProjectPersonalSharedUsers', 'GET_LIST', params);\n }\n request.then(result => {\n let empty = false;\n if (result) {\n if (typeof result === 'string') {\n console.log('Shared Users Retrieval Error: ', result);\n empty = true;\n }\n if (result.status === 200 && result.data === null) {\n empty = true;\n }\n // Pass results to parent\n if (typeof this.props.onResult === 'function') {\n this.props.onResult((empty) ? [] : result);\n }\n return Promise.resolve(result);\n } else {\n console.log('Shared Users Retrieval Error: No result');\n if (typeof this.props.onResult === 'function') {\n this.props.onResult((empty) ? [] : result);\n }\n return Promise.reject('Shared Users Retrieval failed');\n }\n }).catch(error => {\n console.log('Shared Users Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nAPISharedUsers.propTypes = {\n getType: PropTypes.string,\n id: PropTypes.string,\n onResult: PropTypes.func,\n refresh: PropTypes.bool\n};\n\nAPISharedUsers.defaultProps = {\n getType: 'project',\n refresh: false\n};\n\nexport default APISharedUsers;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {RESOURCES as eventResources} from '../../resourcesEvent';\nimport {RESOURCES as projectResources} from '../../resourcesProject';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport BaseInput from '../fields/BaseInput';\nimport Modal from '../modal/Modal';\n\n/**\n * Button with Unsubscribe User functionality for Projects and Events\n *\n * @param eventId\n * @param projectId\n * @param username\n * @param onFormEvent\n * @param type\n * @param isOwnerOrSysop\n * @returns {JSX.Element}\n * @constructor\n */\nconst UnsubscribeUserButton = (\n {\n eventId,\n projectId,\n username,\n onFormEvent,\n type = 'unsubscribe',\n isOwnerOrSysop = true\n }) => {\n\n const [modalStatus, setModalStatus] = useState(false);\n const [unsubscribeNotes, setUnsubscribeNotes] = useState('');\n const [unsubscribeError, setUnsubscribeError] = useState(null);\n\n const handleNotesUpdate = (e) => {\n setUnsubscribeNotes(e?.value ?? '');\n };\n\n const handleConfirmation = () => {\n let request;\n let params = {\n username: username,\n unsubscribed_notes: unsubscribeNotes\n };\n if (eventId) {\n params.event_id = eventId;\n request = makePostDataRequest(eventResources, 'EventPersonalUnsubscribe', 'POST', params);\n }\n if (projectId) {\n params.project_id = projectId;\n request = makePostDataRequest(projectResources, 'ProjectPersonalUnsubscribe', 'POST', params);\n }\n request.then(result => {\n if (result && result === 'OK') {\n setModalStatus(false);\n setUnsubscribeError(null);\n if (typeof onFormEvent === 'function') {\n onFormEvent();\n }\n return Promise.resolve(result);\n } else if (result.error) {\n setUnsubscribeError('Sorry, this user could not be subscribed. Error: ' + result.error);\n } else {\n console.log('Error: Unable to Unsubscribe User');\n setUnsubscribeError('Sorry, this user could not be subscribed.');\n return Promise.reject('Unsubscribe failed');\n }\n }).catch(error => {\n console.log('Error: ', error);\n setUnsubscribeError('Sorry, this user could not be subscribed.');\n return Promise.reject('Server Error');\n });\n };\n\n const btn = (type === 'reject') ? 'Remove User' : 'Unsubscribe User';\n\n return (\n <>\n setModalStatus(true)}\n >\n {btn}\n \n setModalStatus(false)}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n maxWidth: '40%',\n minHeight: 200,\n top: '50%',\n transform: 'translate(-50%, -100%)'\n }}\n >\n
\n

\n Are you sure you want to unsubscribe {username}?\n

\n {eventId &&\n <>\n

This will disconnect all Event associations from this user.

\n {type === 'reject' &&\n

\n Note: This user has rejected an invitation to this Event.\n

\n }\n \n }\n {projectId &&\n <>\n

This will disconnect all Project and Dataset associations from this user.

\n {type === 'reject' &&\n

\n Note: This user has rejected an invitation to this Project.\n

\n }\n \n }\n\n {!isOwnerOrSysop &&\n <>\n

If desired, add brief notes regarding this unsubscription:

\n
\n handleNotesUpdate(e)}\n >\n \n
\n \n }\n\n {unsubscribeError &&\n

\n {unsubscribeError}\n

\n }\n\n
\n \n \n
\n
\n \n \n );\n};\n\nUnsubscribeUserButton.propTypes = {\n username: PropTypes.string\n};\n\nexport default UnsubscribeUserButton;\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {makeDateString} from '../utils/dataFunctions';\nimport APISharedUsers from '../utils/APISharedUsers';\nimport TableWithSubrows from './tables/TableWithSubrows';\nimport UnsubscribeUserButton from './buttons/UnsubscribeUserButton';\n\n/**\n * Component that displays Users of a Shared Event in a React Table\n *\n * @param eventId\n * @param onList\n * @param inPanel\n * @param refresh\n * @return {JSX.Element}\n * @constructor\n */\nconst EventPublicJoinedUsersTable = ({eventId, onList, inPanel = true, refresh = false}) => {\n\n const [itemList, setItemList] = useState([]);\n const [refreshList, setRefreshList] = useState(refresh);\n\n useEffect(\n () => {\n return setRefreshList(refresh);\n }, [refresh]\n );\n\n const setSharedList = (data) => {\n let list = [];\n if (data.length > 0) {\n\n // @TODO need structure\n\n for (let i = 0; i < data.length; i++) {\n list[i] = data[i];\n list[i].joined_on_str = (data[i].joined_on) ? makeDateString(data[i].joined_on) : '';\n list[i].rejected_on_str = (data[i].rejected_on) ? makeDateString(data[i].rejected_on) : '';\n list[i].shared_on_str = (data[i].shared_on) ? makeDateString(data[i].shared_on) : '';\n list[i].unsubscribed_on_str = (data[i].unsubscribed_on) ? makeDateString(data[i].unsubscribed_on) : '';\n }\n }\n setItemList(list);\n if (typeof onList === 'function') {\n onList(list);\n }\n setRefreshList(false);\n };\n\n // Refresh list after User Unsubscription\n const handleUnsubscribe = () => {\n setRefreshList(true);\n setRefreshList(false);\n };\n\n // Subscription data subrow\n const renderSubscriptionRow = useCallback(\n ({row}) => (\n \n {row.original.rejected &&\n <>\n Rejected by:\n {row.original.username}\n {row.original.rejected_on_str &&\n <>\n  on {row.original.rejected_on_str}\n \n }\n \n }\n {row.original.unsubscribed_by &&\n <>\n Unsubscribed by:\n {row.original.unsubscribed_by}\n {row.original.unsubscribed_on_str &&\n <>\n  on {row.original.unsubscribed_on_str}\n \n }\n
\n Reason: {row.original.unsubscribed_notes}\n \n }\n {(row.original.rejected || row.original.unsubscribed_by) &&\n <>\n
\n handleUnsubscribe()}\n />\n \n }\n
\n ),\n [eventId]\n )\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'Username',\n accessor: 'username',\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: 'Joined',\n id: 'joined_col',\n Cell: ({row}) => {\n return (row.original.joined_on)\n ? {row.original.joined_on_str}\n : No\n },\n disableFilters: true,\n disableSortBy: true\n }\n ],\n []\n );\n\n return (\n <>\n {inPanel && itemList.length > 0 &&\n
\n
\n
\n

Joined Users

\n \n
\n
\n
\n }\n {!inPanel && itemList.length > 0 &&\n \n }\n\n setSharedList(e)}\n refresh={refreshList}\n />\n \n );\n};\n\nexport default EventPublicJoinedUsersTable;\n","import React from 'react';\n\n/**\n * Icon Button for expand/collapse in a table\n *\n * @param active\n * @param open\n * @return {JSX.Element}\n * @constructor\n */\nconst TableExpandIconButton = ({active = false, open = false}) => {\n\n let activeClass = (active) ? ' active' : '';\n let openClass = (open) ? ' open' : '';\n\n return (\n \n \n )\n};\n\nexport default TableExpandIconButton;\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {makeDateString} from '../utils/dataFunctions';\nimport APISharedUsers from '../utils/APISharedUsers';\nimport TableExpandIconButton from './buttons/TableExpandIconButton';\nimport TableWithSubrows from './tables/TableWithSubrows';\nimport UnsubscribeUserButton from './buttons/UnsubscribeUserButton';\n\n/**\n * Component that displays Users of a Shared Event in a React Table\n *\n * @param eventId\n * @param onList\n * @param inPanel\n * @param refresh\n * @return {JSX.Element}\n * @constructor\n */\nconst EventSharedUsersTable = ({eventId, onList, inPanel = true, refresh = false}) => {\n\n const [itemList, setItemList] = useState([]);\n const [refreshList, setRefreshList] = useState(refresh);\n\n useEffect(\n () => {\n return setRefreshList(refresh);\n }, [refresh]\n );\n\n const setSharedList = (data) => {\n let list = [];\n if (data.length > 0) {\n\n // @TODO need structure\n\n for (let i = 0; i < data.length; i++) {\n list[i] = data[i];\n list[i].joined_on_str = (data[i].joined_on) ? makeDateString(data[i].joined_on) : '';\n list[i].rejected_on_str = (data[i].rejected_on) ? makeDateString(data[i].rejected_on) : '';\n list[i].shared_on_str = (data[i].shared_on) ? makeDateString(data[i].shared_on) : '';\n list[i].unsubscribed_on_str = (data[i].unsubscribed_on) ? makeDateString(data[i].unsubscribed_on) : '';\n }\n }\n setItemList(list);\n if (typeof onList === 'function') {\n onList(list);\n }\n setRefreshList(false);\n };\n\n // Refresh list after User Unsubscription\n const handleUnsubscribe = () => {\n setRefreshList(true);\n setRefreshList(false);\n };\n\n // Subscription data subrow\n const renderSubscriptionRow = useCallback(\n ({row}) => (\n \n {row.original.rejected &&\n <>\n Rejected by:\n {row.original.username}\n {row.original.rejected_on_str &&\n <>\n  on {row.original.rejected_on_str}\n \n }\n \n }\n {row.original.unsubscribed_by &&\n <>\n Unsubscribed by:\n {row.original.unsubscribed_by}\n {row.original.unsubscribed_on_str &&\n <>\n  on {row.original.unsubscribed_on_str}\n \n }\n
\n Reason: {row.original.unsubscribed_notes}\n \n }\n {(row.original.rejected || row.original.unsubscribed_by) &&\n <>\n
\n handleUnsubscribe()}\n />\n \n }\n
\n ),\n [eventId]\n )\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'Username',\n accessor: 'username',\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: 'Accepted',\n id: 'joined_col',\n Cell: ({row}) => {\n return (row.original.joined_on)\n ? {row.original.joined_on_str}\n : No\n },\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: () => Rejected
by User
,\n id: 'rejected_col',\n Cell: ({row}) => {\n return (row.original.rejected_on)\n ? {row.original.rejected_on_str}\n : No\n },\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: () => Invitation
Status
,\n id: 'subscription_col',\n Cell: ({row}) => {\n return (row.original.unsubscribed_by || row.original.rejected)\n ? \n Uninvited\n \n \n : handleUnsubscribe()}\n />\n },\n disableFilters: true,\n disableSortBy: true\n }\n ],\n [eventId]\n );\n\n return (\n <>\n {inPanel && itemList.length > 0 &&\n
\n
\n
\n

Invited Users

\n \n
\n
\n
\n }\n {!inPanel && itemList.length > 0 &&\n \n }\n\n setSharedList(e)}\n refresh={refreshList}\n />\n \n );\n};\n\nexport default EventSharedUsersTable;\n","import React, {useState} from 'react';\nimport {useForm} from 'react-hook-form';\nimport {RESOURCES as resourcesEvent} from '../../resourcesEvent';\nimport {RESOURCES as resourcesProject} from '../../resourcesProject';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport BaseInput from '../fields/BaseInput';\nimport LoadingIndicator from '../LoadingIndicator';\n\n/**\n * Form: Share Project or Event with Username\n *\n * @param event\n * @param project\n * @param sharedUsers\n * @param onShare\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormShareWithUser = ({event, project, sharedUsers, onShare}) => {\n\n const {handleSubmit} = useForm({mode: 'onBlur'});\n\n const [label] = useState((event) ? 'Event' : 'Project');\n const [sharedUserName, setSharedUserName] = useState('');\n const [userMessage, setSharedUserMessage] = useState(null);\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n const [formStageState, setFormStageState] = useState('form');\n\n const handleUserInput = (e) => {\n setSharedUserName(e?.value?.toLowerCase() ?? '');\n setSharedUserMessage(null);\n };\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n formStageState === 'saving' ||\n sharedUserName === ''\n );\n };\n\n // Handle submission event\n const onSubmit = () => {\n if (sharedUserName) {\n if (event && event.id) {\n if (event.username.toLowerCase() === sharedUserName.toLowerCase()) {\n // Prevent sharing with self\n setSharedUserMessage('You cannot share your Event with yourself.');\n } else {\n // Submit form to API\n setFormStageState('saving');\n submitForm({id: event.id, username: sharedUserName});\n }\n }\n if (project && project.id) {\n if (project.username.toLowerCase() === sharedUserName.toLowerCase()) {\n // Prevent sharing with self\n setSharedUserMessage('You cannot share your Project with yourself.');\n } else {\n // Submit form to API\n setFormStageState('saving');\n submitForm({id: project.id, username: sharedUserName});\n }\n }\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (params) => {\n let request;\n if (event) {\n request = makePostDataRequest(resourcesEvent, 'EventPersonalShare', 'PUT', params);\n }\n if (project) {\n request = makePostDataRequest(resourcesProject, 'ProjectPersonalShare', 'PUT', params);\n }\n\n let message = '';\n request.then(result => {\n if (result && result === 'OK') {\n updateSuccessState({\n success: true,\n message: 'This Personal ' + label + ' has been shared with ' + sharedUserName + '.'\n });\n setFormStageState('success');\n if (typeof onShare === 'function') {\n onShare();\n }\n return Promise.resolve(result);\n }\n if (result?.error) {\n if (result.error.indexOf('already shared') !== -1) {\n message = 'This Personal ' + label + ' has already been shared with the user \\'' + sharedUserName + '\\'.';\n } else if (result.error.indexOf('no user info found') !== -1) {\n message = 'Sorry, the user ' + sharedUserName + ' was not found.';\n } else if (event && result.error.indexOf('no personal event found') !== -1) {\n message = 'Sorry, there was an error. Personal Event ID ' + event.id + ' was not found.';\n } else if (project && result.error.indexOf('no personal project found') !== -1) {\n message = 'Sorry, there was an error. Personal Project ID ' + project.id + ' was not found.';\n } else {\n message = 'Sorry, there was an error sharing this Personal ' + label + '.';\n }\n } else if (result?.message && result.message.indexOf('unauthorized') !== -1) {\n message = 'Sorry, you are not authorized to share this Personal ' + label + '.';\n } else {\n message = 'Sorry, there was an error sharing this Personal ' + label + '.';\n }\n updateSuccessState({\n success: false,\n message: message\n });\n setFormStageState('fail');\n return Promise.resolve();\n }).catch(error => {\n console.log('Share Personal ' + label + ' Error: ', error);\n updateSuccessState({\n success: false,\n message: 'Sorry, there was an error sharing this Personal ' + label + ': ' + error\n });\n setFormStageState('fail');\n return Promise.reject('Server Error');\n });\n };\n\n return (\n
\n
\n

\n Share this {label} with a specific user. Type in a username.\n

\n\n {/* Find User */}\n\n
\n
\n handleUserInput(e)}\n className=\"form-input\"\n >\n \n {userMessage &&\n


\n {userMessage}\n

\n }\n
\n
\n \n
\n
\n\n {/* Messaging and Actions */}\n\n
\n {formStageState === 'saving' &&\n <>\n \n

Sharing {label}...

\n \n }\n {formStageState === 'success' &&\n

{label} shared with user {sharedUserName}

\n }\n {formStageState === 'fail' &&\n <>\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue sharing this {label}.\n

\n }\n \n }\n
\n
\n
\n );\n};\n\nexport default FormShareWithUser;\n","import React, {Component} from 'react';\nimport {Redirect, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport Emitter from '../../utils/eventEmitter';\nimport {setEventConfigCurrent, setEventListRefresh} from '../../store/actions';\nimport {openHelpWidget} from '../../utils/pageFunctions';\nimport {assembleAirmeetPath, getMaxEventShares, inUserList} from '../../utils/projectFunctions';\nimport APIEvents from '../../utils/APIEvents';\nimport EventDetail from '../../partials/EventDetail';\nimport EventPublicJoinedUsersTable from \"../../partials/EventPublicJoinedUsersTable\";\nimport EventSharedUsersTable from '../../partials/EventSharedUsersTable';\nimport FormShareWithUser from '../../partials/forms/FormShareWithUser';\nimport LoadingIndicator from '../../partials/LoadingIndicator';\nimport '../../css/challenge.css';\n\n/**\n * Page: Single Event with additional panels\n */\nclass XConnectEvent extends Component {\n constructor(props) {\n super(props);\n // Get Event type and ID from path\n const pathArr = props.location.pathname.split('/');\n const eventIdx = pathArr.findIndex(c => c === 'event');\n let eventType = pathArr[eventIdx + 1];\n let eventId;\n if (eventType === 'personal' || eventType === 'public') {\n // If path is /x/{substrate}/event/type/{id}/{subpage}\n eventId = pathArr[eventIdx + 2];\n } else {\n // If path is /x/{substrate}/event/{id}/{subpage}\n eventId = pathArr[(pathArr.length - 1)];\n eventType = null;\n }\n\n const hasUserList = !!(props.event_list_subscribed?.length);\n this.state = {\n hasUserList: hasUserList,\n event: null,\n eventId: eventId,\n eventRefresh: false,\n eventType: eventType,\n redirectUrl: null,\n refreshSharedUsers: false,\n sharedUsers: [],\n tab: 'overview'\n };\n\n this.handleJoinOrLeaveEvent = this.handleJoinOrLeaveEvent.bind(this);\n this.launchAirmeetView = this.launchAirmeetView.bind(this);\n this.setEvent = this.setEvent.bind(this);\n }\n\n componentDidMount() {\n Emitter.on('setTab', (e) => this.setTab(e));\n }\n\n componentWillUnmount() {\n Emitter.off('setTab');\n }\n\n // Set Event information\n setEvent = (data) => {\n this.setState({\n event: data\n });\n };\n\n // Set the current tab of the Event detail\n setTab = (tab) => {\n this.setState({\n tab: tab\n });\n };\n\n // Set list of Shared Users from Event\n setSharedUsers = (list) => {\n this.setState({\n sharedUsers: list\n });\n };\n\n refreshEvent = () => {\n this.setState({\n eventRefresh: true\n }, () => {\n this.setState({\n eventRefresh: false\n });\n });\n };\n\n // Refresh Shared Users after Share event\n handleRefreshSharedUsers = () => {\n this.setState({\n refreshSharedUsers: true\n }, () => {\n this.setState({\n refreshSharedUsers: false\n });\n });\n };\n\n // Notify the API Events component to update the User Events List\n handleJoinOrLeaveEvent = (type) => {\n if (type === 'subscribe') {\n this.refreshEvent();\n }\n if (type === 'reject') {\n this.props.setEventListRefresh('shared');\n // Redirect to Sharing view\n\n setTimeout(() => {\n this.setState({\n redirectUrl: '/x/connect/events/sharing'\n });\n }, 600);\n }\n let subscribedRefresh = (this.props.user.is_sysop) ? 'subscribed_sysop' : 'subscribed';\n this.props.setEventListRefresh(subscribedRefresh);\n };\n\n launchAirmeetView = (eventType, eventId, type, uuid, launch = true) => {\n const path = assembleAirmeetPath('event', eventId, type, uuid);\n if (launch && path) {\n this.props.history.push(path);\n }\n };\n\n render() {\n const {\n event_config,\n event_config_current,\n event_config_user,\n event_list_invited,\n event_list_own,\n event_list_subscribed,\n user\n } = this.props;\n\n const {\n event,\n eventId,\n eventRefresh,\n eventType,\n redirectUrl,\n refreshSharedUsers,\n sharedUsers,\n tab\n } = this.state;\n\n if (redirectUrl) {\n return \n }\n\n const inInvitedEvents = (inUserList(event_list_invited, eventId));\n const inSubscribedEvents = (inUserList(event_list_subscribed, eventId));\n const inOwnEvents = (inUserList(event_list_own, eventId));\n const isPublic = (eventType === 'public');\n const maxShares = getMaxEventShares(event_config, event_config_user, event_config_current);\n\n return (\n <>\n
\n {!user.is_sysop && !inSubscribedEvents && !inOwnEvents && !inInvitedEvents && !isPublic &&\n <>\n

\n Personal Event {eventId}\n

\n
\n
\n
\n This Event is not an Event you created, or you have not been invited to Join\n this Event.\n
\n
\n
\n \n }\n {!event && (user.is_sysop || inInvitedEvents || inSubscribedEvents || inOwnEvents) &&\n \n }\n {event &&\n <>\n

\n {event.name}\n

\n\n {/* Row: Events */}\n\n
\n
\n this.launchAirmeetView('event', eventId, type, uuid, true)}\n onJoinOrLeaveFunc={(e) => this.handleJoinOrLeaveEvent(e)}\n inInvitedEvents={inInvitedEvents}\n inOwnEvents={inOwnEvents}\n inSubscribedEvents={inSubscribedEvents}\n tab={tab}\n isSysop={user.is_sysop}\n />\n
\n
\n \n }\n\n {(user.is_sysop || inOwnEvents) && eventId &&\n <>\n\n {/* Row: Share with User */}\n {event && event.private &&\n
\n
\n
\n

Share Personal Event

\n {sharedUsers.length >= maxShares.event && !user.is_sysop &&\n

\n You have reached the maximum total of shares for this Event.\n To change the share limit for this Event or for your\n account, contact openHelpWidget()}>Xrathus Support.\n

\n }\n {event && (sharedUsers.length < maxShares.event || user.is_sysop) &&\n this.handleRefreshSharedUsers()}\n />\n }\n
\n
\n
\n }\n {/* Row: Shared Users Table For Private Event */}\n {event && event.private &&\n this.setSharedUsers(e)}\n />\n }\n\n {/* Row: Shared Users Table For Public Event */}\n {event && !event.private &&\n this.setSharedUsers(e)}\n />\n }\n \n }\n
\n\n {(user.is_sysop || inInvitedEvents || inSubscribedEvents || inOwnEvents || isPublic) &&\n \n }\n \n )\n }\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n event_config: state.event_config,\n event_config_current: state.event_config_current,\n event_config_user: state.event_config_user,\n event_list_invited: state.event_list_invited,\n event_list_own: state.event_list_own,\n event_list_subscribed: state.event_list_subscribed,\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setEventConfigCurrent: setEventConfigCurrent,\n setEventListRefresh: setEventListRefresh\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(XConnectEvent)\n);\n","import React, {useState} from 'react';\nimport {Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {useForm} from 'react-hook-form';\nimport DatePicker from 'react-datepicker';\nimport {RESOURCES as resources} from '../../resourcesEvent';\nimport {setEventConfigCurrent} from '../../store/actions';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport {filterPassedTime} from '../../utils/projectFunctions';\nimport BaseInput from '../fields/BaseInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport {EVENT_TABS} from '../../data/formTabs';\nimport 'react-datepicker/dist/react-datepicker.min.css';\nimport SelectInput from \"../fields/SelectInput\";\n\nconst now = new Date().getTime();\nconst fifteenMin = (1000 * 60 * 15);\n\n/**\n * Form: Add Event\n *\n * @param basePath\n * @param formStage\n * @param onFormEvent\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormEventAdd = (\n {\n formStage,\n onFormEvent,\n basePath = '',\n ...props\n }) => {\n\n // Set up form and state\n const {register, errors, formState, getValues, handleSubmit} = useForm({mode: 'onBlur'});\n\n // State: Form Stage (from parent)\n const [formStageState, updateFormStageState] = useState(\n {\n stage: formStage\n }\n );\n if (formStageState.stage !== formStage) {\n updateFormStageState({...formStageState, stage: formStage});\n }\n\n // State: Due Date Object\n const [startTime, setStartTime] = useState(now);\n const [endTime, setEndTime] = useState(now + fifteenMin);\n const [minEndTime, setMinEndTime] = useState(now + fifteenMin);\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n // State: Current Tab\n const [tabState, setTab] = useState(EVENT_TABS.overview);\n // State: Created Event\n const [eventId, setEventId] = useState('');\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n !formState.isDirty ||\n getValues('long_desc') === '' ||\n getValues('name') === '' ||\n getValues('short_desc') === '' ||\n getValues('start_time') === '' ||\n tabState.tab === 'saving' ||\n (errors &&\n (\n errors.start_time ||\n errors.end_time ||\n errors.short_desc ||\n errors.long_desc ||\n errors.name\n\n ))\n );\n };\n\n // Handle change from specific form fields\n const handleFormChange = (e) => {\n if (e.name === 'start_time') {\n const sTime = (e.value) ? e.value.getTime() : '';\n if (sTime) {\n // Set a minimum End Time\n const minEnd = sTime + fifteenMin;\n setEndTime(minEnd)\n setMinEndTime(minEnd);\n setStartTime(sTime);\n } else {\n\n }\n } else if (e.name === 'end_time') {\n const eTime = (e.value) ? e.value.getTime() : '';\n if (eTime) {\n setEndTime(eTime);\n }\n }\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n data.start_time = parseInt(data.start_time, 10);\n data.end_time = parseInt(data.end_time, 10);\n data.private = (data.private.toLowerCase() === 'true');\n\n // console.log('SUBMIT data args: ', data);\n // Submit form to API\n setTab(EVENT_TABS.saving);\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'EventPersonal', 'CREATE', data);\n let processed = false;\n request.then(result => {\n let error = null;\n let errorMessage = null;\n if (result?.data?.error) {\n error = result.data.error;\n errorMessage = result.data.message;\n } else if (result?.error) {\n error = result.error;\n errorMessage = result.message;\n }\n if (result.id && !error) {\n updateSuccessState({success: true, message: ''});\n setTab(EVENT_TABS.success);\n setEventId(result.id);\n setPostEvent(result);\n processed = true;\n return Promise.resolve(result);\n } else {\n const message = (errorMessage) ? ' Error: \"' + errorMessage + '\"' : '';\n updateSuccessState({success: false, message: 'Sorry, your Event could not be created.' + message});\n setTab(EVENT_TABS.fail);\n processed = true;\n return Promise.resolve();\n }\n }).catch(error => {\n if (!processed) {\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Event: ' + error});\n setTab(EVENT_TABS.fail);\n return Promise.reject('Server Error');\n }\n });\n };\n\n // Process after Event form completion\n const setPostEvent = (data) => {\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n // Notify the page that Event has been created\n onFormEvent('event', 'complete', data);\n }\n };\n\n return (\n
\n
\n\n {/* Form Menu */}\n
\n
    \n
  • \n \n
  • \n
\n
\n\n
\n\n {/* Tab: Overview */}\n\n
\n

\n Enter basic information for your Event.\n

\n\n
\n {/* Event Name */}\n ),\n minLength: {\n value: 3,\n message: ()\n },\n maxLength: {\n value: 80,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.name ? 'input-error' : ''}`}\n >\n {errors.name && errors.name.message}\n \n
\n

\n Enter short and long Event descriptions. Markdown may be used in the long\n description, but no HTML is allowed.\n

\n
\n {/* Short Description */}\n )\n })}\n required\n className={`form-input ${errors.short_desc ? 'input-error' : ''}`}\n >\n {errors.short_desc && errors.short_desc.message}\n \n
\n
\n {/* Long Description */}\n \n {errors.long_desc && errors.long_desc.message}\n \n
\n
\n {/* Start Time */}\n \n\n {/* End Time */}\n \n
\n
\n \n
\n

\n When all information is completed, click Add Event to Save the Event.\n

\n
\n\n {/* Tab: Confirm && Save */}\n\n
\n

\n Save your Event.\n

\n
\n\n {/* Tab: Saving */}\n\n
\n

Saving Event...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Event Saved

\n

\n Your Event has been saved.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue saving this Event.\n

\n }\n
\n\n {/* Actions */}\n\n
\n
\n {tabState.tab === 'overview' &&\n <>\n \n \n }\n {tabState.tab === 'success' &&\n <>\n \n View Event Details\n \n \n }\n
\n
\n
\n
\n
\n );\n};\n\nconst mapDispatchToProps = {\n setEventConfigCurrent: setEventConfigCurrent\n};\n\nexport default connect(\n null,\n mapDispatchToProps\n)(FormEventAdd);\n","import React, {Component} from 'react';\nimport {withKeycloak} from '@react-keycloak/web';\nimport {connect} from 'react-redux';\nimport {setEventConfigUserRefresh, setEventListRefresh} from '../../store/actions';\nimport {openHelpWidget} from '../../utils/pageFunctions';\nimport {\n getEventPermissions,\n populatePersonalEventUserConfig\n} from '../../utils/projectFunctions';\nimport FormEventAdd from '../../partials/forms/FormEventAdd';\nimport '../../css/challenge.css';\n\n/**\n * Page: Create Event form\n */\nclass XConnectEventAdd extends Component {\n constructor(props) {\n super(props);\n\n const pathArr = this.props.location.pathname.split('/');\n const eventId = Number(pathArr.pop());\n\n this.state = {\n event: null,\n eventId: eventId,\n formStage: 'event'\n };\n }\n\n // Handle form completion/error events\n handleFormEvent = (e, status, data) => {\n if (e === 'event' && status === 'complete') {\n this.setState({\n eventId: data.id\n }, () => {\n // Refresh User Configuration and Events\n this.props.setEventConfigUserRefresh(true);\n this.props.setEventListRefresh('personal_own');\n })\n }\n };\n\n // Set form toggling\n updateFormStage = (stage) => {\n this.setState({\n formStage: stage\n });\n };\n\n // Populate Event variables and text for Add Event\n setEventLimits = (ownEvents, userConfig) => {\n const created = ownEvents?.length ?? 0;\n const createdStr = (created > 0) ? created : 'no';\n const max = userConfig?.max_events ?? 0;\n let allowed = max - created;\n let eventsStr = (created === 1) ? 'Event' : 'Events';\n if (allowed < 0) {\n allowed = 0;\n }\n const textHave = ((created < max) || allowed > 0)\n ? 'You have created ' + createdStr + ' Personal ' + eventsStr + '. You may create ' + (allowed) + ' more.'\n : 'You have reached the maximum number of allotted Personal Events: ' + max + '. ';\n return {\n events_created: created,\n events_max: max,\n events_allowed: allowed,\n text: textHave\n };\n };\n\n render() {\n const {\n event_config,\n event_config_user,\n event_list_own,\n user\n } = this.props;\n\n const {\n eventId,\n formStage\n } = this.state;\n\n const userConfig = populatePersonalEventUserConfig(event_config, event_config_user);\n const eventLimits = this.setEventLimits(event_list_own, userConfig);\n const eventPermissions = getEventPermissions(user, event_list_own, eventId);\n\n // If User cannot create Events due to having reached a limit:\n if (!eventPermissions.sysop && formStage === 'event' && eventLimits.events_allowed <= 0) {\n return (\n <>\n
\n

\n Personal Events\n

\n

\n {eventLimits.text}\n

\n {((eventLimits.events_created >= eventLimits.events_max) || eventLimits.events_allowed === 0) &&\n

\n To create more, please\n contact .\n

\n }\n
\n \n )\n }\n\n // Display Add Event form\n return (\n <>\n
\n

\n Create a Personal Event\n

\n {!eventPermissions.sysop &&\n

\n {eventLimits.text}\n

\n }\n\n
\n

Personal Event

\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n keycloakReady: state.keycloakReady,\n event_config: state.event_config,\n event_config_current: state.event_config_current,\n event_config_user: state.event_config_user,\n event_list_own: state.event_list_own,\n tokens: {\n token: state.tokens.token\n },\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setEventConfigUserRefresh: setEventConfigUserRefresh,\n setEventListRefresh: setEventListRefresh\n};\n\nexport default withKeycloak(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(XConnectEventAdd)\n);\n","import React, {useState, useEffect} from 'react';\nimport {Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {useForm} from 'react-hook-form';\nimport {RESOURCES as resources} from '../../resourcesEvent';\nimport {setEventConfigCurrent} from '../../store/actions';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport BaseInput from '../fields/BaseInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport {EVENT_TABS} from '../../data/formTabs';\nimport 'react-datepicker/dist/react-datepicker.min.css';\nimport SelectInput from \"../fields/SelectInput\";\nimport {makeGetDataRequest} from \"../../utils/getRequest\";\n\n/**\n * Form: Add Event\n *\n * @param eventId\n * @param basePath\n * @param formStage\n * @param onFormEvent\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormEventEdit = (\n {\n eventId,\n formStage,\n onFormEvent,\n basePath = '',\n ...props\n }) => {\n\n // Set up form and state\n const {register, errors, formState, getValues, handleSubmit, setValue} = useForm({mode: 'onBlur'});\n\n // State: Form Stage (from parent)\n const [formStageState, updateFormStageState] = useState(\n {\n stage: formStage\n }\n );\n if (formStageState.stage !== formStage) {\n updateFormStageState({...formStageState, stage: formStage});\n }\n\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n // State: Current Tab\n const [tabState, setTab] = useState(EVENT_TABS.overview);\n\n\n useEffect(() => {\n const params = {\n id: eventId\n };\n const fetchData = () => {\n const request = makeGetDataRequest(resources, 'Event', 'GET_ONE', params);\n request.then(result => {\n if (result) {\n setValue('id', result?.id ?? '');\n setValue('name', result?.name ?? '');\n setValue('long_desc', result?.long_desc ?? '');\n setValue('short_desc', result?.short_desc ?? '');\n setValue('private', !!(result.private));\n return Promise.resolve(result);\n } else {\n console.log('Event Error: No result');\n return Promise.reject('Event failed');\n }\n }).catch(error => {\n console.log('Event Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n !formState.isDirty ||\n getValues('long_desc') === '' ||\n getValues('name') === '' ||\n getValues('short_desc') === '' ||\n tabState.tab === 'saving' ||\n (errors &&\n (\n errors.start_time ||\n errors.end_time ||\n errors.short_desc ||\n errors.long_desc ||\n errors.name\n\n ))\n );\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n data.id = eventId;\n data.start_time = parseInt(data.start_time, 10);\n data.end_time = parseInt(data.end_time, 10);\n data.private = (data.private.toLowerCase() === 'true');\n\n // console.log('SUBMIT data args: ', data);\n // Submit form to API\n setTab(EVENT_TABS.saving);\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'EventPersonal', 'UPDATE', data);\n let processed = false;\n request.then(result => {\n let error = null;\n let errorMessage = null;\n if (result?.data?.error) {\n error = result.data.error;\n errorMessage = result.data.message;\n } else if (result?.error) {\n error = result.error;\n errorMessage = result.message;\n }\n if (result.id && !error) {\n updateSuccessState({success: true, message: ''});\n setTab(EVENT_TABS.success);\n setPostEvent(result);\n processed = true;\n return Promise.resolve(result);\n } else {\n const message = (errorMessage) ? ' Error: \"' + errorMessage + '\"' : '';\n updateSuccessState({success: false, message: 'Sorry, your Event could not be created.' + message});\n setTab(EVENT_TABS.fail);\n processed = true;\n return Promise.resolve();\n }\n }).catch(error => {\n if (!processed) {\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Event: ' + error});\n setTab(EVENT_TABS.fail);\n return Promise.reject('Server Error');\n }\n });\n };\n\n // Process after Event form completion\n const setPostEvent = (data) => {\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n // Notify the page that Event has been created\n onFormEvent('event', 'complete', data);\n }\n };\n\n return (\n
\n
\n\n {/* Form Menu */}\n
\n
    \n
  • \n \n
  • \n
\n
\n\n
\n\n {/* Tab: Overview */}\n\n
\n

\n Enter basic information for your Event.\n

\n\n
\n {/* Event Name */}\n ),\n minLength: {\n value: 3,\n message: ()\n },\n maxLength: {\n value: 80,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.name ? 'input-error' : ''}`}\n >\n {errors.name && errors.name.message}\n \n
\n

\n Enter short and long Event descriptions. Markdown may be used in the long\n description, but no HTML is allowed.\n

\n
\n {/* Short Description */}\n )\n })}\n required\n className={`form-input ${errors.short_desc ? 'input-error' : ''}`}\n >\n {errors.short_desc && errors.short_desc.message}\n \n
\n
\n {/* Long Description */}\n \n {errors.long_desc && errors.long_desc.message}\n \n
\n
\n \n
\n

\n When all information is completed, click Update Event to Save the Event.\n

\n
\n\n {/* Tab: Confirm && Save */}\n\n
\n

\n Update your Event.\n

\n
\n\n {/* Tab: Saving */}\n\n
\n

Saving Event...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Event Saved

\n

\n Your Event has been updated.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue updating this Event.\n

\n }\n
\n\n {/* Actions */}\n\n
\n
\n {tabState.tab === 'overview' &&\n <>\n \n \n }\n {tabState.tab === 'success' &&\n <>\n \n View Event Details\n \n \n }\n
\n
\n
\n
\n
\n );\n};\n\nconst mapDispatchToProps = {\n setEventConfigCurrent: setEventConfigCurrent\n};\n\nexport default connect(\n null,\n mapDispatchToProps\n)(FormEventEdit);\n","import React, {useState, useCallback, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {useForm} from 'react-hook-form';\nimport {RESOURCES as resources} from '../../resourcesEvent';\nimport {setEventConfigCurrent} from '../../store/actions';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport NumberInput from '../fields/NumberInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\n\n/**\n * Form: Edit Event Configurations\n *\n * @param basePath\n * @param defaultConfig\n * @param eventType\n * @param eventConfig\n * @param eventId\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormEventConfigEdit = (\n {\n basePath = '',\n defaultConfig,\n eventType,\n eventConfig,\n eventId,\n ...props\n }) => {\n\n // Set up form and state\n const {register, errors, getValues, handleSubmit, setValue} = useForm({mode: 'onBlur'});\n\n const [eventValues, setEventValues] = useState(eventConfig.max_shares ?? defaultConfig.max_shares);\n\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n saving: false,\n success: false\n }\n );\n\n const setDefaultConfigMessage = (type) => {\n if (defaultConfig[type]) {\n return ' The default is ' + defaultConfig[type] + '.';\n }\n return '';\n };\n\n // Callback: Set Configuration values and update form values\n const updateConfigurations = useCallback((data, defaultConfig) => {\n setValue('max_shares', data?.max_shares ?? defaultConfig.max_shares);\n }, [setValue]);\n\n // Effect: Get Event data\n useEffect(() => {\n const updateData = () => {\n setEventValues(eventConfig);\n props.setEventConfigCurrent({\n max_shares: eventConfig.max_shares ?? defaultConfig.max_shares,\n });\n };\n\n return updateData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [eventId, eventConfig, defaultConfig]);\n\n // Effect: Update Event Configuration values when global values are populated\n useEffect(\n () => {\n const updateConfig = () => {\n const max_shares = eventValues?.max_shares ?? defaultConfig.max_shares;\n let config = {\n max_shares: (!max_shares || max_shares === '') ? defaultConfig.max_shares : max_shares,\n };\n updateConfigurations(config, defaultConfig);\n };\n\n return updateConfig();\n\n }, [defaultConfig, eventValues, updateConfigurations]\n );\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n getValues('max_shares') === '' ||\n (errors &&\n (\n errors.max_shares\n ))\n );\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // Set parameters from form state\n data.id = eventId;\n\n // Submit form to API\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const params = {\n id: data.id,\n value: data.max_shares\n }\n const request = makePostDataRequest(resources, 'EventPersonalUpdateMaxShares', 'PUT', params);\n request.then(result => {\n if (result && result.id) {\n updateSuccessState({saving: false, success: true, message: ''});\n // Store Event Configuration for Dataset\n props.setEventConfigCurrent({\n max_shares: result.max_shares ?? null,\n });\n return Promise.resolve(result);\n } else {\n updateSuccessState({\n saving: false,\n success: false,\n message: 'Sorry, Event Configurations could not be updated.'\n });\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Update Event Configurations Error: ', error);\n updateSuccessState({\n saving: false,\n success: false,\n message: 'Sorry, there was an error updating Event Configurations: ' + error\n });\n return Promise.reject('Server Error');\n });\n };\n\n const eventPath = (eventType === 'personal' || eventType === 'personal_own') ? 'event/personal' : 'event/public';\n\n return (\n
\n
\n
\n
\n

\n If this Event needs more shares outside of the Global Configuration and User Configuration,\n please update here.\n

\n
\n
\n )\n })}\n className={`form-input ${errors.max_shares ? 'input-error' : ''}`}\n >\n {errors.max_shares && errors.max_shares.message}\n \n
\n
\n
\n\n
\n {successState.saving &&\n <>\n

\n Saving Event Configurations...\n

\n \n \n }\n {successState.success &&\n

\n Event Configurations updated.\n

\n }\n {!successState.success && successState.message !== '' &&\n

\n {successState.message}\n

\n }\n \n
\n
\n {successState.success &&\n \n View Event Details\n \n }\n
\n
\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n event_config: state.event_config,\n event_list_own: state.event_list_own,\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setEventConfigCurrent: setEventConfigCurrent\n};\n\nFormEventConfigEdit.propTypes = {\n basePath: PropTypes.string,\n defaultConfig: PropTypes.any,\n eventType: PropTypes.any,\n eventConfig: PropTypes.any,\n eventId: PropTypes.any,\n setEventConfigCurrent: PropTypes.any,\n user: PropTypes.any,\n event_list_own: PropTypes.any,\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(FormEventConfigEdit);","import React, {Component} from 'react';\nimport {withKeycloak} from '@react-keycloak/web';\nimport {connect} from 'react-redux';\nimport {setEventConfigUserRefresh, setEventListRefresh} from '../../store/actions';\nimport FormEventEdit from '../../partials/forms/FormEventEdit';\nimport FormEventConfigEdit from \"../../partials/forms/FormEventConfigEdit\";\nimport {getEventPermissions, inUserList} from '../../utils/projectFunctions';\nimport '../../css/challenge.css';\n\n\n/**\n * Page: Create Event form\n */\nclass XConnectEventEdit extends Component {\n constructor(props) {\n super(props);\n\n const pathArr = this.props.location.pathname.split('/');\n const eventType = (this.props.location.pathname.indexOf('personal') !== -1) ? 'personal' : 'public';\n const eventId = pathArr[pathArr.length - 2];\n this.state = {\n event: null,\n eventId: eventId,\n eventConfig: {\n max_shares: null,\n },\n formStage: 'event',\n eventType: eventType\n };\n }\n\n // Handle form completion/error events\n handleFormEvent = (e, status, data) => {\n if (e === 'event' && status === 'complete') {\n this.setState({\n eventId: data.id,\n eventConfig: {\n max_shares: data.max_shares ?? null\n }\n }, () => {\n // Refresh User Configuration and Events\n this.props.setEventConfigUserRefresh(true);\n this.props.setEventListRefresh('personal_own');\n })\n }\n };\n\n render() {\n const {\n event_config,\n event_list_own,\n event_list_subscribed,\n user\n } = this.props;\n\n const {\n eventId,\n eventConfig,\n eventType,\n formStage\n } = this.state;\n const inSubscribedEvents = (inUserList(event_list_subscribed, eventId));\n const eventPermissions = getEventPermissions(user, event_list_own, eventId);\n\n // Display Edit Event form\n return (\n <>\n
\n

\n Edit a Personal Event\n

\n\n {!user.is_sysop && !inSubscribedEvents && !eventPermissions.owner &&\n
\n
\n
\n You are not authorized to edit this Project.\n
\n
\n
\n }\n {(user.is_sysop || inSubscribedEvents || eventPermissions.owner) &&\n
\n

Personal Event

\n
\n
\n
\n \n
\n
\n
\n
\n }\n\n {user.is_sysop &&\n
\n
\n
\n

Edit Personal Event Max Invites

\n \n
\n
\n
\n }\n
\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n keycloakReady: state.keycloakReady,\n event_config: state.event_config,\n event_config_current: state.event_config_current,\n event_config_user: state.event_config_user,\n event_list_subscribed: state.event_list_subscribed,\n event_list_own: state.event_list_own,\n tokens: {\n token: state.tokens.token\n },\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setEventConfigUserRefresh: setEventConfigUserRefresh,\n setEventListRefresh: setEventListRefresh\n};\n\nexport default withKeycloak(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(XConnectEventEdit)\n);\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {filterListByValue, sortListByValue} from '../../utils/filterFunctions';\nimport {setEventsList} from '../../utils/projectFunctions';\nimport APIEvents from '../../utils/APIEvents';\nimport {Select, Header, Input} from '../../partials/filters/ChallengeFilterComponents';\nimport '../../css/challenge.css';\nimport '../../css/search-filter.css';\n\n/**\n * Set current list type based on Event route\n *\n * @param path\n * @returns {string}\n */\nconst setListType = (path) => {\n if (path.indexOf('events/personal') !== -1) {\n return 'events-personal-own';\n } else if (path.indexOf('events/public') !== -1) {\n return 'events-public';\n } else if (path.indexOf('events/sharing') !== -1) {\n return 'events-shared';\n } else if (path.indexOf('events/subscribed') !== -1) {\n return 'events-subscribed';\n }\n return 'events-personal-own';\n};\n\n/**\n * Set page title based on type of Events requested\n *\n * @param listType\n * @return {string}\n */\nconst setEventPageTitle = (listType) => {\n if (listType === 'events-personal-own') {\n return 'My Personal Events';\n } else if (listType === 'events-public') {\n return 'Public Events';\n } else if (listType === 'events-shared') {\n return 'Events Shared with You';\n } else if (listType === 'events-subscribed') {\n return 'Joined Events';\n }\n return 'Events';\n};\n\nconst sortTypes = {\n // latest: 'start_time',\n alphabetically: 'name',\n}\n\n/**\n * Page: Events List (Personal (Own), (Joined), Shared (Joined))\n */\nclass XConnectEvents extends Component {\n constructor(props) {\n super(props);\n\n const listType = setListType(props.location.pathname);\n const pageTitle = setEventPageTitle(listType);\n this.state = {\n active: true,\n filteredList: [],\n listTotals: {\n eventJoined: 0,\n eventOwn: 0,\n eventPersonal: 0,\n eventShared: 0,\n eventSubscribed: 0\n },\n listType: listType,\n mainList: [],\n pageTitle: pageTitle,\n pathname: '',\n eventList: [],\n publicEventTotal: 0,\n resetList: true,\n search: {\n value: ''\n },\n sort: {\n value: 'alphabetically'\n }\n };\n }\n\n componentDidMount() {\n if (this.state.resetList === true) {\n this.setMainList();\n this.setReset(false);\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.state.resetList === true) {\n this.setMainList();\n this.setReset(false);\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n // Update state on location change\n if (nextProps.location.pathname !== prevState.pathname) {\n const listType = setListType(nextProps.location.pathname);\n const pageTitle = setEventPageTitle(listType);\n if (document.getElementById('searchHeader')) {\n document.getElementById('searchHeader').reset();\n }\n\n return {\n filteredList: [],\n listType: listType,\n pageTitle: pageTitle,\n pathname: nextProps.location.pathname,\n eventList: [],\n resetList: true,\n search: {\n value: ''\n },\n sort: {\n value: 'alphabetically'\n }\n };\n }\n\n // Reset current list if stored totals have changed or populated\n if (\n prevState.listTotals.eventSubscribed !== nextProps.event_list_subscribed.length\n ) {\n return {\n listTotals: {\n eventSubscribed: nextProps.event_list_subscribed.length\n },\n resetList: true\n }\n }\n\n return null;\n }\n\n // Handle on-page Events API results (instead of stored results)\n handleEventListResult = (data) => {\n this.setState({\n eventList: data,\n resetList: false,\n search: {\n value: ''\n },\n sort: {\n value: 'alphabetically'\n }\n }, () => {\n this.setMainList();\n });\n };\n\n // Handle event from Filter By Event Name\n setSearch = (value) => {\n this.setState({\n search: {value: value}\n }, () => {\n this.filterAndSortList();\n });\n }\n\n // Handle event from Active Filter\n setActive = (value) => {\n this.setState({\n active: (value === 'active'),\n resetList: true,\n search: {\n value: ''\n },\n sort: {\n value: 'alphabetically'\n }\n });\n };\n\n // Handle event from Sort By filter\n setSort = (value) => {\n this.setState({\n sort: {value: value}\n }, () => {\n this.filterAndSortList();\n });\n }\n\n setReset = (value) => {\n this.setState({\n resetList: value\n }, () => {\n this.filterAndSortList();\n });\n }\n\n // Populate page list based on listType\n setMainList = () => {\n let mainList;\n switch (this.state.listType) {\n case 'events-personal-own':\n mainList = this.state.eventList;\n break;\n case 'events-subscribed':\n mainList = this.props.event_list_subscribed;\n break;\n default:\n mainList = this.state.eventList;\n break;\n }\n this.setState({\n mainList: mainList\n }, () => {\n this.filterAndSortList();\n })\n }\n\n filterAndSortList = () => {\n let tempList = JSON.parse(JSON.stringify(this.state.mainList));\n if (tempList && tempList.length > 0) {\n // Apply Text Filter\n tempList = filterListByValue(tempList, this.state.search?.value?.toLowerCase(), ['name', 'short_desc']);\n\n // Apply sorting\n tempList = sortListByValue(tempList, this.state.sort?.value, sortTypes);\n }\n this.setState({\n filteredList: tempList\n })\n }\n\n render() {\n const {\n event_list_subscribed\n } = this.props;\n\n const {\n active,\n eventList,\n filteredList,\n listType,\n pageTitle,\n resetList,\n search,\n sort\n } = this.state;\n\n return (\n <>\n
\n

\n {pageTitle}\n

\n
\n
\n this.setSearch(e.target.value)}\n className=\"control-search\"\n />\n
\n this.setSort(e.target.value)}\n className=\"control-sort\"\n />\n
\n Sort By:\n
\n
\n
\n
\n\n {/* Row: Personal Events (Own) */}\n {listType === 'events-personal-own' &&\n
\n {[...setEventsList(listType, filteredList, eventList, 'No Personal Events found.')]}\n
\n }\n\n {/* Row: Public Events */}\n {listType === 'events-public' &&\n
\n {[...setEventsList(listType,filteredList, eventList, 'No Public Events found.')]}\n
\n }\n\n {/* Row: Events shared with User */}\n {listType === 'events-shared' &&\n
\n {[...setEventsList(listType, filteredList, event_list_subscribed, 'No Events have been shared with you, or you have joined all Events.')]}\n
\n }\n\n {/* Row: Events joined by User */}\n {listType === 'events-subscribed' &&\n
\n {[...setEventsList(listType, filteredList, event_list_subscribed, 'You have not yet joined any Events.')]}\n
\n }\n
\n\n {listType === 'events-personal-own' &&\n this.handleEventListResult(e)}\n />\n }\n {listType === 'events-public' &&\n this.handleEventListResult(e)}\n />\n }\n {listType === 'events-shared' &&\n this.handleEventListResult(e)}\n />\n }\n {listType === 'events-subscribed' &&\n this.handleEventListResult(e)}\n />\n }\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n event_list_own: state.event_list_own,\n event_list_public: state.event_list_public,\n event_list_subscribed: state.event_list_subscribed\n };\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n null\n )(XConnectEvents)\n);\n","import React, {Component} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport Iframe from 'react-iframe';\nimport {inUserList} from '../../utils/projectFunctions';\nimport APIAirmeetSessions from '../../utils/APIAirmeetSessions';\nimport APIEvents from '../../utils/APIEvents';\nimport LoadingIndicator from '../../partials/LoadingIndicator';\nimport {airmeetStyles} from '../../utils/stylesAirmeet';\n\n/**\n * Page: Airmeet embed for specified Event\n */\nclass XConnectEventAirmeet extends Component {\n constructor(props) {\n super(props);\n // Get Event type and ID from path\n const pathArr = props.location.pathname.split('/');\n const eventIdx = pathArr.findIndex(c => c === 'event');\n let eventType = pathArr[eventIdx + 1];\n let eventId;\n if (eventType === 'personal') {\n // If path is /x/{substrate}/event/type/{id}/{subpage}\n eventId = Number(pathArr[eventIdx + 2]);\n } else {\n // If path is /x/{substrate}/event/{id}/{subpage}\n eventId = pathArr[(pathArr.length - 1)];\n eventType = null;\n }\n // Get Airmeet type and UUID from path\n const airmeetIdx = pathArr.findIndex(c => c === 'rtc');\n let airmeetType = pathArr[airmeetIdx + 1];\n let airmeetId = pathArr[airmeetIdx + 2];\n\n this.state = {\n event: null,\n eventId: eventId,\n eventType: eventType,\n airmeetType: airmeetType,\n airmeetId: airmeetId,\n airmeetUrl: null\n };\n }\n\n // Store Event and set the Airmeet URL\n setEvent = (data) => {\n this.setState({\n event: data\n }, () => {\n if (this.state.airmeetType === 'e') {\n this.setAirmeetURL(null);\n }\n });\n };\n\n // Set the Airmeet URL from the Event or Session Entry Link\n setAirmeetURL = (sessions) => {\n let url;\n if (sessions) {\n const session = sessions.find(r => r.session_id === this.state.airmeetId);\n url = session?.entry_link ?? null;\n } else {\n url = this.state.event?.entry_link ?? null;\n }\n this.setState({\n airmeetUrl: url\n });\n };\n\n render() {\n const {\n event_list_own,\n event_list_subscribed,\n user\n } = this.props;\n\n const {\n airmeetType,\n airmeetUrl,\n event,\n eventId,\n eventType\n } = this.state;\n\n const inSubscribedEvents = (inUserList(event_list_subscribed, eventId));\n const inOwnEvents = (inUserList(event_list_own, eventId));\n\n return (\n
\n {/* User is not owner or has not joined Event */}\n {!user.is_sysop && !inSubscribedEvents && !inOwnEvents &&\n <>\n
\n
\n

\n {(event && event.name) ? event.name : 'Event'}\n

\n \n Back to Event\n \n
\n
\n
\n
\n
\n You do not have permission to access this Event's Airmeet\n Events or Sessions.\n
\n
\n
\n \n }\n\n {/* User is owner or has joined Event */}\n {(user.is_sysop || inSubscribedEvents || inOwnEvents) &&\n <>\n {!eventId &&\n \n }\n\n {event && eventId &&\n <>\n
\n
\n

\n {(event.name) ? event.name : 'Event'}\n

\n \n Back to Event\n \n
\n
\n\n
\n
\n {airmeetUrl &&\n \n }\n
\n
\n\n {airmeetType === 's' &&\n this.setAirmeetURL(e)}\n refresh={false}\n />\n }\n \n }\n\n \n \n }\n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n event_list_own: state.event_list_own,\n event_list_subscribed: state.event_list_subscribed,\n user: state.user\n };\n};\n\nexport default withRouter(\n connect(\n mapStateToProps\n )(XConnectEventAirmeet)\n);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {setProjectId} from '../../store/actions';\nimport SubstrateGreeting from '../../partials/SubstrateGreeting';\n\nclass XEventsStatic extends Component {\n componentDidMount() {\n this.props.setProjectId(null);\n }\n\n render() {\n\n // When Event objects are implemented, rely on totals to display\n const displayEvents = false;\n\n return (\n <>\n
\n

\n Xrathus Events\n

\n \n\n
\n
\n

Join our Community Events and Programs

\n
\n
\n
\n {displayEvents &&\n
\n {/* Place Event objects or components in columns */}\n
\n }\n {!displayEvents &&\n
\n There are no upcoming events at this time.\n
\n }\n
\n
\n \n );\n }\n}\n\nconst mapDispatchToProps = {\n setProjectId: setProjectId\n};\n\nXEventsStatic.propTypes = {\n setProjectId: PropTypes.any,\n};\n\nexport default connect(\n null,\n mapDispatchToProps\n)(XEventsStatic);\n","export const US_STATES = [\n { id: 'AK', abbreviation: 'AK', name: 'Alaska' },\n { id: 'AL', abbreviation: 'AL', name: 'Alabama' },\n { id: 'AR', abbreviation: 'AR', name: 'Arkansas' },\n { id: 'AS', abbreviation: 'AS', name: 'American Samoa' },\n { id: 'AZ', abbreviation: 'AZ', name: 'Arizona' },\n { id: 'CA', abbreviation: 'CA', name: 'California' },\n { id: 'CO', abbreviation: 'CO', name: 'Colorado' },\n { id: 'CT', abbreviation: 'CT', name: 'Connecticut' },\n { id: 'DC', abbreviation: 'DC', name: 'District of Columbia' },\n { id: 'DE', abbreviation: 'DE', name: 'Delaware' },\n { id: 'FL', abbreviation: 'FL', name: 'Florida' },\n { id: 'GA', abbreviation: 'GA', name: 'Georgia' },\n { id: 'GU', abbreviation: 'GU', name: 'Guam' },\n { id: 'HI', abbreviation: 'HI', name: 'Hawaii' },\n { id: 'IA', abbreviation: 'IA', name: 'Iowa' },\n { id: 'ID', abbreviation: 'ID', name: 'Idaho' },\n { id: 'IL', abbreviation: 'IL', name: 'Illinois' },\n { id: 'IN', abbreviation: 'IN', name: 'Indiana' },\n { id: 'KS', abbreviation: 'KS', name: 'Kansas' },\n { id: 'KY', abbreviation: 'KY', name: 'Kentucky' },\n { id: 'LA', abbreviation: 'LA', name: 'Louisiana' },\n { id: 'MA', abbreviation: 'MA', name: 'Massachusetts' },\n { id: 'MD', abbreviation: 'MD', name: 'Maryland' },\n { id: 'ME', abbreviation: 'ME', name: 'Maine' },\n { id: 'MI', abbreviation: 'MI', name: 'Michigan' },\n { id: 'MN', abbreviation: 'MN', name: 'Minnesota' },\n { id: 'MO', abbreviation: 'MO', name: 'Missouri' },\n { id: 'MS', abbreviation: 'MS', name: 'Mississippi' },\n { id: 'MT', abbreviation: 'MT', name: 'Montana' },\n { id: 'NC', abbreviation: 'NC', name: 'North Carolina' },\n { id: 'ND', abbreviation: 'ND', name: 'North Dakota' },\n { id: 'NE', abbreviation: 'NE', name: 'Nebraska' },\n { id: 'NH', abbreviation: 'NH', name: 'New Hampshire' },\n { id: 'NJ', abbreviation: 'NJ', name: 'New Jersey' },\n { id: 'NM', abbreviation: 'NM', name: 'New Mexico' },\n { id: 'NV', abbreviation: 'NV', name: 'Nevada' },\n { id: 'NY', abbreviation: 'NY', name: 'New York' },\n { id: 'OH', abbreviation: 'OH', name: 'Ohio' },\n { id: 'OK', abbreviation: 'OK', name: 'Oklahoma' },\n { id: 'OR', abbreviation: 'OR', name: 'Oregon' },\n { id: 'PA', abbreviation: 'PA', name: 'Pennsylvania' },\n { id: 'PR', abbreviation: 'PR', name: 'Puerto Rico' },\n { id: 'RI', abbreviation: 'RI', name: 'Rhode Island' },\n { id: 'SC', abbreviation: 'SC', name: 'South Carolina' },\n { id: 'SD', abbreviation: 'SD', name: 'South Dakota' },\n { id: 'TN', abbreviation: 'TN', name: 'Tennessee' },\n { id: 'TX', abbreviation: 'TX', name: 'Texas' },\n { id: 'UT', abbreviation: 'UT', name: 'Utah' },\n { id: 'VA', abbreviation: 'VA', name: 'Virginia' },\n { id: 'VI', abbreviation: 'VI', name: 'Virgin Islands' },\n { id: 'VT', abbreviation: 'VT', name: 'Vermont' },\n { id: 'WA', abbreviation: 'WA', name: 'Washington' },\n { id: 'WI', abbreviation: 'WI', name: 'Wisconsin' },\n { id: 'WV', abbreviation: 'WV', name: 'West Virginia' },\n { id: 'WY', abbreviation: 'WY', name: 'Wyoming' }\n];","import React, {useState} from 'react';\nimport {Link} from 'react-router-dom';\nimport {useForm} from 'react-hook-form';\nimport {RESOURCES as resources} from '../../resources';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport BaseInput from '../fields/BaseInput';\nimport SelectInput from '../fields/SelectInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport IconUser from '../images/IconUser';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport {BOOLEAN_OPTIONS} from '../../data/objects';\nimport {US_STATES} from '../../data/usStates';\nimport '../../css/organization.css';\n\n/**\n * Form: Add Organization\n *\n * @return {*}\n * @constructor\n */\nexport default function FormOrganizationAdd() {\n\n // Set up form and state\n const {register, errors, formState, getValues, handleSubmit} = useForm({mode: 'onBlur'});\n\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n\n\n success: false\n }\n );\n // State: Current Tab\n const [formStageState, setFormStageState] = useState('form');\n const [activeState, setActiveState] = useState(true);\n\n const handleFormChange = (e) => {\n if (e.name === 'active') {\n setActiveState((e.value.toString() === 'true'));\n }\n };\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n !formState.isDirty ||\n getValues('name') === '' ||\n getValues('description') === '' ||\n formStageState === 'saving' ||\n (errors &&\n (\n errors.name ||\n errors.description\n ))\n );\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // console.log('SUBMIT fieldState: ', fieldState);\n // console.log('SUBMIT data args before: ', data);\n\n data.active = activeState;\n\n // console.log('SUBMIT data args: ', data);\n\n // Submit form to API\n setFormStageState('saving');\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'Organization', 'CREATE', data);\n request.then(result => {\n if (result && result.id) {\n updateSuccessState({success: true, message: ''});\n setFormStageState('success');\n return Promise.resolve(result);\n } else {\n updateSuccessState({success: false, message: 'Sorry, your Organization could not be created.'});\n setFormStageState('fail');\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Add Organization Error: ', error);\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Organization: ' + error});\n setFormStageState('fail');\n return Promise.reject('Server Error');\n });\n };\n\n return (\n
\n
\n\n
\n\n {/* Tab: Overview */}\n\n
\n

\n Enter basic Organization information.\n

\n
\n {/* Title */}\n ),\n maxLength: {\n value: 180,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.title ? 'input-error' : ''}`}\n >\n {errors.title && errors.title.message}\n \n
\n
\n {/* Description */}\n ),\n maxLength: {\n value: 300,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.description ? 'input-error' : ''}`}\n >\n {errors.description && errors.description.message}\n \n
\n
\n {/* Address */}\n \n \n
\n
\n
\n {/* State */}\n \n \n
\n
\n {/* city */}\n \n \n
\n
\n {/* Zip */}\n \n \n
\n
\n
\n
\n {/* Country */}\n \n \n
\n
\n {/* Active */}\n handleFormChange({name: 'active', value: e.value})}\n optionSelected={activeState}\n className=\"form-input\"\n >\n \n
\n
\n
\n {/* Website */}\n \n \n
\n\n
\n\n {/* Tab: Saving */}\n\n
\n

Saving Organization...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Organization Saved

\n

\n Your Organization has been saved.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue saving this Organization.\n

\n }\n
\n\n {/* Actions */}\n\n
\n {formStageState !== 'success' &&\n \n }\n {formStageState === 'success' &&\n <>\n \n \n Admin\n \n \n }\n
\n
\n
\n
\n );\n}\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport FormOrganizationAdd from '../partials/forms/FormOrganizationAdd';\nimport '../css/challenge.css';\n\n/**\n * Page: Create Organization\n */\nclass XOrganizationAdd extends Component {\n\n render() {\n\n return (\n <>\n
\n

\n Create an Organization\n

\n\n
\n

Organization

\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n \n );\n }\n}\n\nexport default withRouter(XOrganizationAdd);\n","import React, {useState, useEffect} from 'react';\nimport {Link} from 'react-router-dom';\nimport {useForm} from 'react-hook-form';\nimport {RESOURCES as resources} from '../../resources';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport BaseInput from '../fields/BaseInput';\nimport SelectInput from '../fields/SelectInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport IconUser from '../images/IconUser';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport {US_STATES} from '../../data/usStates';\nimport '../../css/organization.css';\nimport {BOOLEAN_OPTIONS} from '../../data/objects';\nimport {makeGetDataRequest} from '../../utils/getRequest';\n\n/**\n * Form: Edit Organization\n *\n * @return {*}\n * @constructor\n */\nexport default function FormOrganizationEdit({pathArr}) {\n\n // Set up form and state\n const {register, errors, formState, getValues, handleSubmit, setValue} = useForm({mode: 'onBlur'});\n\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n // State: Current Tab\n const [formStageState, setFormStageState] = useState('form');\n\n useEffect(() => {\n const orgId = pathArr[3];\n const params = {\n id: orgId,\n getBy: 'id'\n };\n const fetchData = () => {\n const request = makeGetDataRequest(resources, 'Organization', 'GET_ONE', params);\n request.then(result => {\n if (result) {\n setValue('id', result?.id ?? '');\n setValue('active', !!(result.active));\n setValue('address', result?.address ?? '');\n setValue('city', result?.city ?? '');\n setValue('country', result?.country ?? '');\n setValue('description', result?.description ?? '');\n setValue('name', result?.name ?? '');\n setValue('state', result?.state ?? '');\n setValue('website', result?.website ?? '');\n setValue('zip', result?.zip ?? '');\n return Promise.resolve(result);\n } else {\n console.log('Challenge Error: No result');\n return Promise.reject('Challenge failed');\n }\n }).catch(error => {\n console.log('Challenge Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n !formState.isDirty ||\n getValues('name') === '' ||\n getValues('description') === '' ||\n formStageState === 'saving' ||\n (errors &&\n (\n errors.name ||\n errors.description\n ))\n );\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // console.log('SUBMIT data args before: ', data);\n\n data.id = parseInt(getValues('id'), 10);\n data.active = (getValues('active') === 'true');\n // console.log('SUBMIT data args: ', data);\n // Submit form to API\n setFormStageState('saving');\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'Organization', 'UPDATE', data);\n request.then(result => {\n if (result && result.id) {\n updateSuccessState({success: true, message: ''});\n setFormStageState('success');\n return Promise.resolve(result);\n } else {\n updateSuccessState({success: false, message: 'Sorry, your Organization could not be updated.'});\n setFormStageState('fail');\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Add Organization Error: ', error);\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Organization: ' + error});\n setFormStageState('fail');\n return Promise.reject('Server Error');\n });\n };\n\n return (\n
\n
\n\n
\n\n {/* Tab: Overview */}\n\n
\n

\n Edit basic Organization information.\n

\n
\n {/* Title */}\n ),\n maxLength: {\n value: 180,\n message: ()\n }\n })}\n disabled\n className={`form-input ${errors.title ? 'input-error' : ''}`}\n >\n {errors.title && errors.title.message}\n \n
\n
\n {/* Description */}\n ),\n maxLength: {\n value: 300,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.description ? 'input-error' : ''}`}\n >\n {errors.description && errors.description.message}\n \n
\n
\n {/* Address */}\n \n \n
\n
\n
\n {/* State */}\n \n \n
\n
\n {/* city */}\n \n \n
\n
\n {/* Zip */}\n \n \n
\n
\n
\n
\n {/* Country */}\n \n \n
\n
\n {/* Active */}\n \n \n
\n
\n
\n {/* Website */}\n \n \n
\n \n\n
\n\n {/* Tab: Saving */}\n\n
\n

Updating Organization...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Organization Updated

\n

\n Your Organization has been updated.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue updating this Organization.\n

\n }\n
\n\n {/* Actions */}\n\n
\n {formStageState !== 'success' &&\n \n }\n {formStageState === 'success' &&\n <>\n \n \n Admin\n \n \n }\n
\n
\n
\n
\n );\n}\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport FormOrganizationEdit from '../partials/forms/FormOrganizationEdit';\nimport '../css/challenge.css';\n\n/**\n * Page: Create Organization\n */\nclass XOrganizationEdit extends Component {\n constructor(props) {\n super(props);\n\n const pathArr = this.props.location.pathname.split('/');\n this.state = {\n pathArr: pathArr\n };\n }\n render() {\n const {\n pathArr\n } = this.state;\n\n return (\n <>\n
\n

\n Edit Organization\n

\n\n
\n

Organization

\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n \n );\n }\n}\n\nexport default withRouter(XOrganizationEdit);\n","import React, {useState, useEffect} from 'react';\nimport {Link} from 'react-router-dom';\nimport ReactMarkdown from 'react-markdown';\nimport {RESOURCES as resources} from '../../resources';\nimport {makeGetDataRequest} from '../../utils/getRequest';\nimport '../../css/organization.css';\n\n/**\n * Form: Edit Organization\n *\n * @return {*}\n * @constructor\n */\nexport default function OrganizationDetails({pathArr, isSysop, basePath = ''}) {\n\n const [fieldState, setFieldState] = useState({\n id: '',\n active: true,\n address: '',\n city: '',\n country: '',\n description: '',\n name: '',\n state: '',\n website: '',\n zip: ''\n });\n\n useEffect(() => {\n const orgId = pathArr[3];\n const params = {\n id: orgId,\n getBy: 'id'\n };\n const fetchData = () => {\n const request = makeGetDataRequest(resources, 'Organization', 'GET_ONE', params);\n request.then(result => {\n if (result) {\n setFieldState(result);\n return Promise.resolve(result);\n } else {\n console.log('Organization Error: No result');\n return Promise.reject('Organization failed');\n }\n }).catch(error => {\n console.log('Organization Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const website = (fieldState?.website?.indexOf('http') === -1) ? 'https://' + fieldState.website : fieldState.website;\n\n return (\n
\n
\n {fieldState.name &&\n <>\n

Name

\n

{fieldState.name}

\n \n }\n {fieldState.description &&\n <>\n

Description

\n \n\n \n }\n {fieldState.address &&\n <>\n

Address Information

\n

\n {fieldState.address}\n {fieldState.city &&\n <>, {fieldState.city}\n }\n {fieldState.state &&\n <>, {fieldState.state}\n }\n {fieldState.zip &&\n <> {fieldState.zip}\n }\n {fieldState.country &&\n <> {fieldState.country}\n }\n

\n \n }\n {fieldState.website &&\n <>\n

Website

\n

\n \n {fieldState.website}\n \n

\n \n }\n {fieldState.active &&\n <>\n

Active

\n

{fieldState.active ? 'Yes' : 'No'}

\n \n }\n\n {isSysop &&\n
\n \n Edit Organization\n \n
\n }\n
\n
\n );\n}\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport OrganizationDetails from '../partials/forms/OrganizationDetails';\nimport '../css/challenge.css';\nimport {connect} from 'react-redux';\n\n/**\n * Page: View Organization\n */\nclass XOrganizationView extends Component {\n constructor(props) {\n super(props);\n\n const pathArr = this.props.location.pathname.split('/');\n this.state = {\n pathArr: pathArr\n };\n }\n render() {\n const {user} = this.props;\n const {\n pathArr\n } = this.state;\n\n return (\n <>\n
\n

\n Organization Overview\n

\n\n
\n

Organization

\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: state.user\n };\n};\n\nexport default withRouter(\n connect(\n mapStateToProps\n)(XOrganizationView));\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {setProjectId} from '../../store/actions';\nimport DashboardChallenges from '../../partials/DashboardChallenges';\nimport DashboardClustersPersona from '../../partials/DashboardClustersPersona';\nimport DashboardClustersProjects from '../../partials/DashboardClustersProjects';\nimport DashboardProjects from '../../partials/DashboardProjects';\nimport SubstrateGreeting from '../../partials/SubstrateGreeting';\nimport '../../css/challenge.css';\n\nclass XHub extends Component {\n constructor(props) {\n super(props);\n this.state = {\n challengeList: [],\n projectList: [],\n };\n }\n\n componentDidMount() {\n this.props.setProjectId(null);\n }\n\n /**\n * Handle event from Dashboard Challenges or Projects\n *\n * @param type\n * @param list\n */\n onAssembledProjects = (type, list) => {\n if (type === 'challenge') {\n this.setState({\n challengeList: list\n });\n }\n if (type === 'project') {\n this.setState({\n projectList: list\n });\n }\n };\n\n render() {\n const {\n challengeList,\n projectList\n } = this.state;\n\n return (\n
\n

\n My Hub\n

\n \n\n {!challengeList.length && !projectList.length &&\n
\n
\n
\n You are on the Hub Dashboard, which will be populated with your choices once\n you browse and join Challenges, subscribe to Clusters, create, or join\n Projects and Training courses.\n
\n
\n
\n }\n\n {/* Row: Challenges and Projects */}\n\n
\n this.onAssembledProjects('challenge', e)}/>\n this.onAssembledProjects('project', e)}/>\n
\n\n {/* Row: Discourse Clusters (by Persona) */}\n\n
\n
\n

Clusters

\n
\n
\n\n
\n
\n \n
\n
\n\n {/* Row: Discourse Clusters (Challenges & Projects) */}\n\n \n\n
\n );\n }\n}\n\nconst mapDispatchToProps = {\n setProjectId: setProjectId\n};\n\nXHub.propTypes = {\n setProjectId: PropTypes.any,\n};\n\nexport default connect(\n null,\n mapDispatchToProps\n)(XHub);\n","import React, {Component} from 'react';\nimport '../../css/static.css';\n\nclass XHubFiles extends Component {\n render() {\n\n return (\n <>\n
\n

\n Files\n

\n
\n
\n
\n

\n For the current Release, this feature is not\n available.\n

\n

\n Once available, the Files menu in the Dashboard will facilitate uploads, reviews\n and sharing. File editing is available using the Xrathus Workspace.\n

\n
\n
\n
\n
\n \n );\n }\n}\n\nexport default XHubFiles;\n","import React, {Component} from 'react';\nimport '../../css/static.css';\n\nclass XHubModels extends Component {\n render() {\n\n return (\n <>\n
\n

\n Models\n

\n
\n
\n
\n

\n For the current Release, this feature is not\n available.\n

\n

\n Once available, the Models menu will enable multi-party submissions for reviews,\n reiterations, and automated feedback for improvements.\n

\n
\n
\n
\n
\n \n );\n }\n}\n\nexport default XHubModels;\n","import React, {Component} from 'react';\nimport '../../css/static.css';\n\nclass XHubPipelines extends Component {\n render() {\n\n return (\n <>\n
\n

\n Pipelines\n

\n
\n
\n
\n

\n For the current Release, this feature is not\n available.\n

\n

\n Once available, the Pipelines section will provide a visual editor to create,\n customize, and extend data science pipelines.\n

\n
\n
\n
\n
\n \n );\n }\n}\n\nexport default XHubPipelines;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {RESOURCES as resources} from '../resourcesProject';\nimport {\n setListStatus,\n setProjectId,\n setProjectListInvited,\n setProjectListOwn,\n setProjectListRefresh,\n setProjectListSubscribed\n} from '../store/actions';\nimport {makeGetDataRequest} from './getRequest';\nimport {copyArray} from './dataFunctions';\nimport {populateShortDescription} from './projectFunctions';\n\n/**\n * Component for retrieving Project Lists and single Project items\n *\n */\nclass APIProjects extends Component {\n\n componentDidMount() {\n const getType = this.props.getType;\n if (getType === 'list') {\n this.getProjects();\n }\n if (getType === 'single') {\n this.getProject();\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const getType = this.props.getType;\n if (this.props.refresh === true) {\n if (getType === 'list') {\n this.getProjects();\n }\n if (getType === 'single') {\n this.getProject();\n }\n } else if (this.props.project_list_refresh !== null) {\n if (getType === 'list') {\n this.getProjects();\n }\n }\n }\n\n\n /**\n * Get Projects with optional parameters\n *\n */\n getProjects = () => {\n const refreshType = this.props.project_list_refresh;\n const viewType = this.props.viewType;\n // If Projects are being refreshed, only do so if this API matches the refresh type\n if (refreshType && refreshType !== viewType) {\n return;\n }\n let resourceName = 'Project';\n if (viewType === 'personal_own') {\n resourceName = 'ProjectPersonalOwn';\n }\n if (viewType === 'personal_own_by_active') {\n resourceName = 'ProjectPersonalOwnByActive';\n }\n if (viewType === 'shared') {\n resourceName = 'ProjectPersonalShared';\n }\n if (viewType === 'subscribed') {\n resourceName = 'ProjectPersonalSubscribed';\n }\n if (viewType === 'subscribed_sysop') {\n resourceName = 'ProjectPersonalSubscribedSysop';\n }\n const params = this.props.params;\n const request = makeGetDataRequest(resources, resourceName, 'GET_LIST', params);\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n // console.log('Projects Retrieval Error: ', result);\n this.processList(null);\n return Promise.resolve(result);\n }\n this.processList(result);\n return Promise.resolve(result);\n } else {\n console.log('Projects Retrieval Error: No result');\n return Promise.reject('Projects Retrieval failed');\n }\n }).catch(error => {\n console.log('Projects Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Get single Project\n */\n getProject = () => {\n const id = this.props.id;\n if (!id) {\n return Promise.reject('No ID provided');\n }\n const viewType = this.props.viewType;\n let resource = 'Project';\n if (viewType === 'personal' || viewType === 'personal_own' || viewType === 'personal_own_by_active') {\n resource = 'ProjectPersonal';\n }\n const request = makeGetDataRequest(resources, resource, 'GET_ONE', {id: id});\n request.then(result => {\n if (result) {\n if (typeof result === 'string') {\n console.log('Project Retrieval Error: ', result);\n this.processSingle(null);\n return Promise.resolve(result);\n }\n this.processSingle(result);\n return Promise.resolve(result);\n } else {\n console.log('Project Retrieval Error: No result');\n return Promise.reject('Project Retrieval failed');\n }\n }).catch(error => {\n console.log('Project Retrieval Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n /**\n * Return and/or Store list data\n *\n * @param data\n */\n processList = (data) => {\n let list = [];\n const viewType = this.props.viewType;\n\n // Projects owned by User\n if (viewType === 'personal_own' || viewType === 'personal_own_by_active') {\n if (data && data.length > 0) {\n list = copyArray(data);\n for (let i = 0; i < list.length; i++) {\n let c = list[i];\n c.short_desc = populateShortDescription(c);\n }\n }\n }\n // Projects shared with or subscribed to by User\n if (viewType === 'shared' || viewType === 'subscribed' || viewType === 'subscribed_sysop') {\n if (data.PsProjects && data.PsProjects.length > 0) {\n list = copyArray(data.PsProjects);\n for (let i = 0; i < list.length; i++) {\n let c = list[i];\n c.short_desc = populateShortDescription(c);\n }\n }\n }\n\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(list);\n }\n // Store results in Redux for specific lists\n if (this.props.storeExists && this.props.storeResults) {\n if (viewType === 'personal_own') {\n this.props.setProjectListOwn(list);\n this.props.setListStatus({list: 'project_own', status: true});\n }\n if (viewType === 'shared') {\n this.props.setProjectListInvited(list);\n this.props.setListStatus({list: 'project_invited', status: true});\n }\n if (viewType === 'subscribed' || viewType === 'subscribed_sysop') {\n this.props.setProjectListSubscribed(list);\n this.props.setListStatus({list: 'project_subscribed', status: true});\n }\n this.props.setProjectListRefresh(null);\n }\n };\n\n /**\n * Return single result\n *\n * @param data\n */\n processSingle = (data) => {\n if (data) {\n data.short_desc = populateShortDescription(data);\n }\n\n // Pass results to parent\n if (this.props.onResult) {\n this.props.onResult(data);\n }\n // Store results in Redux\n if (this.props.storeExists && this.props.storeResults) {\n this.props.setProjectId(data.id);\n }\n };\n\n render() {\n return (\n <>\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n project_list_refresh: state.project_list_refresh\n };\n};\n\nconst mapDispatchToProps = {\n setListStatus: setListStatus,\n setProjectId: setProjectId,\n setProjectListInvited: setProjectListInvited,\n setProjectListOwn: setProjectListOwn,\n setProjectListRefresh: setProjectListRefresh,\n setProjectListSubscribed: setProjectListSubscribed\n};\n\nAPIProjects.propTypes = {\n getType: PropTypes.string,\n id: PropTypes.number,\n onResult: PropTypes.func,\n params: PropTypes.object,\n refresh: PropTypes.bool,\n storeExists: PropTypes.bool,\n storeResults: PropTypes.bool,\n viewType: PropTypes.string\n};\n\nAPIProjects.defaultProps = {\n getType: 'list',\n params: {\n active: true\n },\n refresh: false,\n storeExists: true,\n storeResults: true,\n viewType: 'subscribed'\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(APIProjects);\n","import React, {useState} from 'react';\nimport {RESOURCES as resources} from '../../resourcesProject';\nimport {makeDeleteDataRequest} from '../../utils/deleteRequest';\nimport LoadingIndicator from '../LoadingIndicator';\nimport Modal from '../modal/Modal';\n\nconst DeleteProjectButton = ({projectId, projectName, onDeletedProject, disabled}) => {\n const [modalStatus, setModalStatus] = useState(false);\n const [deleted, setDeleted] = useState(false);\n const [saving, setSaving] = useState(false);\n\n const handleDeleteConfirmation = () => {\n setSaving(true);\n const params = {\n id: projectId\n };\n const request = makeDeleteDataRequest(resources, 'ProjectPersonalDelete', 'DELETE', params);\n request.then(result => {\n if (result) {\n if (typeof result === 'string' && result.indexOf('Deleted') !== -1) {\n handlePostDeletion();\n } else if (result?.error?.indexOf('no personal project found') !== -1) {\n console.log('Project Deletion Error: No Project found');\n }\n return Promise.resolve(result);\n } else {\n console.log('Project Deletion Error: No volume');\n return Promise.reject('Project Deletion failed');\n }\n }).catch(error => {\n console.log('Project Deletion Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n const handlePostDeletion = () => {\n setDeleted(true);\n setSaving(false);\n setTimeout(() => {\n if (typeof onDeletedProject === 'function') {\n onDeletedProject({type: 'project', state: 'deleted'});\n }\n setModalStatus(false);\n }, 1000);\n };\n\n return (\n <>\n setModalStatus(true)}\n >\n Delete Project\n \n setModalStatus(false)}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n maxWidth: '40%',\n minHeight: 200,\n top: '50%',\n transform: 'translate(-50%, -100%)'\n }}\n >\n
\n

Are you sure you want to delete this Project?

\n {projectName &&\n

Project: {projectName}

\n }\n

Note: All Datasets, Files and Volumes associated with this Project will be marked for deletion. Any users who have joined this Project will no longer be able to access it.

\n {!saving && !deleted &&\n
\n \n \n
\n }\n {saving &&\n <>\n \n
\n Deleting Project...\n
\n \n }\n {deleted &&\n
\n This Project has been deleted.\n
\n }\n
\n \n \n );\n};\n\nexport default DeleteProjectButton;\n","import React, {useCallback, useEffect, useState} from 'react';\nimport {RESOURCES as resources} from '../../resourcesUser';\nimport {makeGetDataRequest} from '../../utils/getRequest';\nimport Config from '../../config';\n\n/**\n * Project Configuration Fields and Inputs\n *\n * @param viewType\n * @param project\n * @param config\n * @param ownProject\n * @param onConfigUpdated\n * @returns {JSX.Element}\n * @constructor\n */\nconst ProjectConfigFields = ({viewType, project, config, ownProject, onConfigUpdated}) => {\n const [global, setGlobal] = useState({\n max_dataset_size: config?.max_dataset_size ?? Config.projectConfigDefault.max_dataset_size,\n max_shares: config?.max_shares ?? Config.projectConfigDefault.max_shares,\n max_volumes: config?.max_volumes ?? Config.projectConfigDefault.max_volumes\n });\n const [configValues, setConfigValues] = useState({\n max_dataset_size: project?.max_dataset_size ?? global.max_dataset_size,\n max_shares: project?.max_shares ?? global.max_shares,\n max_volumes: project?.max_volumes ?? global.max_volumes\n });\n\n // Callback: Set Config values with fallback\n const updateConfig = useCallback((userConfig) => {\n let config = {};\n // Set Project value, User value, or global default value\n config.max_dataset_size =\n (project.max_dataset_size !== null)\n ? project.max_dataset_size : (userConfig.max_dataset_size !== null)\n ? userConfig.max_dataset_size : global.max_dataset_size;\n config.max_shares =\n (project.max_shares !== null)\n ? project.max_shares : (userConfig.max_shares !== null)\n ? userConfig.max_shares : global.max_shares;\n config.max_volumes =\n (project.max_volumes !== null)\n ? project.max_volumes : (userConfig.max_volumes !== null)\n ? userConfig.max_volumes : global.max_volumes;\n setConfigValues(config);\n\n if (typeof onConfigUpdated === 'function') {\n onConfigUpdated(config);\n }\n }, [project, global, onConfigUpdated])\n\n // Effect: Update Global default Configurations\n useEffect(\n () => {\n const updateGlobalConfig = () => {\n setGlobal({\n max_dataset_size: config?.max_dataset_size ?? Config.projectConfigDefault.max_dataset_size,\n max_shares: config?.max_shares ?? Config.projectConfigDefault.max_shares,\n max_volumes: config?.max_volumes ?? Config.projectConfigDefault.max_volumes\n });\n };\n\n return updateGlobalConfig();\n\n }, [config]\n )\n\n // Effect: Get Configurations from Project's Creator (if any)\n useEffect(() => {\n const params = {\n username: project.username\n };\n const fetchUserData = () => {\n const resource = (ownProject) ? 'User' : 'UserInfo';\n const request = makeGetDataRequest(resources, resource, 'GET_ONE', params);\n request.then(result => {\n if (result) {\n updateConfig({\n max_dataset_size: result?.max_dataset_size ?? null,\n max_shares: result?.max_shares ?? null,\n max_volumes: result?.max_volumes ?? null\n });\n return Promise.resolve(result);\n } else {\n console.log('User Error: No result');\n return Promise.reject('Get User failed');\n }\n }).catch(error => {\n console.log('Get User Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchUserData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [project.username, ownProject]);\n\n if (viewType === 'edit') {\n return (\n <>\n \n )\n }\n\n return (\n
\n \n

Max Dataset Size

\n

{configValues.max_dataset_size} GB

\n
\n \n

Max Shares

\n

{configValues.max_shares}

\n
\n \n

Max Volumes

\n

{configValues.max_volumes}

\n
\n
\n );\n};\n\nexport default ProjectConfigFields;\n","import React, {useState, useEffect, useCallback} from 'react';\nimport {Link, Redirect, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {setProjectConfigUserRefresh, setProjectListRefresh} from '../store/actions';\nimport ReactMarkdown from 'react-markdown';\nimport {RESOURCES as resources} from '../resourcesProject';\nimport {isBlank, makeDateString} from '../utils/dataFunctions';\nimport {makePostDataRequest} from '../utils/postRequest';\nimport DeleteProjectButton from './buttons/DeleteProjectButton';\nimport EditFilesButton from './buttons/EditFilesButton';\nimport FileDatasetList from './FileDatasetList';\nimport LoadingIndicator from './LoadingIndicator';\nimport ProjectConfigFields from './forms/ProjectConfigFields';\nimport UnsubscribeSelfButton from './buttons/UnsubscribeSelfButton';\nimport IconCheckmark from './images/IconCheckmark';\n\nconst tabs = {\n overview: {tab: 'overview', title: 'Overview'},\n description: {tab: 'description', title: 'Description'},\n data: {tab: 'data', title: 'Data'}\n};\n\nconst lab_url = localStorage.getItem('lab_url');\n\n/**\n * Panel: Project Detail\n *\n * @param isSysop\n * @param basePath\n * @param projectConfig\n * @param projectItem\n * @param projectDataset\n * @param projectFiles\n * @param projectType\n * @param user\n * @param onAirmeetLink\n * @param onJoinOrLeaveFunc\n * @param inInvitedProjects\n * @param inSubscribedProjects\n * @param inOwnProjects\n * @param allowLab\n * @param tab\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst ProjectDetail = (\n {\n isSysop,\n basePath = '',\n projectConfig,\n projectItem,\n projectDataset,\n projectFiles,\n projectType,\n user,\n onAirmeetLink,\n onJoinOrLeaveFunc,\n inInvitedProjects = false,\n inSubscribedProjects = false,\n inOwnProjects = false,\n allowLab = false,\n tab = 'overview',\n ...props\n }) => {\n\n const [tabState, setTab] = useState({\n tab: tabs.overview.tab,\n title: tabs.overview.title\n });\n\n const [isSaving, setIsSaving] = useState(false);\n const [message, setMessage] = useState({\n error: false,\n message: ''\n });\n const [labMessage, setLabMessage] = useState(false);\n const [redirect, setRedirect] = useState(false);\n\n // Set tab if an outside source requests it\n useEffect(() => {\n // @TODO first click from outside after internal tabState change fails\n // @TODO avoid checking/update internally\n if (tabs[tab] && (tabs[tab].tab)) {\n // console.log('useEffect check tab: current ' + tabState.tab + ', new: ', tab);\n // console.log('useEffect tabs[tab].tab: ', tabs[tab].tab);\n // changeTab(tabs[tab].tab, tabs[tab].title);\n }\n }, [tab]);\n\n const changeTab = (tab, title) => {\n setIsSaving(false);\n setMessage({error: false, message: ''});\n setTab({tab: tab, title: title});\n };\n\n // API: Join Project\n const joinProject = () => {\n setIsSaving(true);\n const request = makePostDataRequest(resources, 'ProjectPersonalJoin', 'PUT', {id: projectItem.id});\n let errorMessage = 'Sorry, there was an issue joining this Project.';\n request.then(result => {\n setIsSaving(false);\n if (result && (result.sign_up_date || result === 'OK')) {\n setMessage({error: false, message: 'You have successfully joined this Project.'});\n // Notify the parent page\n if (typeof onJoinOrLeaveFunc === 'function') {\n onJoinOrLeaveFunc('subscribe');\n }\n return Promise.resolve(result);\n } else {\n if (result?.data?.error) {\n if (\n result.data.error.indexOf('no personal project share found') !== -1 ||\n result.data.error.indexOf('no project found') !== -1\n ) {\n errorMessage = 'No Personal Project was found.';\n }\n if (result.data.error.indexOf('already') !== -1) {\n errorMessage = 'You are already participating in this Project.';\n }\n }\n setMessage({\n error: true,\n message: errorMessage\n });\n return Promise.reject('Unsubscribe failed');\n }\n }).catch(error => {\n // console.log('Join Project Error: ', error);\n setIsSaving(false);\n setMessage({\n error: true,\n message: errorMessage\n });\n return Promise.reject('Server Error');\n });\n };\n\n const handleUnsubscribe = (e) => {\n const actions = (e === 'reject')\n ? {\n past: 'rejected',\n func: 'reject',\n }\n : {\n past: 'unsubscribed from',\n func: 'subscribe',\n };\n if (typeof onJoinOrLeaveFunc === 'function') {\n onJoinOrLeaveFunc(actions.func);\n }\n setMessage({\n error: false,\n message: 'You have successfully ' + actions.past + ' this Project.'\n });\n };\n\n const handleDeleted = () => {\n // Refresh User Configuration (for Project limits) and list of own Projects\n props.setProjectConfigUserRefresh(true);\n props.setProjectListRefresh('personal_own');\n setTimeout(() => {\n setRedirect(true);\n }, 200);\n };\n\n // Handle click from Session Join button\n const launchAirmeetEvent = useCallback((uuid) => {\n if (typeof onAirmeetLink === 'function') {\n onAirmeetLink('event', uuid);\n }\n }, [onAirmeetLink]);\n\n const displayLabMessaging = () => {\n setLabMessage(true);\n };\n\n const setButtonDisplay = () => {\n return {\n join: (!(inSubscribedProjects || inOwnProjects)),\n launch: !!(inSubscribedProjects || inOwnProjects),\n leave: (inSubscribedProjects && !inOwnProjects && !isSysop),\n reject: (inInvitedProjects && !inSubscribedProjects)\n };\n };\n\n if (redirect) {\n return \n }\n\n const dateObj = (projectItem.due_date) ? new Date(projectItem.due_date.replace(/-/g, '/').replace(/T.+/, '')) : null;\n const dueStr = (dateObj) ? makeDateString(dateObj, 'm', false) : null;\n const discourseLink = (projectItem.discourse_id)\n ? localStorage.getItem('forum_url') + 'c/project/-/' + projectItem.discourse_id\n : null;\n const projectPath = (projectType === 'personal' || projectType === 'personal_own') ? 'project/personal' : 'project';\n const buttonDisplay = setButtonDisplay();\n const hasAirmeet = (!isBlank(projectItem.airmeet_id));\n\n return (\n
\n\n

{tabState.title}

\n\n
\n\n {/* Left Side Detail Menu */}\n\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n
  • \n {discourseLink &&\n
  • \n \n View Cluster\n \n
  • \n }\n
\n
\n\n {/* Right-Side Detail Content */}\n\n
\n {/* Tab: Overview */}\n {tabState.tab === 'overview' &&\n <>\n {projectItem.username &&\n <>\n

Project Owner

\n

{projectItem.username}

\n \n }\n\n

Short Description

\n \n\n {projectItem.goals &&\n <>\n

Goals

\n \n \n }\n\n {dueStr &&\n <>\n

Due Date

\n

{dueStr}

\n \n }\n {(isSysop || inOwnProjects) &&\n
\n \n

Active

\n

{projectItem.active ? 'Yes' : 'No'}

\n
\n\n \n

Complete

\n

{projectItem.complete ? 'Yes' : 'No'}

\n
\n
\n }\n\n {/* Project Configuration (Sysop or creator only) */}\n {(isSysop || inOwnProjects) &&\n \n }\n \n }\n\n {/* Tab: Description */}\n {tabState.tab === 'description' &&\n <>\n

Introduction

\n \n

Summary

\n \n

Community Description

\n \n \n }\n\n {/* Tab: Data */}\n {tabState.tab === 'data' &&\n <>\n {projectDataset &&\n <>\n

Data Description

\n \n \n }\n {projectFiles && projectFiles.length > 0 &&\n <>\n

Files ({projectFiles.length})

\n \n \n }\n \n }\n\n {/* Buttons and Messaging */}\n\n
\n {isSaving &&\n

\n \n

\n }\n {!message.error && message.message !== '' &&\n

\n \n

\n }\n {buttonDisplay.join &&\n \n }\n {buttonDisplay.reject &&\n handleUnsubscribe('reject')}\n />\n }\n {buttonDisplay.leave &&\n handleUnsubscribe('unsubscribe')}\n />\n }\n {(isSysop || inOwnProjects) &&\n \n Edit Project\n \n }\n {(isSysop || inOwnProjects) &&\n <>\n \n Edit Dataset\n \n \n \n }\n {(inSubscribedProjects || inOwnProjects) && hasAirmeet &&\n \n }\n {allowLab && buttonDisplay.launch &&\n \n Launch Workspace\n \n }\n {(isSysop || inOwnProjects) &&\n handleDeleted()}\n />\n }\n {!allowLab && inSubscribedProjects &&\n \n }\n
\n\n {message.message !== '' &&\n
\n

\n {message.message}\n

\n
\n }\n\n {labMessage &&\n
\n

You need to be granted access to the Xrathus Lab.
\n Once status is granted, please logout and log back in to access.\n

\n
\n }\n\n
\n
\n
\n );\n};\n\nconst mapDispatchToProps = {\n setProjectConfigUserRefresh: setProjectConfigUserRefresh,\n setProjectListRefresh: setProjectListRefresh\n};\n\nexport default withRouter(\n connect(\n null,\n mapDispatchToProps\n )(ProjectDetail)\n);\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {makeDateString} from '../utils/dataFunctions';\nimport APISharedUsers from '../utils/APISharedUsers';\nimport TableExpandIconButton from './buttons/TableExpandIconButton';\nimport TableWithSubrows from './tables/TableWithSubrows';\nimport UnsubscribeUserButton from './buttons/UnsubscribeUserButton';\n\n/**\n * Component that displays Users of a Shared Project in a React Table\n *\n * @param projectId\n * @param onList\n * @param inPanel\n * @param refresh\n * @return {JSX.Element}\n * @constructor\n */\nconst ProjectSharedUsersTable = ({projectId, onList, inPanel = true, refresh = false}) => {\n\n const [itemList, setItemList] = useState([]);\n const [refreshList, setRefreshList] = useState(refresh);\n\n useEffect(\n () => {\n return setRefreshList(refresh);\n }, [refresh]\n );\n\n const setSharedList = (data) => {\n let list = [];\n if (data.length > 0) {\n for (let i = 0; i < data.length; i++) {\n list[i] = data[i];\n list[i].joined_on_str = (data[i].joined_on) ? makeDateString(data[i].joined_on) : '';\n list[i].rejected_on_str = (data[i].rejected_on) ? makeDateString(data[i].rejected_on) : '';\n list[i].shared_on_str = (data[i].shared_on) ? makeDateString(data[i].shared_on) : '';\n list[i].unsubscribed_on_str = (data[i].unsubscribed_on) ? makeDateString(data[i].unsubscribed_on) : '';\n }\n }\n setItemList(list);\n if (typeof onList === 'function') {\n onList(list);\n }\n setRefreshList(false);\n };\n\n // Refresh list after User Unsubscription\n const handleUnsubscribe = () => {\n setRefreshList(true);\n setRefreshList(false);\n };\n\n // Subscription data subrow\n const renderSubscriptionRow = useCallback(\n ({row}) => (\n \n {row.original.rejected &&\n <>\n Rejected by:\n {row.original.username}\n {row.original.rejected_on_str &&\n <>\n  on {row.original.rejected_on_str}\n \n }\n \n }\n {row.original.unsubscribed_by &&\n <>\n Unsubscribed by:\n {row.original.unsubscribed_by}\n {row.original.unsubscribed_on_str &&\n <>\n  on {row.original.unsubscribed_on_str}\n \n }\n
\n Reason: {row.original.unsubscribed_notes}\n \n }\n {(row.original.rejected || row.original.unsubscribed_by) &&\n <>\n
\n handleUnsubscribe()}\n />\n \n }\n
\n ),\n [projectId]\n )\n\n // Set table data\n const tableData = useMemo(() => itemList, [itemList]);\n\n // Set table columns\n const columns = React.useMemo(\n () => [\n {\n Header: 'Username',\n accessor: 'username',\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: 'Joined',\n id: 'joined_col',\n Cell: ({row}) => {\n return (row.original.joined_on)\n ? {row.original.joined_on_str}\n : No\n },\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: () => Rejected
by User
,\n id: 'rejected_col',\n Cell: ({row}) => {\n return (row.original.rejected_on)\n ? {row.original.rejected_on_str}\n : No\n },\n disableFilters: true,\n disableSortBy: true\n },\n {\n Header: () => Subscription
Status
,\n id: 'subscription_col',\n Cell: ({row}) => {\n return (row.original.unsubscribed_by || row.original.rejected)\n ? \n Unsubscribed\n \n \n : handleUnsubscribe()}\n />\n },\n disableFilters: true,\n disableSortBy: true\n }\n ],\n [projectId]\n );\n\n return (\n <>\n {inPanel && itemList.length > 0 &&\n
\n
\n
\n

Shared Users

\n \n
\n
\n
\n }\n {!inPanel && itemList.length > 0 &&\n \n }\n\n setSharedList(e)}\n refresh={refreshList}\n />\n \n );\n};\n\nexport default ProjectSharedUsersTable;\n","import React, {Component} from 'react';\nimport {Redirect, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport Emitter from '../../utils/eventEmitter';\nimport {setProjectConfigCurrent, setProjectListRefresh} from '../../store/actions';\nimport {isBlank} from '../../utils/dataFunctions';\nimport {openHelpWidget} from '../../utils/pageFunctions';\nimport {assembleAirmeetPath, getMaxShares, inUserList} from '../../utils/projectFunctions';\nimport {hasGroup} from '../../utils/tokenFunctions';\nimport APIProjects from '../../utils/APIProjects';\nimport APIProjectDataset from '../../utils/APIProjectDataset';\nimport AirmeetSessionsTable from '../../partials/AirmeetSessionsTable';\nimport ClusterTable from '../../partials/ClusterTable';\nimport FormAirmeetSessionCreate from '../../partials/forms/FormAirmeetSessionCreate';\nimport FormShareWithUser from '../../partials/forms/FormShareWithUser';\nimport LoadingIndicator from '../../partials/LoadingIndicator';\nimport ProjectDetail from '../../partials/ProjectDetail';\nimport ProjectSharedUsersTable from '../../partials/ProjectSharedUsersTable';\nimport '../../css/challenge.css';\n\n/**\n * Page: Single Project with additional panels\n */\nclass XHubProject extends Component {\n constructor(props) {\n super(props);\n // Get Project type and ID from path\n const pathArr = props.location.pathname.split('/');\n const projectIdx = pathArr.findIndex(c => c === 'project');\n let projectType = pathArr[projectIdx + 1];\n let projectId;\n if (projectType === 'personal') {\n // If path is /x/{substrate}/project/type/{id}/{subpage}\n projectId = Number(pathArr[projectIdx + 2]);\n } else {\n // If path is /x/{substrate}/project/{id}/{subpage}\n projectId = Number(pathArr[(pathArr.length - 1)]);\n projectType = null;\n }\n\n const hasUserList = !!(props.project_list_subscribed?.length);\n this.state = {\n dataId: null,\n dataset: null,\n datasetFiles: [],\n hasUserList: hasUserList,\n project: null,\n projectId: projectId,\n projectRefresh: false,\n projectType: projectType,\n redirectUrl: null,\n refreshSharedUsers: false,\n sharedUsers: [],\n tab: 'overview'\n };\n\n this.handleJoinOrLeaveProject = this.handleJoinOrLeaveProject.bind(this);\n this.launchAirmeetView = this.launchAirmeetView.bind(this);\n this.setProject = this.setProject.bind(this);\n }\n\n componentDidMount() {\n Emitter.on('setTab', (e) => this.setTab(e));\n }\n\n componentWillUnmount() {\n Emitter.off('setTab');\n }\n\n // Set Project information and Data ID\n setProject = (data) => {\n let dataId = (data && data.data_id) ? data.data_id : null;\n this.setState({\n dataId: dataId,\n project: data\n }, () => {\n // Store Project Configuration for Dataset\n if (dataId) {\n this.props.setProjectConfigCurrent({\n max_dataset_size: data.max_dataset_size ?? null,\n max_shares: data.max_shares ?? null,\n max_volumes: data.max_volumes ?? null,\n })\n }\n });\n };\n\n // Set Dataset description\n setDataset = (data) => {\n this.setState({\n dataset: data,\n refreshSharedUsers: false\n });\n };\n\n // Set Dataset File list\n setDatasetFiles = (data) => {\n this.setState({\n datasetFiles: data\n });\n };\n\n // Set the current tab of the Project detail\n setTab = (tab) => {\n this.setState({\n tab: tab\n });\n };\n\n // Set list of Shared Users from event\n setSharedUsers = (list) => {\n this.setState({\n sharedUsers: list\n });\n };\n\n refreshProject = () => {\n this.setState({\n projectRefresh: true\n }, () => {\n this.setState({\n projectRefresh: false\n });\n });\n };\n\n // Refresh Shared Users after Share event\n handleRefreshSharedUsers = () => {\n this.setState({\n refreshSharedUsers: true\n }, () => {\n this.setState({\n refreshSharedUsers: false\n });\n });\n };\n\n // Notify the API Projects component to update the User Projects List\n handleJoinOrLeaveProject = (type) => {\n if (type === 'subscribe') {\n this.refreshProject();\n }\n if (type === 'reject') {\n this.props.setProjectListRefresh('shared');\n // Redirect to Sharing view\n setTimeout(() => {\n this.setState({\n redirectUrl: '/x/hub/sharing'\n });\n }, 600);\n }\n let subscribedRefresh = (this.props.user.is_sysop) ? 'subscribed_sysop' : 'subscribed';\n this.props.setProjectListRefresh(subscribedRefresh);\n };\n\n launchAirmeetView = (projectType, projectId, type, uuid, launch = true) => {\n const path = assembleAirmeetPath(projectType, projectId, type, uuid);\n if (launch && path) {\n this.props.history.push(path);\n }\n };\n\n render() {\n const {\n project_config,\n project_config_current,\n project_config_user,\n project_list_invited,\n project_list_own,\n project_list_subscribed,\n user\n } = this.props;\n\n const {\n dataId,\n dataset,\n datasetFiles,\n project,\n projectId,\n projectRefresh,\n projectType,\n redirectUrl,\n refreshSharedUsers,\n sharedUsers,\n tab\n } = this.state;\n\n if (redirectUrl) {\n return \n }\n\n const hasLab = hasGroup(user.groups, 'lab');\n const inInvitedProjects = (inUserList(project_list_invited, projectId));\n const inSubscribedProjects = (inUserList(project_list_subscribed, projectId));\n const inOwnProjects = (inUserList(project_list_own, projectId));\n const maxShares = getMaxShares(project_config, project_config_user, project_config_current);\n const airmeetView = (inOwnProjects) ? 'owner' : (user.is_sysop) ? 'sysop' : 'user';\n const hasAirmeet = (project && !isBlank(project.airmeet_id));\n\n return (\n <>\n
\n {!user.is_sysop && !inSubscribedProjects && !inOwnProjects && !inInvitedProjects &&\n <>\n

\n Personal Project {projectId}\n

\n
\n
\n
\n This Project is not a Project you created, or you have not been invited to Join\n this\n Project.\n
\n
\n
\n \n }\n {!project && (user.is_sysop || inInvitedProjects || inSubscribedProjects || inOwnProjects) &&\n \n }\n {project &&\n <>\n

\n {project.title}\n

\n\n {/* Row: Projects */}\n\n
\n
\n this.launchAirmeetView('project', projectId, type, uuid, true)}\n onJoinOrLeaveFunc={(e) => this.handleJoinOrLeaveProject(e)}\n allowLab={hasLab}\n inInvitedProjects={inInvitedProjects}\n inOwnProjects={inOwnProjects}\n inSubscribedProjects={inSubscribedProjects}\n tab={tab}\n isSysop={user.is_sysop}\n />\n
\n
\n \n }\n\n {/* Row: Discourse Forum/Cluster Links */}\n\n {project?.discourse_id &&\n
\n
\n

Clusters

\n
\n
\n
\n

Project Discussions

\n \n
\n
\n
\n }\n\n {(user.is_sysop || inSubscribedProjects || inOwnProjects) && project && projectId && hasAirmeet &&\n <>\n {/* Row: Airmeet Sessions Table and Create button */}\n\n
\n
\n
\n

Real Time Collaboration Sessions

\n\n {(user.is_sysop || inOwnProjects) &&\n this.refreshProject()}\n />\n }\n\n this.launchAirmeetView('project', projectId, type, uuid, true)}\n />\n
\n
\n
\n \n }\n\n {(user.is_sysop || inOwnProjects) && projectId &&\n <>\n\n {/* Row: Share with User */}\n\n
\n
\n
\n

Share Personal Project

\n {project && !project.active &&\n

\n You cannot share an inactive Project.\n

\n }\n {sharedUsers.length >= maxShares.project && !user.is_sysop &&\n

\n You have reached the maximum total of shares for this Project.\n To change the share limit for this Project or for your\n account, contact openHelpWidget()}>Xrathus Support.\n

\n }\n {project && project.active && (sharedUsers.length < maxShares.project || user.is_sysop) &&\n this.handleRefreshSharedUsers()}\n />\n }\n
\n
\n
\n\n {/* Row: Shared Users Table */}\n\n this.setSharedUsers(e)}\n />\n \n }\n
\n\n {(user.is_sysop || inInvitedProjects || inSubscribedProjects || inOwnProjects) &&\n \n }\n\n {(user.is_sysop || inInvitedProjects || inSubscribedProjects || inOwnProjects) && dataId &&\n \n }\n \n )\n }\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n project_config: state.project_config,\n project_config_current: state.project_config_current,\n project_config_user: state.project_config_user,\n project_list_invited: state.project_list_invited,\n project_list_own: state.project_list_own,\n project_list_subscribed: state.project_list_subscribed,\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setProjectConfigCurrent: setProjectConfigCurrent,\n setProjectListRefresh: setProjectListRefresh\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(XHubProject)\n);\n","import React, {useState} from 'react';\nimport {Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {useForm} from 'react-hook-form';\nimport DatePicker from 'react-datepicker';\nimport {RESOURCES as resources} from '../../resourcesProject';\nimport {setProjectConfigCurrent} from '../../store/actions';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport {createDateTimeObject} from '../../utils/dataFunctions';\nimport {setDueDate} from '../../utils/projectFunctions';\nimport BaseInput from '../fields/BaseInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport {PROJECT_TABS} from '../../data/formTabs';\nimport 'react-datepicker/dist/react-datepicker.min.css';\n\n/**\n * Form: Add Project\n *\n * @param basePath\n * @param formStage\n * @param onFormEvent\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormProjectAdd = (\n {\n formStage,\n onFormEvent,\n basePath = '',\n ...props\n }) => {\n\n // Set up form and state\n const {register, errors, formState, getValues, handleSubmit} = useForm({mode: 'onBlur'});\n\n // State: Form Stage (from parent)\n const [formStageState, updateFormStageState] = useState(\n {\n stage: formStage\n }\n );\n if (formStageState.stage !== formStage) {\n updateFormStageState({...formStageState, stage: formStage});\n }\n // Initial Form State\n const [fieldState, updateFieldState] = useState(\n {\n community_desc: '',\n due_date: createDateTimeObject(new Date()),\n goals: '',\n introduction: '',\n title: '',\n summary: ''\n }\n );\n // State: Due Date Object\n const [dueDateState, updateDueDateState] = useState(\n {\n min_date_obj: setDueDate('/'),\n due_date_obj: setDueDate('/').due_date\n }\n );\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n // State: Current Tab\n const [tabState, setTab] = useState(PROJECT_TABS.overview);\n // State: Created Project\n const [projectId, setProjectId] = useState('');\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n !formState.isDirty ||\n getValues('introduction') === '' ||\n getValues('summary') === '' ||\n getValues('title') === '' ||\n tabState.tab === 'saving' ||\n (errors &&\n (\n errors.introduction ||\n errors.summary ||\n errors.title\n ))\n );\n };\n\n // Handle change from specific form fields\n const handleFormChange = (e) => {\n if (e.name === 'due_date') {\n // Set a Due Date object\n const dateString = createDateTimeObject(e.value);\n updateFieldState({...fieldState, [e.name]: dateString});\n updateDueDateState({...dueDateState, due_date_obj: e.value});\n } else {\n updateFieldState({...fieldState, [e.name]: e.value});\n }\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // console.log('SUBMIT fieldState: ', fieldState);\n // console.log('SUBMIT data args: ', data);\n\n // Submit form to API\n setTab(PROJECT_TABS.saving);\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'ProjectPersonal', 'CREATE', data);\n let processed = false;\n request.then(result => {\n let error = null;\n let errorMessage = null;\n if (result?.data?.error) {\n error = result.data.error;\n errorMessage = result.data.message;\n } else if (result?.error) {\n error = result.error;\n errorMessage = result.message;\n }\n if (result.id && !error) {\n updateSuccessState({success: true, message: ''});\n setTab(PROJECT_TABS.success);\n setProjectId(result.id);\n // Store Project Configuration for Dataset\n props.setProjectConfigCurrent({\n max_dataset_size: result.max_dataset_size ?? null,\n max_shares: result.max_shares ?? null,\n max_volumes: result.max_volumes ?? null,\n })\n setPostProject(result);\n processed = true;\n return Promise.resolve(result);\n } else {\n const message = (errorMessage) ? ' Error: \"' + errorMessage + '\"' : '';\n updateSuccessState({success: false, message: 'Sorry, your Project could not be created.' + message});\n setTab(PROJECT_TABS.fail);\n processed = true;\n return Promise.resolve();\n }\n }).catch(error => {\n if (!processed) {\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Project: ' + error});\n setTab(PROJECT_TABS.fail);\n return Promise.reject('Server Error');\n }\n });\n };\n\n // Process after Project form completion\n const setPostProject = (data) => {\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n // Notify the page that Project has been created\n onFormEvent('project', 'complete', data);\n }\n };\n\n return (\n
\n
\n\n {/* Form Menu */}\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n
\n\n
\n\n {/* Tab: Overview */}\n\n
\n

\n Enter basic information for your Project. Click Next to enter Description\n information.\n

\n\n
\n {/* Title */}\n ),\n minLength: {\n value: 3,\n message: ()\n },\n maxLength: {\n value: 80,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.title ? 'input-error' : ''}`}\n >\n {errors.title && errors.title.message}\n \n
\n
\n {/* Goals */}\n \n \n
\n
\n {/* Due Date */}\n \n
\n
\n\n {/* Tab: Information */}\n\n
\n

\n Enter Project descriptive data. Markdown may be used, but no HTML is allowed. When all\n information is completed, click Next to confirm and Save the Project.\n

\n
\n {/* Summary */}\n )\n })}\n required\n className={`form-input ${errors.summary ? 'input-error' : ''}`}\n >\n {errors.summary && errors.summary.message}\n \n
\n
\n {/* Introduction */}\n )\n })}\n required\n className={`form-input ${errors.introduction ? 'input-error' : ''}`}\n >\n {errors.introduction && errors.introduction.message}\n \n
\n
\n {/* Community Description */}\n \n \n
\n
\n\n {/* Tab: Confirm && Save */}\n\n
\n

\n Save your Project. Once the Project is saved, you will be able to upload a Dataset\n associated with this Project if desired.\n

\n
\n\n {/* Tab: Saving */}\n\n
\n

Saving Project...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Project Saved

\n

\n Your Project has been saved. If this Project needs a Dataset, add one below. You can add a\n Dataset at any time by viewing a Project and\n clicking Edit Dataset.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue saving this Project.\n

\n }\n
\n\n {/* Actions */}\n\n
\n
\n {tabState.tab === 'overview' &&\n <>\n \n \n }\n {tabState.tab === 'information' &&\n <>\n \n \n \n }\n {tabState.tab === 'confirm' &&\n <>\n \n \n \n }\n {tabState.tab === 'success' &&\n <>\n \n View Project Details\n \n \n }\n
\n
\n
\n
\n
\n );\n};\n\nconst mapDispatchToProps = {\n setProjectConfigCurrent: setProjectConfigCurrent\n};\n\nexport default connect(\n null,\n mapDispatchToProps\n)(FormProjectAdd);","import React, {Component} from 'react';\nimport {withKeycloak} from '@react-keycloak/web';\nimport {connect} from 'react-redux';\nimport {setProjectConfigUserRefresh, setProjectListRefresh} from '../../store/actions';\nimport {openHelpWidget} from '../../utils/pageFunctions';\nimport {\n getMaxDatasetSize,\n getProjectPermissions,\n populatePersonalProjectUserConfig\n} from '../../utils/projectFunctions';\nimport FormDataFilesVolumes from '../../partials/forms/FormDataFilesVolumes';\nimport FormProjectAdd from '../../partials/forms/FormProjectAdd';\nimport '../../css/challenge.css';\n\n/**\n * Page: Create Project & Datasets forms\n */\nclass XHubProjectAdd extends Component {\n constructor(props) {\n super(props);\n\n const pathArr = this.props.location.pathname.split('/');\n const projectId = Number(pathArr.pop());\n\n // @TODO reset dataId = ''\n // @TODO reset Dataset display\n\n this.state = {\n dataId: '',\n formStage: 'project',\n project: null,\n projectId: projectId\n };\n }\n\n // Handle form completion/error events\n handleFormEvent = (e, status, data) => {\n if (e === 'project' && status === 'complete') {\n // Upon completed Project, populate the Dataset's data ID\n this.setState({\n dataId: data.data_id,\n projectId: data.id\n }, () => {\n // Display the Dataset/Files form\n this.updateFormStage('dataset');\n // Refresh User Configuration and Projects\n this.props.setProjectConfigUserRefresh(true);\n this.props.setProjectListRefresh('personal_own');\n })\n }\n };\n\n // Set form toggling\n updateFormStage = (stage) => {\n this.setState({\n formStage: stage\n });\n };\n\n // Populate Project variables and text for Add Project\n setProjectLimits = (ownProjects, userConfig) => {\n const created = ownProjects?.length ?? 0;\n const createdStr = (created > 0) ? created : 'no';\n const max = userConfig?.projects ?? 0;\n let allowed = max - created;\n let projectsStr = (created === 1) ? 'Project' : 'Projects';\n if (allowed < 0) {\n allowed = 0;\n }\n const textHave = ((created < max) || allowed > 0)\n ? 'You have created ' + createdStr + ' Personal ' + projectsStr + '. You may create ' + (allowed) + ' more.'\n : 'You have reached the maximum number of allotted Personal Projects: ' + createdStr + '. ';\n return {\n projects_created: created,\n projects_max: max,\n projects_allowed: allowed,\n text: textHave\n };\n };\n\n render() {\n const {\n project_config,\n project_config_current,\n project_config_user,\n project_list_own,\n user\n } = this.props;\n\n const {\n dataId,\n formStage,\n projectId\n } = this.state;\n\n const userConfig = populatePersonalProjectUserConfig(project_config, project_config_user);\n const projectLimits = this.setProjectLimits(project_list_own, userConfig);\n const projectPermissions = getProjectPermissions(user, project_list_own, null, dataId);\n const maxDatasetSize = getMaxDatasetSize(project_config, project_config_user, project_config_current);\n\n // If User cannot create Projects due to having reached a limit:\n if (!projectPermissions.sysop && formStage === 'project' && projectLimits.projects_allowed <= 0) {\n return (\n <>\n
\n

\n Personal Projects\n

\n

\n {projectLimits.text}\n

\n {((projectLimits.projects_created >= projectLimits.projects_max) || projectLimits.projects_allowed === 0) &&\n

\n To create more, please\n contact .\n

\n }\n
\n \n )\n }\n\n // Display Add Project form\n return (\n <>\n
\n

\n Create a Personal Project\n

\n {!projectPermissions.sysop &&\n

\n {projectLimits.text}\n

\n }\n\n
\n

Personal Project

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

Dataset

\n
\n
\n \n \n
\n
\n
\n
\n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n keycloakReady: state.keycloakReady,\n project_config: state.project_config,\n project_config_current: state.project_config_current,\n project_config_user: state.project_config_user,\n project_list_own: state.project_list_own,\n tokens: {\n token: state.tokens.token\n },\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setProjectConfigUserRefresh: setProjectConfigUserRefresh,\n setProjectListRefresh: setProjectListRefresh\n};\n\nexport default withKeycloak(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(XHubProjectAdd)\n);\n","import React, {Component} from 'react';\nimport {Link, withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport Iframe from 'react-iframe';\nimport {inUserList} from '../../utils/projectFunctions';\nimport APIAirmeetSessions from '../../utils/APIAirmeetSessions';\nimport APIProjects from '../../utils/APIProjects';\nimport LoadingIndicator from '../../partials/LoadingIndicator';\nimport {airmeetStyles} from '../../utils/stylesAirmeet';\n\n/**\n * Page: Airmeet embed for specified Project\n */\nclass XHubProjectAirmeet extends Component {\n constructor(props) {\n super(props);\n // Get Project type and ID from path\n const pathArr = props.location.pathname.split('/');\n const projectIdx = pathArr.findIndex(c => c === 'project');\n let projectType = pathArr[projectIdx + 1];\n let projectId;\n if (projectType === 'personal') {\n // If path is /x/{substrate}/project/type/{id}/{subpage}\n projectId = Number(pathArr[projectIdx + 2]);\n } else {\n // If path is /x/{substrate}/project/{id}/{subpage}\n projectId = Number(pathArr[(pathArr.length - 1)]);\n projectType = null;\n }\n // Get Airmeet type and UUID from path\n const airmeetIdx = pathArr.findIndex(c => c === 'rtc');\n let airmeetType = pathArr[airmeetIdx + 1];\n let airmeetId = pathArr[airmeetIdx + 2];\n\n this.state = {\n project: null,\n projectId: projectId,\n projectType: projectType,\n airmeetType: airmeetType,\n airmeetId: airmeetId,\n airmeetUrl: null\n };\n }\n\n // Store Project and set the Airmeet URL\n setProject = (data) => {\n this.setState({\n project: data\n }, () => {\n if (this.state.airmeetType === 'e') {\n this.setAirmeetURL(null);\n }\n });\n };\n\n // Set the Airmeet URL from the Event or Session Entry Link\n setAirmeetURL = (sessions) => {\n let url;\n if (sessions) {\n const session = sessions.find(r => r.session_id === this.state.airmeetId);\n url = session?.entry_link ?? null;\n } else {\n url = this.state.project?.airmeet_entry_link ?? null;\n }\n this.setState({\n airmeetUrl: url\n });\n };\n\n render() {\n const {\n project_list_own,\n project_list_subscribed,\n user\n } = this.props;\n\n const {\n airmeetType,\n airmeetUrl,\n project,\n projectId,\n projectType\n } = this.state;\n\n const inSubscribedProjects = (inUserList(project_list_subscribed, projectId));\n const inOwnProjects = (inUserList(project_list_own, projectId));\n\n return (\n
\n {/* User is not owner or has not joined Project */}\n {!user.is_sysop && !inSubscribedProjects && !inOwnProjects &&\n <>\n
\n
\n

\n {(project && project.title) ? project.title : 'Project'}\n

\n \n Back to Project\n \n
\n
\n
\n
\n
\n You do not have permission to access this Project's Airmeet\n Events or Sessions.\n
\n
\n
\n \n }\n\n {/* User is owner or has joined Project */}\n {(user.is_sysop || inSubscribedProjects || inOwnProjects) &&\n <>\n {!projectId &&\n \n }\n\n {project && projectId &&\n <>\n
\n
\n

\n {(project.title) ? project.title : 'Project'}\n

\n \n Back to Project\n \n
\n
\n\n
\n
\n {airmeetUrl &&\n \n }\n
\n
\n\n {airmeetType === 's' &&\n this.setAirmeetURL(e)}\n refresh={false}\n />\n }\n \n }\n\n \n \n }\n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n project_list_own: state.project_list_own,\n project_list_subscribed: state.project_list_subscribed,\n user: state.user\n };\n};\n\nexport default withRouter(\n connect(\n mapStateToProps\n )(XHubProjectAirmeet)\n);\n","import React, {useState, useCallback, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {useForm} from 'react-hook-form';\nimport {RESOURCES as resources} from '../../resourcesProject';\nimport {setProjectConfigCurrent} from '../../store/actions';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport {getProjectPermissions} from '../../utils/projectFunctions';\nimport NumberInput from '../fields/NumberInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport ProjectConfigFields from './ProjectConfigFields';\n\n/**\n * Form: Edit Project Configurations\n *\n * @param basePath\n * @param defaultConfig\n * @param projectType\n * @param projectConfig\n * @param projectId\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormProjectConfigEdit = (\n {\n basePath = '',\n defaultConfig,\n projectType,\n projectConfig,\n projectId,\n ...props\n }) => {\n\n // Set up form and state\n const {register, errors, getValues, handleSubmit, setValue} = useForm({mode: 'onBlur'});\n\n const [projectValues, setProjectValues] = useState(null);\n\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n saving: false,\n success: false\n }\n );\n\n const setDefaultConfigMessage = (type) => {\n if (defaultConfig[type]) {\n return ' The default is ' + defaultConfig[type] + '.';\n }\n return '';\n };\n\n // Callback: Set Configuration values and update form values\n const updateConfigurations = useCallback((data, defaultConfig) => {\n setValue('max_shares', data?.max_shares ?? defaultConfig.max_shares);\n setValue('max_dataset_size', data?.max_dataset_size ?? defaultConfig.max_dataset_size);\n setValue('max_volumes', data?.max_volumes ?? defaultConfig.max_volumes);\n }, [setValue]);\n\n // Effect: Get Project data\n useEffect(() => {\n const updateData = () => {\n setProjectValues(projectConfig);\n props.setProjectConfigCurrent({\n max_dataset_size: projectConfig.max_dataset_size ?? null,\n max_shares: projectConfig.max_shares ?? null,\n max_volumes: projectConfig.max_volumes ?? null,\n });\n };\n\n return updateData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectId, projectConfig]);\n\n // Effect: Update Project Configuration values when global values are populated\n useEffect(\n () => {\n const updateConfig = () => {\n const max_shares = projectValues?.max_shares ?? null;\n const max_dataset_size = projectValues?.max_dataset_size ?? null;\n const max_volumes = projectValues?.max_volumes ?? null;\n let config = {\n max_shares: (!max_shares || max_shares === '') ? defaultConfig.max_shares : max_shares,\n max_dataset_size: (!max_dataset_size || max_dataset_size === '') ? defaultConfig.max_dataset_size : max_dataset_size,\n max_volumes: (!max_volumes || max_volumes === '') ? defaultConfig.max_volumes : max_volumes\n };\n updateConfigurations(config, defaultConfig);\n };\n\n return updateConfig();\n\n }, [defaultConfig, projectValues, updateConfigurations]\n );\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n getValues('max_dataset_size') === '' ||\n getValues('max_shares') === '' ||\n getValues('max_volumes') === '' ||\n (errors &&\n (\n errors.max_dataset_size ||\n errors.max_shares ||\n errors.max_volumes\n ))\n );\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n // Set parameters from form state\n data.id = projectId;\n\n // Reset Configurations if they equal the defaults\n const max_dataset_size = parseInt(data.max_dataset_size, 10);\n const max_shares = parseInt(data.max_shares, 10);\n const max_volumes = parseInt(data.max_volumes, 10);\n data.max_dataset_size = (max_dataset_size === defaultConfig.max_dataset_size) ? null : max_dataset_size;\n data.max_shares = (max_shares === defaultConfig.max_shares) ? null : max_shares;\n data.max_volumes = (max_volumes === defaultConfig.max_volumes) ? null : max_volumes;\n\n console.log('submit: ', data);\n\n // Submit form to API\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'ProjectPersonalConfig', 'UPDATE', data);\n request.then(result => {\n if (result && result.id) {\n updateSuccessState({saving: false, success: true, message: ''});\n // Store Project Configuration for Dataset\n props.setProjectConfigCurrent({\n max_dataset_size: result.max_dataset_size ?? null,\n max_shares: result.max_shares ?? null,\n max_volumes: result.max_volumes ?? null,\n });\n return Promise.resolve(result);\n } else {\n updateSuccessState({\n saving: false,\n success: false,\n message: 'Sorry, Project Configurations could not be updated.'\n });\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Update Project Configurations Error: ', error);\n updateSuccessState({\n saving: false,\n success: false,\n message: 'Sorry, there was an error updating Project Configurations: ' + error\n });\n return Promise.reject('Server Error');\n });\n };\n\n const handleConfigFieldUpdate = (e) => {\n // Update values from ProjectConfigFields (Project, User, Global)\n updateConfigurations(e, defaultConfig);\n };\n\n const projectPath = (projectType === 'personal' || projectType === 'personal_own') ? 'project/personal' : 'project';\n const projectPermissions = getProjectPermissions(props.user, props.project_list_own, projectId, null);\n const showConfig = (projectPermissions.sysop || projectPermissions.owner);\n\n return (\n
\n
\n
\n
\n

\n If this Project should be allowed to override global configurations for\n Sharing, Dataset Size and Volumes, set values.\n

\n {projectValues?.username && showConfig &&\n handleConfigFieldUpdate(e)}\n />\n }\n
\n
\n )\n })}\n className={`form-input ${errors.max_shares ? 'input-error' : ''}`}\n >\n {errors.max_shares && errors.max_shares.message}\n \n
\n
\n )\n })}\n className={`form-input ${errors.max_dataset_size ? 'input-error' : ''}`}\n >\n {errors.max_dataset_size && errors.max_dataset_size.message}\n \n
\n
\n )\n })}\n className={`form-input ${errors.max_volumes ? 'input-error' : ''}`}\n >\n {errors.max_volumes && errors.max_volumes.message}\n \n
\n
\n
\n\n
\n {successState.saving &&\n <>\n

\n Saving Project Configurations...\n

\n \n \n }\n {successState.success &&\n

\n Project Configurations updated.\n

\n }\n {!successState.success && successState.message !== '' &&\n

\n {successState.message}\n

\n }\n \n
\n
\n {successState.success &&\n \n View Project Details\n \n }\n
\n
\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n project_config: state.project_config,\n project_list_own: state.project_list_own,\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setProjectConfigCurrent: setProjectConfigCurrent\n};\n\nFormProjectConfigEdit.propTypes = {\n basePath: PropTypes.string,\n defaultConfig: PropTypes.any,\n projectType: PropTypes.any,\n projectConfig: PropTypes.any,\n projectId: PropTypes.any,\n setProjectConfigCurrent: PropTypes.any,\n user: PropTypes.any,\n project_list_own: PropTypes.any,\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(FormProjectConfigEdit);","import React, {useState, useEffect} from 'react';\nimport {Link} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {useForm} from 'react-hook-form';\nimport DatePicker from 'react-datepicker';\nimport {RESOURCES as resources} from '../../resourcesProject';\nimport {makeGetDataRequest} from '../../utils/getRequest';\nimport {makePostDataRequest} from '../../utils/postRequest';\nimport {createDateTimeObject} from '../../utils/dataFunctions';\nimport {setDueDate, getProjectPermissions} from '../../utils/projectFunctions';\nimport BaseInput from '../fields/BaseInput';\nimport SelectInput from '../fields/SelectInput';\nimport FormError from './FormError';\nimport LoadingIndicator from '../LoadingIndicator';\nimport TextAreaInput from '../fields/TextAreaInput';\nimport IconUser from '../images/IconUser';\nimport {PROJECT_TABS} from '../../data/formTabs';\nimport {BOOLEAN_OPTIONS} from '../../data/objects';\nimport 'react-datepicker/dist/react-datepicker.min.css';\n\n/**\n * Form: Edit Project\n *\n * @param basePath\n * @param projectType\n * @param projectId\n * @param formStage\n * @param onFormEvent\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst FormProjectEdit = (\n {\n basePath = '',\n projectType,\n projectId,\n formStage,\n onFormEvent,\n ...props\n }) => {\n\n // Set up form and state\n const {register, errors, getValues, handleSubmit, setValue} = useForm({mode: 'onBlur'});\n\n // State: Form Stage (from parent)\n const [formStageState, updateFormStageState] = useState(\n {\n stage: formStage\n }\n );\n if (formStageState.stage !== formStage) {\n updateFormStageState({...formStageState, stage: formStage});\n }\n\n const [projectValues, setProjectValues] = useState(null);\n\n // State: Due Date Object\n const [dueDateState, updateDueDateState] = useState(\n {\n min_date_obj: setDueDate('/'),\n due_date_obj: ''\n }\n );\n // State: Success\n const [successState, updateSuccessState] = useState(\n {\n message: '',\n success: false\n }\n );\n // State: Current Tab\n const [tabState, setTab] = useState(PROJECT_TABS.overview);\n\n const updateTab = (tab) => {\n setTab(PROJECT_TABS[tab]);\n document.body.scrollTo({top: 0, left: 0, behavior: 'smooth'});\n };\n\n // Effect: Get Project data\n useEffect(() => {\n const params = {\n id: projectId\n };\n let resourceName = 'Project';\n if (projectType === 'personal' || projectType === 'personal_own') {\n resourceName = 'ProjectPersonal';\n }\n const fetchData = () => {\n const request = makeGetDataRequest(resources, resourceName, 'GET_ONE', params);\n request.then(result => {\n if (result) {\n const data = JSON.parse(JSON.stringify(result));\n setValue('id', result?.id ?? '');\n setValue('active', !!(result.active));\n setValue('community_desc', result?.community_desc ?? '');\n setValue('complete', !!(result.complete));\n setValue('due_date', result?.due_date ?? '');\n setValue('goals', result?.goals ?? '');\n setValue('introduction', result?.introduction ?? '');\n setValue('published', !!(result.published));\n setValue('title', result?.title ?? '');\n setValue('summary', result?.summary ?? '');\n setValue('username', result?.username ?? '');\n\n const due_date_obj = (data.due_date) ? new Date(data.due_date.replace(/-/g, '/').replace(/T.+/, '')) : '';\n updateDueDateState({...dueDateState, due_date_obj: due_date_obj});\n setProjectValues(result);\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n // Notify the page that Project has been retrieved\n onFormEvent('project', 'info', result);\n }\n return Promise.resolve(result);\n } else {\n console.log('Project Error: No result');\n return Promise.reject('Project failed');\n }\n }).catch(error => {\n console.log('Project Error: ', error);\n return Promise.reject('Server Error');\n });\n };\n\n return fetchData();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectId]);\n\n // Determine if form is incomplete for disabling specific elements\n const disableSubmit = () => {\n return !!(\n getValues('introduction') === '' ||\n getValues('summary') === '' ||\n getValues('title') === '' ||\n tabState.tab === 'saving' ||\n (errors &&\n (\n errors.introduction ||\n errors.summary ||\n errors.title\n ))\n );\n };\n\n // Handle change from specific form fields\n const handleFormChange = (e) => {\n if (e.name === 'due_date') {\n // Set a Due Date object\n const dateString = createDateTimeObject(e.value);\n setValue(e.name, dateString);\n updateDueDateState({...dueDateState, due_date_obj: e.value});\n }\n if (e.name === 'active') {\n setValue(e.name, e.value);\n setProjectValues({...projectValues, active: (e.value !== 'false')});\n }\n };\n\n // Handle submission event\n const onSubmit = (data) => {\n if (data) {\n const active = getValues('active');\n // Set parameters from form state\n data.username = getValues('username');\n data.id = parseInt(getValues('id'), 10);\n data.active = (active.toString() === 'true');\n data.complete = (getValues('complete').toString() === 'true');\n data.published = (projectValues.published.toString() === 'true');\n\n // Submit form to API\n updateTab('saving');\n submitForm(data);\n }\n };\n\n // Handle API call and post-submission\n const submitForm = (data) => {\n const request = makePostDataRequest(resources, 'ProjectPersonal', 'UPDATE', data);\n request.then(result => {\n if (result && result.id) {\n updateSuccessState({success: true, message: ''});\n updateTab('success');\n setPostProject(result);\n return Promise.resolve(result);\n } else {\n updateSuccessState({success: false, message: 'Sorry, your Project could not be updated.'});\n updateTab('fail');\n return Promise.resolve();\n }\n }).catch(error => {\n console.log('Updated Project Error: ', error);\n updateSuccessState({success: false, message: 'Sorry, there was an error with your Project: ' + error});\n updateTab('fail');\n return Promise.reject('Server Error');\n });\n };\n\n // Process after Project form completion\n const setPostProject = (data) => {\n if (onFormEvent !== null && typeof onFormEvent === 'function') {\n // Notify the page that Project has been created\n onFormEvent('project', 'complete', data);\n }\n };\n\n const projectPath = (projectType === 'personal' || projectType === 'personal_own') ? 'project/personal' : 'project';\n const projectPermissions = getProjectPermissions(props.user, props.project_list_own, projectId, null);\n\n return (\n
\n
\n {/* Form Menu */}\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n
\n\n
\n {!projectValues?.id &&\n \n }\n\n {/* Tab: Overview */}\n\n
\n

\n Enter basic Project information. Click Next to enter Description information.\n

\n
\n {/* Username */}\n \n \n
\n
\n {/* Title */}\n ),\n minLength: {\n value: 3,\n message: ()\n },\n maxLength: {\n value: 80,\n message: ()\n }\n })}\n required\n className={`form-input ${errors.title ? 'input-error' : ''}`}\n >\n {errors.title && errors.title.message}\n \n
\n
\n {/* Goals */}\n \n \n
\n
\n {/* Due Date */}\n \n {/* Project Active */}\n handleFormChange(e)}\n ref={register()}\n >\n \n
\n
\n

\n {projectValues?.active.toString() === 'true' &&\n <>\n  \n \n }\n {projectValues?.active.toString() === 'false' &&\n <>\n Note: Inactive Projects cannot be viewed by Shared Users.\n \n }\n

\n
\n
\n {/* Complete */}\n \n \n
\n \n
\n\n {/* Tab: Information */}\n\n
\n

\n Enter Project descriptive data. Markdown may be used, but no HTML is allowed. When all\n information is completed, click Next to confirm and Save the Project.\n

\n
\n {/* Summary */}\n )\n })}\n required\n className={`form-input ${errors.summary ? 'input-error' : ''}`}\n >\n {errors.summary && errors.summary.message}\n \n
\n
\n {/* Introduction */}\n )\n })}\n required\n className={`form-input ${errors.introduction ? 'input-error' : ''}`}\n >\n {errors.introduction && errors.introduction.message}\n \n
\n
\n {/* Short Description */}\n \n \n
\n
\n\n {/* Tab: Confirm && Save */}\n\n
\n

\n Update your Project. Once the Project is updated, you will be able to upload a Dataset\n associated with this Project if desired.\n

\n
\n\n {/* Tab: Saving */}\n\n
\n

Updating Project...

\n
\n \n
\n
\n\n {/* Tab: Success */}\n\n
\n

Project Updated

\n

\n Your Project has been updated. If this Project needs a Dataset go to\n your Account Dashboard and upload one.\n

\n
\n\n {/* Tab: Fail */}\n\n
\n

Error

\n {successState.message !== '' &&\n

\n {successState.message}\n

\n }\n {successState.message === '' &&\n

\n Sorry, there was an issue updating this Project.\n

\n }\n
\n\n {/* Actions */}\n\n
\n
\n {tabState.tab === 'overview' &&\n <>\n \n \n }\n {tabState.tab === 'information' &&\n <>\n \n \n \n }\n {tabState.tab === 'confirm' &&\n <>\n \n \n \n }\n {projectPermissions.sysop && tabState.tab === 'success' &&\n <>\n \n \n Admin\n \n \n }\n
\n
\n
\n {!successState.success &&\n \n Cancel\n \n }\n {successState.success &&\n \n View Project Details\n \n }\n
\n
\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n project_list_own: state.project_list_own,\n user: state.user\n };\n};\n\nexport default connect(\n mapStateToProps\n)(FormProjectEdit);","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport {connect} from 'react-redux';\nimport {setProjectListRefresh} from '../../store/actions';\nimport FormProjectConfigEdit from '../../partials/forms/FormProjectConfigEdit';\nimport FormProjectEdit from '../../partials/forms/FormProjectEdit';\nimport {inUserList, getProjectPermissions} from '../../utils/projectFunctions';\nimport '../../css/challenge.css';\n\n/**\n * Page: Edit Project & Datasets forms\n */\nclass XHubProjectEdit extends Component {\n constructor(props) {\n super(props);\n const pathArr = this.props.location.pathname.split('/');\n const projectId = Number(pathArr.reverse()[1]);\n const projectType = (this.props.location.pathname.indexOf('personal') !== -1) ? 'personal' : 'private';\n this.state = {\n dataId: '',\n formStage: 'project',\n pathArr: pathArr,\n project: null,\n projectConfig: {\n max_dataset_size: null,\n max_shares: null,\n max_volumes: null,\n retrieved: false\n },\n projectId: projectId,\n projectType: projectType,\n };\n }\n\n // Handle form completion/error events\n handleFormEvent = (e, status, data) => {\n // Store Project values to pass to Edit Configuration form\n if (e === 'project' && status === 'info') {\n this.setState({\n projectConfig: {\n max_dataset_size: data.max_dataset_size ?? null,\n max_shares: data.max_shares ?? null,\n max_volumes: data.max_volumes ?? null,\n retrieved: true\n }\n });\n }\n if (e === 'project' && status === 'complete') {\n // Upon completed Project, populate the Dataset's data ID\n this.setState({\n dataId: data.data_id\n }, () => {\n // Display the Dataset/Files form\n this.updateFormStage('dataset');\n // Refresh User's Own Projects\n this.props.setProjectListRefresh('personal_own');\n })\n }\n };\n\n // Set form toggling\n updateFormStage = (stage) => {\n this.setState({\n formStage: stage\n });\n };\n\n render() {\n const {\n project_config,\n project_list_own,\n project_list_subscribed,\n user\n } = this.props;\n\n const {\n formStage,\n projectConfig,\n projectId,\n projectType,\n } = this.state;\n\n const inSubscribedProjects = (inUserList(project_list_subscribed, projectId));\n const projectPermissions = getProjectPermissions(user, project_list_own, projectId, null);\n\n return (\n <>\n
\n

\n Edit Project\n

\n\n {!user.is_sysop && !inSubscribedProjects && !projectPermissions.owner &&\n
\n
\n
\n You are not authorized to edit this Project.\n
\n
\n
\n }\n {(user.is_sysop || inSubscribedProjects || projectPermissions.owner) &&\n
\n

Project

\n
\n
\n
\n \n
\n
\n
\n
\n }\n {user.is_sysop &&\n
\n

Project Configuration

\n
\n
\n
\n \n
\n
\n
\n
\n }\n
\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n project_config: state.project_config,\n project_list_own: state.project_list_own,\n project_list_subscribed: state.project_list_subscribed,\n user: state.user\n };\n};\n\nconst mapDispatchToProps = {\n setProjectListRefresh: setProjectListRefresh\n};\n\nexport default withRouter(connect(\n mapStateToProps,\n mapDispatchToProps\n)(XHubProjectEdit));\n","import React, {Component} from 'react';\nimport '../../css/static.css';\n\nclass XHubPublish extends Component {\n render() {\n\n return (\n <>\n
\n

\n Publish\n

\n
\n
\n
\n

\n For the current Release, this feature is not\n available.\n

\n

\n Once available, the Publish section allows the submission of reviewed project\n assets for publication in the Marketplace, as well as solutions for Challenges\n and Training courses.\n

\n
\n
\n
\n
\n \n );\n }\n}\n\nexport default XHubPublish;\n","import React, {Component} from 'react';\nimport '../../css/static.css';\n\n/**\n * (Unused)\n */\nclass XHubSharing extends Component {\n render() {\n\n return (\n <>\n
\n

\n Sharing\n

\n
\n
\n
\n

\n For the current Release, this feature is not\n available.\n

\n

\n Collaboration is a core aspect of the Xrathus experience. One way of collaborating\n is sharing assets. Any asset within the project directory needs to be shareable\n with others, as long as it is permissible by the the owner.\n

\n

\n Once available, the Sharing area can also be used for submitting assets for\n review, feedback for improvements, and eventually readiness for publishing to\n the marketplace.\n

\n
\n
\n
\n
\n \n );\n }\n}\n\nexport default XHubSharing;\n","import React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport {withRouter} from 'react-router-dom';\nimport CodeIcon from '../../css/images/icon-Code.svg';\nimport XWidgetIcon from '../../css/images/XWidget.png';\n\nconst lab_url = localStorage.getItem('lab_url');\n\nclass XHubToolbox extends Component {\n render() {\n\n const {\n project_id\n } = this.props;\n\n const disableViewer = (!project_id);\n const disabledClass = (project_id) ? '' : ' disabled';\n\n return (\n <>\n
\n

\n Toolbox\n

\n
\n\n
\n
\n

OpendTect

\n
\n

\n \"OpendTect\"\n OpendTect is a free, open source seismic interpretation system and software\n development platform. The system supports all tools needed for visualizing,\n analyzing and interpreting 2D, 3D and 4D seismic data. It is widely used for\n Geo-Radar interpretation as well. OpendTect is released under the GNU Public\n License (GPL).\n

\n
\n
\n Download\n
\n
\n
\n\n
\n
\n

2D Seismic Viewer

\n
\n

\n \"2D\n Visualize a 2D slice of 3D seismic data in a highly adjustable viewer. Use the\n viewer slider to select the XY slice to be displayed. Customize the axis\n labels, color maps, axis orientation, and downsampling level of the data to\n visualize.\n

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

3D Seismic Viewer

\n
\n

\n \"3D\n Visualize 3D seismic data in a highly adjustable environment. Choose the X, Y,\n and Z index values using the viewer sliders at which you want to display\n YZ, XZ, and XY slices of your data at the same time. Customize the axis\n labels, color maps, axis orientation, and downsampling level of the data to\n visualize.\n

\n
\n \n
\n
\n
\n
\n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n project_id: state.project_id\n };\n};\n\nexport default withRouter(\n connect(\n mapStateToProps,\n null\n )(XHubToolbox)\n);\n","import React, {Component} from 'react';\nimport '../../css/static.css';\n\nclass XHubWorkflows extends Component {\n render() {\n\n return (\n <>\n
\n

\n Workflows\n

\n
\n
\n
\n

\n For the current Release, this feature is not\n available.\n

\n

\n Once available, the Workflows section will provide a visual editor to create,\n edit, and extend data science workflows.\n

\n
\n
\n
\n
\n \n );\n }\n}\n\nexport default XHubWorkflows;\n","import React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport Iframe from 'react-iframe';\nimport {hasGroup} from '../../utils/tokenFunctions';\n\nclass XHubWorkspace extends Component {\n constructor(props) {\n super(props);\n this.state = {\n labLocation: 'iframe'\n };\n }\n\n /**\n * Set location of Lab in iframe or note as external site\n *\n * @param location\n */\n setLabLocation = (location) => {\n this.setState({\n labLocation: location\n });\n };\n\n render() {\n const {\n lab_url,\n user\n } = this.props;\n\n const {\n labLocation\n } = this.state;\n\n const hasLab = hasGroup(user.groups, 'lab');\n const showIframe = false;\n\n return (\n <>\n
\n

\n Workspace\n

\n {hasLab &&\n

\n {labLocation === 'iframe' &&\n this.setLabLocation('external')}\n >\n Launch in New Window\n \n }\n {labLocation === 'external' &&\n \n }\n

\n }\n
\n {showIframe && lab_url !== '' && labLocation === 'iframe' &&\n <>\n