"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[235],{8871:(W,d,a)=>{a.d(d,{Z:()=>h});var e=a(6109),o=a(8102);const g=()=>e.createElement(o.q,{script:[{type:"text/javascript",innerHTML:p}]}),p=`
document.addEventListener("DOMContentLoaded", (event) => {
window.GeckoEngagementWidget={widgetId:"98108c8d-4ebe-43eb-b590-ecf0ff9eb4e5"};
});
(function (d) {
"use strict";
var geckoScript = d.createElement("script");
geckoScript.id = "gecko-chat-script";
geckoScript.src = "https://widget.geckoengage.com/embed";
var scriptTags = d.getElementsByTagName("script")[0];
if (d.getElementById("gecko-chat-script")) {
return;
}
scriptTags.parentNode.insertBefore(geckoScript, scriptTags);
})(document)
`,h=g},3964:(W,d,a)=>{a.d(d,{Z:()=>b,g:()=>l});var e=a(6109),o=a(3519),g=a(5492),p=a(689),h=a(1183);const m=({title:r,type:P,link:I,size:L})=>e.createElement(c,null,e.createElement(R,{"aria-hidden":!0,width:"1rem"}),e.createElement(x,null,e.createElement(O,{path:I},e.createElement(S,{as:"span"},y(r))),P&&e.createElement(Z,{as:"span",$size:"small"}," ","(",P,L&&", "+L.value+L.unit,")"))),y=r=>r?r.replaceAll("-"," ").replaceAll("_"," ").replaceAll("Heriot Watt","ÀÖ²¥´«Ã½"):void 0,l=o.default.ul`
display: flex;
flex-direction: column;
gap: ${r=>r.theme.spacing.s};
list-style: none;
padding-left: 0;
@media ${r=>r.theme.mq.min.tablet} {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
@media ${r=>r.theme.mq.min.desktop} {
grid-template-columns: repeat(3, 1fr);
}
`,O=(0,o.default)(p.Z)`
display: block;
`,x=o.default.div`
display: flex;
flex-direction: column;
gap: ${r=>r.theme.spacing.xxxs};
`,c=o.default.li`
display: flex;
gap: ${r=>r.theme.spacing.xxs};
align-items: top;
`,R=(0,o.default)(g.Ec)`
color: ${r=>r.theme.colors.neutral.black};
flex-shrink: 0;
width: 1.5rem;
height: 1.5rem;
`,S=(0,o.default)(h.ZP)`
text-transform: capitalize;
`,Z=(0,o.default)(h.ZP)`
text-transform: uppercase;
`,b=m},7021:(W,d,a)=>{a.d(d,{Z:()=>K});var e=a(6109),o=a(3519),g=a(5492),p=a(4666),h=a(2361),m=a(6681),y=a(6043),l=a(3719),O=a(1679),x=a(1183);const c={search:"Search",suggestions:"Suggestions",programmes:{all:"Search our programmes",level:{globalCollege:"Search our Global College programmes",undergraduate:"Search our Undergraduate programmes",postgraduate:"Search our Postgraduate programmes",research:"Search our Research programmes"},delivery:{graduateApprenticeships:"Search our Graduate Apprenticeship programmes"},gscopes:{globalCollege:"globalcollege",undergraduate:"ug",postgraduate:"pg",research:"research",graduateApprenticeships:"ga"}}};var R=a(2294),S=a(5718),Z=a(9648),b=a(5884);const r=({level:n,school:f,global:T})=>{const{isJQueryLoaded:B,areOtherScriptsLoaded:M}=(0,S.Z)();(0,e.useEffect)(()=>{if(B&&M){console.log("All scripts loaded successfully!");const V=window.matchMedia("(max-height: 55rem)").matches?4:3;$(function(){$("input#searchBarInput").autocompletion({datasets:{programmes:{collection:"heriot-watt~sp-programmes",profile:j(F,n??"",T??!1),program:"https://search.hw.ac.uk/s/suggest.json",name:c.suggestions,format:"extended",show:V,group:!0,template:{suggestion:'
',pending:'Searching…
',notFound:'Sorry, no results
'}}},typeahead:{}})})}},[B,M]);const u=(0,R.Z)(),F=(0,m.v9)(y.Kd)??"uk";let E=c.programmes.all;n&&(n==="Global College"?E=c.programmes.level.globalCollege:n==="Undergraduate"?E=c.programmes.level.undergraduate:n==="Postgraduate"?E=c.programmes.level.postgraduate:n==="Research"?E=c.programmes.level.research:n==="Graduate Apprenticeships"&&(E=c.programmes.delivery.graduateApprenticeships));let i="";return F&&!T&&(i=F),n&&n==="Graduate Apprenticeships"&&(i?i+=",ga+":i="ga"),f&&(i?i+=`,${f}+`:i=f),e.createElement(P,{$brandEbs:u},e.createElement(h.H,null,e.createElement(I,{id:"searchBar",action:"https://search.hw.ac.uk/s/search.html",$isBrandEbs:u},e.createElement("input",{type:"hidden",name:"collection",value:"heriot-watt~sp-programmes"}),e.createElement("input",{type:"hidden",name:"profile",value:"programmes"}),n&&n!=="Graduate Apprenticeships"&&e.createElement("input",{type:"hidden",name:"f.Level|level",value:n}),i&&e.createElement("input",{type:"hidden",name:"gscope1",value:i}),e.createElement(L,{placeholder:E,id:"searchBarInput",name:"query",type:"search","aria-label":E}),!n&&e.createElement("select",{name:"f.Level|level","aria-label":l.OP.level},e.createElement("option",{value:""},"Select study level"),e.createElement("option",{value:l.RD.globalCollege},l.RD.globalCollege),e.createElement("option",{value:l.RD.undergraduate},l.RD.undergraduate),e.createElement("option",{value:l.RD.postgraduate},l.RD.postgraduate),e.createElement("option",{value:l.RD.research},l.RD.research)),e.createElement(H,{as:"button",type:"submit",$variant:u?"greenLight":"blueBright"},e.createElement(x.ZP,{as:"span"},c.search),e.createElement(w,{as:"span"},e.createElement(N,null))))))},P=(0,o.default)(h.Y)`
background-color: ${n=>n.$brandEbs?n.theme.colors.blue.dark:n.theme.colors.blue.primary};
padding-top: ${n=>n.theme.spacing.l};
padding-bottom: ${n=>n.theme.spacing.l};
`,I=o.default.form`
${O.r}
color: ${n=>n.theme.colors.neutral.white};
display: flex;
flex-direction: column;
gap: ${n=>n.theme.spacing.xs};
max-width: 60rem;
@media ${n=>n.theme.mq.min.laptop} {
flex-direction: row;
gap: ${n=>n.theme.spacing.s};
}
.twitter-typeahead {
flex-grow: 1;
input {
width: 100%;
}
}
${Z.F}
.tt-category {
${x.j4}
font-weight: bold;
color: ${n=>n.theme.colors.blue.dark};
padding: ${n=>n.theme.spacing.xxs} ${n=>n.theme.spacing.xs};
@media ${n=>n.theme.mq.min.tablet} {
${b.B8}
}
}
.tt-menu {
color: ${n=>n.theme.colors.blue.primary};
position: unset !important;
@media ${n=>n.theme.mq.min.laptop} {
&.tt-open {
position: absolute !important;
}
box-shadow: rgba(0, 0, 0, 0.75) 0px 2rem 3rem 0px;
}
}
.tt-suggestion {
display: flex;
flex-direction: column;
gap: ${n=>n.theme.spacing.xxs};
&:hover {
background-color: ${n=>n.$isBrandEbs?n.theme.colors.green.shade:n.theme.colors.blue.mid};
color: ${n=>n.$isBrandEbs&&n.theme.colors.blue.dark};
.tt-footer {
svg {
fill: ${n=>n.$isBrandEbs===!1&&n.theme.colors.neutral.white};
}
}
}
}
.tt-header {
}
.tt-title {
${b.IH}
}
.tt-footer {
display: flex;
justify-content: space-between;
${x.mV}
.tt--icon-pair {
display: flex;
gap: ${n=>n.theme.spacing.xxxs};
align-items: center;
}
svg {
width: 1rem;
height: 1rem;
fill: ${n=>n.theme.colors.blue.primary};
}
}
`,L=o.default.input`
flex-grow: 1;
`,H=(0,o.default)(p.ZP)`
display: flex;
align-items: center;
gap: ${n=>n.theme.spacing.xs};
`,w=(0,o.default)(x.ZP)`
display: inline-flex;
`,N=(0,o.default)(g.L)`
height: auto;
width: 1.25rem;
`,j=(n,f,T)=>{const B="autocomplete-programmes",M=n?"-"+n:"";let u="";if(f&&n!=="ebs"&&n!=="online")switch(f){case"Undergraduate":u="-ug";break;case"Postgraduate":u="-pg";break;case"Research":u="-research";break}return B+M+u},K=r},432:(W,d,a)=>{a.d(d,{a:()=>g,t:()=>o});var e=a(5631);const o={ZenInfo:(0,e.ZP)(()=>Promise.resolve().then(a.bind(a,7664)),{resolveComponent:p=>p.VersionInfo})},g=(0,e.ZP)(()=>Promise.all([a.e(841),a.e(191)]).then(a.bind(a,4929)))},6411:(W,d,a)=>{a.r(d),a.d(d,{default:()=>ve});var e=a(6109),o=a(432),g=a(8217),p=a(6620),h=a(958),m=a(1224),y=a(5884),l=a(3519),O=a(2397),x=a(2572),c=a(4069),R=a(4600),S=a(6076),Z=a(1186),b=a(512),r=a(1183);const P={keyFact:"Key fact"},I=({content:t})=>t?e.createElement(L,null,e.createElement(y.ZP,{as:"h2",$size:"4 serif",$color:"black"},P.keyFact),e.createElement(r.ZP,{as:"p"},t)):null,L=l.default.div`
display: flex;
flex-direction: column;
gap: ${t=>t.theme.spacing.s};
background: ${t=>t.theme.colors.orchil.shade};
padding: ${t=>t.theme.spacing.s} ${t=>t.theme.spacing.s}
${t=>t.theme.spacing.l} ${t=>t.theme.spacing.s};
`,H=I;var w=a(8871),N=a(6681),j=a(6442),K=a(4666),n=a(3238),f=a(6413),T=a(3327),B=a(7021),M=a(878),u=a(7330),F=a(5964),E=a(2294),i=a(3964),q=a(2356);const V=({mappedEntry:t})=>{const{title:s,description:U,breadcrumb:A,theme:G,hero:v,introduction:J,content:Q,contentComposerProps:ae,contact:C,keyFact:X,relatedDocuments:D,genericSectionText:Y,searchBar:ne,testimonial:k,cardRow:z}=t||{},le=(0,N.v9)(j.Fx),ye=le&&le.startsWith("/study")||!1,oe=!!(D&&D.content?.length),re=!!(C&&C.content?.length),se=!!(oe&&re);return e.createElement(me,{theme:G},e.createElement(h.Z,{pageTitle:s,ogImage:v.image?.src&&c.ZS+v.image?.src,ogImageAltText:v.image?.alt&&v.image?.alt,description:U}),A?e.createElement(R.Z,{...A,padding:G==="column"?"wide":"default"}):null,v?e.createElement(he,{...v,cta:v.cta}):null,e.createElement(pe,{theme:G},!v&&s||J||Q?e.createElement(m.ZP,{id:"introduction",padding:!1,condensed:!0},e.createElement(ce,null,!v&&s&&e.createElement(y.ZP,{as:"h1",$size:"1"},s),J?e.createElement(_,null,e.createElement(g.ZP,{data:J})):null,Q?e.createElement(_,null,e.createElement(g.ZP,{data:Q})):null)):null,Y?e.createElement(m.ZP,{id:"genericSectionText",...Y,variant:"feature",padding:!1},e.createElement(F.Lu,{text:Y.text})):void 0,ne&&e.createElement(B.Z,{...ne}),z&&z.cards?e.createElement(m.ZP,{...z.section,background:"darkBlue",width:!1,padding:!1,variant:"feature",id:"cardGrid"},e.createElement(M.Z,{cardVariant:"primary",cardsOnly:!0,forceLength:!0,...(0,u.J)(z.cards)})):null,k?.content?e.createElement(m.ZP,{...S.iP,...k.section,id:"testimonial"},e.createElement(T.Z,{...k.content,variant:"darkBlue"})):null,X&&e.createElement(m.ZP,{...X.section,...S._F,id:"keyFact"},e.createElement(Z.Ii,null,e.createElement(H,{...X.content}))),oe||re?e.createElement(ie,null,C&&C.content?.length?e.createElement(m.ZP,{...C.section,...S.nu,id:"contact",heading:"Contact"},se?e.createElement(ee,{contacts:C.content}):e.createElement(Z.Ii,null,e.createElement(ee,{contacts:C.content}))):null,D&&D.content?.length?e.createElement(m.ZP,{...D.section,...S.nu,id:"relatedDocuments",heading:q.u.relatedDocuments},se?e.createElement(Ee,null,e.createElement(te,{documents:D.content})):e.createElement(i.g,null,e.createElement(te,{documents:D.content}))):null):null,ae?e.createElement(o.a,{...ae}):null),ye&&e.createElement(w.Z,null))},ce=l.default.div`
display: flex;
flex-direction: column;
gap: ${t=>t.theme.spacing.l};
`,_=l.default.div`
display: flex;
flex-direction: column;
gap: ${t=>t.theme.spacing.xs};
@media ${t=>t.theme.mq.min.desktop} {
gap: ${t=>t.theme.spacing.s};
}
`,xe=l.default.div`
display: flex;
flex-direction: column;
gap: ${t=>t.theme.spacing.s};
`,ie=l.default.div`
@media ${t=>t.theme.mq.min.desktop} {
border-top: ${t=>t.theme.radius.xs} solid
${t=>t.theme.colors.grey.light};
display: flex;
flex-direction: row;
gap: ${t=>t.theme.spacing.s};
> * {
flex: 1;
}
& section {
// remove the featured generic section border
border-top: none !important;
}
}
`,me=({children:t,theme:s="wide"})=>s==="column"?e.createElement(de,null,e.createElement(ge,null,t)):e.createElement(p.Z,null,t),de=(0,l.default)(p.Z)`
background: ${t=>t.theme.colors.grey.light};
`,ge=l.default.div`
max-width: ${t=>t.theme.grid.default.width};
margin-left: auto;
margin-right: auto;
background: ${t=>t.theme.colors.neutral.white};
`,pe=({children:t,theme:s="wide"})=>s==="column"?e.createElement(ue,null,t):e.createElement(e.Fragment,null,t),ue=l.default.div`
@media ${t=>t.theme.mq.min.laptop} {
padding-left: calc(${t=>t.theme.spacing.l} - ${t=>t.theme.spacing.xs});
padding-right: calc(${t=>t.theme.spacing.l} - ${t=>t.theme.spacing.xs});
/* flex column and order to move related content to bottom - disabled as pulls all card rows down until we can isolate Related only */
/* display: flex;
flex-direction: column;
> div:has(div > section > div > div > h2#cardGrid) {
order: 10;
} */
}
`,he=({_type:t,image:s,heading:U,cta:A})=>{const G=(0,E.Z)();return t==="heroBannerSimple"?e.createElement(x.Z,{image:s},e.createElement(y.ZP,{as:"h1",$size:"1"},U)):e.createElement(O.Z,{image:s},e.createElement(n.F8,null,e.createElement(y.ZP,{as:"h1",$size:"1",$color:"white"},U),A?e.createElement(n.if,null,e.createElement(fe,{path:A.path,$variant:G?"greenLight":"whiteOutline"},A.label)):null))},fe=(0,l.default)(K.ZP)`
@media ${t=>t.theme.mq.min.tablet} {
// as button is on light background need to convert whiteOutline to Blue variant
${t=>t.$variant==="whiteOutline"&&K.PQ}
box-shadow: unset;
}
`,ee=({contacts:t})=>t.length?e.createElement(e.Fragment,null,t.map(s=>e.createElement(b.Z,{key:s.name,...s,...f.EH}))):null,te=({documents:t})=>t.length?e.createElement(e.Fragment,null,t.map(s=>e.createElement(i.Z,{key:s.link,...s,...f.EH}))):null,Ee=l.default.ul`
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: ${t=>t.theme.spacing.xs};
`,ve=V}}]);