{"version":3,"sources":["webpack:///./src/js/react-hooks/use-click-outside.js","webpack:///./src/js/react-components/cards/staff-card.js","webpack:///./src/js/utils/formats.js","webpack:///./src/js/react-components/cards/program-result-card.js","webpack:///./src/js/react-components/cards/program-card.js","webpack:///./src/js/react-components/cards/article-card.js","webpack:///./src/js/react-components/cards/event-card.js","webpack:///./src/js/react-components/cards/financial-card.js","webpack:///./src/js/react-components/cards/work-study-internship-card.js","webpack:///./src/js/react-components/cards/experiential-learning-card.js","webpack:///./src/js/react-components/cards/resource-listing-card.js","webpack:///./src/js/react-components/cards/other-result-card.js","webpack:///./src/js/react-components/cards/community-resource-card.js","webpack:///./src/js/react-components/search/cards.js","webpack:///./src/js/react-components/search/list.js"],"names":["useClickOutside","ref","callback","useEffect","listener","e","current","contains","target","document","addEventListener","removeEventListener","StaffCard","_ref","phone","normalizedPhone","id","image","Image","fullName","FullName","positions","Position","department","Department","phoneNumber","PhoneNumber","emailAddress","EmailAddress","profileUrl","ProfileUrl","emailAriaLabel","phoneAriaLabel","externalLinkText","isExternal","isExternalLink","React","createElement","className","concat","aria-labelledby","style","backgroundImage","aria-label","role","data-object-fit","src","alt","loading","height","width","href","rel","length","map","position","index","key","replace","_toConsumableArray","flatMap","number","array","join","xlinkHref","propTypes","string","isRequired","arrayOf","memo","ProgramResultCard","programGroupingName","ProgramGroupingName","programGroupingDescription","ProgramGroupingDescription","listPrograms","ListPrograms","_useState2","_slicedToArray","useState","isOpen","setIsOpen","containerRef","useRef","modalRender","Fragment","onClick","autoFocus","onKeyDown","preventDefault","keyCode","keys","escape","handleKeyDown","option","Id","Url","Label","shape","ProgramCard","url","programName","ProgramName","programDegreeLevel","ProgramDegreeLevel","onCampusOnline","OnCampusOnline","teaser","Teaser","ArticleCard","thumbnail","Thumbnail","altText","ThumbnailAltText","headline","Headline","date","PublishedDate","tags","TopicTags","Target","targetType","tag","any","EventCard","name","Name","Date","FinancialCard","heading","Heading","financialAidDetails","FinancialAidDetails","typeOfAid","TypeOfAid","filter","Boolean","WorkStudyInternshipCard","location","Location","ExperientialLearningCard","typeOfExperience","TypeOfExperience","ResourceListingCard","category","Category","resourceType","ResourceType","OtherResultCard","CommunityResourceCard","resourceTypes","ResourceTypes","eligibility","Eligibility","ageGroups","AgeGroups","partners","Partners","resourceTypesLabel","ageGroupsLabel","eligibilityLabel","partnersLabel","cardTypeMap","article","event","experientialLearning","financial","program","programGroup","ProgramGroupCard","staff","workStudyInternship","resource","community","other","List","errorDescription","errorHeading","loadingDataLabel","resultListing","resultText","error","isLoading","resultsAriaLabel","Loading","label","Alert","description","type","_ref2","Type","attributes","Card","_extends","getCardComponent","_objectWithoutProperties","_excluded","fetchUrl"],"mappings":"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","file":"7.1969f6.js","sourcesContent":["import { useEffect } from 'react';\r\n\r\nfunction useClickOutside(ref, callback) {\r\n  useEffect(() => {\r\n    const listener = (e) => {\r\n      if (!ref.current || ref.current.contains(e.target)) {\r\n        return;\r\n      }\r\n\r\n      callback(e);\r\n    };\r\n\r\n    document.addEventListener('click', listener);\r\n\r\n    return () => {\r\n      document.removeEventListener('click', listener);\r\n    };\r\n  }, [ref, callback]);\r\n}\r\n\r\nexport default useClickOutside;\r\n","import React from 'react';\r\nimport { arrayOf, string } from 'prop-types';\r\nimport { formatPhone } from '../../utils/formats';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction StaffCard({\r\n  id: id,\r\n  Image: image,\r\n  FullName: fullName,\r\n  Position: positions,\r\n  Department: department,\r\n  PhoneNumber: phoneNumber,\r\n  EmailAddress: emailAddress,\r\n  ProfileUrl: profileUrl,\r\n  emailAriaLabel,\r\n  phoneAriaLabel,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(profileUrl);\r\n\r\n  return (\r\n    <article\r\n      className={`staff-card ${\r\n        isExternal\r\n          ? 'faculty-staff-listing__external-card faculty-staff-listing__external-card--no-image'\r\n          : ''\r\n      }`}\r\n      aria-labelledby={id}\r\n    >\r\n      <div className=\"staff-card__desktop-wrapper\">\r\n        {image && (\r\n          <div\r\n            className=\"staff-card__image\"\r\n            style={{ backgroundImage: `url(${image})` }}\r\n            aria-label={fullName}\r\n            role=\"img\"\r\n          />\r\n        )}\r\n      </div>\r\n      <div className=\"staff-card__wrapper\">\r\n        <div className=\"staff-card__info\">\r\n          <div className=\"staff-card__mobile-wrapper\">\r\n            {image && (\r\n              <img\r\n                className=\"staff-card__image\"\r\n                data-object-fit=\"cover\"\r\n                src={image}\r\n                alt={fullName}\r\n                loading=\"lazy\"\r\n                height=\"80\"\r\n                width=\"80\"\r\n              />\r\n            )}\r\n            <div className=\"staff-card__personal-info\">\r\n              <h2 className=\"staff-card__fullname\">\r\n                <a\r\n                  className={\r\n                    isExternal ? 'faculty-staff-listing__external-link' : null\r\n                  }\r\n                  href={profileUrl}\r\n                  target={isExternal ? '_blank' : null}\r\n                  rel={isExternal ? 'noopener noreferrer' : null}\r\n                >\r\n                  {isExternal && (\r\n                    <span className=\"visually-hidden\">{externalLinkText}</span>\r\n                  )}\r\n                  <span id={id}>{fullName}</span>\r\n                </a>\r\n              </h2>\r\n              {positions?.length > 0 &&\r\n                positions.map((position, index) => (\r\n                  <h3\r\n                    className={`staff-card__position ${\r\n                      index ? 'staff-card__position--hidden' : ''\r\n                    }`}\r\n                    key={position}\r\n                  >\r\n                    {position}\r\n                  </h3>\r\n                ))}\r\n              {department && (\r\n                <h4 className=\"staff-card__department\">{department}</h4>\r\n              )}\r\n            </div>\r\n          </div>\r\n        </div>\r\n        {(phoneNumber || emailAddress) && (\r\n          <ul className=\"staff-card__additional-info\">\r\n            {phoneNumber && (\r\n              <li className=\"staff-card__additional-info-item\">\r\n                <a\r\n                  aria-label={`${phoneAriaLabel} ${formatPhone(phoneNumber)}`}\r\n                  href={`tel:${phoneNumber}`}\r\n                >\r\n                  <svg>\r\n                    <use xlinkHref=\"#phone-outline\" />\r\n                  </svg>\r\n                  {phoneNumber}\r\n                </a>\r\n              </li>\r\n            )}\r\n            {emailAddress && (\r\n              <li className=\"staff-card__additional-info-item\">\r\n                <a\r\n                  aria-label={`${emailAriaLabel} ${emailAddress}`}\r\n                  href={`mailto:${emailAddress}`}\r\n                >\r\n                  <svg>\r\n                    <use xlinkHref=\"#envelope-outline\" />\r\n                  </svg>\r\n                  {emailAddress}\r\n                </a>\r\n              </li>\r\n            )}\r\n          </ul>\r\n        )}\r\n      </div>\r\n    </article>\r\n  );\r\n}\r\n\r\nStaffCard.propTypes = {\r\n  emailAriaLabel: string,\r\n  phoneAriaLabel: string,\r\n  id: string.isRequired,\r\n  Image: string.isRequired,\r\n  FullName: string.isRequired,\r\n  Position: arrayOf(string.isRequired).isRequired,\r\n  Department: string.isRequired,\r\n  PhoneNumber: string.isRequired,\r\n  EmailAddress: string.isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(StaffCard);\r\n","export function formatPhone(phone) {\r\n  const normalizedPhone = phone.replace(/\\D/g, '');\r\n\r\n  /* eslint-disable indent */\r\n  return normalizedPhone.length === 10\r\n    ? [...normalizedPhone]\r\n        .flatMap((number, index, array) => {\r\n          if (index === 2 || index === 5) {\r\n            return [`${number}`, '. '];\r\n          }\r\n          if (index !== array.length - 1) {\r\n            return [`${number}`, ' '];\r\n          }\r\n          return `${number}`;\r\n        })\r\n        .join('')\r\n    : phone;\r\n  /* eslint-enable indent */\r\n}\r\n","import React, { useRef, useState, Fragment } from 'react';\r\nimport { arrayOf, shape, string } from 'prop-types';\r\nimport keys from '../../utils/keys';\r\nimport useClickOutside from '../../react-hooks/use-click-outside';\r\n\r\nfunction ProgramResultCard({\r\n  ProgramGroupingName: programGroupingName,\r\n  ProgramGroupingDescription: programGroupingDescription,\r\n  ListPrograms: listPrograms\r\n}) {\r\n  const [isOpen, setIsOpen] = useState(false);\r\n  const containerRef = useRef(null);\r\n  function modalRender() {\r\n    if (!isOpen) {\r\n      setIsOpen(true);\r\n    } else {\r\n      setIsOpen(false);\r\n    }\r\n  }\r\n  function handleKeyDown(e) {\r\n    e.preventDefault();\r\n    if (e.keyCode === keys.escape) {\r\n      setIsOpen(false);\r\n    }\r\n  }\r\n\r\n  useClickOutside(containerRef, () => modalRender());\r\n\r\n\r\n\r\n  return (\r\n    <Fragment>\r\n      <button onClick={modalRender} className='program-listing-result-card'>\r\n        <div className='program-listing-result-card__container'>\r\n          <p className='program-listing-result-card__name'>{programGroupingName}</p>\r\n          <div className='program-listing-result-card__tooltip__icon' />\r\n        </div>\r\n      </button>\r\n      <div className='modal'>\r\n        {isOpen && (\r\n          <div className='program-group-modal__backdrop'>\r\n            <div\r\n              ref={containerRef}\r\n              className='program-group-modal__container'\r\n              role='dialog'\r\n            >\r\n              <header>\r\n                <p className='program-group-modal__name'>{programGroupingName}</p>\r\n                <button autoFocus onKeyDown={(e) => handleKeyDown(e)} className='program-group-modal__close-button' aria-label='Close modal' onClick={modalRender}>\r\n                  <svg>\r\n                    <use href='#close-outline-light' />\r\n                  </svg>\r\n                </button>\r\n              </header>\r\n              {programGroupingDescription && (\r\n                <div className='program-group-modal__description'>\r\n                  {programGroupingDescription}\r\n                </div>)}\r\n              <div className='program-group-modal__subtitle'>Select a Degree</div>\r\n              {listPrograms.map((option) => (\r\n                <a key={option.Id} href={option.Url}>\r\n                  <button className=\"btn--modal btn--white-modal\">\r\n                    <span>{option.Label}</span>\r\n                  </button>\r\n                </a>\r\n              ))}\r\n            </div>\r\n          </div>\r\n        )}\r\n      </div>\r\n    </Fragment>\r\n  );\r\n}\r\n\r\nProgramResultCard.propTypes = {\r\n  ProgramGroupingName: string.isRequired,\r\n  ProgramGroupingDescription: string,\r\n  ListPrograms: arrayOf(\r\n    shape({\r\n      Label: string.isRequired,\r\n      Url: string.isRequired\r\n    }).isRequired\r\n  ).isRequired\r\n};\r\n\r\nexport default React.memo(ProgramResultCard);\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction ProgramCard({\r\n  Url: url,\r\n  ProgramName: programName,\r\n  ProgramDegreeLevel: programDegreeLevel,\r\n  OnCampusOnline: onCampusOnline,\r\n  Teaser: teaser,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n\r\n  return (\r\n    <a href={url}\r\n      className={`program-result-card hover-card ${isExternal ? 'faculty-staff-listing__external-card' : ''}`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      <div className=\"program-result-card__program-name-on-campus-wrapper\">\r\n        <h3 className=\"program-result-card__program-name\">{programName}</h3>\r\n      </div>\r\n      <div className=\"program-result-card__description\">\r\n        {\r\n          programDegreeLevel &&\r\n          <p className=\"program-result-card__program-degree\">\r\n            <strong>{programDegreeLevel}</strong>\r\n          </p>\r\n        }\r\n        <p className=\"program-result-card__on-campus\">{onCampusOnline}</p>\r\n      </div>\r\n      {teaser && <p className=\"program-result-card__teaser\">{teaser}</p>}\r\n    </a>\r\n  );\r\n}\r\n\r\nProgramCard.propTypes = {\r\n  Url: string.isRequired,\r\n  ProgramName: string.isRequired,\r\n  ProgramDegreeLevel: string.isRequired,\r\n  OnCampusOnline: string.isRequired,\r\n  Teaser: string,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(ProgramCard);\r\n","import React from 'react';\r\nimport { any, arrayOf, string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction ArticleCard({\r\n  Url: url,\r\n  Thumbnail: thumbnail,\r\n  ThumbnailAltText: altText,\r\n  Headline: headline,\r\n  PublishedDate: date,\r\n  TopicTags: tags,\r\n  Target: target,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n  const targetType = isExternal ? '_blank' : target;\r\n\r\n  return (\r\n    <a\r\n      href={url}\r\n      className={`article-event-result-card hover-card ${\r\n        isExternal ? 'faculty-staff-listing__external-card' : ''\r\n      }`}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n      target={targetType ? targetType : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      {thumbnail && (\r\n        <div className=\"article-event-result-card__thumbnail-container\">\r\n          <img\r\n            src={thumbnail}\r\n            alt={altText}\r\n            className=\"article-event-result-card__thumbnail\"\r\n            data-object-fit=\"cover\"\r\n          />\r\n        </div>\r\n      )}\r\n      <div className=\"article-event-result-card__description\">\r\n        <h3 className=\"article-event-result-card__heading\">{headline}</h3>\r\n        <p className=\"article-event-result-card__date\">{date}</p>\r\n        <ul className=\"article-event-result-card__tags\">\r\n          {tags.map((tag) => (\r\n            <li key={tag} className=\"article-event-result-card__tag\">\r\n              {tag}\r\n            </li>\r\n          ))}\r\n        </ul>\r\n      </div>\r\n    </a>\r\n  );\r\n}\r\n\r\nArticleCard.propTypes = {\r\n  Url: string.isRequired,\r\n  Thumbnail: string.isRequired,\r\n  ThumbnailAltText: string.isRequired,\r\n  Headline: string.isRequired,\r\n  PublishedDate: string.isRequired,\r\n  TopicTags: arrayOf(string.isRequired).isRequired,\r\n  Target: any,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(ArticleCard);\r\n","import React from 'react';\r\nimport { arrayOf, string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction EventCard({\r\n  Url: url,\r\n  Thumbnail: thumbnail,\r\n  ThumbnailAltText: altText,\r\n  Name: name,\r\n  Date: date,\r\n  TopicTags: tags,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n  return (\r\n    <a href={url}\r\n      className={`article-event-result-card hover-card ${isExternal ? 'faculty-staff-listing__external-card' : ''}`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      {thumbnail && (\r\n        <div className=\"article-event-result-card__thumbnail-container\">\r\n          <img\r\n            src={thumbnail}\r\n            alt={altText}\r\n            className=\"article-event-result-card__thumbnail\"\r\n            data-object-fit=\"cover\"\r\n          />\r\n        </div>\r\n      )}\r\n      <div className=\"article-event-result-card__description\">\r\n        <h3 className=\"article-event-result-card__heading\">{name}</h3>\r\n        <p className=\"article-event-result-card__date\">{date}</p>\r\n        <ul className=\"article-event-result-card__tags\">\r\n          {tags.map((tag) => (\r\n            <li key={tag} className=\"article-event-result-card__tag\">\r\n              {tag}\r\n            </li>\r\n          ))}\r\n        </ul>\r\n      </div>\r\n    </a>\r\n  );\r\n}\r\n\r\nEventCard.propTypes = {\r\n  Url: string.isRequired,\r\n  Thumbnail: string.isRequired,\r\n  ThumbnailAltText: string.isRequired,\r\n  Name: string.isRequired,\r\n  Date: string.isRequired,\r\n  TopicTags: arrayOf(string.isRequired).isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(EventCard);\r\n","import React from 'react';\r\nimport { arrayOf, string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction FinancialCard({\r\n  Url: url,\r\n  Heading: heading,\r\n  FinancialAidDetails: financialAidDetails,\r\n  Teaser: teaser,\r\n  TypeOfAid: typeOfAid,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n  return (\r\n    <a href={url}\r\n      className={`program-result-card hover-card ${isExternal ? 'faculty-staff-listing__external-card' : ''}`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      <div className=\"program-result-card__program-name-on-campus-wrapper\">\r\n        <h3 className=\"program-result-card__program-name\">{heading}</h3>\r\n      </div>\r\n      <div className=\"program-result-card__description\">\r\n        {financialAidDetails?.length > 0 && (\r\n          <p className=\"program-result-card__program-degree\">\r\n            <strong>{financialAidDetails.filter(Boolean).join(' | ')}</strong>\r\n          </p>\r\n        )}\r\n        <p className=\"program-result-card__on-campus\">{typeOfAid}</p>\r\n      </div>\r\n      <p className=\"program-result-card__teaser\">{teaser}</p>\r\n    </a>\r\n  );\r\n}\r\n\r\nFinancialCard.propTypes = {\r\n  Url: string.isRequired,\r\n  Heading: string.isRequired,\r\n  FinancialAidDetails: arrayOf(string.isRequired).isRequired,\r\n  Teaser: string.isRequired,\r\n  TypeOfAid: string.isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(FinancialCard);\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction WorkStudyInternshipCard({\r\n  Heading: heading,\r\n  Url: url,\r\n  Location: location,\r\n  Teaser: teaser,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n\r\n  return (\r\n    <a href={url}\r\n      className={`program-result-card hover-card ${isExternal ? 'faculty-staff-listing__external-card' : ''}`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      <h3 className=\"program-result-card__program-name\">{heading}</h3>\r\n      <div className=\"program-result-card__description\">\r\n        <p className=\"program-result-card__program-degree\">\r\n          <strong>{location}</strong>\r\n        </p>\r\n      </div>\r\n      <p className=\"program-result-card__teaser\">{teaser}</p>\r\n    </a>\r\n  );\r\n}\r\n\r\nWorkStudyInternshipCard.propTypes = {\r\n  Heading: string.isRequired,\r\n  Url: string.isRequired,\r\n  Location: string.isRequired,\r\n  Teaser: string.isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(WorkStudyInternshipCard);\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction ExperientialLearningCard({\r\n  Url: url,\r\n  Heading: heading,\r\n  Location: location,\r\n  Teaser: teaser,\r\n  TypeOfExperience: typeOfExperience,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n\r\n  return (\r\n    <a href={url}\r\n      className={`program-result-card hover-card ${isExternal ? 'faculty-staff-listing__external-card' : ''}`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      <h3 className=\"program-result-card__program-name\">{heading}</h3>\r\n      <div className=\"program-result-card__description\">\r\n        <p className=\"program-result-card__program-degree\">\r\n          <strong>{location}</strong>\r\n        </p>\r\n        <p className=\"program-result-card__on-campus\">{typeOfExperience}</p>\r\n      </div>\r\n      <p className=\"program-result-card__teaser\">{teaser}</p>\r\n      <p className=\"program-result-card__on-campus program-result-card__on-campus--floating\">\r\n        {typeOfExperience}\r\n      </p>\r\n    </a>\r\n  );\r\n}\r\n\r\nExperientialLearningCard.propTypes = {\r\n  Url: string.isRequired,\r\n  Heading: string.isRequired,\r\n  Location: string.isRequired,\r\n  Teaser: string.isRequired,\r\n  TypeOfExperience: string.isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(ExperientialLearningCard);\r\n","import React from 'react';\r\nimport { string, bool } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction ResourceListingCard({\r\n  Url: url,\r\n  Heading: heading,\r\n  Category: category,\r\n  ResourceType: resourceType,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n\r\n  return (\r\n    <a href={url}\r\n      className={`program-result-card hover-card ${isExternal ? 'faculty-staff-listing__external-card' : ''}`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      <div className=\"program-result-card__program-name-on-campus-wrapper\">\r\n        <h3 className=\"program-result-card__program-name\">{heading}</h3>\r\n      </div>\r\n      <div className=\"program-result-card__description\">\r\n        <p className=\"program-result-card__program-degree\">\r\n          <strong>{category}</strong>\r\n        </p>\r\n        <p className=\"program-result-card__on-campus\">{resourceType}</p>\r\n      </div>\r\n    </a>\r\n  );\r\n}\r\n\r\nResourceListingCard.propTypes = {\r\n  Url: string.isRequired,\r\n  Heading: string.isRequired,\r\n  Category: string.isRequired,\r\n  ResourceType: string.isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(ResourceListingCard);\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction OtherResultCard({\r\n  Url: url,\r\n  Heading: heading,\r\n  Teaser: teaser,\r\n  Location: location,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n\r\n  return (\r\n    <a href={url}\r\n      className={`program-result-card hover-card ${isExternal ? 'faculty-staff-listing__external-card' : ''}`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && <span className=\"visually-hidden\">{externalLinkText}</span>}\r\n      <div className=\"program-result-card__program-name-on-campus-wrapper\">\r\n        <h3 className=\"program-result-card__program-name\">{heading}</h3>\r\n      </div>\r\n      <div className=\"program-result-card__description\">\r\n        <p className=\"program-result-card__on-campus\">{location}</p>\r\n      </div>\r\n      <p className=\"program-result-card__teaser\">{teaser}</p>\r\n    </a>\r\n  );\r\n}\r\n\r\nOtherResultCard.propTypes = {\r\n  Url: string.isRequired,\r\n  Heading: string.isRequired,\r\n  Teaser: string.isRequired,\r\n  Location: string.isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(OtherResultCard);\r\n","import React from 'react';\r\nimport { arrayOf, string } from 'prop-types';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction CommunityResourceCard({\r\n  Url: url,\r\n  Heading: heading,\r\n  Teaser: teaser,\r\n  ResourceTypes: resourceTypes,\r\n  Eligibility: eligibility,\r\n  AgeGroups: ageGroups,\r\n  Partners: partners,\r\n  externalLinkText,\r\n  resourceTypesLabel,\r\n  ageGroupsLabel,\r\n  eligibilityLabel,\r\n  partnersLabel\r\n}) {\r\n  const isExternal = isExternalLink(url);\r\n  return (\r\n    <a\r\n      href={url}\r\n      className={`program-result-card hover-card community-resource-card ${\r\n        isExternal ? 'faculty-staff-listing__external-card' : ''\r\n      }`}\r\n      target={isExternal ? '_blank' : null}\r\n      rel={isExternal ? 'noopener noreferrer' : null}\r\n    >\r\n      {isExternal && (\r\n        <span className=\"visually-hidden\">{externalLinkText}</span>\r\n      )}\r\n      <div className=\"program-result-card__program-name-on-campus-wrapper\">\r\n        <h3 className=\"program-result-card__program-name\">{heading}</h3>\r\n      </div>\r\n      {(resourceTypes && resourceTypes.length > 0) ||\r\n      (ageGroups && ageGroups.length > 0) ||\r\n      (eligibility && eligibility.length > 0) ||\r\n      (partners && partners.length > 0) ? (\r\n          <div className=\"program-result-card__description\">\r\n            <div className=\"program-result-card__program-degree\">\r\n              {resourceTypes && resourceTypes.length > 0 ? (\r\n                <p>\r\n                  <strong>{resourceTypesLabel}:</strong>{' '}\r\n                  {resourceTypes.join(', ')}\r\n                </p>\r\n              ) : null}\r\n              {ageGroups && ageGroups.length > 0 ? (\r\n                <p>\r\n                  <strong>{ageGroupsLabel}:</strong> {ageGroups.join(', ')}\r\n                </p>\r\n              ) : null}\r\n              {eligibility && eligibility.length > 0 ? (\r\n                <p>\r\n                  <strong>{eligibilityLabel}:</strong> {eligibility.join(', ')}\r\n                </p>\r\n              ) : null}\r\n              {partners && partners.length > 0 ? (\r\n                <p>\r\n                  <strong>{partnersLabel}:</strong> {partners.join(', ')}\r\n                </p>\r\n              ) : null}\r\n            </div>\r\n          </div>\r\n        ) : null}\r\n      <p className=\"program-result-card__teaser\">{teaser}</p>\r\n    </a>\r\n  );\r\n}\r\n\r\nCommunityResourceCard.propTypes = {\r\n  Url: string.isRequired,\r\n  Heading: string.isRequired,\r\n  Teaser: string.isRequired,\r\n  ResourceTypes: arrayOf(string),\r\n  Eligibility: arrayOf(string),\r\n  AgeGroups: arrayOf(string),\r\n  Partners: arrayOf(string),\r\n  externalLinkText: string.isRequired,\r\n  resourceTypesLabel: string.isRequired,\r\n  ageGroupsLabel: string.isRequired,\r\n  eligibilityLabel: string.isRequired,\r\n  partnersLabel: string.isRequired\r\n};\r\n\r\nexport default React.memo(CommunityResourceCard);\r\n","import React from 'react';\r\n\r\nimport ProgramGroupCard from '../cards/program-result-card';\r\nimport ProgramCard from '../cards/program-card';\r\nimport ArticleCard from '../cards/article-card';\r\nimport EventCard from '../cards/event-card';\r\nimport FinancialCard from '../cards/financial-card';\r\nimport WorkStudyInternshipCard from '../cards/work-study-internship-card';\r\nimport ExperientialLearningCard from '../cards/experiential-learning-card';\r\nimport ResourceListingCard from '../cards/resource-listing-card';\r\nimport OtherResultCard from '../cards/other-result-card';\r\nimport StaffCard from '../cards/staff-card';\r\nimport CommunityResourceCard from '../cards/community-resource-card';\r\n\r\nconst cardTypeMap = {\r\n  article: ArticleCard,\r\n  event: EventCard,\r\n  experientialLearning: ExperientialLearningCard,\r\n  financial: FinancialCard,\r\n  program: ProgramCard,\r\n  programGroup: ProgramGroupCard,\r\n  staff: StaffCard,\r\n  workStudyInternship: WorkStudyInternshipCard,\r\n  resource: ResourceListingCard,\r\n  community: CommunityResourceCard,\r\n  other: OtherResultCard\r\n};\r\n\r\nexport const getCardComponent = (\r\n  type,\r\n  attributes,\r\n  id,\r\n  emailAriaLabel,\r\n  phoneAriaLabel,\r\n  externalLinkText,\r\n  resourceTypesLabel,\r\n  eligibilityLabel,\r\n  ageGroupsLabel,\r\n  partnersLabel\r\n) => {\r\n  const Card = cardTypeMap[type];\r\n\r\n  return (\r\n    Card && (\r\n      <Card\r\n        key={id}\r\n        id={id}\r\n        externalLinkText={externalLinkText}\r\n        resourceTypesLabel={resourceTypesLabel}\r\n        eligibilityLabel={eligibilityLabel}\r\n        ageGroupsLabel={ageGroupsLabel}\r\n        partnersLabel={partnersLabel}\r\n        {...attributes}\r\n        {...(type === 'staff' && { emailAriaLabel, phoneAriaLabel })}\r\n      />\r\n    )\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\n\r\nimport Alert from '../alert';\r\nimport Loading from '../loading';\r\nimport { getCardComponent } from './cards';\r\n\r\nfunction List({\r\n  emailAriaLabel,\r\n  errorDescription,\r\n  errorHeading,\r\n  loadingDataLabel,\r\n  resultListing,\r\n  resultText,\r\n  error,\r\n  isLoading,\r\n  phoneAriaLabel,\r\n  resultsAriaLabel,\r\n  externalLinkText,\r\n  resourceTypesLabel,\r\n  eligibilityLabel,\r\n  ageGroupsLabel,\r\n  partnersLabel\r\n}) {\r\n  if (isLoading) return <Loading label={loadingDataLabel} />;\r\n\r\n  if (error)\r\n    return (\r\n      <Alert\r\n        heading={errorHeading}\r\n        description={errorDescription}\r\n        type=\"error\"\r\n      />\r\n    );\r\n\r\n  return (\r\n    resultListing?.length > 0 && (\r\n      <section className=\"staff-list\" aria-label={resultsAriaLabel}>\r\n        <p className=\"staff-list__description\">{resultText}</p>\r\n        <div className=\"staff-list__list\">\r\n          {resultListing.map(({ Type, Id, ...attributes }) =>\r\n            getCardComponent(\r\n              Type,\r\n              attributes,\r\n              Id,\r\n              emailAriaLabel,\r\n              phoneAriaLabel,\r\n              externalLinkText,\r\n              resourceTypesLabel,\r\n              eligibilityLabel,\r\n              ageGroupsLabel,\r\n              partnersLabel\r\n            )\r\n          )}\r\n        </div>\r\n      </section>\r\n    )\r\n  );\r\n}\r\n\r\nList.propTypes = {\r\n  emailAriaLabel: string,\r\n  errorDescription: string.isRequired,\r\n  errorHeading: string.isRequired,\r\n  fetchUrl: string.isRequired,\r\n  loadingDataLabel: string.isRequired,\r\n  phoneAriaLabel: string,\r\n  resultsAriaLabel: string.isRequired,\r\n  externalLinkText: string,\r\n  resourceTypesLabel: string,\r\n  eligibilityLabel: string,\r\n  ageGroupsLabel: string,\r\n  partnersLabel: string\r\n};\r\n\r\nexport default React.memo(List);\r\n"],"sourceRoot":""}