CINXE.COM
Search | Imperial College London
<!DOCTYPE html> <html class="no-js" lang="en-GB"> <head> <title>Search | Imperial College London</title> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <!-- OneTrust Cookies Consent Notice start for imperial.ac.uk --> <script type="text/javascript" src="https://cdn-ukwest.onetrust.com/consent/6d9efb9d-b605-406f-b8b3-c9644859d064/OtAutoBlock.js" ></script><script src="https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="6d9efb9d-b605-406f-b8b3-c9644859d064" ></script> <script type="text/javascript">function OptanonWrapper() { }</script> <!-- OneTrust Cookies Consent Notice end for imperial.ac.uk --> <link rel="preconnect" href="https://pxl-imperialacuk.terminalfour.net"> <link rel="dns-prefetch" href="https://pxl-imperialacuk.terminalfour.net"> <!-- Search metadata tags --> <meta name="SectionType" content="website"> <!-- no social meta tags --> <meta name="keywords" content=""> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!-- assets */ --> <link rel="preload" href="/assets/website/fonts/icons/fonts/imperial-icons.woff?vrmf2d" as="font" type="font/woff" crossorigin> <link rel="preload" href="/assets/website/fonts/imperial-sans/ImperialText-VF.woff2" as="font" type="font/woff2" crossorigin> <link href="/assets/website/stylesheets/css/screen.2.0.10.css" media="all" rel="stylesheet" type="text/css" /> <link href="/assets/website/stylesheets/css/print.2.0.10.css" media="print" rel="stylesheet" type="text/css" /> <link rel="icon" type="image/svg+xml" href="/assets/website/images/favicon/favicon.svg"> <link rel="alternate icon" href="/assets/website/images/favicon/favicon.ico"> <link rel="icon" href="/assets/website/images/favicon/favicon-32.png" sizes="32x32"> <link rel="icon" href="/assets/website/images/favicon/favicon-57.png" sizes="57x57"> <link rel="icon" href="/assets/website/images/favicon/favicon-76.png" sizes="76x76"> <link rel="icon" href="/assets/website/images/favicon/favicon-96.png" sizes="96x96"> <link rel="icon" href="/assets/website/images/favicon/favicon-128.png" sizes="128x128"> <link rel="icon" href="/assets/website/images/favicon/favicon-192.png" sizes="192x192"> <link rel="icon" href="/assets/website/images/favicon/favicon-228.png" sizes="228x228"> <link rel="shortcut icon" href="/assets/website/images/favicon/favicon-196.png" sizes="196x196"> <link rel="apple-touch-icon" href="/assets/website/images/favicon/favicon-120.png" sizes="120x120"> <link rel="apple-touch-icon" href="/assets/website/images/favicon/favicon-152.png" sizes="152x152"> <link rel="apple-touch-icon" href="/assets/website/images/favicon/favicon-180.png" sizes="180x180"> <meta name="msapplication-TileColor" content="#C8D8E4"> <meta name="msapplication-TileImage" content="/assets/website/images/favicon/favicon-144.png"> <meta name="msapplication-config" content="/assets/website/images/favicon/browserconfig.xml" /> <script src="/assets/website/js/lib/jquery3.min.js" id="jquery3"></script> <script defer src="/assets/website/js/build/application.2.0.10.min.js" type="text/javascript"></script> <script defer src="//cdnjs.cloudflare.com/ajax/libs/gsap/3.10.4/gsap.min.js"></script> <!-- gsap.min.js --> <link rel="canonical" href="https://www.imperial.ac.uk/search/" /> </head> <body class="theme-8"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NDH95W87" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NDH95W87');</script> <a class="skip-to" id="skip-to-content" href="#content">Skip to main content</a> <a class="skip-to" id="link-to-accessibility" href="/about-the-site/accessibility/">View accessibility support page</a> <header class="header"> <div class="header__inner "> <a class="header__logo" href="/" aria-label="Homepage"> <svg width="727" height="80" viewBox="0 0 727 80" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M301.453 0V80H353.346V66H316.622V46H350.152V32.4H316.622V14H353.346V0H301.453Z" fill="currentcolor" /> <path d="M238.397 12.9177H227.22V39.8776H238.397C247.142 39.8776 253.566 35.6376 253.566 26.3953C253.566 16.8 247.142 12.9177 238.397 12.9177ZM239.196 52.8H227.22V80H212.052V0H239.196C256.219 0 269.533 7.72706 269.533 26.4C269.533 44.8 256.121 52.8 239.196 52.8Z" fill="currentcolor" /> <path d="M485.079 0V14H503.84V66H485.079V80H537.77V66H519.009V14H537.77V0H485.079Z" fill="currentcolor" /> <path d="M434.191 24.8C434.191 34.4377 428.602 37.4777 419.022 37.4777H406.248V12.9177H419.022C429.419 12.9224 434.191 16.8 434.191 24.8ZM450.158 24.8C450.158 6.12706 437.384 0 420.619 0H391.08V80H406.248V50.4H419.022C419.722 50.4 420.417 50.3859 421.107 50.3624L436.562 80H453.37L436.224 47.1906C444.565 43.4777 450.158 36.3435 450.158 24.8Z" fill="currentcolor" /> <path d="M604.324 14.1929L615.238 49.4777H593.406L604.324 14.1929ZM594.345 0L567.999 80H583.966L589.409 62.4H619.235L624.678 80H640.645L614.299 0H594.345Z" fill="currentcolor" /> <path d="M674.889 0V80H726.914V66H690.058V0H674.889Z" fill="currentcolor" /> <path d="M151.908 0L132.747 47.04L113.587 0H92.0312V80H106.402V20.1882L124.764 62.4H140.731L159.093 20.1882V80H173.463V0H151.908Z" fill="currentcolor" /> <path d="M0 0V14H18.7613V66H0V80H52.6912V66H33.93V14H52.6912V0H0Z" fill="currentcolor" /> </svg> </a> <div class="header__buttons"> <search class="header__search"> <form action="/search/"> <label class="sr-only" for="search">Search</label> <input placeholder="Search" type="search" id="search" name="searchStudioQuery" /> <button type="submit" value="Search" aria-label="Submit search"> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#search"></use> </svg> </button> </form> </search> <button class="header__search-toggle toggler" data-targets=".header__search--mobile"> Search <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#search"></use> </svg> </button> <button class="header__nav-open" aria-label="Open navigation overlay">Menu<span></span></button> </div> <nav class="header__nav-fallback"> <ul class="cluster cluster--pad-m"> <li><a href="/study/">Study</a></li><li><a href="/research-and-innovation/">Research</a></li><li><a href="/faculties-and-departments/">Faculties</a></li><li><a href="/latest-news-events/">News and events</a></li><li><a href="/about/">About</a></li><li><a href="/get-involved/">Get involved</a></li><li><a href="/giving/">Giving</a></li> <li><a href="/search">Search</a></li> </ul> </nav> <search class="header__search header__search--mobile"> <form action="/search/"> <label class="sr-only" for="search">Search</label> <input placeholder="Search" type="search" id="search" name="searchStudioQuery" /> <button type="submit" value="Search" aria-label="Submit search"> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#search"></use> </svg> </button> </form> </search> </div> <div id="#overlay" role="dialog" aria-modal="true" aria-labelledby="overlay-title" class="hidden"> <h2 class="sr-only" id="overlay-title">Website navigation</h2> <div class="container"> <div class="header__drawer"> <button class="header__nav-close" aria-label="Close navigation overlay">Close<span></span></button> <a class="header__drawer__logo" href="/" aria-label="Homepage"> <svg width="727" height="80" viewBox="0 0 727 80" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M301.453 0V80H353.346V66H316.622V46H350.152V32.4H316.622V14H353.346V0H301.453Z" fill="currentcolor"/> <path d="M238.397 12.9177H227.22V39.8776H238.397C247.142 39.8776 253.566 35.6376 253.566 26.3953C253.566 16.8 247.142 12.9177 238.397 12.9177ZM239.196 52.8H227.22V80H212.052V0H239.196C256.219 0 269.533 7.72706 269.533 26.4C269.533 44.8 256.121 52.8 239.196 52.8Z" fill="currentcolor"/> <path d="M485.079 0V14H503.84V66H485.079V80H537.77V66H519.009V14H537.77V0H485.079Z" fill="currentcolor"/> <path d="M434.191 24.8C434.191 34.4377 428.602 37.4777 419.022 37.4777H406.248V12.9177H419.022C429.419 12.9224 434.191 16.8 434.191 24.8ZM450.158 24.8C450.158 6.12706 437.384 0 420.619 0H391.08V80H406.248V50.4H419.022C419.722 50.4 420.417 50.3859 421.107 50.3624L436.562 80H453.37L436.224 47.1906C444.565 43.4777 450.158 36.3435 450.158 24.8Z" fill="currentcolor"/> <path d="M604.324 14.1929L615.238 49.4777H593.406L604.324 14.1929ZM594.345 0L567.999 80H583.966L589.409 62.4H619.235L624.678 80H640.645L614.299 0H594.345Z" fill="currentcolor"/> <path d="M674.889 0V80H726.914V66H690.058V0H674.889Z" fill="currentcolor"/> <path d="M151.908 0L132.747 47.04L113.587 0H92.0312V80H106.402V20.1882L124.764 62.4H140.731L159.093 20.1882V80H173.463V0H151.908Z" fill="currentcolor"/> <path d="M0 0V14H18.7613V66H0V80H52.6912V66H33.93V14H52.6912V0H0Z" fill="currentcolor"/> </svg> </a> <div class="header__pane-switchers"> <button class="header__pane-switcher" data-tab-id="site-nav">Key links</button> <button class="header__pane-switcher" data-tab-id="section-nav">This section</button> </div> <div class="header__pane header__pane--global" id="site-nav"> <a class="header__skip-link" href="#section-nav">Skip to section navigation</a> <nav class="header__nav header__nav--global" aria-labelledby="global-nav-title"> <h3 class="sr-only" id="global-nav-title">Global site navigation</h3> <ul> <li> <a href="/study/">Study</a> <ul> <li><a href="/study/courses/">Course search</a></li> <li><a href="/study/apply/">Apply</a></li> <li><a href="/study/fees-and-funding/">Fees and funding</a></li> <li><a href="/study/student-life/">Student life</a></li> <li><a href="/study/visit/">Visit</a></li> <li><a href="/study/help-centre/">Help centre</a></li> <li><a href="/study/request-info/">Request info</a></li> <li><a href="/study/international-students/">International students</a></li> <li><a href="https://www.imperial.ac.uk/business-school/executive-education/">Executive education</a></li> <li></li> <li><a href="/study/visit/summer-schools/">Summer schools</a></li> </ul> </li><li> <a href="/research-and-innovation/">Research</a> </li><li> <a href="/faculties-and-departments/">Faculties</a> <ul> <li><a href="/engineering/">Faculty of Engineering</a></li> <li><a href="/medicine/">Faculty of Medicine</a></li> <li><a href="/natural-sciences/">Faculty of Natural Sciences</a></li> <li><a href="https://www.imperial.ac.uk/business-school/">Imperial College Business School</a></li> <li><a href="/admin-services/">Administrative and support services</a></li> </ul> </li><li> <a href="/latest-news-events/">News and events</a> <ul> <li><a href="https://www.imperial.ac.uk/news/">News</a></li> <li><a href="/whats-on/">What's on</a></li> <li><a href="/be-inspired/stories/">Imperial Stories</a></li> <li><a href="/be-inspired/festival/">Great Exhibition Road Festival</a></li> <li><a href="/be-inspired/magazine/">Imperial Magazine</a></li> <li><a href="/be-inspired/lates/">Imperial Lates</a></li> <li><a href="/students/graduation/">Graduation</a></li> </ul> </li><li> <a href="/about/">About</a> <ul> <li><a href="/about/leadership-and-strategy/president/">President</a></li> <li><a href="/about/leadership-and-strategy/provost/">Provost</a></li> <li><a href="/about/leadership-and-strategy/strategy/">Imperial Strategy</a></li> <li><a href="/about/leadership-and-strategy/provost/academic-strategy/">Academic Strategy</a></li> <li><a href="/about/global/">Imperial Global</a></li> <li><a href="/about/sustainability/">Sustainable Imperial</a></li> <li><a href="/about/governance/">Governance</a></li> <li><a href="/visit/campuses/">Campuses</a></li> <li><a href="https://profiles.imperial.ac.uk/">Our academics</a></li> <li><a href="/jobs/">Jobs at Imperial</a></li> </ul> </li><li> <a href="/get-involved/">Get involved</a> <ul> <li><a href="/giving/">Giving</a></li> <li><a href="/be-inspired/schools-outreach/">Schools outreach</a></li> <li><a href="/be-inspired/global-summer-school/">Imperial Global Summer School</a></li> <li><a href="/be-inspired/societal-engagement/">Societal engagement</a></li> <li><a href="/be-inspired/volunteering/">Volunteering and outreach</a></li> <li><a href="/get-involved/women-at-imperial/">Women at Imperial</a></li> </ul> </li><li> <a href="/giving/">Giving</a> </li> </ul> </nav> <nav aria-labelledby="user-nav-title" role="navigation"> <h3 class="sr-only" id="user-nav-title">User links navigation</h3> <ul class="header__user-links"> <li><a href="/staff/">For staff</a></li> <li><a href="/students/">Current students</a></li> <li><a href="/for-business/">Imperial for business</a></li> <li><a href="/be-inspired/schools-outreach/">For schools</a></li> <li><a href="/alumni/">Alumni</a></li> </ul> </nav> </div> <div class="header__pane header__pane--section" id="section-nav"> <nav class="header__nav header__nav--section" aria-labelledby="section-nav-title"> <!-- Section ID 164459--><a class="header__nav__breadcrumb" href="/"> <span>Home</span> </a> <h3 class="header__nav__title" id="section-nav-title"><a href="/search/">Search</a><span class="sr-only"> navigation</span></h3> <ul> </ul> </nav> </div> </div> </div> </div> </header> <!-- Search text crawl start --> <main id="page"> <div class="container landing flow-xl " id="content"> <script type="text/javascript"> var _msq = _msq || []; //declare object var analyticsBaseUrl = "https://analytics-eu-west.searchstax.com"; (function () { var ms = document.createElement("script"); ms.type = "text/javascript"; ms.src = "https://static.searchstax.com/studio-js/v3/js/studio-analytics.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ms, s); })(); </script> <link href="https://static.searchstax.com/studio-js/v3/css/studio-app.css" rel="preload" as="style"/> <link href="https://static.searchstax.com/studio-js/v3/css/studio-app.css" rel="stylesheet" /> <link href="https://t4-redesign.imperial.ac.uk/assets/stylesheets/css/search.css" rel="preload" as="style" /> <link href="https://t4-redesign.imperial.ac.uk/assets/stylesheets/css/search.css" rel="stylesheet" type="text/css" /> <style> /* T4 ioannis. Below are the needed styling rules seperated from the default styling provided by Imperial College */ .search-grid-wrapper .list-wrapper a{ color:unset; text-decoration:none; } .search-grid-wrapper .filters a{ text-decoration:none; } .facet-template-container-custom .sf-sidebar-container .sf-sidebar .list-group .list-group-item-searchstudio-js .list-unstyled .filters .facet-list { border-bottom: none; } .search-grid-wrapper .title { font-weight: 700; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; padding: 0; color: #161a1d; } #searchContainer .url{ color:#0000cd; } .facet-template-container-custom .pill-container .pill { border-radius: 0; margin: 0 auto 10px auto; padding: 10px 15px; width: 100%; } .facet-template-container-custom .pill-container .pillFilterBy, .facet-template-container-custom .pill-container .pill.clear-filters{ text-align: center; } .facet-template-container-custom .pill-container .pill.clear-filters { color: black; -webkit-text-decoration-line: none; text-decoration-line: none; border: 1px solid crimson !important; } .facet-template-container-custom .sf-sidebar-container .btn-custom .search-close { background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0OCA0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDggNDg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMDAwMGNkO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI2LjksMjQuMWw2LjQsNi40YzAuOCwwLjgsMC44LDIsMCwyLjhjLTAuOCwwLjgtMiwwLjgtMi44LDBMMjQsMjYuOWwtNi40LDYuNGMtMC44LDAuOC0yLDAuOC0yLjgsMAoJYy0wLjgtMC44LTAuOC0yLDAtMi44bDYuNC02LjRsLTYuNC02LjRjLTAuOC0wLjgtMC44LTIsMC0yLjhjMC44LTAuOCwyLTAuOCwyLjgsMGw2LjQsNi40bDYuNC02LjRjMC44LTAuOCwyLTAuOCwyLjgsMAoJYzAuOCwwLjgsMC44LDIsMCwyLjhMMjYuOSwyNC4xeiBNMjQsNDguMWMtMTMuMywwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCwyNC0yNHMyNCwxMC43LDI0LDI0UzM3LjMsNDguMSwyNCw0OC4xeiBNMjQsNDMuNAoJYzEwLjcsMCwxOS40LTguNywxOS40LTE5LjRTMzQuNyw0LjcsMjQsNC43UzQuNiwxMy4zLDQuNiwyNC4xUzEzLjMsNDMuNCwyNCw0My40eiIvPgo8L3N2Zz4K"); } .facet-template-container-custom .pill-container .pill .pill-close { max-width: 20px; height: 20px; width: 20px; display: block; float: right; margin-left: 6px; background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0OCA0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDggNDg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMDAwMGNkO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI2LjksMjQuMWw2LjQsNi40YzAuOCwwLjgsMC44LDIsMCwyLjhjLTAuOCwwLjgtMiwwLjgtMi44LDBMMjQsMjYuOWwtNi40LDYuNGMtMC44LDAuOC0yLDAuOC0yLjgsMAoJYy0wLjgtMC44LTAuOC0yLDAtMi44bDYuNC02LjRsLTYuNC02LjRjLTAuOC0wLjgtMC44LTIsMC0yLjhjMC44LTAuOCwyLTAuOCwyLjgsMGw2LjQsNi40bDYuNC02LjRjMC44LTAuOCwyLTAuOCwyLjgsMAoJYzAuOCwwLjgsMC44LDIsMCwyLjhMMjYuOSwyNC4xeiBNMjQsNDguMWMtMTMuMywwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCwyNC0yNHMyNCwxMC43LDI0LDI0UzM3LjMsNDguMSwyNCw0OC4xeiBNMjQsNDMuNAoJYzEwLjcsMCwxOS40LTguNywxOS40LTE5LjRTMzQuNyw0LjcsMjQsNC43UzQuNiwxMy4zLDQuNiwyNC4xUzEzLjMsNDMuNCwyNCw0My40eiIvPgo8L3N2Zz4K"); } .input-container-custom .sf-header-searchstudio-js .sf-form .btn .search-close{ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0OCA0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDggNDg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMDAwMGNkO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI2LjksMjQuMWw2LjQsNi40YzAuOCwwLjgsMC44LDIsMCwyLjhjLTAuOCwwLjgtMiwwLjgtMi44LDBMMjQsMjYuOWwtNi40LDYuNGMtMC44LDAuOC0yLDAuOC0yLjgsMAoJYy0wLjgtMC44LTAuOC0yLDAtMi44bDYuNC02LjRsLTYuNC02LjRjLTAuOC0wLjgtMC44LTIsMC0yLjhjMC44LTAuOCwyLTAuOCwyLjgsMGw2LjQsNi40bDYuNC02LjRjMC44LTAuOCwyLTAuOCwyLjgsMAoJYzAuOCwwLjgsMC44LDIsMCwyLjhMMjYuOSwyNC4xeiBNMjQsNDguMWMtMTMuMywwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCwyNC0yNHMyNCwxMC43LDI0LDI0UzM3LjMsNDguMSwyNCw0OC4xeiBNMjQsNDMuNAoJYzEwLjcsMCwxOS40LTguNywxOS40LTE5LjRTMzQuNyw0LjcsMjQsNC43UzQuNiwxMy4zLDQuNiwyNC4xUzEzLjMsNDMuNCwyNCw0My40eiIvPgo8L3N2Zz4K"); } .facet-wrapper .facet-template-container-custom .sf-sidebar-container .sf-mobile-header { padding: 0px; } @media screen and (max-width: 767px) { .facet-wrapper .facet-template-container-custom .sf-sidebar-container .sf-sidebar { max-height: 400px; overflow-y: scroll; } .sf-sidebar-title{ display: none; } } @media screen and (min-width: 320px) { .flex-container { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-content: flex-start; align-items: stretch; } .flex-left { order: 0; flex: 0 1 100%; align-self: auto; } .flex-right { order: 0; flex: 0 1 100%; align-self: auto; } } @media screen and (min-width: 768px) { .flex-container { flex-wrap: nowrap; } .flex-left { flex: 0 1 65%; } .flex-right { flex: 0 1 auto; } .facet-wrapper .facet-template-container-custom .sf-sidebar-container .sf-mobile-header, .facet-wrapper .facet-template-container-custom .pill-container { display: none; } .facet-wrapper .facet-template-container-custom .sf-sidebar-container { display: block; } } @media screen and (min-width: 1024px) { .flex-left { flex: 0 1 70%; } } @media screen and (min-width: 1400px) { .flex-left { flex: 0 1 80%; } } .facet-template-container-custom .sf-sidebar-container .sf-sidebar .list-group .list-group-item-searchstudio-js .list-unstyled .filters .facet-list .list-unstyled li label .facet-name { white-space: wrap; } .external-searches-container .external-list-wrapper .card-searchstudio-js-body:nth-of-type(4) .content { color: #0000cd; } .external-searches-container .external-list-wrapper .card-searchstudio-js-custom .content span { font-size: calc(var(--f--1-min)/16*1rem + (var(--f--1-max) - var(--f--1-min))*var(--fluid-bp)); } .external-searches-container .external-list-wrapper .card-searchstudio-js-title { margin-bottom:0; } .external-searches-container .external-list-wrapper .icon-elevated { width: 20px; top: 20px; } </style> <noscript> <strong >We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <h1 class="sr-only">Search Imperial College London</h1> <div class="search-grid-wrapper"> <div class="search-input-wrapper"> <div id="searchInput"></div> </div> <div class="facet-container-wrapper"> <div id="searchFacetSection"></div> </div> <div class="search-results-summary-options-wrapper"> <div id="searchResultSummarySection"></div> <div id="searchOptionsSection"></div> </div> <div class="search-results-wrapper"> <div class="result-container-wrapper"> <div id="external-search-result-container"></div> <div id="searchResultsSection"></div> <div id="relatedSearchesSection"></div> <div id="paginationSection"></div> </div> </div> </div> <script> function getCookie(name) { let matches = document.cookie.match( new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "\\$1") + "=([^;]*)" ) ); return matches ? decodeURIComponent(matches[1]) : undefined; } function setCookie(name, value, options = {}) { options = { path: "/", // add other defaults here if necessary ...options, }; if (options.expires instanceof Date) { options.expires = options.expires.toUTCString(); } let updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value); for (let optionKey in options) { updatedCookie += "; " + optionKey; let optionValue = options[optionKey]; if (optionValue !== true) { updatedCookie += "=" + optionValue; } } document.cookie = updatedCookie; } function makeid(length) { var result = ""; var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt( Math.floor(Math.random() * charactersLength) ); } return result; } function getOrSetCookie(name) { let cookieID = getCookie(name); if (cookieID == null) { cookieID = makeid(25); setCookie(name, cookieID, { secure: true, "max-age": 3600, }); } return cookieID; } </script> <script type="text/x-template" id="result-template"> <div class="card-searchstudio-js-custom" :class="{'card-searchstudio-js-grid-layout': isGridLayout, 'has-thumbnail': thumbnail !== ''}" > <div class="card-searchstudio-jsClass"> <div class="card-searchstudio-js-body p-0"> <div v-if="promoted"> <!-- Promoted Results Section --> <div class="isPromoted" v-if="result.type_s === 'web page' && !result.SectionType_s" > <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.ogdescription_t?result.ogdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div class="isPromoted" v-else-if="result.type_s === 'pdf'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div class="isPromoted" v-else-if="result.type_s === 'docx'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div class="isPromoted" v-else-if="result.type_s === 'xlsx'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div class="isPromoted" v-else-if="result.SectionType_s === 'website'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.ogdescription_t?result.ogdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div class="isPromoted" v-else-if="result.SectionType_s === 'News'"> <a :href="result.url" @click="navigate($event, url)"> <div class="flex-container"> <div class="flex-left"> <h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t.replace(/\|(.+)/gm,''):result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.twitterdescription_t?result.twitterdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p> </div> <div class="flex-right"> <img alt="" :src="result.twitterimagesrc_t" /> </div> </div> </a> </div> <div class="isPromoted" v-else-if="result.SectionType_s === 'Course'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.CourseDescription_t?result.CourseDescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div class="isPromoted" v-else-if="result.SectionType_s === 'Event'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-text="result.ogdescription_t ? result.ogdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’') : result.content.replaceAll(/–/g, '–').replaceAll(/’/g, '’') + '...'" ></p> </a> </div> <div class="isPromoted" v-else-if="result.SectionType_s === 'People'"> <a :href="result.IP_URL_t" @click="navigate($event, url)" ><h1 class="title" v-html="`${result.FIRST_NAME_t} ${result.LAST_NAME_t}`" ></h1> <p class="url" v-html="result.IP_URL_t"></p> <p class="position" v-html="result.POSITIONNAME_t"></p> <p class="department" v-html="result.Faculty_s"></p ></a> </div> <div class="isPromoted" v-else> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <!-- END of Promoted Results Section --> </div> <div v-else> <div v-if="result.type_s === 'web page' && !result.SectionType_s"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.ogdescription_t?result.ogdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div v-else-if="result.type_s === 'pdf'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div v-else-if="result.type_s === 'docx'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div v-else-if="result.type_s === 'xlsx'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div v-else-if="result.SectionType_s === 'website'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.ogdescription_t?result.ogdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div v-else-if="result.SectionType_s === 'News'"> <a :href="result.url" @click="navigate($event, url)"> <div class="flex-container"> <div class="flex-left"> <h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t.replace(/\|(.+)/gm,''):result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.twitterdescription_t?result.twitterdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p> </div> <div class="flex-right"> <img alt="" :src="result.twitterimagesrc_t" /> </div> </div> </a> </div> <div v-else-if="result.SectionType_s === 'Course'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.CourseDescription_t?result.CourseDescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’'):result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> <div v-else-if="result.SectionType_s === 'Event'"> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.ogtitle_t?result.ogtitle_t:result.dctitle_t.replace(/\|(.+)/gm,'')" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-text="result.ogdescription_t ? result.ogdescription_t.replaceAll(/–/g, '–').replaceAll(/’/g, '’') : result.content.replaceAll(/–/g, '–').replaceAll(/’/g, '’') + '...'" ></p> </a> </div> <div v-else-if="result.SectionType_s === 'People'"> <a :href="result.IP_URL_t" @click="navigate($event, url)" ><h1 class="title" v-html="`${result.FIRST_NAME_t} ${result.LAST_NAME_t}`" ></h1> <p class="url" v-html="result.IP_URL_t"></p> <p class="position" v-html="result.POSITIONNAME_t"></p> <p class="department" v-html="result.Faculty_s"></p ></a> </div> <div v-else> <a :href="result.url" @click="navigate($event, url)" ><h1 class="title" v-html="result.dctitle_t?result.dctitle_t.replace(/\|(.+)/gm,''):result.content.slice(0,70)+'...'" ></h1> <p class="url" v-html="result.id"></p> <p class="description" v-html="result.content.slice(0,300).replaceAll(/–/g, '–').replaceAll(/’/g, '’')+'...'" ></p ></a> </div> </div> </div> </div> </div> </script> <script type="text/x-template" id="searchFeedback-template"> <div class="search-feedback-filters-custom align-items-center333" :class="{ active: hasResults }" v-if="searchStore.searchFired && hasResults"> <div class="sf-filter-info"> <span v-if="searchStore.searchFired"> Showing <strong>{{ searchStore.startDoc + 1 }} — {{ searchStore.endDoc }} </strong> of <strong>{{ searchStore.totalResults }}</strong> results <span v-if="searchStore.studioConnector.defaultQuery != searchStore.searchTerm && searchStore.searchTerm != ''"> for <strong>"{{ searchTerm }}"</strong> </span> </span> </div> <div class="mt-2" v-if="searchStore.autoCorrectedQuery"> Search instead for <a href="#" @click="onSpellingCorrectionClick" class="text-primary">{{ searchStore.searchTerm }}</a> </div> </div> </script> <script type="text/x-template" id="leave-feedback-template"> <div id="sf-widget-custom" class="sf-main"> <a href="#" class="sf-open-feedback" @click.prevent="toggleFeedback" > [ - ] Search Feedback </a> <div class="sf-modal-content" v-bind:class="[feedback_open ? 'sf-open' : 'sf-close']"> <div class="sf-modal-header"> <h5 class="sf-title">Search Feedback</h5> <button class="sf-modal-close" v-on:click.prevent="toggleFeedback"><span><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJDYXBhXzEiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDM4Ni42NjcgMzg2LjY2NyIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCAzODYuNjY3IDM4Ni42NjciIHdpZHRoPSI1MTIiIGNsYXNzPSIiPjxnPjxwYXRoIGQ9Im0zODYuNjY3IDQ1LjU2NC00NS41NjQtNDUuNTY0LTE0Ny43NyAxNDcuNzY5LTE0Ny43NjktMTQ3Ljc2OS00NS41NjQgNDUuNTY0IDE0Ny43NjkgMTQ3Ljc2OS0xNDcuNzY5IDE0Ny43NyA0NS41NjQgNDUuNTY0IDE0Ny43NjktMTQ3Ljc2OSAxNDcuNzY5IDE0Ny43NjkgNDUuNTY0LTQ1LjU2NC0xNDcuNzY4LTE0Ny43N3oiIGRhdGEtb3JpZ2luYWw9IiMwMDAwMDAiIGNsYXNzPSJhY3RpdmUtcGF0aCIgc3R5bGU9ImZpbGw6I0ZDNjczMCIgZGF0YS1vbGRfY29sb3I9IiMwMDAwMDAiPjwvcGF0aD48L2c+IDwvc3ZnPg==" /></span></button> </div> <form id="sf-rating-form"> <div class="sf-modal-body "> <label>How would you rate your search experience?</label> <div class="form-group"> <div class="sf-rate-experience"> <div class="sf-custom-control" v-for='index in 11' :key='index'> <input type="radio" v-bind:id="'sf-rate-'+(index-1)" name="sf-rating" class="sf-custom-control-input" v-bind:value="index-1" v-model.number="sf.rating" v-on:change="validateFeedback"> <label :for="'sf-rate-'+(index-1)" class="sf-custom-control-label">{{index-1}}</label> </div> </div> <div class="sf-rate"> <p><small>0 = Very Dissatisfied</small></p> <p><small>10 = Very Satisfied</small></p> </div> <div class="sf-error-rating alert alert-danger" v-bind:class="[errors.rating ? 'sf-show' : 'sf-hide']">Please Rate your experience.</div> </div> <div class="sf-comments sf-form-group"> <label for="sf-comments">Comments <small>({{computeCommentsLimit}} characters remaining)</small></label> <textarea :maxlength="max_length" class="sf-form-control" id="sf-comments" placeholder="Enter any comments relating to your search experience" v-model="sf.comments"></textarea> </div> <div class="sf-email sf-form-group"> <label for="sf-email">Email</label> <input class="sf-form-control" type="email" id="sf-email" placeholder="Enter an email address if you want a response" v-model="sf.email" v-on:input="validateFeedback"> <div class="sf-error-email alert alert-danger" v-bind:class="[errors.email ? 'sf-show' : 'sf-hide']" >Please enter a valid email id</div> </div> </div> <div class="sf-modal-footer"> <a href="http://searchstax.com/" target="_blank" class="left"> <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMzEuNSAzOS44IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMzEuNSAzOS44OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0ZDNjczMDt9Cgkuc3Qxe2ZpbGw6IzMzNDc1QTt9Cgkuc3Qye2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAgICA7fQo8L3N0eWxlPgo8Zz4KCTxnIGlkPSJsb2dvX3g1Rl9jb2xvcl8xXyI+CgkJPGc+CgkJCTxnPgoJCQkJPGcgaWQ9IlhNTElEXzhfIj4KCQkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMC4zLDMxLjhMMS44LDMxYzAuMS0wLjEsMC4zLTAuMSwwLjUsMGw3LjQsNC4yYzAuMSwwLjEsMC4zLDAuMSwwLjUsMGw3LjMtNC4yYzAuMi0wLjEsMC4zLTAuMSwwLjUsMAoJCQkJCQlsMS40LDAuOWMwLjMsMC4yLDAuMywwLjYsMCwwLjhsLTkuMiw1LjRjLTAuMSwwLjEtMC4zLDAuMS0wLjUsMGwtOS40LTUuNEMwLDMyLjUsMCwzMiwwLjMsMzEuOHoiLz4KCQkJCTwvZz4KCQkJCTxnIGlkPSJYTUxJRF83XyI+CgkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTAuMywyNi41bDEuNi0wLjljMC4xLTAuMSwwLjMtMC4xLDAuNSwwbDcuMiw0LjJjMC4xLDAuMSwwLjMsMC4xLDAuNSwwbDcuMy00LjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjQKCQkJCQkJVjI0YzAtMC40LTAuNC0wLjYtMC43LTAuNGwtNi43LDMuOWMtMC4xLDAuMS0wLjMsMC4xLTAuNSwwTDAuMiwyMmMtMC4zLTAuMi0wLjMtMC42LDAtMC44bDkuMy01LjVjMC4xLTAuMSwwLjMtMC4xLDAuNSwwCgkJCQkJCWw1LjMsM2MwLjMsMC4yLDAuMywwLjYsMCwwLjhsLTEuNCwwLjljLTAuMiwwLjEtMC4zLDAuMS0wLjUsMGwtMy40LTJjLTAuMi0wLjEtMC4zLTAuMS0wLjUsMGwtNC40LDIuN2MtMC4zLDAuMi0wLjMsMC42LDAsMC44CgkJCQkJCWw0LjQsMi42YzAuMSwwLjEsMC4zLDAuMSwwLjUsMGw3LjMtNC4yYzAuMS0wLjEsMC4zLTAuMSwwLjUsMGwyLDEuMWMwLjIsMC4xLDAuMiwwLjIsMC4yLDAuNHY0LjdjMCwwLjItMC4xLDAuMy0wLjIsMC40CgkJCQkJCWwtOS42LDUuN2MtMC4xLDAuMS0wLjMsMC4xLTAuNSwwbC05LjQtNS41Qy0wLjEsMjcuMi0wLjEsMjYuNywwLjMsMjYuNXoiLz4KCQkJCTwvZz4KCQkJPC9nPgoJCQk8ZyBpZD0iRElOX3g1Rl9OZXh0X3g1Rl9MVF94NUZfUHJvX3g1Rl9MaWdodF94MEFfXzFfIj4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNC45LDMxLjNjLTAuMS0wLjEtMC4xLTAuMiwwLTAuMmwwLjQtMC41YzAuMS0wLjEsMC4yLTAuMSwwLjIsMGMwLjcsMC42LDEuOSwxLjEsMy4yLDEuMQoJCQkJCWMxLjgsMCwyLjgtMC45LDIuOC0yLjJjMC0xLjEtMC42LTEuOS0yLjYtMi4xbC0wLjUtMC4xYy0yLjEtMC4zLTMuMi0xLjMtMy4yLTIuOWMwLTEuOSwxLjQtMy4xLDMuNS0zLjFjMS4yLDAsMi40LDAuNCwzLjEsMC45CgkJCQkJYzAuMSwwLDAuMSwwLjEsMCwwLjJsLTAuMywwLjVjLTAuMSwwLjEtMC4xLDAuMS0wLjIsMGMtMC45LTAuNS0xLjctMC44LTIuNy0wLjhjLTEuNiwwLTIuNSwwLjktMi41LDIuMWMwLDEuMSwwLjcsMS44LDIuNiwyLjEKCQkJCQlsMC41LDAuMWMyLjIsMC4zLDMuMiwxLjMsMy4yLDNjMCwxLjktMS4zLDMuMi0zLjksMy4yQzI3LjEsMzIuNiwyNS43LDMyLDI0LjksMzEuM3oiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNi42LDIxLjZjMC0wLjEsMC4xLTAuMiwwLjItMC4yaDYuM2MwLjEsMCwwLjIsMC4xLDAuMiwwLjJ2MC42YzAsMC4xLTAuMSwwLjItMC4yLDAuMmgtNQoJCQkJCWMtMC4zLDAtMC42LDAuMy0wLjYsMC42djNjMCwwLjMsMC4zLDAuNiwwLjYsMC42aDQuMmMwLjEsMCwwLjIsMC4xLDAuMiwwLjJ2MC42YzAsMC4xLTAuMSwwLjItMC4yLDAuMmgtNC4yCgkJCQkJYy0wLjMsMC0wLjYsMC4zLTAuNiwwLjZWMzFjMCwwLjMsMC4zLDAuNiwwLjYsMC42aDVjMC4xLDAsMC4yLDAuMSwwLjIsMC4ydjAuNmMwLDAuMS0wLjEsMC4yLTAuMiwwLjJoLTYuMwoJCQkJCWMtMC4xLDAtMC4yLTAuMS0wLjItMC4yVjIxLjZ6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNTAuMSwyMS42YzAtMC4xLDAuMS0wLjIsMC4yLTAuMmgwLjZjMC4xLDAsMC4yLDAuMSwwLjIsMC4ybDMuOCwxMC43YzAsMC4xLDAsMC4yLTAuMSwwLjJoLTAuNwoJCQkJCWMtMC4xLDAtMC4yLDAtMC4yLTAuMkw1MywyOS45Yy0wLjEtMC4yLTAuMi0wLjMtMC40LTAuM2gtNC4xYy0wLjIsMC0wLjQsMC4xLTAuNCwwLjNsLTAuOSwyLjRjMCwwLjEtMC4xLDAuMi0wLjIsMC4yaC0wLjYKCQkJCQljLTAuMSwwLTAuMS0wLjEtMC4xLTAuMkw1MC4xLDIxLjZ6IE01MS45LDI4LjdjMC4zLDAsMC42LTAuMywwLjQtMC42TDUwLjUsMjNsMCwwbC0xLjgsNWMtMC4xLDAuMywwLjEsMC42LDAuNCwwLjZoMi44VjI4Ljd6IgoJCQkJCS8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNjUsMzIuNGMtMC4xLDAtMC4xLDAtMC4yLTAuMWwtMi4zLTQuOGgtMC4ySDYwYy0wLjMsMC0wLjYsMC4zLTAuNiwwLjZ2NC4yYzAsMC4xLTAuMSwwLjItMC4yLDAuMmgtMC42CgkJCQkJYy0wLjEsMC0wLjItMC4xLTAuMi0wLjJWMjEuNmMwLTAuMSwwLjEtMC4yLDAuMi0wLjJoMy43YzIuMSwwLDMuNCwxLjIsMy40LDNjMCwxLjMtMC42LDIuMy0xLjgsMi44Yy0wLjMsMC4xLTAuNCwwLjQtMC4yLDAuNgoJCQkJCWwyLjEsNC40YzAuMSwwLjEsMCwwLjItMC4xLDAuMkg2NUw2NSwzMi40eiBNNjQuOCwyNC41YzAtMS40LTAuOS0yLjItMi40LTIuMkg2MGMtMC4zLDAtMC42LDAuMy0wLjYsMC42djMuMgoJCQkJCWMwLDAuMywwLjMsMC42LDAuNiwwLjZoMi4zQzYzLjksMjYuNiw2NC44LDI1LjksNjQuOCwyNC41eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTY5LjYsMjYuOWMwLTAuOCwwLTEuNSwwLjEtMS45YzAuMi0yLjMsMi4zLTQuMSw0LjYtMy42YzEuMSwwLjIsMS45LDAuOSwyLjQsMS45YzAsMC4xLDAsMC4yLDAsMC4yCgkJCQkJbC0wLjUsMC4zYy0wLjEsMC0wLjIsMC0wLjItMC4xYy0wLjUtMC45LTEuMy0xLjYtMi41LTEuNmMtMS4zLDAtMi4yLDAuNi0yLjYsMS44Yy0wLjEsMC40LTAuMiwxLjEtMC4yLDNjMCwxLjgsMC4xLDIuNSwwLjIsMwoJCQkJCWMwLjQsMS4yLDEuMiwxLjgsMi42LDEuOGMxLjIsMCwyLTAuNiwyLjUtMS42YzAtMC4xLDAuMS0wLjEsMC4yLTAuMWwwLjUsMC4zYzAuMSwwLDAuMSwwLjEsMCwwLjJjLTAuNiwxLjMtMS44LDItMy4zLDIKCQkJCQljLTEuNywwLTIuOS0wLjgtMy41LTIuNUM2OS43LDI5LjYsNjkuNiwyOC44LDY5LjYsMjYuOXoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04MC42LDIxLjZjMC0wLjEsMC4xLTAuMiwwLjItMC4yaDAuNmMwLjEsMCwwLjIsMC4xLDAuMiwwLjJ2NC4yYzAsMC4zLDAuMywwLjYsMC42LDAuNmg0LjUKCQkJCQljMC4zLDAsMC42LTAuMywwLjYtMC42di00LjJjMC0wLjEsMC4xLTAuMiwwLjItMC4yaDAuNmMwLjEsMCwwLjIsMC4xLDAuMiwwLjJ2MTAuN2MwLDAuMS0wLjEsMC4yLTAuMiwwLjJoLTAuNgoJCQkJCWMtMC4xLDAtMC4yLTAuMS0wLjItMC4ydi00LjRjMC0wLjMtMC4zLTAuNi0wLjYtMC42aC00LjVjLTAuMywwLTAuNiwwLjMtMC42LDAuNnY0LjRjMCwwLjEtMC4xLDAuMi0wLjIsMC4yaC0wLjYKCQkJCQljLTAuMSwwLTAuMi0wLjEtMC4yLTAuMlYyMS42TDgwLjYsMjEuNnoiLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik05Mi4zLDMxLjNjLTAuMS0wLjEtMC4xLTAuMiwwLTAuMmwwLjQtMC41YzAuMS0wLjEsMC4yLTAuMSwwLjIsMGMwLjcsMC42LDEuOSwxLjEsMy4yLDEuMQoJCQkJCWMxLjgsMCwyLjgtMC45LDIuOC0yLjJjMC0xLjEtMC42LTEuOS0yLjYtMi4xbC0wLjUtMC4xYy0yLjEtMC4zLTMuMi0xLjMtMy4yLTIuOWMwLTEuOSwxLjQtMy4xLDMuNS0zLjFjMS4yLDAsMi40LDAuNCwzLjEsMC45CgkJCQkJYzAuMSwwLDAuMSwwLjEsMCwwLjJsLTAuMywwLjVjLTAuMSwwLjEtMC4xLDAuMS0wLjIsMGMtMC45LTAuNS0xLjctMC44LTIuNy0wLjhjLTEuNiwwLTIuNSwwLjktMi41LDIuMWMwLDEuMSwwLjcsMS44LDIuNiwyLjEKCQkJCQlsMC41LDAuMWMyLjIsMC4zLDMuMiwxLjMsMy4yLDNjMCwxLjktMS4zLDMuMi0zLjksMy4yQzk0LjUsMzIuNiw5MywzMiw5Mi4zLDMxLjN6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTA2LjIsMzIuNGMtMC4xLDAtMC4yLTAuMS0wLjItMC4ydi05LjRjMC0wLjMtMC4zLTAuNi0wLjYtMC42aC0yLjdjLTAuMSwwLTAuMi0wLjEtMC4yLTAuMnYtMC42CgkJCQkJYzAtMC4xLDAuMS0wLjIsMC4yLTAuMmg3LjRjMC4xLDAsMC4yLDAuMSwwLjIsMC4yVjIyYzAsMC4xLTAuMSwwLjItMC4yLDAuMmgtMi43Yy0wLjMsMC0wLjYsMC4zLTAuNiwwLjZ2OS40CgkJCQkJYzAsMC4xLTAuMSwwLjItMC4yLDAuMkgxMDYuMkwxMDYuMiwzMi40eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExNS41LDIxLjZjMC0wLjEsMC4xLTAuMiwwLjItMC4yaDAuNmMwLjEsMCwwLjIsMC4xLDAuMiwwLjJsMy44LDEwLjdjMCwwLjEsMCwwLjItMC4xLDAuMmgtMC42CgkJCQkJYy0wLjEsMC0wLjIsMC0wLjItMC4ybC0wLjktMi40Yy0wLjEtMC4yLTAuMi0wLjMtMC40LTAuM0gxMTRjLTAuMiwwLTAuNCwwLjEtMC40LDAuM2wtMC45LDIuNGMwLDAuMS0wLjEsMC4yLTAuMiwwLjJoLTAuNgoJCQkJCWMtMC4xLDAtMC4xLTAuMS0wLjEtMC4yTDExNS41LDIxLjZ6IE0xMTcuNCwyOC43YzAuMywwLDAuNi0wLjMsMC40LTAuNkwxMTYsMjNsMCwwbC0xLjgsNS4xYy0wLjEsMC4zLDAuMSwwLjYsMC40LDAuNkgxMTcuNHoiCgkJCQkJLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMjkuOSwzMi40Yy0wLjEsMC0wLjIsMC0wLjItMC4xbC0yLjgtNC43bDAsMGwtMi44LDQuN2MwLDAuMS0wLjEsMC4xLTAuMiwwLjFoLTAuNwoJCQkJCWMtMC4xLDAtMC4xLTAuMS0wLjEtMC4ybDMuMi01LjNjMC4xLTAuMiwwLjEtMC4zLDAtMC41bC0yLjktNC44Yy0wLjEtMC4xLDAtMC4yLDAuMS0wLjJoMC43YzAuMSwwLDAuMiwwLDAuMiwwLjFsMi41LDQuMmwwLDAKCQkJCQlsMi41LTQuMmMwLjEtMC4xLDAuMS0wLjEsMC4yLTAuMWgwLjdjMC4xLDAsMC4xLDAuMSwwLjEsMC4ybC0yLjksNC44Yy0wLjEsMC4yLTAuMSwwLjMsMCwwLjVsMy4yLDUuM2MwLDAuMSwwLDAuMi0wLjEsMC4yCgkJCQkJSDEyOS45TDEyOS45LDMyLjR6Ii8+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+Cgk8ZyBjbGFzcz0ic3QyIj4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMS40LDIuMUMyLDIsMi42LDEuOSwzLjUsMS45YzEsMCwxLjgsMC4yLDIuMywwLjdjMC40LDAuNCwwLjcsMSwwLjcsMS43QzYuNCw1LDYuMiw1LjYsNS44LDYKCQkJQzUuMyw2LjYsNC40LDYuOSwzLjMsNi45Yy0wLjMsMC0wLjYsMC0wLjgtMC4xVjEwaC0xVjIuMXogTTIuNSw2QzIuNyw2LDMsNiwzLjQsNmMxLjMsMCwyLTAuNiwyLTEuN2MwLTEuMS0wLjgtMS42LTEuOS0xLjYKCQkJYy0wLjUsMC0wLjgsMC0xLDAuMVY2eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMi44LDcuMWMwLDIuMS0xLjUsMy4xLTIuOSwzLjFjLTEuNiwwLTIuOC0xLjItMi44LTNjMC0xLjksMS4zLTMuMSwyLjktMy4xQzExLjYsNC4xLDEyLjgsNS4zLDEyLjgsNy4xegoJCQkgTTguMSw3LjJjMCwxLjMsMC43LDIuMiwxLjgsMi4yYzEsMCwxLjgtMC45LDEuOC0yLjNjMC0xLTAuNS0yLjItMS43LTIuMkM4LjcsNC45LDguMSw2LDguMSw3LjJ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTE0LjQsNC4ybDAuOCwzYzAuMiwwLjYsMC4zLDEuMiwwLjQsMS44aDBjMC4xLTAuNiwwLjMtMS4yLDAuNS0xLjhsMC45LTNIMThsMC45LDIuOQoJCQljMC4yLDAuNywwLjQsMS4zLDAuNSwxLjloMGMwLjEtMC42LDAuMy0xLjIsMC40LTEuOWwwLjgtMi45aDFMMTkuOSwxMGgtMWwtMC45LTIuOGMtMC4yLTAuNi0wLjQtMS4yLTAuNS0xLjloMAoJCQljLTAuMSwwLjctMC4zLDEuMy0wLjUsMS45TDE2LjEsMTBoLTFsLTEuOC01LjhIMTQuNHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjMuMyw3LjNjMCwxLjQsMC45LDIsMiwyYzAuOCwwLDEuMi0wLjEsMS42LTAuM2wwLjIsMC44Yy0wLjQsMC4yLTEsMC40LTEuOSwwLjRjLTEuOCwwLTIuOS0xLjItMi45LTIuOQoJCQlzMS0zLjEsMi43LTMuMWMxLjksMCwyLjQsMS43LDIuNCwyLjdjMCwwLjIsMCwwLjQsMCwwLjVIMjMuM3ogTTI2LjQsNi42YzAtMC43LTAuMy0xLjctMS41LTEuN2MtMS4xLDAtMS41LDEtMS42LDEuN0gyNi40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yOC43LDZjMC0wLjcsMC0xLjMsMC0xLjhoMC45bDAsMS4xaDBjMC4zLTAuOCwwLjktMS4zLDEuNi0xLjNjMC4xLDAsMC4yLDAsMC4zLDB2MWMtMC4xLDAtMC4yLDAtMC40LDAKCQkJYy0wLjcsMC0xLjMsMC42LTEuNCwxLjRjMCwwLjEsMCwwLjMsMCwwLjVWMTBoLTFWNnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzMuMSw3LjNjMCwxLjQsMC45LDIsMiwyYzAuOCwwLDEuMi0wLjEsMS42LTAuM2wwLjIsMC44Yy0wLjQsMC4yLTEsMC40LTEuOSwwLjRjLTEuOCwwLTIuOS0xLjItMi45LTIuOQoJCQlzMS0zLjEsMi43LTMuMWMxLjksMCwyLjQsMS43LDIuNCwyLjdjMCwwLjIsMCwwLjQsMCwwLjVIMzMuMXogTTM2LjIsNi42YzAtMC43LTAuMy0xLjctMS41LTEuN2MtMS4xLDAtMS41LDEtMS42LDEuN0gzNi4yeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik00My42LDEuNXY3YzAsMC41LDAsMS4xLDAsMS41aC0wLjlsMC0xaDBjLTAuMywwLjYtMSwxLjEtMiwxLjFjLTEuNCwwLTIuNS0xLjItMi41LTNjMC0xLjksMS4yLTMuMSwyLjYtMy4xCgkJCWMwLjksMCwxLjUsMC40LDEuOCwwLjloMFYxLjVINDMuNnogTTQyLjUsNi42YzAtMC4xLDAtMC4zLDAtMC40Yy0wLjItMC43LTAuNy0xLjItMS41LTEuMmMtMS4xLDAtMS43LDEtMS43LDIuMgoJCQljMCwxLjIsMC42LDIuMSwxLjcsMi4xYzAuNywwLDEuNC0wLjUsMS41LTEuM2MwLTAuMSwwLTAuMywwLTAuNVY2LjZ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTQ3LjgsMTBjMC0wLjQsMC0xLDAtMS41di03aDF2My42aDBjMC40LTAuNiwxLTEuMSwyLTEuMWMxLjQsMCwyLjUsMS4yLDIuNCwzYzAsMi4xLTEuMywzLjEtMi42LDMuMQoJCQljLTAuOCwwLTEuNS0wLjMtMS45LTEuMWgwbDAsMUg0Ny44eiBNNDguOSw3LjdjMCwwLjEsMCwwLjMsMCwwLjRjMC4yLDAuNywwLjgsMS4yLDEuNiwxLjJjMS4xLDAsMS44LTAuOSwxLjgtMi4yCgkJCWMwLTEuMi0wLjYtMi4yLTEuNy0yLjJjLTAuNywwLTEuNCwwLjUtMS42LDEuM2MwLDAuMS0wLjEsMC4zLTAuMSwwLjRWNy43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik01NSw0LjJsMS4zLDMuNGMwLjEsMC40LDAuMywwLjgsMC40LDEuMmgwYzAuMS0wLjMsMC4yLTAuOCwwLjQtMS4ybDEuMi0zLjRoMS4xbC0xLjYsNC4xYy0wLjgsMi0xLjMsMy0yLDMuNgoJCQljLTAuNSwwLjUtMSwwLjYtMS4zLDAuN2wtMC4zLTAuOWMwLjMtMC4xLDAuNi0wLjMsMC45LTAuNWMwLjMtMC4yLDAuNi0wLjYsMC45LTEuMkM1NiwxMCw1Niw5LjksNTYsOS45YzAtMC4xLDAtMC4xLTAuMS0wLjMKCQkJbC0yLjEtNS4zSDU1eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MC4zLDUuMmMwLTAuNCwwLjMtMC44LDAuNy0wLjhjMC40LDAsMC43LDAuMywwLjcsMC44YzAsMC40LTAuMywwLjctMC43LDAuN0M2MC42LDUuOSw2MC4zLDUuNiw2MC4zLDUuMnoKCQkJIE02MC4zLDkuNGMwLTAuNCwwLjMtMC44LDAuNy0wLjhjMC40LDAsMC43LDAuMywwLjcsMC44YzAsMC40LTAuMywwLjctMC43LDAuN0M2MC42LDEwLjIsNjAuMyw5LjksNjAuMyw5LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==" class="sf-foot-logo"></a> <button class="sf-btn sf-btn-primary js-send-feedback" v-on:click.prevent="submitFeedback" v-if="!submitted" type="button">Send</button> <span class="sf-btn sf-btn-sent sf-btn-success" v-else>✓ Sent</span> </div> </form> </div> </div> </script> <script type="text/x-template" id="searchOptionSection-template"> <div class="ml-auto sf-filter-actions-custom"> <div v-if="searchStore.searchFired && hasResults"> <div class="d-flex flex-wrap justify-content-end"> <div class="form-inline justify-content-end" v-if="hasMostRecent"> <label class="ml-4 mr-2" for="sort-by">Sort By</label> <select class="custom-select-searchstudio-js" id="sort-by" v-model="searchStore.sort_method.selected" @change="SearchHelper.search"> <option v-for="option in searchStore.sort_method.options" :value="option.key" :key="option.key"> {{ option.value }} </option> </select> </div> </div> </div> </div> </script> <script type="text/x-template" id="search-template"> <div class="input-container-custom"> <div class="sf-header-searchstudio-js"> <div class=""> <div class="sf-form"> <div class="form-group"> <vue-autosuggest v-if="autoSuggest" class="form-control-suggest" :class="{'ignore-branding': storeState.studioConfig.hideBranding}" :value="storeState.searchTerm" :suggestions="storeState.searchSuggestions" :get-suggestion-value="getSuggestionValue" @input="onSuggestionInputChange" :limit="10" @keyup.enter.prevent="onSuggestionClick" :input-props="{ id: 'searchTerm', placeholder: 'Search', autofocus: true }" > <template slot-scope="{ suggestion }"> <div v-html="suggestion.item" /> </template> </vue-autosuggest> <input v-if="!autoSuggest" class="form-control form-control-lg" :class="{'ignore-branding': storeState.studioConfig.hideBranding}" type="text" id="searchTerm" :value="storeState.searchTerm" @change="searchWithNoAutoSuggest" @keyup.enter.prevent="searchWithNoAutoSuggest" @keydown="resetSearch" placeholder="Search" autofocus /> <span v-if="!storeState.loading"> <button type="button" class="btn text-primary search-close-button" @click="() => { searchClose(); const currentUrl = window.location.href.split('?'); window.location.href = `${currentUrl[0]}`; }" v-if="searchTerm === storeState.searchTerm && searchTerm !== ''" title="Reset Search" > <span class="search-close" /> </button> <button type="submit" class="btn text-primary search-close-button" @click="onSearchIconClick" v-else > <span class="search-icon" /> <span class="sr-only">Search</span> </button> </span> <div class="loader" v-if="storeState.loading"> <div class="spinner-border"> <span class="sr-only">Loading...</span> </div> </div> </div> </div> </div> </div> </div> </script> <script type="text/x-template" id="noresult-template"> <div> <div class="search-feedback-filters-custom align-items-center" :class="{ active: searchStore.searchFired && !hasResults && searchStore.externalSearchResults.length === 0 }" v-if="searchStore.searchFired && !hasResults && searchStore.externalSearchResults.length === 0 "> <div class="sf-filter-info-custom"> <span class="d-block"> Showing <strong>no results</strong> for <strong>"{{ searchTerm }}"</strong> </span> <br /> <span v-if="hasSpellingSuggestion"> Did you mean <a href="#" @click="onSpellingSuggestionClick" class="text-primary">{{ suggestions }}</a>?</span> </div> </div> <div class="sf-lists-custom" :class="{ active: searchStore.searchFired && !hasResults && searchStore.externalSearchResults.length === 0 }" v-if="searchStore.searchFired && !hasResults && searchStore.externalSearchResults.length === 0 "> <aside class="sf-sidebar no-results"> <p>Try searching for search related terms or topics. We offer a wide variety of content to help you get the information you need.</p> <p>Lost? Click on the "X" in the Search Box to reset your search.</p> </aside> </div> </div> </div> </script> <script type="text/x-template" id="facet-template"> <div class="facet-template-container-custom"> <div class="pill-container"> <div @click="showMobileSideMenu= true" class="pill pillFilterBy"> Filter By: <span class="pill-close filter-by"></span> </div> <div class="pill pill_all" v-for="(facet, index) in facet_qs" :key="facet" :class="{'last':facet_qs.length -1 === index }" @click="removeFacet(facet)" > <span class="facet-field" >{{ showFacet(facet)}} </span><span class="pill-close"></span > </div> <div class="pill pill_all clear-filters" @click="clearFilters" v-if="facet_qs.length > 0" > Clear Filters <span></span> </div> </div> <div class="sidebar-background" :class="{'show-facet-overlay': showMobileSideMenu}" ></div> <div class="sf-sidebar-container" :class="{'show-facet-overlay': showMobileSideMenu}" > <div class="sf-mobile-header"> <div class="sf-mobile-header-text"></div> <button type="button" class="btn btn-custom text-primary" @click="closeSideMenu" > <span class="search-close" /> </button> </div> <div class="sf-sidebar-container show-facet-overlay"> <div class="sf-sidebar module module--pad-s tint"> <h3 class="sf-sidebar-title step-0">Filter results</h3> <ul class="list-group accordion" id="search-facets"> <li class="list-group-item-searchstudio-js"> <div id="collapse-topics" class="collapse show" data-parent="#search-facets" > <div class="list-unstyled"> <div id="ss-search-results"> <div class="filters" :class="{ 'd-none': !faceting_enabled }"> <form action="/" method="get"> <div class="facet-list" v-for="(facet, index) in computedFacets" :key="index" > <h4 class="sidebar-heading"> <a href="#" @click.prevent="toggleFacet(index)" :class="[facet.facet_toggle ? 'active' : '']" class="facet-group-title" >{{ facet.facet_label }} </a> </h4> <div class="collapse" :class="[facet.facet_toggle ? 'show' : '']" > <ul class="list-unstyled"> <!----> <div v-if="facet.facet_label ==='Type'"> <li v-for="(row, i) in facet.facets" :key="i" :class="[(i<5) ? '' : 'd-none']" > <input type="checkbox" :disabled="row.disabled" :id="row.label" :value="encodeURIComponent(facet.facet_name) + ':"' + encodeURIComponent(row.label) + '"' " v-model="facet_qs" :checked="isFacetSelected(facet, row)" @change="doSearch" v-bind:aria-label="[facet.facet_label,row.label]" /> <label :for="row.label" class="ml-1" :class="{'disabled': row.disabled}" > <span class="facet-name" :ref="'elipsisTooltip'+i+index" > {{ cleanValue(getFieldValue(facet.facet_name, row.label)) }} </span> ({{ row.count }}) </label> <div v-if="$refs['elipsisTooltip'+i+index] && addElipsisTracking('elipsisTooltip'+i+index)" ></div> <div :id="'elipsisTooltip'+i+index" class="facet-tooltip-wrapper" > <span class="facet-tooltip"> {{ cleanValue(getFieldValue(facet.facet_name, row.label)) }} ({{ row.count }}) </span> </div> </li> </div> <div v-else> <li v-for="(row, i) in facet.facets" :key="i" :class="[(row.show) ? '' : 'd-none']" > <input type="checkbox" :disabled="row.disabled" :id="row.label" :value="encodeURIComponent(facet.facet_name) + ':"' + encodeURIComponent(row.label) + '"' " v-model="facet_qs" :checked="isFacetSelected(facet, row)" @change="doSearch" v-bind:aria-label="[facet.facet_label,row.label]" /> <label :for="row.label" class="ml-1" :class="{'disabled': row.disabled}" > <span class="facet-name" :ref="'elipsisTooltip'+i+index" > {{ cleanValue(getFieldValue(facet.facet_name, row.label)) }} </span> ({{ row.count }}) </label> <div v-if="$refs['elipsisTooltip'+i+index] && addElipsisTracking('elipsisTooltip'+i+index)" ></div> <div :id="'elipsisTooltip'+i+index" class="facet-tooltip-wrapper" > <span class="facet-tooltip"> {{ cleanValue(getFieldValue(facet.facet_name, row.label)) }} ({{ row.count }}) </span> </div> </li> </div> <!----> </ul> <!----> <div v-if="facet.facet_label ==='Type'"> <!--no button --> </div> <div v-else> <div class="more-less" v-if="hasFacetPagination(index)" > <a href="#" @click.prevent="doMoreFacets(index)" v-if="hasMoreFacets(index)" >More</a > <a href="#" @click.prevent="doLessFacets(index)" v-else >Less</a > </div> </div> <!----> </div> </div> </form> </div> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </script> <script type="text/x-template" id="paging-template"> <div class="d-flex flex-wrap w-100 py-3 rl-search paging-container" v-else-if="hasResults && !reloading" :class="showEditPaging? 'show-edit' : ''" @mouseenter="mouseenterPaging" @mouseleave="mouseleavePaging"> <div v-if="searchStore.builderConfig && hasResults" class="edit-button" @click="editResultsPaging">EDIT RESULT PAGING STYLE</div> <div class="pagination"> <ul class="pagination__list"> <li class="page-item" :class="{'disabled' : searchStore.loading}"> <a href="#" class="page-link-searchstudio-js" v-if="searchStore.searchFired" :disabled="searchStore.startDoc === 0 || searchStore.loading" @click.prevent="searchStore.startDoc !== 0 && prevPage()" variant="outline-primary"> < Previous </a> </li> <li class="page-item"> <span class="page-link-searchstudio-js" v-if="searchStore.searchFired"> <strong>{{ searchStore.startDoc + 1 }} — {{ searchStore.endDoc }} </strong> of <strong>{{ searchStore.totalResults }}</strong> </span> </li> <li class="page-item" :class="{'disabled' : searchStore.loading}"> <a href="#" class="page-link-searchstudio-js" v-if="searchStore.searchFired" :disabled="searchStore.endDoc === searchStore.totalResults || searchStore.loading" @click.prevent="searchStore.totalResults !== searchStore.endDoc && nextPage()" variant="outline-primary"> Next > </a> </li> </ul> </div> </div> </script> <script type="text/x-template" id="customRelatedSearches-template"> <div class="related-searches-container"> <div v-if="storeState.relatedSearches.length"> <b>Related searches:</b> <span v-for="(value, index) in storeState.relatedSearches" :key="index" class="related-search"> <a @click="search(value, $event)" class="related-search-item" href="#"> {{ value }}<span v-if="index < storeState.relatedSearches.length - 1 ">,</span> </a> </span> </div> </div> </script> <script type="text/x-template" id="external-search-result-template"> <div class="external-searches-container"> <div class="list-wrapper external-list-wrapper" :key="externalResult.url" v-for="externalResult in externalSearchResults"> <div class="card-searchstudio-js-custom"> <div class="card-searchstudio-jsClass"> <div class="card-searchstudio-js-body p-0"> <div class="card-searchstudio-js-title"> <a :href="externalResult.url" @click.prevent="trackClick(externalResult, $event)" class="stretched-link">{{ externalResult.name }}</a> </div> <div class="icon-elevated" /> <div class="card-searchstudio-js-body p-0"> <div class="card-searchstudio-js-text content"> <span class="SearchStax">{{ externalResult.description }}</span> </div> </div> <div class="card-searchstudio-js-body p-0"> <div class="card-searchstudio-js-text content"> <span class="SearchStax">{{ externalResult.url }}</span> </div> </div> <div class="card-searchstudio-js-body p-0" /> </div> </div> </div> </div> </div> </script> <script src="/media/assets/js/studioConfig.js"></script> <script type="text/javascript"> (function (w, d, s, o, f) { w["sf-widget"] = o; w[o] = w[o] || function () { (w[o].q = w[o].q || []).push(arguments); }; js = d.createElement(s); fjs = d.getElementsByTagName(s)[0]; js.src = f; js.async = 1; fjs.parentNode.insertBefore(js, fjs); })( window, document, "script", "_sf", "https://static.searchstax.com/studio-js/v3/js/studio-feedback.js" ); _sf("NqJaArTsYwxNYc1WQlkWRIVX97WrVYAKymqjUwYFzhA"); </script> <script src="https://static.searchstax.com/studio-js/v3/js/studio-app.js"></script> <script src="https://static.searchstax.com/studio-js/v3/js/studio-vendors.js"></script> </div> </main> <!-- Search text crawl end --> <footer class="footer" role="contentinfo"> <section class="footer__main"> <h2 class="sr-only">Useful Links</h2> <div class="container"> <div class="row row--gap-on-collapse"> <nav class="col lg-3 sm-12"> <div class="flow-s"> <h3 class="step--1">Popular links</h3> <ul> <li><a href="/admin-services/ict/self-service/digital-education-services/digital-education-platforms/blackboard/">Blackboard</a></li> <li><a href="/admin-services/ict/contact-ict-service-desk/">Contact the Service Desk</a></li> <li><a href="/jobs/">Jobs</a></li> <li><a href="/admin-services/library/">Library services</a></li> <li><a href="https://email.imperial.ac.uk" target="_blank" rel="noopener">Outlook email online</a></li> </ul> </div> </nav> <nav class="col lg-3 sm-12"> <div class="flow-s"> <h3 class="step--1">Faculties</h3> <ul> <li><a href="/engineering/">Engineering</a></li> <li><a href="/medicine/">Medicine</a></li> <li><a href="/natural-sciences/">Natural Sciences</a></li> <li><a href="https://www.imperial.ac.uk/business-school/" target="_blank" rel="noopener">Imperial College Business School</a></li> </ul> </div> </nav> <nav class="col lg-3 sm-12"> <div class="flow-s"> <h3 class="step--1">Directories</h3> <ul> <li><a href="/admin-services/">Admin and support services </a></li> <li><a href="/multidisciplinary-research/">Networks and Centres </a></li> <li><a href="/a-z-research/">Research groups </a></li> <li><a href="https://profiles.imperial.ac.uk/" target="_blank" rel="noopener">Search all staff</a></li> </ul> </div> </nav> <nav class="col lg-3 sm-12"> <div class="flow-s"> <h3 class="step--1">Partners</h3> <ul> <li><a href="https://ahsc.org.uk/" target="_blank" rel="noopener">Imperial College Academic Health Science Centre </a></li> <li><a href="https://imperialcollegehealthpartners.com/" target="_blank" rel="noopener">Imperial College Health Partners </a></li> <li><a href="https://www.imperial.nhs.uk/" target="_blank" rel="noopener">Imperial College Healthcare NHS Trust </a></li> <li><a href="https://www.imperial-consultants.co.uk/" target="_blank" rel="noopener">Imperial Consultants</a></li> </ul> </div> </nav> </div> </div> </section> <section itemscope itemtype="http://schema.org/CollegeOrUniversity"> <h2 class="sr-only">College Information</h2> <div class="container"> <div class="footer__common"> <div class="row"> <div class="col lg-3 sm-12"> <div class="footer__contact flow-s"> <a href="#" class="footer__brand"> <span class="sr-only" itemprop="name">Imperial College London</span> <svg width="727" height="80" viewBox="0 0 727 80" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M301.453 0V80H353.346V66H316.622V46H350.152V32.4H316.622V14H353.346V0H301.453Z" fill="currentcolor"/> <path d="M238.397 12.9177H227.22V39.8776H238.397C247.142 39.8776 253.566 35.6376 253.566 26.3953C253.566 16.8 247.142 12.9177 238.397 12.9177ZM239.196 52.8H227.22V80H212.052V0H239.196C256.219 0 269.533 7.72706 269.533 26.4C269.533 44.8 256.121 52.8 239.196 52.8Z" fill="currentcolor"/> <path d="M485.079 0V14H503.84V66H485.079V80H537.77V66H519.009V14H537.77V0H485.079Z" fill="currentcolor"/> <path d="M434.191 24.8C434.191 34.4377 428.602 37.4777 419.022 37.4777H406.248V12.9177H419.022C429.419 12.9224 434.191 16.8 434.191 24.8ZM450.158 24.8C450.158 6.12706 437.384 0 420.619 0H391.08V80H406.248V50.4H419.022C419.722 50.4 420.417 50.3859 421.107 50.3624L436.562 80H453.37L436.224 47.1906C444.565 43.4777 450.158 36.3435 450.158 24.8Z" fill="currentcolor"/> <path d="M604.324 14.1929L615.238 49.4777H593.406L604.324 14.1929ZM594.345 0L567.999 80H583.966L589.409 62.4H619.235L624.678 80H640.645L614.299 0H594.345Z" fill="currentcolor"/> <path d="M674.889 0V80H726.914V66H690.058V0H674.889Z" fill="currentcolor"/> <path d="M151.908 0L132.747 47.04L113.587 0H92.0312V80H106.402V20.1882L124.764 62.4H140.731L159.093 20.1882V80H173.463V0H151.908Z" fill="currentcolor"/> <path d="M0 0V14H18.7613V66H0V80H52.6912V66H33.93V14H52.6912V0H0Z" fill="currentcolor"/> </svg> </a> <meta itemprop="url" content="https://www.imperial.ac.uk/"> <meta itemprop="image" content="https://www.imperial.ac.uk/ImageCropToolT4/imageTool/uploaded-images/homepage-default-social--tojpeg_1523872141375_x1.jpg"> <meta itemprop="logo" content="https://www.imperial.ac.uk/assets/website/images/logo/imperial-600.png"> <meta itemprop="sameAs" content="https://en.wikipedia.org/wiki/Imperial_College_London"> <div class="address"> <h3 class="sr-only">Address</h3> <p itemscope itemtype="http://schema.org/PostalAddress" itemprop="address"> <span itemprop="name">Imperial College London</span><br /> <span itemprop="streetAddress">South Kensington Campus</span><br /> <span itemprop="addressLocality">London</span> <span itemprop="postalCode">SW7 2AZ</span>, <span itemprop="addressCountry">UK</span><br /> <span itemprop="telephone">tel: +44 (0)20 7589 5111</span> </p> </div> </div> </div> <div class="col lg-9 sm-12"> <div class="footer__info flow-s" id="footer-info"> <div class="footer__social cluster cluster--pad-m"> <a href="https://www.facebook.com/imperialcollegelondon" target="_blank" itemprop="sameAs"> <span class="sr-only">Facebook</span> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#facebook"></use> </svg> </a> <a href="https://twitter.com/imperialcollege" target="_blank" itemprop="sameAs"> <span class="sr-only">X, formerly known as Twitter</span> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#twitter"></use> </svg> </a> <a href="https://www.youtube.com/user/imperialcollegevideo" target="_blank" itemprop="sameAs"> <span class="sr-only">YouTube</span> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#youtube"></use> </svg> </a> <a href="https://www.linkedin.com/edu/imperial-college-london-12598" target="_blank" itemprop="sameAs"> <span class="sr-only">LinkedIn</span> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#linkedin"></use> </svg> </a> <a href="https://instagram.com/imperialcollege" target="_blank" itemprop="sameAs"> <span class="sr-only">Instagram</span> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#instagram"></use> </svg> </a> <a href="https://www.tiktok.com/@imperialcollege" target="_blank" itemprop="sameAs"> <span class="sr-only">TikTok</span> <svg role="img" aria-hidden="true" focusable="false" class="icon icon--m"> <use xlink:href="/assets/website/images/svg/icons.svg#tiktok"></use> </svg> </a> </div> <nav> <h3 class="sr-only">Site Information</h3> <ul class="footer__meta"> <li><a href="/sitemap/">Sitemap</a></li> <li><a href="/about-the-site/accessibility/">Accessibility</a></li> <li><a href="/admin-services/finance/purchasing/related-policy-statements/modern-slavery/">Modern slavery statement</a></li> <li><a href="/about-the-site/privacy/">Privacy notice</a></li> <li><a href="/about-the-site/use-of-cookies/">Use of cookies</a></li> <li><a href="/about-the-site/incorrect-content/">Report incorrect content</a></li> <li class="hide-sm"><a class="t4Edit-page" href="https://t4-cms.imperial.ac.uk/terminalfour/page/section#edit/164459/contents">Log in</a></li> </ul> </nav> <p class="footer__copyright">© 2025 Imperial College London</p> </div> </div> </div> </div> </div> </section> </footer> <!-- <script src="/media/assets/js/facets_dropdown_mobile.js"></script> search page mobile facet dropdown W.I.P. --> </body> </html>