{"version":3,"sources":["images/cpath_logo_colour.svg","images/cpath_logo_white.svg","images/default-user-icon.png","images/FAIRLogo2020-baby.svg","images/ws-baby.svg","components/Header.js","utils/helpers.js","components/Announcements/MarkdownRender.js","components/Announcements/AnnouncementContent.js","components/Announcements/AnnouncementCount.js","components/Announcements/AnnouncementNav.js","components/Announcements/Announcement.js","service/service.js","components/Announcements/Announcements.js","images/CPTA_logo.png","components/Overview.js","images/FAIRLogo2020-white.svg","images/workspacesLogo2020-white.svg","images/btn_ws.jpg","images/btn_ws_advanced.jpg","images/btn_fair.jpg","images/AridhiaDRE-PoweredBy.svg","components/Content.js","components/Security.js","auth/auth.js","auth/signin.js","components/RequestWorkspace.js","docs/RDCA-DAP_Data_Use_Agreement_2022.pdf","components/ContributeData.js","App.js","index.js"],"names":["avatarBackgroundColour","name","colours","vowels","match","length","userName","loggedIn","userInitials","parts","toUpperCase","split","concat","charAt","getUserInitials","_jsxs","_Fragment","children","_jsx","id","src","defaultUserIcon","style","backgroundColor","alt","className","size","Header","_ref","signIn","signOut","href","CPTALogoColour","CPTALogoWhite","LINK_CPTA_FAIR","target","rel","FAIRLogo2020Baby","LINK_CPTA_WORKSPACE_WEST_EUROPE","workspaceLogo2020Baby","LINK_ARIDHIA_KB","LINK_ARIDHIA_PRIVACY_POLICY","role","LINK_CPTA_TERMS_OF_USE","LINK_ARIDHIA_CONTACT_SD","Button","onClick","getDomain","urlParts","window","location","hostname","slice","join","allowedElements","MarkdownRender","value","ReactMarkdown","linkTarget","skipHtml","remarkPlugins","remarkGfm","timeFormatter","datetime","Date","toLocaleTimeString","hour","minute","hour12","dateFormatter","toLocaleDateString","year","month","day","displayDates","from","to","dateText","AnnouncementContent","announcement","Message","Content","headline","dateTimeFrom","dateTimeTo","linkedContent","AnnouncementCount","index","total","AnnouncementNav","setIndex","Pagination","boundaryRange","activePage","ellipsisItem","firstItem","lastItem","pageItem","onPageChange","_e","siblingRange","totalPages","prevItem","content","nextItem","Announcement","announcements","_useState","useState","Cookies","get","_useState2","_slicedToArray","dismissed","setDismissed","_useState3","_useState4","filter","a","publishedAt","getTime","t","Container","icon","onDismiss","now","future","setDate","getDate","console","log","document","cookie","toUTCString","Icon","useAnnouncements","data","useQuery","fetch","API_BASE","API_ENDPOINT_SERVICE_BANNER","method","headers","Headers","Authorization","sessionStorage","getItem","then","res","json","serviceBanners","Announcements","_objectSpread","toggleOverview","element","getElementById","classList","contains","marginLeft","contentWidth","offsetWidth","toggle","Overview","type","as","LINK_CPTA_RDCA_DAP","CPTALogoHor","LINK_FDA_ACKNOWLEDGMENT","Segment","Grid","stackable","columns","Column","Card","fluid","FAIRLogo2020White","title","LINK_CPTA_DATASETS","ENDPOINT_REQUEST_WORKSPACE","Description","WorkspacesLogo2020White","LINK_CPTA_WS","ENDPOINT_CONTRIBUTE_DATA","LINK_NORD","LINK_EURORDIS","LINK_CPTA_SUPPORTED_BROWSERS","LINK_CPTA_LMS_WS_FUNDAMENTALS","WSFundamentals","LINK_CPTA_LMS_FAIR","FAIRStandard","LINK_CPTA_LMS_WS_ADVANCED","WSAdvanced","width","height","LINK_EMBED_CPTA_RDCA_DAP_VIDEO","frameBorder","allow","allowFullScreen","ENDPOINT_SECURITY","LINK_ARIDHIA_SHINY_APPS","LINK_ARIDHIA_LEARNING_CENTRE","LINK_ARIDHIA_WEBSITE","poweredByAridhia","Security","Breadcrumb","Section","link","Divider","active","b2cPolicies","names","signUpSignIn","B2C_SIGNUPSIGNIN","forgotPassword","B2C_FORGOTPASSWORD","editProfile","B2C_PROFILEEDIT","authorities","authority","B2C_AUTHORITY","msalConfig","auth","clientId","B2C_CLIENT_ID","redirectUri","B2C_REDIRECT_URL","knownAuthorities","validateAuthority","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","message","containsPii","msal","Error","error","Info","info","Verbose","debug","Warning","warn","loginRequest","scopes","msalObj","Msal","authRedirectCallBack","response","errorMessage","indexOf","loginRedirect","err","tokenType","idToken","claims","acr","logout","alert","toString","accessToken","RequestWorkspace","valuesOrig","vm_linux","vm_windows","acceptToC","sector","data_access_intent","values","setValues","submitDisabled","setSubmitDisabled","formRef","useRef","_useState5","showMessage","header","isLoading","isError","isSuccess","_useState6","setMessage","onChange","event","result","_ref2","_defineProperty","onChangeCheckbox","_ref3","checked","hideMessage","clearFields","arguments","undefined","current","reset","handleGenericErrorMessage","isToCError","onSubmit","apply_data_science_template","account","getAccount","givenName","given_name","familyName","family_name","email","emails","userid","oid","additional_users","other_requirements","timestamp","toISOString","source_url","full_name","JSON","stringify","axios","post","API_ENDPOINT_REQUEST_WORKSPACE","catch","status","request","preventDefault","sectorOptions","key","text","Ref","innerRef","Form","Field","required","Input","label","placeholder","Select","options","selection","TextArea","rows","input","Radio","Group","Checkbox","scrollMarginTop","htmlFor","loading","negative","positive","disabled","ContributeData","show","submitStatus","setSubmitStatus","_useForm","useForm","defaultValues","anonymizedData","legalRights","contribute","register","handleSubmit","API_ENDPOINT_CONTRIBUTE_DATA","ContributeDataForm","App","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","handleRedirectCallback","history","scrollRestoration","state","_createClass","this","setState","_this2","_this$state","appSignOut","Router","AppContentRouter","React","Component","pathname","useLocation","Switch","Redirect","Route","exact","path","ENDPOINT_DUP_PDF","position","dupPdf","queryClient","QueryClient","ReactDOM","render","StrictMode","QueryClientProvider","client"],"mappings":"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","file":"static/js/main.5d424ec5.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/cpath_logo_colour.f1b7332e.svg\";","export default __webpack_public_path__ + \"static/media/cpath_logo_white.0a8ca2cf.svg\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/FAIRLogo2020-baby.aef74a98.svg\";","export default __webpack_public_path__ + \"static/media/ws-baby.748dd5ac.svg\";","/* eslint-disable react/function-component-definition */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button } from 'semantic-ui-react';\n\nimport {\n  LINK_CPTA_TERMS_OF_USE,\n  LINK_CPTA_FAIR,\n  LINK_CPTA_WORKSPACE_WEST_EUROPE,\n  LINK_ARIDHIA_KB,\n  LINK_ARIDHIA_CONTACT_SD,\n  LINK_ARIDHIA_PRIVACY_POLICY,\n} from 'env-create-react-app';\n\nimport CPTALogoColour from '../images/cpath_logo_colour.svg';\nimport CPTALogoWhite from '../images/cpath_logo_white.svg';\nimport defaultUserIcon from '../images/default-user-icon.png';\nimport FAIRLogo2020Baby from '../images/FAIRLogo2020-baby.svg';\nimport workspaceLogo2020Baby from '../images/ws-baby.svg';\n\nconst getUserInitials = (name) => {\n  const parts = name.toUpperCase().split(' ');\n  if (parts.length > 1) {\n    return `${parts[0].charAt(0)}${parts[1].charAt(0)}`;\n  }\n  return `${parts[0].charAt(0)}`;\n};\n\nconst avatarBackgroundColour = (name) => {\n  const colours = [\n    '#E9421E',\n    '#B6271B',\n    '#850F19',\n    '#6E1932',\n    '#562150',\n    '#2C2A4C',\n    '#0C3247',\n    '#1B5A72',\n    '#2C88A2',\n    '#34867A',\n    '#3C8556',\n    '#5B8C41',\n    '#7E922F',\n    '#9EAE02',\n    '#BE8C00',\n    '#995F19',\n  ];\n\n  const vowels = (name.match(/[aeiou]/gi) || []).length;\n  const index = (name.length + vowels) % colours.length;\n\n  return colours[index];\n};\n\nconst userName = (loggedIn, name) => {\n  if (loggedIn && name) {\n    const userInitials = getUserInitials(name);\n    return (\n      <>\n        {name}\n        <img\n          id=\"avatar\"\n          src={defaultUserIcon}\n          style={{ backgroundColor: avatarBackgroundColour(name) }}\n          alt=\"User profile\"\n          className=\"ui mini right floated image\"\n          size=\"mini\"\n        />\n        <div className=\"avatar-initials\">{userInitials}</div>\n        <div className=\"meta\" />\n      </>\n    );\n  }\n  return (\n    <>\n      Please sign in\n      <img id=\"avatar\" src={defaultUserIcon} alt=\"User profile\" className=\"ui mini right floated image\" size=\"mini\" style={{ backgroundColor: 'rgb(102, 102, 102)' }} />\n      <div className=\"avatar-initials\" />\n      <div className=\"meta\" />\n\n    </>\n  );\n};\n\nconst Header = ({\n  loggedIn, name, signIn, signOut,\n}) => (\n  <div id=\"header\" className=\"semantic\">\n    <div className=\"ui inverted nav fixed menu\">\n      <div className=\"ui container\">\n        <a href=\"/\" className=\"header item logo\">\n          <img src={CPTALogoColour} alt=\"Aridhia Logo\" className=\"ui image logo\" id=\"portalLogo\" />\n          <img src={CPTALogoWhite} alt=\"Aridhia Logo\" className=\"ui image logo\" id=\"portalLogoHover\" />\n        </a>\n        <a href={LINK_CPTA_FAIR} target=\"_blank\" rel=\"noreferrer\" className=\"item menu\">\n          <img src={FAIRLogo2020Baby} alt=\"\" className=\"icon\" />\n          <img src={FAIRLogo2020Baby} alt=\"\" className=\"icon hover\" />\n          {' '}\n          Data Services\n        </a>\n        <a href={LINK_CPTA_WORKSPACE_WEST_EUROPE} target=\"_blank\" rel=\"noreferrer\" className=\"item menu\">\n          <img src={workspaceLogo2020Baby} alt=\"\" className=\"icon\" />\n          <img src={workspaceLogo2020Baby} alt=\"\" className=\"icon hover\" />\n          {' '}\n          Workspaces\n        </a>\n        <div className=\"right menu\">\n          <div className=\"item help\">\n            <a className=\"knowledgebase\" href={LINK_ARIDHIA_KB} target=\"_blank\" rel=\"noopener noreferrer\" data-tooltip=\"Visit the Aridhia DRE Knowledge Base\" data-variation=\"mini\" data-position=\"bottom center\">\n              <span className=\"visuallyhidden\">Visit the Aridhia DRE Knowledge Base</span>\n              <i aria-hidden=\"true\" className=\"question circle outline large inverted icon\" />\n            </a>\n          </div>\n          <div className=\"ui simple dropdown item\">\n            <div id=\"user_name_display\" className=\"header\">\n              {userName(loggedIn, name)}\n            </div>\n            <div className=\"menu\">\n              <a href={LINK_ARIDHIA_PRIVACY_POLICY} target=\"_blank\" rel=\"noopener noreferrer\" role=\"option\" aria-selected=\"true\" className=\"item\">\n                <i aria-hidden=\"true\" className=\"shield icon\" />\n                Privacy\n              </a>\n              <a href={LINK_CPTA_TERMS_OF_USE} target=\"_blank\" rel=\"noopener noreferrer\" role=\"option\" aria-selected=\"false\" className=\"item\">\n                <i aria-hidden=\"true\" className=\"handshake solid icon\" />\n                Terms &amp; conditions\n              </a>\n              <a href={LINK_ARIDHIA_CONTACT_SD} target=\"_blank\" rel=\"noopener noreferrer\" role=\"option\" aria-selected=\"false\" className=\"item\">\n                <i aria-hidden=\"true\" className=\"heart icon\" />\n                Feedback\n              </a>\n              <div className=\"divider\" />\n              <Button id=\"signin_link\" role=\"option\" aria-selected=\"false\" className={((loggedIn) ? 'item hidden' : 'item')} onClick={signIn}>\n                <i aria-hidden=\"true\" className=\"sign in icon\" />\n                Sign in\n              </Button>\n              <Button id=\"signout_link\" role=\"option\" aria-selected=\"false\" className={((loggedIn) ? 'item' : 'item hidden')} onClick={signOut}>\n                <i aria-hidden=\"true\" className=\"sign out icon\" />\n                Sign out\n              </Button>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n);\n\nHeader.propTypes = {\n  loggedIn: PropTypes.bool.isRequired,\n  name: PropTypes.string.isRequired,\n  signIn: PropTypes.func.isRequired,\n  signOut: PropTypes.func.isRequired,\n};\n\nexport default Header;\n","const getDomain = () => {\n  const urlParts = window.location.hostname.split('.');\n\n  return urlParts\n    .slice(0)\n    .slice(-(urlParts.length === 4 ? 3 : 2))\n    .join('.');\n};\n\nexport default getDomain;\n","/* eslint-disable react/function-component-definition */\nimport React from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\n\nconst allowedElements = [\n  'text',\n  'break',\n  'paragraph',\n  'emphasis',\n  'strong',\n  'thematicBreak',\n  'blockquote',\n  'link',\n  'linkReference',\n  'list',\n  'listItem',\n  'heading',\n];\n\n// eslint-disable-next-line react/prop-types\nconst MarkdownRender = ({ value }) => (\n  <ReactMarkdown\n    linkTarget=\"_blank\"\n    skipHtml\n    allowedElements={allowedElements}\n    remarkPlugins={[remarkGfm]}\n  >\n    {value}\n  </ReactMarkdown>\n);\n\nexport default MarkdownRender;\n","/* eslint-disable react/function-component-definition */\nimport React from 'react';\nimport { Message } from 'semantic-ui-react';\nimport MarkdownRender from './MarkdownRender';\n\nconst timeFormatter = (datetime) => new Date(datetime).toLocaleTimeString(\n  [],\n  { hour: '2-digit', minute: '2-digit', hour12: false },\n);\n\nconst dateFormatter = (datetime) => new Date(datetime).toLocaleDateString(\n  'en-gb',\n  { year: 'numeric', month: 'short', day: '2-digit' },\n);\n\nconst displayDates = (from, to) => {\n  let dateText = '';\n  if (from) {\n    dateText += `${dateFormatter(from)} ${timeFormatter(from)}`;\n    if (to) dateText += ' – ';\n  }\n  if (to) {\n    dateText += `${dateFormatter(to)} ${timeFormatter(to)}`;\n  }\n  return dateText;\n};\n\nconst AnnouncementContent = ({ announcement }) => (\n  <Message.Content>\n    {announcement?.headline\n      && <Message.Header className=\"truncate\">\n        {announcement.headline}\n        {(announcement.dateTimeFrom || announcement.dateTimeTo)\n          && <span className=\"aridhia-date\">{displayDates(announcement.dateTimeFrom, announcement.dateTimeTo)}</span>}\n      </Message.Header>}\n    <div className=\"text truncate\">\n      {announcement?.linkedContent\n      && <MarkdownRender value={announcement.linkedContent} />}\n    </div>\n  </Message.Content>\n);\nexport default AnnouncementContent;\n","/* eslint-disable react/function-component-definition */\nimport React from 'react';\n\nconst AnnouncementCount = ({ index, total }) => (\n  <div className=\"aridhia-count\">\n    {index}\n    {' '}\n    of\n    {' '}\n    {total}\n  </div>\n);\n\nexport default AnnouncementCount;\n","/* eslint-disable react/function-component-definition */\nimport React from 'react';\nimport { Pagination } from 'semantic-ui-react';\n\nconst AnnouncementNav = ({ index, total, setIndex }) => (\n  <Pagination\n    boundaryRange={0}\n    activePage={index}\n    ellipsisItem={null}\n    firstItem={null}\n    lastItem={null}\n    pageItem={null}\n    onPageChange={(_e, value) => { setIndex(value.activePage); }}\n    siblingRange={0}\n    totalPages={total}\n    prevItem={index === 1 ? false : { content: '' }}\n    nextItem={index === total ? false : { content: '' }}\n    size=\"small\"\n  />\n);\nexport default AnnouncementNav;\n","/* eslint-disable react/jsx-no-useless-fragment */\n/* eslint-disable react/function-component-definition */\n/* eslint-disable no-param-reassign */\n/* eslint-disable react/prop-types */\nimport React, { useState } from 'react';\nimport { Container, Message, Icon } from 'semantic-ui-react';\nimport Cookies from 'js-cookie';\nimport { t } from 'i18n-js';\nimport getDomain from '../../utils/helpers';\nimport AnnouncementContent from './AnnouncementContent';\nimport AnnouncementCount from './AnnouncementCount';\nimport AnnouncementNav from './AnnouncementNav';\n\nconst Announcement = ({ announcements }) => {\n  const [dismissed, setDismissed] = useState(Cookies.get('announcementDismissedTime'));\n  const [index, setIndex] = useState(1);\n\n  if (dismissed) {\n    announcements = announcements.filter((a) => new Date(a.publishedAt).getTime() >= dismissed);\n  }\n  const total = announcements ? announcements.length : 0;\n\n  const handleDismiss = () => {\n    const now = new Date();\n    const future = new Date();\n    future.setDate(now.getDate() + 30);\n\n    // js-cookie package was not setting the cookie, applying an\n    // expired value rejected it, using pure javascript works\n    console.log(getDomain());\n    document.cookie = `announcementDismissedTime=${now.getTime()\n    };expires=${future.toUTCString()};path=/;domain=${getDomain()}`;\n    setDismissed(now.getTime());\n  };\n\n  if (!total) {\n    return <></>;\n  }\n\n  return (\n    <div\n      className=\"aridhia-alert\"\n      role=\"alert\"\n      aria-label={t('accessibility.announcement')}\n    >\n      <Container>\n        <Message icon onDismiss={handleDismiss}>\n          <Icon name=\"triangle exclamation\" />\n          <AnnouncementContent announcement={announcements[(index - 1)]} />\n          { total > 1\n            && <AnnouncementCount index={index} total={total} /> }\n          <AnnouncementNav index={index} total={total} setIndex={setIndex} />\n        </Message>\n      </Container>\n    </div>\n  );\n};\n\nexport default Announcement;\n","import { useQuery } from 'react-query';\n\nimport { API_BASE, API_ENDPOINT_SERVICE_BANNER } from 'env-create-react-app';\n\nexport const useAnnouncements = () => {\n  const fetchAnnouncements = () => fetch(`${API_BASE}${API_ENDPOINT_SERVICE_BANNER}`, {\n    method: 'GET',\n    headers: new Headers({\n      Authorization: `Bearer ${window.sessionStorage.getItem('msal.idtoken')}`,\n    }),\n  }).then((res) => res.json());\n  const { data } = useQuery('announcement', fetchAnnouncements);\n\n  return {\n    announcements: data && data.data ? data.data.serviceBanners : [],\n  };\n};\n\nexport default useAnnouncements;\n","/* eslint-disable react/function-component-definition */\nimport React from 'react';\nimport Announcement from './Announcement';\nimport { useAnnouncements } from '../../service/service';\n\nconst Announcements = () => <Announcement className=\"announcement\" {...useAnnouncements()} />;\nexport default Announcements;\n","export default __webpack_public_path__ + \"static/media/CPTA_logo.e653a6b0.png\";","/* eslint-disable react/function-component-definition */\nimport React from 'react';\n\nimport { Header, Button } from 'semantic-ui-react';\n\nimport {\n  LINK_CPTA_RDCA_DAP,\n  LINK_FDA_ACKNOWLEDGMENT,\n} from 'env-create-react-app';\n\nimport CPTALogoHor from '../images/CPTA_logo.png';\n\nfunction toggleOverview() {\n  const element = document.getElementById('flex');\n  if (element.classList.contains('overview-hidden')) {\n    document.getElementById('overview-content').style.marginLeft = '1rem';\n  } else {\n    const contentWidth = document.getElementById('overview-content').offsetWidth - 56;\n    document.getElementById('overview-content').style.marginLeft = `-${contentWidth}px`;\n  }\n  element.classList.toggle('overview-hidden');\n}\n\nconst Overview = () => (\n  <div className=\"overview\">\n    <Button type=\"button\" aria-label=\"Toggle Overview\" className=\"overview_toggle toggle left\" onClick={toggleOverview}><i className=\"arrow circle left icon\" /></Button>\n    <Button type=\"button\" aria-label=\"Toggle Overview\" className=\"overview_toggle toggle right\" onClick={toggleOverview}><i className=\"arrow circle right icon\" /></Button>\n    <div className=\"content\" id=\"overview-content\">\n      <Header as=\"h2\">Overview</Header>\n      <p>\n        The Critical Path to Therapeutics for the Ataxias (CPTA) is a public-private partnership\n        with the mission to optimize clinical trials for inherited ataxias. Through facilitating\n        a collaborative and consensus-driven community of patient advocates, researchers,\n        and regulators, CPTA aims to work collaboratively to develop tools and complete analyses\n        to accelerate the development of new therapies for inherited ataxias.\n      </p>\n      <p>\n        Please visit the\n        {' '}\n        <a href={LINK_CPTA_RDCA_DAP} target=\"_blank\" rel=\"noreferrer\">CPTA overview</a>\n        {' '}\n        to learn more.\n      </p>\n\n      <img src={CPTALogoHor} alt=\"Workspaces Overview\" id=\"overviewLogo\" />\n      <p>\n        Data contributed to CPTA is hosted on C-Path's Rare Disease Cures Accelerator\n        - Data and Analytics Platform (RDCA-DAP), an FDA-funded initiative that provides\n        a centralized and standardized infrastructure for data across rare and orphan diseases.\n        {' '}\n        <a href={LINK_FDA_ACKNOWLEDGMENT} target=\"_blank\" rel=\"noreferrer\"> Click here for more information.</a>\n        {' '}\n      </p>\n\n      <Header as=\"h2\">Who we are</Header>\n\n      <p>\n        Officially launched in February 2021, CPTA is a public-private partnership with the mission\n        to optimize clinical trials for inherited ataxias. CPTA is a collaborative effort between\n        C-Path, the Ataxia Global Initiative, the National Ataxia Foundation, Ataxia UK, the Ataxia\n        Charlevoix-Saguenay Foundation and key partners in the industry and academic research\n        communities, including Biogen, Biohaven Pharmaceuticals, Ionis, PTC Therapeutics, Roche,\n        Servier Pharmaceuticals and VICO Therapeutics.\n      </p>\n\n      <Header as=\"h2\">Our mission</Header>\n\n      <p>\n        Inherited ataxias are a diverse collection of genetic disorders with unique genetic causes\n        and a spectrum of clinical presentation, affecting many different body systems. Although\n        the pipeline of new medical products for the ataxias is expanding, there remain large gaps\n        in our understanding of these diverse disorders.\n\n      </p>\n      <p>\n        There is an urgent need for actionable tools to understand the natural history, progression,\n        and variance in these diseases, as well as how to measure therapeutic effects in clinical\n        trials.\n      </p>\n      <p>\n        Our mission is to bring together experts from across different fields of ataxia research,\n        advocacy, and medical product development to create regulatory tools and strategies that\n        will catalyze research in the ataxias. In doing so, we aim to increase the efficiency\n        and effectiveness of medical product development for these disorders and deliver innovative\n        treatments to patients in need.\n      </p>\n\n    </div>\n  </div>\n);\n\nexport default Overview;\n","export default __webpack_public_path__ + \"static/media/FAIRLogo2020-white.ca634593.svg\";","export default __webpack_public_path__ + \"static/media/workspacesLogo2020-white.5b328fb0.svg\";","export default __webpack_public_path__ + \"static/media/btn_ws.5617eae5.jpg\";","export default __webpack_public_path__ + \"static/media/btn_ws_advanced.91a7dcb1.jpg\";","export default __webpack_public_path__ + \"static/media/btn_fair.b261a43b.jpg\";","export default __webpack_public_path__ + \"static/media/AridhiaDRE-PoweredBy.0b456d64.svg\";","/* eslint-disable react/function-component-definition */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport {\n  Container, Segment, Grid, Header, Card, Icon,\n} from 'semantic-ui-react';\nimport {\n  LINK_CPTA_FAIR,\n  LINK_CPTA_WORKSPACE_WEST_EUROPE,\n  LINK_ARIDHIA_CONTACT_SD,\n  LINK_ARIDHIA_SHINY_APPS,\n  LINK_ARIDHIA_LEARNING_CENTRE,\n  LINK_CPTA_SUPPORTED_BROWSERS,\n  LINK_EMBED_CPTA_RDCA_DAP_VIDEO,\n  LINK_ARIDHIA_KB,\n  LINK_CPTA_LMS_WS_FUNDAMENTALS,\n  LINK_CPTA_LMS_WS_ADVANCED,\n  LINK_CPTA_LMS_FAIR,\n  LINK_CPTA_DATASETS,\n  LINK_CPTA_WS,\n  LINK_ARIDHIA_WEBSITE,\n  LINK_NORD,\n  LINK_EURORDIS,\n  ENDPOINT_SECURITY,\n  ENDPOINT_REQUEST_WORKSPACE,\n  ENDPOINT_CONTRIBUTE_DATA,\n  // ENDPOINT_CONTRIBUTE_DATA,\n} from 'env-create-react-app';\n\nimport FAIRLogo2020White from '../images/FAIRLogo2020-white.svg';\nimport WorkspacesLogo2020White from '../images/workspacesLogo2020-white.svg';\nimport WSFundamentals from '../images/btn_ws.jpg';\nimport WSAdvanced from '../images/btn_ws_advanced.jpg';\nimport FAIRStandard from '../images/btn_fair.jpg';\nimport poweredByAridhia from '../images/AridhiaDRE-PoweredBy.svg';\n\nconst Content = () => (\n  <div className=\"portal page content\">\n    <Container>\n      <Segment className=\"portal-elements\">\n\n        <Header as=\"h2\">Quick Start</Header>\n        <p id=\"lead-text\">\n          <strong>New users</strong>\n          : please\n          {' '}\n          <a href=\"https://workspaces.westeurope.dap.c-path.org/\" target=\"_blank\" rel=\"noreferrer\">sign up here</a>\n          {' '}\n          before visiting Workspaces and FAIR. Platform access will be reviewed within 3-5 business\n          days.\n          More info\n          {' '}\n          <a href=\"https://knowledgebase.aridhia.io/article/registering-for-a-workspaces-account/\" target=\"_blank\" rel=\"noreferrer\">here</a>\n          .\n        </p>\n        <p>\n          Use these Quick Start steps to explore the platform and available data. If you are\n          interested in using CPTA data for research or study, please request a research workspace\n          prior to submitting a Data Access Request in FAIR. A member of the\n          C-Path team will address workspace requests within 3-5 business days.\n        </p>\n        <Grid stackable columns=\"equal\">\n          <Grid.Column>\n            <Card fluid>\n              <Card.Header className=\"content\">\n                <img src={FAIRLogo2020White} alt=\"\" aria-hidden=\"true\" className=\"right floated icon fair\" />\n                <a href={LINK_CPTA_FAIR} target=\"_blank\" rel=\"noreferrer\" className=\"workspace-name\">1. Discover Data</a>\n              </Card.Header>\n              <Card.Content>\n                <div className=\"description\">\n                  <ol>\n                    <li>\n                      Go to FAIR Data Services\n                      <a href={LINK_CPTA_FAIR} className=\"ui button\" target=\"_blank\" rel=\"noreferrer\">\n                        <img alt=\"FAIR logo\" src={FAIRLogo2020White} className=\"icon icon-inline fair\" />\n                        Data Services\n                      </a>\n                    </li>\n                    <li>\n                      Review the existing datasets: Click 'Datasets' and select ‘All datasets’\n                      in the dropdown.\n                      <a title=\"Datasets\" className=\"ui button aridhia-data-launcher\" href={LINK_CPTA_DATASETS} target=\"_blank\" rel=\"noreferrer\">\n                        <i aria-hidden=\"true\" className=\"database icon icon-inline\" />\n                        Datasets\n                      </a>\n                    </li>\n                    <li>\n                      Click on an individual dataset to review its metadata.\n                    </li>\n                  </ol>\n                </div>\n              </Card.Content>\n            </Card>\n          </Grid.Column>\n          <Grid.Column>\n            <Card fluid>\n              <Card.Header className=\"content\">\n                <Icon name=\"exclamation circle\" size=\"large\" className=\"right floated white\" />\n                <a href={ENDPOINT_REQUEST_WORKSPACE} className=\"workspace-name\">2. Request Access</a>\n              </Card.Header>\n              <Card.Content>\n                <Card.Description>\n                  <ol>\n                    <li>\n                      When you have found a dataset of interest,\n                      <a href={ENDPOINT_REQUEST_WORKSPACE}> request a workspace for data access</a>\n                      .\n                    </li>\n                    <li>\n                      Once approved, you will be invited to join a workspace.\n                    </li>\n                    <li>\n                      To request data access, go to FAIR and click the Request Icon &nbsp;\n                      <i className=\"icon key\" />\n                      in the menubar.\n                    </li>\n                    <li>\n                      Fill out the form and submit – once approved, you can transfer the dataset\n                      to your workspace.\n                    </li>\n                  </ol>\n                </Card.Description>\n              </Card.Content>\n            </Card>\n          </Grid.Column>\n          <Grid.Column>\n            <Card fluid>\n              <Card.Header className=\"content\">\n                <img src={WorkspacesLogo2020White} alt=\"\" className=\"right floated icon\" />\n                <a href={LINK_CPTA_WORKSPACE_WEST_EUROPE} target=\"_blank\" rel=\"noreferrer\" className=\"workspace-name\">3. Conduct Research</a>\n              </Card.Header>\n              <Card.Content>\n                <Card.Description>\n                  <ol>\n                    <li>\n                      Go to Workspaces\n                      <a href={LINK_CPTA_WS} className=\"ui button\" target=\"_blank\" rel=\"noreferrer\">\n                        <img alt=\"Workspaces logo\" src={WorkspacesLogo2020White} className=\"icon icon-inline icon-inline-ws\" />\n                        Workspaces\n                      </a>\n                    </li>\n                    <li>\n                      From the Workspaces home page, you can view your workspaces and invitations.\n                    </li>\n                    <li>\n                      Accept any pending invites and click to enter your workspace.\n                    </li>\n                  </ol>\n                </Card.Description>\n              </Card.Content>\n            </Card>\n          </Grid.Column>\n\n        </Grid>\n        <Grid stackable columns=\"equal\">\n          <Grid.Column>\n            <Card fluid>\n              <Card.Header className=\"content\">\n                <Icon name=\"database\" size=\"large\" className=\"right floated white\" />\n                <a href={ENDPOINT_CONTRIBUTE_DATA} rel=\"noreferrer\" className=\"workspace-name\">4. Contribute Datasets</a>\n              </Card.Header>\n              <Card.Content>\n                <Card.Description className=\"qs4-container\">\n                  <div className=\"qs4-text\">\n                    <strong>\n                      Interested in contributing research, study,\n                      or clinical trials data to RDCA-DAP?\n                    </strong>\n                    <br />\n                    <br />\n                    <ol>\n                      <li>\n                        Share your interest in contributing data to C-Path and provide\n                        supporting information.\n                        <a href={ENDPOINT_CONTRIBUTE_DATA} className=\"ui button\" rel=\"noreferrer\">\n                          <i aria-hidden=\"true\" className=\"upload icon icon-inline\" />\n                          Connect\n                        </a>\n                      </li>\n                      <li>\n                        C-Path will review and reach out with more information\n                        within 10 business days.\n                      </li>\n                    </ol>\n                    <p>\n                      If you are a patient or patient advocate seeking a place for single patient\n                      data, or help on establishing data collection efforts, please reach out to\n                      {' '}\n                      <a href={LINK_NORD} target=\"blank\">\n                        NORD\n                      </a>\n                      {' '}\n                      (US based) or\n                      {' '}\n                      <a href={LINK_EURORDIS} target=\"blank\">\n                        EURORDIS\n                      </a>\n                      {' '}\n                      (EU based) to identify available databases.\n                    </p>\n                  </div>\n                  <div className=\"qs4-image\" />\n                </Card.Description>\n              </Card.Content>\n            </Card>\n          </Grid.Column>\n        </Grid>\n\n        <Header as=\"h2\">Getting Started</Header>\n\n        <Grid stackable columns=\"equal\">\n          <Grid.Column>\n            <Card fluid>\n              <Card.Header className=\"content\">\n                <Icon name=\"cog\" size=\"large\" className=\"right floated white\" />\n                <span className=\"workspace-name\">Using C-Path DAP</span>\n              </Card.Header>\n              <Card.Content className=\"hero-content\">\n                <Card.Description className=\"hero-child\">\n                  <p>\n                    The Data and Analytics Platform includes FAIR Data Services and Workspaces.\n                  </p>\n                  <ul>\n                    <li>\n                      <strong>FAIR</strong>\n                      {' '}\n                      includes integrated data from clinical trials, observational\n                      studies, real-world data, patient registries and other sources.\n                    </li>\n                    <li>\n                      In\n                      {' '}\n                      <strong>Workspaces</strong>\n                      , advanced analytics capabilities allow efficient and effective\n                      interrogation of data to generate insights, analyses and solutions.\n                    </li>\n                  </ul>\n                  <p>\n                    When using the C-Path DAP, please refer to the current list of\n                    {' '}\n                    <a href={LINK_CPTA_SUPPORTED_BROWSERS} target=\"_blank\" rel=\"noreferrer\">supported browsers</a>\n                    .\n                  </p>\n                  <p>\n                    <a className=\"ui purple button CPTA image\" href={LINK_CPTA_LMS_WS_FUNDAMENTALS} target=\"_blank\" rel=\"noreferrer\">\n                      <span><img src={WSFundamentals} alt=\"Workspaces Fundamentals\" className=\"ui image\" /></span>\n                      <div>Introduction to Workspaces</div>\n                    </a>\n                    <a className=\"ui purple button CPTA image\" href={LINK_CPTA_LMS_FAIR} target=\"_blank\" rel=\"noreferrer\">\n                      <span><img src={FAIRStandard} alt=\"FAIR Standard\" className=\"ui image\" /></span>\n                      <div>Using FAIR Data Services</div>\n                    </a>\n                    <a className=\"ui purple button CPTA image\" href={LINK_CPTA_LMS_WS_ADVANCED} target=\"_blank\" rel=\"noreferrer\">\n                      <span><img src={WSAdvanced} alt=\"Workspaces Advanced\" className=\"ui image\" /></span>\n                      <div>Workspaces Advanced Learning</div>\n                    </a>\n                  </p>\n                </Card.Description>\n                <Card.Description className=\"hero-child\">\n                  <iframe title=\"ICODA Workspace Video\" width=\"100%\" height=\"315\" src={LINK_EMBED_CPTA_RDCA_DAP_VIDEO} frameBorder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowFullScreen />\n                </Card.Description>\n              </Card.Content>\n            </Card>\n          </Grid.Column>\n        </Grid>\n\n        <Header as=\"h2\">Useful Information</Header>\n\n        <Grid stackable columns=\"equal\">\n          <Grid.Column>\n            <Card fluid>\n              <Card.Header className=\"content\">\n                <Icon name=\"shield alternate\" size=\"large\" className=\"right floated white\" />\n                <a className=\"workspace-name\" href={ENDPOINT_SECURITY}>Data security</a>\n              </Card.Header>\n              <Card.Content>\n                <Card.Description>\n                  <p>\n                    Data can be highly sensitive: it can be at risk for re-identification even\n                    when explicit personally identifiable information is removed. Find out more\n                    about the measures that we use to keep data safe.\n                  </p>\n                </Card.Description>\n              </Card.Content>\n            </Card>\n          </Grid.Column>\n          <Grid.Column>\n            <Card fluid>\n              <Card.Header className=\"content\">\n                <Icon name=\"question circle outline\" size=\"large\" className=\"right floated white\" />\n                <a className=\"workspace-name\" target=\"_blank\" rel=\"noreferrer\" href={LINK_ARIDHIA_CONTACT_SD}>Need Help?</a>\n              </Card.Header>\n              <Card.Content>\n                <Card.Description className=\"need-help\">\n                  <div>\n                    <a href={LINK_ARIDHIA_CONTACT_SD} target=\"_blank\" rel=\"noreferrer\">\n                      <i aria-hidden=\"true\" className=\"life-ring x-large icon blue\" />\n                      Service Desk\n                    </a>\n                  </div>\n                  <div>\n                    <a href={LINK_ARIDHIA_KB} target=\"_blank\" rel=\"noreferrer\">\n                      <i aria-hidden=\"true\" className=\"question circle outline x-large icon blue\" />\n                      Knowledge Base\n                    </a>\n                  </div>\n                  <div>\n                    <a href={LINK_ARIDHIA_SHINY_APPS} target=\"_blank\" rel=\"noreferrer\">\n                      <i aria-hidden=\"true\" className=\"desktop x-large icon blue\" />\n                      Shiny Apps\n                    </a>\n                  </div>\n                  <div>\n                    <a href={LINK_ARIDHIA_LEARNING_CENTRE} target=\"_blank\" rel=\"noreferrer\">\n                      <i aria-hidden=\"true\" className=\"graduation x-large icon blue\" />\n                      Learning Center\n                    </a>\n                  </div>\n                </Card.Description>\n              </Card.Content>\n            </Card>\n          </Grid.Column>\n        </Grid>\n      </Segment>\n      <Segment className=\"portal-elements\">\n        <a href={LINK_ARIDHIA_WEBSITE} target=\"_blank\" rel=\"noreferrer\">\n          <img src={poweredByAridhia} alt=\"Powered by Aridhia DRE\" className=\"powered-by-aridhia\" />\n        </a>\n      </Segment>\n    </Container>\n  </div>\n\n);\n\nexport default Content;\n","/* eslint-disable react/function-component-definition */\nimport React from 'react';\nimport {\n  Container, Breadcrumb, Segment, Card, Header, Icon,\n} from 'semantic-ui-react';\n\nconst Security = () => (\n  <div className=\"portal page extra content\">\n    <Container>\n      <Breadcrumb>\n        <Breadcrumb.Section link href=\"/\">Home</Breadcrumb.Section>\n        <Breadcrumb.Divider icon=\"right angle\" />\n        <Breadcrumb.Section active>Data Security</Breadcrumb.Section>\n      </Breadcrumb>\n\n      <Segment className=\"portal-elements\">\n        <Card fluid>\n          <Card.Header className=\"content\">\n            <Icon name=\"shield alternate\" size=\"large\" className=\"right floated blue\" />\n            <span className=\"workspace-name\">Data Security</span>\n          </Card.Header>\n          <Card.Content>\n            <Card.Description>\n              <p>\n                Keeping adequate protections on sensitive data is of utmost importance to\n                ensure the safety, and the trust, of study participants. Thus, in establishing\n                this system for sharing and accessing data, particular attention is placed on\n                governance and security models. Governance here means the constraints on how\n                the data is ingressed, stored, egressed, tools, and the technical, including\n                cybersecurity and breach procedures.\n              </p>\n              <p>\n                Currently, workspaces require approval to invite additional participants,\n                download data from the workspaces, and accessing sites/installing tools\n                outside of those on the allow list mentioned below. In future updates,\n                more advanced techniques will be developed so that only workspaces with\n                access to the most restrictive data will require these precautions.\n              </p>\n            </Card.Description>\n          </Card.Content>\n        </Card>\n\n        <Card fluid>\n          <Card.Header className=\"content\">\n            <Icon name=\"arrows alternate horizontal\" size=\"large\" className=\"right floated blue\" />\n            <span className=\"workspace-name\">Network controls</span>\n          </Card.Header>\n          <Card.Content>\n            <Card.Description>\n              <p>\n                <b>Inbound</b>\n                {' '}\n                connections to the Workbench are controlled by multi-factor authentication.\n                This means that you must be a logged in user verified with a second device\n                every time you use the service. There are limited ways you can connect to the\n                Workspace - all traffic is through HTTPS and usually through a browser. Due\n                to limitations in how data transfers can be controlled, we are unable to support\n                direct\n                {' '}\n                <i>ssh</i>\n                {' '}\n                connections to Workspaces. For similar reasons, it is not possible to provide\n                direct access to\n                {' '}\n                <i>github.com</i>\n                {' '}\n                (a private gitlab service can be provided).\n              </p>\n              <p>\n                <b>Outbound</b>\n                {' '}\n                connections are regulated through a proxy and an\n                {' '}\n                <b>allow</b>\n                {' '}\n                list. This means that users in a Workspace connecting to Internet services can only\n                connect to systems explicitly on the allow list. Currently it is not possible to\n                regulate connections per workspace, so approvals for inclusion in the allow list\n                have to consider the needs of all Workspace users.\n              </p>\n              <p>\n                Please contact the\n                {' '}\n                <a href=\"mailto:servicedesk@aridhia.com\">Service Desk</a>\n                {' '}\n                if you need to request access to a particular site that is not on the list.\n              </p>\n              <p>\n                <b>Note</b>\n                {' '}\n                Workspace users can always upload software and data into their private Workspace.\n              </p>\n            </Card.Description>\n          </Card.Content>\n        </Card>\n\n        <Header as=\"h2\">Allow List</Header>\n\n        <table className=\"ui celled unstackable striped table top\">\n          <thead>\n            <tr>\n              <th>Purpose</th>\n              <th>Domains allowed</th>\n              <th>Notes</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td>\n                R Package management\n              </td>\n              <td>\n                <ul>\n                  <li>r.aridhia.net</li>\n                  <li>cloud.r-project.org</li>\n                  <li>.rstudio.org</li>\n                  <li>rstudio.com</li>\n                  <li>www.stats.bris.ac.uk</li>\n                  <li>cran.ma.imperial.ac.uk</li>\n                  <li>cran.cnr.berkeley.edu</li>\n                  <li>mran.microsoft.com</li>\n                  <li>ftp.osuosl.org</li>\n                  <li>bioconductor.org</li>\n                </ul>\n              </td>\n              <td>\n                Allows users to install a wide range of R-based statistical, machine learning and\n                visualisation packages from community code repositories.\n              </td>\n            </tr>\n            <tr>\n              <td>\n                Python Package management\n              </td>\n              <td>\n                <ul>\n                  <li>pypi.python.org</li>\n                  <li>pypi.org</li>\n                  <li>files.pythonhosted.org</li>\n                  <li>anaconda.org</li>\n                  <li>repo.anaconda.com</li>\n                </ul>\n              </td>\n              <td>\n                Allows users to install a wide range of Python-based statistical, machine learning\n                and visualisation packages from community code repositories\n              </td>\n            </tr>\n            <tr>\n              <td>\n                Ubuntu Linux package management\n              </td>\n              <td>\n                <ul>\n                  <li>ftp.heanet.ie</li>\n                  <li>nl.archive.ubuntu.com</li>\n                  <li>file.core.windows.net</li>\n                  <li>azure.archive.ubuntu.com</li>\n                  <li>archive.ubuntu.com</li>\n                  <li>security.ubuntu.com</li>\n                  <li>ppa.launchpad.net</li>\n                </ul>\n              </td>\n              <td>\n                Allows users to install standard software packages and dependencies for statistical\n                analysis, as well as apply security and operating system updates to the Ubuntu Linux\n                virtual machines in Workspaces.\n              </td>\n            </tr>\n            <tr>\n              <td>\n                Windows patching\n              </td>\n              <td>\n                <ul>\n                  <li>packages.microsoft.com</li>\n                  <li>file.core.windows.net</li>\n                </ul>\n              </td>\n              <td>\n                Allows users to maintain the operating system on Windows virtual machines\n                in Workspaces.\n              </td>\n            </tr>\n            <tr>\n              <td>\n                NVIDIA GPU support\n              </td>\n              <td>\n                <ul>\n                  <li>developer.download.nvidia.com</li>\n                </ul>\n              </td>\n              <td>\n                Allows users to download and install essential libraries for running machine\n                learning frameworks (like Tensorflow) on NVIDIA GPU hardware in Virtual\n                Machines in the Workspace.\n              </td>\n            </tr>\n          </tbody>\n        </table>\n      </Segment>\n    </Container>\n  </div>\n);\n\nexport default Security;\n","import * as msal from 'msal';\n\nimport {\n  B2C_SIGNUPSIGNIN,\n  B2C_FORGOTPASSWORD,\n  B2C_PROFILEEDIT,\n  B2C_AUTHORITY,\n  B2C_CLIENT_ID,\n  B2C_REDIRECT_URL,\n} from 'env-create-react-app';\n\nexport const b2cPolicies = {\n  names: {\n    signUpSignIn: B2C_SIGNUPSIGNIN,\n    forgotPassword: B2C_FORGOTPASSWORD,\n    editProfile: B2C_PROFILEEDIT,\n  },\n  authorities: {\n    signUpSignIn: {\n      authority: `${B2C_AUTHORITY}/${B2C_SIGNUPSIGNIN}`,\n    },\n    forgotPassword: {\n      authority: `${B2C_AUTHORITY}/${B2C_FORGOTPASSWORD}`,\n    },\n    editProfile: {\n      authority: `${B2C_AUTHORITY}/${B2C_PROFILEEDIT}`,\n    },\n  },\n};\n\nexport const msalConfig = {\n  auth: {\n    clientId: B2C_CLIENT_ID,\n    authority: `${B2C_AUTHORITY}/${B2C_SIGNUPSIGNIN}`,\n    redirectUri: B2C_REDIRECT_URL,\n    knownAuthorities: [\n      `${B2C_AUTHORITY}/${B2C_SIGNUPSIGNIN}`,\n    ],\n    validateAuthority: false,\n  },\n  cache: {\n    cacheLocation: 'sessionStorage', // This configures where your cache will be stored\n    storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\n  },\n  system: {\n    loggerOptions: {\n      loggerCallback: (level, message, containsPii) => {\n        if (containsPii) {\n          return;\n        }\n        switch (level) {\n          case msal.LogLevel.Error:\n            console.error(message);\n            return;\n          case msal.LogLevel.Info:\n            console.info(message);\n            return;\n          case msal.LogLevel.Verbose:\n            console.debug(message);\n            return;\n          case msal.LogLevel.Warning:\n            console.warn(message);\n            return;\n          default:\n            console.log(message);\n        }\n      },\n    },\n  },\n};\n\n// Add here scopes for id token to be used at MS Identity Platform endpoints.\nexport const loginRequest = {\n  scopes: ['openid', 'profile'],\n};\nexport const tokenRequest = {\n  scopes: [],\n};\n","import * as Msal from 'msal';\nimport {\n  b2cPolicies, msalConfig, loginRequest,\n} from './auth';\n\n// -------------------------------------------------------------------------------------------------\n// msal interaction functions\n// -------------------------------------------------------------------------------------------------\n\n// Use v1 for now.\nexport const msalObj = new Msal.UserAgentApplication(msalConfig);\n\nexport function authRedirectCallBack(error, response) {\n  // Error handling\n  if (error) {\n    console.log(error);\n\n    // Check for forgot password error\n    // Learn more about AAD error codes at https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes\n    if (error.errorMessage.indexOf('AADB2C90118') > -1) {\n      try {\n        // Password reset policy/authority\n        msalObj.loginRedirect(b2cPolicies.authorities.forgotPassword);\n      } catch (err) {\n        console.log(err);\n      }\n    }\n    return (false);\n  }\n\n  // We need to reject id tokens that were not issued with the default sign-in policy.\n  // \"acr\" claim in the token tells us what policy is used (NOTE: for new policies (v2.0), use\n  // \"tfp\" instead of \"acr\")\n  // To learn more about b2c tokens, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview\n  if (response.tokenType === 'id_token' && response.idToken.claims.acr === b2cPolicies.names.forgotPassword) {\n    msalObj.logout();\n    window.alert('Password has been reset successfully. \\nPlease sign-in with your new password.');\n  } else if (response.tokenType === 'id_token' && response.idToken.claims.acr === b2cPolicies.names.editProfile) {\n    window.alert('Profile has been updated successfully.');\n  } else if (response.tokenType === 'id_token' && response.idToken.claims.acr === b2cPolicies.names.signUpSignIn) {\n    console.log(`id_token acquired at: ${new Date().toString()}`);\n  } else if (response.tokenType === 'access_token') {\n    console.log(`access_token acquired at: ${new Date().toString()}`);\n    const { accessToken } = response;\n    console.log('Request made to Web API:');\n    if (accessToken) {\n      try {\n        console.log('tried calling callApiWithAccessToken');\n        // callApiWithAccessToken(apiConfig.webApi, accessToken);\n      } catch (err) {\n        console.log(err);\n      }\n    }\n  } else {\n    console.log(`Token type is: ${response.tokenType}`);\n  }\n  return true;\n}\n\nexport function signIn() {\n  return msalObj.loginRedirect(loginRequest);\n}\n\n// sign-out the user\nexport function signOut() {\n  // Removes all sessions, need to call AAD endpoint to do full logout\n  msalObj.logout();\n}\n\nexport function handleRedirect() {\n  msalObj.handleRedirectCallback(authRedirectCallBack);\n}\n","/* eslint-disable react/no-unstable-nested-components */\n/* eslint-disable react/function-component-definition */\nimport React, { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n  Container,\n  Segment,\n  Breadcrumb,\n  Card,\n  Form,\n  Button,\n  Message,\n  Icon,\n  Ref,\n  Divider,\n} from 'semantic-ui-react';\nimport axios from 'axios';\n\nimport {\n  API_BASE,\n  API_ENDPOINT_REQUEST_WORKSPACE,\n  LINK_ARIDHIA_CONTACT_SD,\n  LINK_CPTA_TERMS_OF_USE,\n} from 'env-create-react-app';\n\nimport { msalObj } from '../auth/signin';\n\nconst RequestWorkspace = ({ loggedIn, signIn }) => {\n  const valuesOrig = {\n    vm_linux: false,\n    vm_windows: false,\n    acceptToC: false,\n    sector: '',\n    data_access_intent: '',\n\n  };\n\n  const [values, setValues] = useState(valuesOrig);\n\n  const [submitDisabled, setSubmitDisabled] = useState(false);\n\n  const formRef = useRef(null);\n\n  const [message, setMessage] = useState({\n    showMessage: false,\n    header: '',\n    message: '',\n    isLoading: '',\n    isError: false,\n    isSuccess: false,\n  });\n\n  const onChange = (event, result) => {\n    const { name, value } = result || event.target;\n    setValues({ ...values, [name]: value });\n  };\n\n  const onChangeCheckbox = (event, result) => {\n    const { name, checked } = result || event.target;\n    setValues({ ...values, [name]: checked });\n  };\n\n  const hideMessage = (clearFields = true) => {\n    setMessage({ showMessage: false });\n    if (clearFields) {\n      setValues(valuesOrig);\n      formRef.current.reset();\n    }\n    setSubmitDisabled(false);\n  };\n\n  const handleSuccessMessage = () => {\n    setMessage({\n      showMessage: true,\n      header: 'Message Sent',\n      message:\n        'Thank you for making the request which is now under review. You will be provided an invitation to your workspace on approval.',\n      isLoading: false,\n      isError: false,\n      isToCError: false,\n      isSuccess: true,\n    });\n  };\n\n  const handlefailIdTokenMessage = () => {\n    setMessage({\n      showMessage: true,\n      header: 'Failed to retrieve ID Token',\n      message: 'There was an error processing your request. (Authentication error).',\n      isLoading: false,\n      isError: false,\n      isToCError: false,\n      isSuccess: true,\n    });\n    setSubmitDisabled(false);\n  };\n\n  const handleFailUnauthorizedMessage = () => {\n    setMessage({\n      showMessage: true,\n      header: 'Unauthorized',\n      message: 'Your token was unauthorized. Please try to log out and log back in again.',\n      isLoading: false,\n      isError: true,\n      isToCError: false,\n      isSuccess: false,\n    });\n    setSubmitDisabled(false);\n  };\n\n  const handleGenericErrorMessage = () => {\n    setMessage({\n      showMessage: true,\n      header: 'Error',\n      message: 'Unfortunately there was an error processing your request.',\n      isLoading: false,\n      isError: true,\n      isToCError: false,\n      isSuccess: false,\n    });\n    setSubmitDisabled(false);\n  };\n\n  const handleToCErrorMessage = () => {\n    setMessage({\n      showMessage: true,\n      header: 'Please accept the Terms and Conditions',\n      message: 'In order to submit this request you must read and accept the terms and conditions.',\n      isLoading: false,\n      isError: false,\n      isToCError: true,\n      isSuccess: false,\n    });\n    setSubmitDisabled(false);\n  };\n\n  const handleToDataScienceVMMessage = () => {\n    setMessage({\n      showMessage: true,\n      header: 'Please select if you wish to apply the Data Science VM Template',\n      message: 'In order to submit this request you must you must fix the above error.',\n      isLoading: false,\n      isError: false,\n      isToCError: true,\n      isSuccess: false,\n    });\n    setSubmitDisabled(false);\n  };\n  const handleSectorMessage = () => {\n    setMessage({\n      showMessage: true,\n      header: 'Please select the sector of you institution or organization',\n      message: 'In order to submit this request you must you must fix the above error.',\n      isLoading: false,\n      isError: false,\n      isToCError: true,\n      isSuccess: false,\n    });\n    setSubmitDisabled(false);\n  };\n  const displayMessageContent = () => {\n    if (message.isLoading) {\n      return (\n        <Message icon>\n          <Icon name=\"circle notched\" loading />\n          <Message.Content>\n            <Message.Header>{message.header}</Message.Header>\n            <p>{message.message}</p>\n          </Message.Content>\n        </Message>\n      );\n    }\n\n    if (message.isError) {\n      return (\n        <Message negative onDismiss={() => hideMessage(false)}>\n          <Message.Header>{message.header}</Message.Header>\n          <p>{message.message}</p>\n          <p>\n            If you keep seeing this message, please\n            {' '}\n            <a href={LINK_ARIDHIA_CONTACT_SD} target=\"_blank\" rel=\"noreferrer\">\n              contact the Service Desk\n            </a>\n            .\n          </p>\n        </Message>\n      );\n    }\n\n    if (message.isToCError) {\n      return (\n        <Message negative onDismiss={() => hideMessage(false)}>\n          <Message.Header>{message.header}</Message.Header>\n          <p>{message.message}</p>\n        </Message>\n      );\n    }\n\n    if (message.isSuccess) {\n      return (\n        <Message positive onDismiss={() => hideMessage(true)}>\n          <Message.Header>{message.header}</Message.Header>\n          <p>{message.message}</p>\n        </Message>\n      );\n    }\n\n    return (\n      <Message onDismiss={() => hideMessage(false)}>\n        <Message.Header>{message.header}</Message.Header>\n        <p>{message.message}</p>\n      </Message>\n    );\n  };\n\n  const onSubmit = (event) => {\n    setSubmitDisabled(true);\n\n    if (!values.apply_data_science_template && (values.vm_linux || values.vm_windows)) {\n      handleToDataScienceVMMessage();\n      return;\n    }\n\n    if (!values.apply_data_science_template && !values.vm_linux && !values.vm_windows) {\n      values.apply_data_science_template = 'No VM was selected.';\n    }\n\n    if (!values.acceptToC) {\n      handleToCErrorMessage();\n      return;\n    }\n    // html dropdown boxes don't support a required property so have to do a manual check here\n    if (values.sector === '') {\n      handleSectorMessage();\n      return;\n    }\n\n    setMessage({\n      showMessage: true,\n      header: 'Just one second',\n      message: 'We are submitting your form.',\n      isLoading: true,\n      isError: false,\n      isSuccess: false,\n    });\n\n    const account = msalObj.getAccount();\n    if (typeof account.idToken === 'undefined' || account.idToken == null) {\n      console.error('Failed to obtain idToken');\n      handlefailIdTokenMessage();\n    } else {\n      // Information on the logged in account\n      const givenName = account.idToken.given_name;\n      const familyName = account.idToken.family_name;\n      const email = account.idToken.emails && account.idToken.emails.length > 0\n        ? account.idToken.emails[0]\n        : 'Not Available';\n      const userid = account.idToken.oid ? account.idToken.oid : 'Not Available';\n\n      let data = values;\n      // if the data access is data only then clear all the additional questions\n      // Checking here so setState isn't called.  If someone accidentally changes the\n      // selection we don't want to lose all their data from the form - that would be annoying\n      if (values.data_access_intent === 'Workspace for data download only') {\n        data.vm_linux = false;\n        data.vm_windows = false;\n        data.acceptToC = false;\n        data.additional_users = 'N/A';\n        data.other_requirements = 'N/A';\n        data.apply_data_science_template = 'N/A';\n      }\n\n      data.timestamp = `${new Date().toISOString()}`;\n      data.source_url = window.location.href;\n      data.userid = userid;\n      data.email = email;\n      data.full_name = `${givenName} ${familyName}`;\n      data = JSON.stringify(data);\n      axios\n        .post(\n          `${API_BASE}${API_ENDPOINT_REQUEST_WORKSPACE}`,\n\n          data,\n          {\n            headers: {\n              Authorization: `Bearer ${window.sessionStorage.getItem('msal.idtoken')}`,\n              'Content-Type': 'application/json',\n            },\n          },\n        )\n        .then(() => {\n          handleSuccessMessage();\n        })\n        .catch((error) => {\n          if (error.response) {\n            // Request made and server responded\n            console.log(error.response.data);\n            console.log(error.response.status);\n            console.log(error.response.headers);\n            if (error.response.status === 401) {\n              handleFailUnauthorizedMessage();\n            } else {\n              handleGenericErrorMessage();\n            }\n          } else if (error.request) {\n            // The request was made but no response was received\n            console.log(error.request);\n            handleGenericErrorMessage();\n          } else {\n            // Something happened in setting up the request that triggered an Error\n            console.log('Error', error.message);\n            handleGenericErrorMessage();\n          }\n        });\n      event.preventDefault();\n    }\n  };\n\n  // eslint-disable-next-line react/no-unstable-nested-components\n  const LoginRequest = () => (\n    <Card fluid>\n      <Card.Header className=\"content\">\n        <Icon name=\"exclamation circle\" size=\"large\" className=\"right floated white\" />\n        {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n        <a href=\"#\" onClick={signIn} role=\"button\" className=\"workspace-name\">\n          Sign In To Access Request a Workspace Form\n        </a>\n      </Card.Header>\n      <Card.Content>\n        <Card.Description>\n          <p>\n            This form requires a valid login to work.\n            {' '}\n            {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n            <a href=\"#\" onClick={signIn} role=\"button\">\n              Please sign in\n            </a>\n            {' '}\n            to access the Request a Workspace Form.\n          </p>\n          <br />\n          <p>\n            If you are having trouble signing in or require assistance, please\n            {' '}\n            <a href={LINK_ARIDHIA_CONTACT_SD} target=\"_blank\" rel=\"noreferrer\">\n              contact the Service Desk\n            </a>\n            .\n          </p>\n        </Card.Description>\n      </Card.Content>\n    </Card>\n  );\n  const sectorOptions = [\n    {\n      key: 'academia_or_research',\n      text: 'Academia/Research',\n      value: 'Academia/Research',\n    },\n    {\n      key: 'pharma_or_industry',\n      text: 'Pharma/Industry',\n      value: 'Pharma/Industry',\n    },\n    {\n      key: 'clinician',\n      text: 'Clinician',\n      value: 'Clinician',\n    },\n    {\n      key: 'non_profit',\n      text: 'Non-profit',\n      value: 'Non-profit',\n    },\n    {\n      key: 'government',\n      text: 'Government',\n      value: 'Government',\n    },\n    {\n      key: 'patient_or_caregiver',\n      text: 'Patient/Caregiver',\n      value: 'Patient/Caregiver',\n    },\n    {\n      key: 'patient_advisory_group',\n      text: 'Patient Advocacy Group',\n      value: 'Patient Advocacy Group',\n    },\n    {\n      key: 'other',\n      text: 'Other',\n      value: 'Other',\n    },\n\n  ];\n\n  const RequestWorkspaceForm = () => (\n    <Card fluid>\n      <Card.Header className=\"content\">\n        <Icon name=\"exclamation circle\" size=\"large\" className=\"right floated white\" />\n        <span className=\"workspace-name\">Request a Workspace</span>\n      </Card.Header>\n      <Card.Content className=\"square-corners\">\n        <Card.Description>\n          <p>\n            This form can be used to request a workspace. Response will be via email to your\n            registered user account.\n          </p>\n          <p>Please allow 3-5 business days for your request to be processed.</p>\n        </Card.Description>\n      </Card.Content>\n      <Card.Content>\n        <Ref innerRef={formRef}>\n          <Form id=\"form_request_workspace\" onSubmit={onSubmit}>\n            <Form.Field required>\n              <Form.Input\n                label=\"Institute or Organization\"\n                name=\"institute_name\"\n                placeholder=\"Institute or Organization\"\n                onChange={onChange}\n                required\n              />\n            </Form.Field>\n            <Form.Field required>\n              <Form.Select\n                required\n                label=\"Sector\"\n                name=\"sector\"\n                placeholder=\"Please select the sector of your institution or organization\"\n                onChange={onChange}\n                options={sectorOptions}\n                selection\n              />\n            </Form.Field>\n            <Form.Field required>\n              <Form.Input\n                label=\"Project or Research Name\"\n                name=\"project_name\"\n                placeholder=\"Project or Research Name\"\n                onChange={onChange}\n                required\n              />\n            </Form.Field>\n            <Form.Field required>\n              <Form.TextArea\n                label=\"Synopsis of Proposed Research\"\n                name=\"project_description\"\n                placeholder=\"Please describe the purpose, goals, and if you have any intentions for publication.\"\n                onChange={onChange}\n                rows=\"5\"\n                required\n              />\n            </Form.Field>\n            <Form.Input\n              label=\"What do you intend for data access\"\n              required\n              className=\"form-input-stack-items\"\n              input={\n                <>\n                  <Form.Radio\n                    label=\"Workspace for data download only\"\n                    name=\"data_access_intent\"\n                    value=\"Workspace for data download only\"\n                    checked={values.data_access_intent === 'Workspace for data download only'}\n                    onChange={onChange}\n                  />\n                  <Form.Radio\n                    label=\"NEW workspace for analysis.\"\n                    name=\"data_access_intent\"\n                    value=\"NEW workspace for analysis\"\n                    checked={values.data_access_intent === 'NEW workspace for analysis'}\n                    onChange={onChange}\n                  />\n                </>\n                    }\n            />\n            <div className={values.data_access_intent === 'NEW workspace for analysis' ? null : 'hidden'}>\n              <Divider />\n              <Form.Field>\n                <Form.TextArea\n                  label=\"Additional Users\"\n                  name=\"additional_users\"\n                  placeholder=\"Please provide email addresses of other users who should be invited to the workspace.\"\n                  onChange={onChange}\n                  rows=\"3\"\n                />\n              </Form.Field>\n              <Divider />\n              <Form.Group className=\"grouped\">\n                <h5>Do you require a virtual machine?</h5>\n                <Form.Field>\n                  <Form.Checkbox\n                    id=\"vm_windows\"\n                    name=\"vm_windows\"\n                    label=\"Windows Virtual Machine\"\n                    onClick={onChangeCheckbox}\n                    checked={values.vm_windows}\n                  />\n                </Form.Field>\n                <Form.Field>\n                  <Form.Checkbox\n                    id=\"vm_linux\"\n                    name=\"vm_linux\"\n                    label=\"Linux Virtual Machine\"\n                    onClick={onChangeCheckbox}\n                    checked={values.vm_linux}\n                  />\n                </Form.Field>\n              </Form.Group>\n\n              {values.vm_linux || values.vm_windows ? (\n                <Form.Group className=\"grouped\">\n                  <Form.Field // form input allows for error tag to be grouped\n                    id=\"form-input-datasciencevm\" // allows hook to scroll to in case of error\n                    style={{ scrollMarginTop: '5rem' }}\n                  >\n\n                    <label htmlFor=\"vm_radios\">\n                      <p>\n                        Do you a require a Data Science template to be applied to your Virtual\n                        Machine? The Data Science template includes the most common tools used in\n                        Data Science Workflows i.e.\n                        <span className=\"required\">*</span>\n                      </p>\n\n                      <ul>\n                        <li>\n                          <a href=\"https://jupyter.org/\" target=\"_blank\" rel=\"noreferrer\">\n                            Jupyter Notebook\n                          </a>\n                        </li>\n                        <li>\n                          <a href=\"https://www.rstudio.com/\" target=\"_blank\" rel=\"noreferrer\">\n                            RStudio\n                          </a>\n                        </li>\n                        <li>\n                          <a href=\"https://code.visualstudio.com/\" target=\"_blank\" rel=\"noreferrer\">\n                            Visual Studio Code\n                          </a>\n                        </li>\n                        <li>\n                          <a href=\"https://julialang.org/\" target=\"_blank\" rel=\"noreferrer\">\n                            Julia\n                          </a>\n                        </li>\n                        <li>\n                          <a href=\"https://cran.r-project.org/\" target=\"_blank\" rel=\"noreferrer\">\n                            CRAN-R\n                          </a>\n                        </li>\n                      </ul>\n                      <p>\n                        For more information please reference our Knowledge Base article\n                        {' '}\n                        <a href=\"https://knowledgebase.aridhia.io/article/using-a-data-science-virtual-machine/\" target=\"_blank\" rel=\"noreferrer\">Using a Data Science Virtual Machine – Aridhia DRE Workspaces Knowledge Base</a>\n                      </p>\n                      <Form.Input\n                        required\n                        className=\"form-input-stack-items\"\n                        name=\"vm_radios\"\n                        input={\n                          <>\n                            <Form.Radio\n                              label=\"Yes, apply the Data Science template to the virtual machine.\"\n                              name=\"apply_data_science_template\"\n                              value=\"Yes\"\n                              checked={values.apply_data_science_template === 'Yes'}\n                              onChange={onChange}\n                            />\n                            <Form.Radio\n                              label=\"No, I will install my own tools on the virtual machine.\"\n                              name=\"apply_data_science_template\"\n                              value=\"No\"\n                              checked={values.apply_data_science_template === 'No'}\n                              onChange={onChange}\n                            />\n                          </>\n                    }\n                      />\n                    </label>\n                  </Form.Field>\n                </Form.Group>\n              ) : (\n                ''\n              )}\n              <Form.Field>\n                <Form.TextArea\n                  label=\"Any other requirements?\"\n                  name=\"other_requirements\"\n                  placeholder=\"Please provide any additional details to help us set up your workspace.\"\n                  onChange={onChange}\n                  rows=\"3\"\n                />\n              </Form.Field>\n              <Divider />\n            </div>\n            <p>\n              Before submitting the request, please make sure you have read and agreed to the\n              {' '}\n              <a href={LINK_CPTA_TERMS_OF_USE} target=\"_blank\" rel=\"noreferrer\">\n                Terms and Conditions\n              </a>\n              {' '}\n              and have visited both\n              {' '}\n              <a\n                href=\"https://workspaces.westeurope.dap.c-path.org/\"\n                target=\"_blank\"\n                rel=\"noreferrer\"\n              >\n                Workspaces\n              </a>\n              {' '}\n              and\n              {' '}\n              <a href=\"https://fair.dap.c-path.org/\" target=\"_blank\" rel=\"noreferrer\">\n                FAIR Data Services\n              </a>\n              .\n            </p>\n\n            <Form.Field>\n              <Form.Checkbox\n                id=\"acceptToC\"\n                name=\"acceptToC\"\n                label=\"Agree to Terms and Conditions\"\n                onClick={onChangeCheckbox}\n                checked={values.acceptToC}\n              />\n            </Form.Field>\n            <Form.Field>{message.showMessage ? displayMessageContent() : ''}</Form.Field>\n            <div>\n              <Button id=\"form_request_workspace_submit\" type=\"submit\" className=\"form\" disabled={submitDisabled}>\n                Submit\n              </Button>\n            </div>\n          </Form>\n        </Ref>\n      </Card.Content>\n    </Card>\n  );\n\n  const FormContents = () => {\n    if (loggedIn) {\n      return RequestWorkspaceForm();\n    }\n    return LoginRequest();\n  };\n\n  return (\n    <div className=\"portal page extra content\">\n      <Container>\n        <Segment className=\"portal-elements\">\n          <Breadcrumb>\n            <Breadcrumb.Section href=\"/\">Home</Breadcrumb.Section>\n            <Breadcrumb.Divider icon=\"right angle\" />\n            <Breadcrumb.Section active>Request a Workspace</Breadcrumb.Section>\n          </Breadcrumb>\n        </Segment>\n        {FormContents()}\n      </Container>\n    </div>\n  );\n};\n\nRequestWorkspace.propTypes = {\n  loggedIn: PropTypes.bool.isRequired,\n  signIn: PropTypes.func.isRequired,\n};\n\nexport default RequestWorkspace;\n","export default __webpack_public_path__ + \"static/media/RDCA-DAP_Data_Use_Agreement_2022.992ac6ea.pdf\";","/* eslint-disable react/no-unstable-nested-components */\n/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport {\n  Card,\n  Container,\n  Segment,\n  Breadcrumb,\n  Icon,\n  Form,\n  Button,\n  Message,\n} from 'semantic-ui-react';\n\nimport axios from 'axios';\n\nimport {\n  API_BASE,\n  API_ENDPOINT_CONTRIBUTE_DATA,\n} from 'env-create-react-app';\n\nfunction ContributeData() {\n  const [submitStatus, setSubmitStatus] = useState({ type: '', show: false });\n\n  const [submitDisabled, setSubmitDisabled] = useState(false);\n\n  function SubmitMessage() {\n    setSubmitDisabled(true);\n    if (submitStatus.type === 'submitting') {\n      return (\n        <Message icon>\n          <Icon name=\"circle notched\" loading />\n          <Message.Content>\n            <Message.Header>Just one second</Message.Header>\n            We are submitting that for you.\n          </Message.Content>\n        </Message>\n      );\n    }\n    if (submitStatus.type === 'success') {\n      return (\n        <Message positive>\n          <Message.Content>\n            <Message.Header>\n              Success!\n            </Message.Header>\n            Thank you for making the request which is now under review.\n          </Message.Content>\n        </Message>\n      );\n    }\n    if (submitStatus.type === 'error') {\n      return (\n        <Message negative>\n          <Message.Content>\n            <Message.Header>\n              Error!\n            </Message.Header>\n            Unfortunately there was an error processing your request.\n          </Message.Content>\n        </Message>\n      );\n    }\n    return (\n      // eslint-disable-next-line react/jsx-no-useless-fragment\n      <></>\n    );\n  }\n\n  const {\n    register: contribute, handleSubmit,\n  } = useForm({\n    defaultValues: {\n      anonymizedData: 'No',\n      legalRights: 'No',\n    },\n  });\n  const onSubmit = (data) => {\n    setSubmitStatus({ type: 'submitting', show: true });\n    axios\n      .post(\n        `${API_BASE}${API_ENDPOINT_CONTRIBUTE_DATA}`,\n        data,\n        {\n          headers: {\n            'Content-Type': 'application/json',\n          },\n        },\n      )\n      .then(() => {\n        setSubmitStatus({ type: 'success', show: true });\n      })\n      .catch((error) => {\n        if (error.response) {\n          setSubmitStatus({ type: 'error', show: true });\n        }\n      });\n  };\n  function ContributeDataForm() {\n    return <Card fluid>\n      <Card.Header className=\"content\">\n        <Icon name=\"exclamation circle\" size=\"large\" className=\"right floated white\" />\n        <span className=\"workspace-name\">Contribute Data</span>\n      </Card.Header>\n      <Card.Content>\n        <Card.Description>\n          <p>\n            This form can be used to apply to contribute your data. Response will be via\n            email to your contact email address.\n          </p>\n          <p>Please allow 10 working days for a response.</p>\n        </Card.Description>\n        <Form onSubmit={handleSubmit(onSubmit)}>\n          <Form.Field>\n            <label htmlFor=\"organization\">\n              Organization\n              <span className=\"required\">*</span>\n              <input id=\"organization\" type=\"text\" placeholder=\"Organization\" {...contribute('organization')} required />\n            </label>\n          </Form.Field>\n          <Form.Field>\n            <label htmlFor=\"contactName\">\n              Contact Name\n              <span className=\"required\">*</span>\n              <input type=\"text\" placeholder=\"Contact Name\" {...contribute('contactName')} required />\n            </label>\n          </Form.Field>\n          <Form.Field>\n            <label htmlFor=\"contactPhone\">\n              Contact Phone\n              <span className=\"required\">*</span>\n              <input type=\"tel\" placeholder=\"Contact Phone\" {...contribute('contactPhone')} required />\n            </label>\n          </Form.Field>\n          <Form.Field>\n            <label htmlFor=\"contactEmail\">\n              Contact Email\n              <span className=\"required\">*</span>\n              <input type=\"email\" placeholder=\"Contact Email\" {...contribute('contactEmail')} required />\n            </label>\n          </Form.Field>\n          <Form.Field>\n            <label htmlFor=\"typeOfData\">\n              Type of data\n              <span className=\"required\">*</span>\n              <select {...contribute('typeOfData')} required>\n                <option value=\"Clinical Trial\">Clinical Trial</option>\n                <option value=\"Pre-clinical Trial\">Pre-clinical Trial</option>\n                <option value=\"Registry (patient or clinician)\">Registry (patient or clinician)</option>\n                <option value=\"Natural History Study\">Natural History Study</option>\n                <option value=\"Electronic Health Record (EHR)/Real World Data(RWD)\">Electronic Health Record (EHR)/Real World Data(RWD)</option>\n                <option value=\"Imaging\">Imaging</option>\n                <option value=\"Genomics\">Genomics</option>\n                <option value=\"Other\">Other</option>\n              </select>\n            </label>\n          </Form.Field>\n          <Form.Field>\n            <label htmlFor=\"diseaseArea\">\n              Disease Area\n              <span className=\"required\">*</span>\n              <input type=\"text\" placeholder=\"Disease area\" {...contribute('diseaseArea')} required />\n            </label>\n          </Form.Field>\n          <Form.Field id=\"legalRightsRadioGroup\">\n            <label htmlFor=\"legalRightsRadioGroup\">\n              Do you have all legal rights necessary to share this data?\n              <span className=\"required\">*</span>\n              <Form.Field>\n                <label htmlFor=\"legalRightsYes\">\n                  <input {...contribute('legalRights')} type=\"radio\" value=\"Yes\" />\n                  Yes\n                </label>\n              </Form.Field>\n              <Form.Field>\n                <label htmlFor=\"legalRightsNo\">\n                  <input {...contribute('legalRights')} type=\"radio\" value=\"No\" />\n                  No\n                </label>\n              </Form.Field>\n            </label>\n          </Form.Field>\n          <Form.Field id=\"anonymizedDataRadioGroup\">\n            <label htmlFor=\"anonymizedDataRadioGroup\" className=\"required field\">\n              Are the data anonymized/deidentified of all personally identifiable information?\n              <span className=\"required\">*</span>\n              <Form.Field>\n                <label htmlFor=\"anonymizedDataYes\" className=\"RadioGroupLabel\">\n                  <input {...contribute('anonymizedData')} type=\"radio\" value=\"Yes\" className=\"ui radio checkbox\" />\n                  Yes\n                </label>\n              </Form.Field>\n              <Form.Field>\n                <label htmlFor=\"anonymizedDataNo\">\n                  <input {...contribute('anonymizedData')} type=\"radio\" value=\"No\" className=\"ui radio checkbox\" />\n                  No\n                </label>\n              </Form.Field>\n            </label>\n          </Form.Field>\n          <Form.Field>{submitStatus.show ? SubmitMessage() : ''}</Form.Field>\n          <div>\n            <Button disabled={submitDisabled}>\n              Submit\n            </Button>\n          </div>\n        </Form>\n      </Card.Content>\n    </Card>;\n  }\n\n  return (\n    <div className=\"portal page extra content\">\n      <Container>\n        <Segment className=\"portal-elements\">\n          <Breadcrumb>\n            <Breadcrumb.Section href=\"/\">Home</Breadcrumb.Section>\n            <Breadcrumb.Divider icon=\"right angle\" />\n            <Breadcrumb.Section active>Contribute Data</Breadcrumb.Section>\n          </Breadcrumb>\n        </Segment>\n        <ContributeDataForm />\n      </Container>\n    </div>\n  );\n}\n\nexport default ContributeData;\n","/* eslint-disable react/function-component-definition */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n  BrowserRouter as Router,\n  Switch,\n  Route,\n  Redirect,\n  useLocation,\n} from 'react-router-dom';\n\nimport {\n  ENDPOINT_SECURITY,\n  ENDPOINT_REQUEST_WORKSPACE,\n  ENDPOINT_CONTRIBUTE_DATA,\n  ENDPOINT_DUP_PDF,\n} from 'env-create-react-app';\n\nimport Header from './components/Header';\nimport Announcements from './components/Announcements/Announcements';\nimport Overview from './components/Overview';\nimport Content from './components/Content';\nimport Security from './components/Security';\nimport RequestWorkspace from './components/RequestWorkspace';\nimport dupPdf from './docs/RDCA-DAP_Data_Use_Agreement_2022.pdf';\n\nimport {\n  msalObj,\n  signIn,\n  signOut,\n  handleRedirect,\n} from './auth/signin';\nimport ContributeData from './components/ContributeData';\n\nclass App extends React.Component {\n  constructor(props) {\n    super(props);\n\n    // this.pathname = useLocation();\n\n    // Register Callbacks for Redirect flow\n    handleRedirect(); // handles any redirect (like request password change)\n\n    // eslint-disable-next-line no-restricted-globals\n    history.scrollRestoration = 'manual'; // prevent autoscroll on page reload. Can sometimes prevent banners from showing.\n\n    let loggedIn = false;\n    let name = '';\n    if (msalObj.getAccount()) {\n      loggedIn = true;\n      const account = msalObj.getAccount();\n\n      if (typeof account.idToken === 'undefined' || account.idToken == null) {\n        console.error('Failed to obtain idToken');\n        console.error(account);\n      } else {\n        const givenName = account.idToken.given_name;\n        const familyName = account.idToken.family_name;\n        name = `${givenName} ${familyName}`;\n      }\n    }\n\n    this.state = { loggedIn, name };\n  }\n\n  appSignOut() {\n    signOut();\n    this.setState({ loggedIn: false });\n  }\n\n  render() {\n    const { loggedIn, name } = this.state;\n\n    return (\n      <>\n        <Header loggedIn={loggedIn} name={name} signIn={signIn} signOut={() => this.appSignOut()} />\n        <div id=\"announcement\">\n          <Announcements />\n        </div>\n        <div id=\"flex\">\n          <Router>\n            <AppContentRouter loggedIn={loggedIn} />\n          </Router>\n        </div>\n      </>\n    );\n  }\n}\n\nconst AppContentRouter = ({ loggedIn }) => {\n  const { pathname } = useLocation();\n\n  return (\n    <Switch>\n      <Redirect from=\"/:url*(/+)\" to={pathname.slice(0, -1)} />\n      <Route exact path={ENDPOINT_SECURITY}>\n        <Security />\n      </Route>\n      <Route exact path={ENDPOINT_REQUEST_WORKSPACE}>\n        <RequestWorkspace loggedIn={loggedIn} signIn={signIn} />\n      </Route>\n      <Route exact path={ENDPOINT_CONTRIBUTE_DATA}>\n        <ContributeData />\n      </Route>\n      <Route exact path={ENDPOINT_DUP_PDF}>\n        <div style={{ position: 'relative', width: '100%', height: 'calc(100vh - 4rem)' }}>\n          <object data={dupPdf} type=\"application/pdf\" width=\"100%\" height=\"100%\">\n            <embed src={dupPdf} type=\"application/pdf\" width=\"100%\" height=\"100%\" />\n          </object>\n        </div>\n      </Route>\n      <Route exact path=\"/\">\n        <Overview />\n        <Content />\n      </Route>\n      <Redirect to=\"/\" />\n    </Switch>\n  );\n};\n\nAppContentRouter.propTypes = {\n  loggedIn: PropTypes.bool.isRequired,\n};\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport './index.css';\nimport './css/semantic.css';\nimport './css/portal.css';\nimport './css/CPTA_changes.css';\nimport App from './App';\n\n// import 'semantic-ui-css/semantic.min.css'\nconst queryClient = new QueryClient();\n\nReactDOM.render(\n  <React.StrictMode>\n    <QueryClientProvider client={queryClient}>\n      <App />\n    </QueryClientProvider>\n  </React.StrictMode>,\n  document.getElementById('root'),\n);\n"],"sourceRoot":""}