"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[235],{8871:(T,v,a)=>{a.d(v,{Z:()=>b});var e=a(6109),r=a(8102);const E=()=>e.createElement(r.q,{script:[{type:"text/javascript",innerHTML:y}]}),y=` 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) `,b=E},7021:(T,v,a)=>{a.d(v,{Z:()=>B});var e=a(6109),r=a(3519),E=a(5492),y=a(4666),b=a(2361),g=a(6681),P=a(6043),l=a(3719),z=a(1679),L=a(1183);const i={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 K=a(2294),C=a(5718),G=a(9648),O=a(5884);const U=({level:n,school:u,global:M})=>{const{isJQueryLoaded:D,areOtherScriptsLoaded:I}=(0,C.Z)();(0,e.useEffect)(()=>{if(D&&I){console.log("All scripts loaded successfully!");const A=window.matchMedia("(max-height: 55rem)").matches?4:3;$(function(){$("input#searchBarInput").autocompletion({datasets:{programmes:{collection:"heriot-watt~sp-programmes",profile:V(R,n??"",M??!1),program:"https://search.hw.ac.uk/s/suggest.json",name:i.suggestions,format:"extended",show:A,group:!0,template:{suggestion:'
{{#if label.listMetadata.title}}{{label.listMetadata.title}}{{else}}{{label.title}}{{/if}}{{#if label.listMetadata.award}} {{label.listMetadata.award}}{{/if}}
',pending:'
Searching…
',notFound:'
Sorry, no results
'}}},typeahead:{}})})}},[D,I]);const m=(0,K.Z)(),R=(0,g.v9)(P.Kd)??"uk";let p=i.programmes.all;n&&(n==="Global College"?p=i.programmes.level.globalCollege:n==="Undergraduate"?p=i.programmes.level.undergraduate:n==="Postgraduate"?p=i.programmes.level.postgraduate:n==="Research"?p=i.programmes.level.research:n==="Graduate Apprenticeships"&&(p=i.programmes.delivery.graduateApprenticeships));let s="";return R&&!M&&(s=R),n&&n==="Graduate Apprenticeships"&&(s?s+=",ga+":s="ga"),u&&(s?s+=`,${u}+`:s=u),e.createElement(H,{$brandEbs:m},e.createElement(b.H,null,e.createElement(N,{id:"searchBar",action:"https://search.hw.ac.uk/s/search.html",$isBrandEbs:m},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}),s&&e.createElement("input",{type:"hidden",name:"gscope1",value:s}),e.createElement(W,{placeholder:p,id:"searchBarInput",name:"query",type:"search","aria-label":p}),!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(w,{as:"button",type:"submit",$variant:m?"greenLight":"blueBright"},e.createElement(L.ZP,{as:"span"},i.search),e.createElement(j,{as:"span"},e.createElement(Z,null))))))},H=(0,r.default)(b.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}; `,N=r.default.form` ${z.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%; } } ${G.F} .tt-category { ${L.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} { ${O.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 { ${O.IH} } .tt-footer { display: flex; justify-content: space-between; ${L.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}; } } `,W=r.default.input` flex-grow: 1; `,w=(0,r.default)(y.ZP)` display: flex; align-items: center; gap: ${n=>n.theme.spacing.xs}; `,j=(0,r.default)(L.ZP)` display: inline-flex; `,Z=(0,r.default)(E.L)` height: auto; width: 1.25rem; `,V=(n,u,M)=>{const D="autocomplete-programmes",I=n?"-"+n:"";let m="";if(u&&n!=="ebs"&&n!=="online")switch(u){case"Undergraduate":m="-ug";break;case"Postgraduate":m="-pg";break;case"Research":m="-research";break}return D+I+m},B=U},432:(T,v,a)=>{a.d(v,{a:()=>E,t:()=>r});var e=a(5631);const r={ZenInfo:(0,e.ZP)(()=>Promise.resolve().then(a.bind(a,7664)),{resolveComponent:y=>y.VersionInfo})},E=(0,e.ZP)(()=>Promise.all([a.e(841),a.e(191)]).then(a.bind(a,4929)))},7242:(T,v,a)=>{a.r(v),a.d(v,{default:()=>Ce});var e=a(6109),r=a(432),E=a(5411),y=a(6620),b=a(958),g=a(1224),P=a(5884),l=a(3519),z=a(2397),L=a(2572),i=a(4069),K=a(4600),C=a(6076),G=a(1186),O=a(512),U=a(1183);const H={keyFact:"Key fact"},N=({content:t})=>t?e.createElement(W,null,e.createElement(P.ZP,{as:"h2",$size:"4 serif",$color:"black"},H.keyFact),e.createElement(U.ZP,{as:"p"},t)):null,W=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}; `,w=N;var j=a(8871),Z=a(6681),V=a(6442),B=a(4666),n=a(3238),u=a(6413),M=a(3327),D=a(7021),I=a(878),m=a(7330),R=a(5964),p=a(2294),s=a(3964),q=a(2356),A=a(1420),_=a(5492);const me=()=>{const t=(0,Z.v9)(A.routing.selectors.selectCurrentSiblings),o=(0,Z.v9)(A.routing.selectors.selectCurrentNode).id,h=t.findIndex(c=>c.id===o),d=h>0?h-1:void 0,f=ht.theme.spacing.xs}; padding-bottom: ${t=>t.theme.spacing.xl}; @media ${t=>t.theme.mq.min.mobile} { gap: ${t=>t.theme.spacing.m}; justify-content: flex-start; } `,ee=(0,l.css)` width: calc((${t=>t.theme.spacing.m} + ${t=>t.theme.spacing.xxxs}) / 2); // 1.125rem `,ge=(0,l.default)(_.gf)` ${ee} `,ue=(0,l.default)(_.rx)` ${ee} `,pe=me,he=({mappedEntry:t})=>{const{title:o,description:h,breadcrumb:d,theme:f,hero:c,introduction:J,content:Q,contentComposerProps:le,contact:x,keyFact:X,relatedDocuments:S,genericSectionText:Y,searchBar:oe,testimonial:k,cardRow:F}=t||{},re=(0,Z.v9)(V.Fx),Ze=(0,Z.v9)(A.routing.selectors.selectRouteEntryContentTypeId),Be=re&&re.startsWith("/study")||!1,se=!!(S&&S.content?.length),ce=!!(x&&x.content?.length),ie=!!(se&&ce);return e.createElement(Ee,{theme:f},e.createElement(b.Z,{pageTitle:o,ogImage:c.image?.src&&i.ZS+c.image?.src,ogImageAltText:c.image?.alt&&c.image?.alt,description:h}),d?e.createElement(K.Z,{...d,padding:f==="column"?"wide":"default"}):null,c?e.createElement(be,{...c,cta:c.cta}):null,e.createElement(xe,{theme:f},!c&&o||J||Q?e.createElement(g.ZP,{id:"introduction",padding:!1,condensed:!0},e.createElement(fe,null,!c&&o&&e.createElement(P.ZP,{as:"h1",$size:"1"},o),J?e.createElement(te,null,e.createElement(E.ZP,{data:J})):null,Q?e.createElement(te,null,e.createElement(E.ZP,{data:Q})):null)):null,Y?e.createElement(g.ZP,{id:"genericSectionText",...Y,variant:"feature",padding:!1},e.createElement(R.Lu,{text:Y.text})):void 0,oe&&e.createElement(D.Z,{...oe}),F&&F.cards?e.createElement(g.ZP,{...F.section,background:"darkBlue",width:!1,padding:!1,variant:"feature",id:"cardGrid"},e.createElement(I.Z,{cardVariant:"primary",cardsOnly:!0,forceLength:!0,...(0,m.J)(F.cards)})):null,k?.content?e.createElement(g.ZP,{...C.iP,...k.section,id:"testimonial"},e.createElement(M.Z,{...k.content,variant:"darkBlue"})):null,X?.content?.content&&e.createElement(g.ZP,{...X.section,...C._F,id:"keyFact"},e.createElement(G.Ii,null,e.createElement(w,{...X.content}))),se||ce?e.createElement(ve,null,x&&x.content?.length?e.createElement(g.ZP,{...x.section,...C.nu,id:"contact",heading:"Contact"},ie?e.createElement(ne,{contacts:x.content}):e.createElement(G.Ii,null,e.createElement(ne,{contacts:x.content}))):null,S&&S.content?.length?e.createElement(g.ZP,{...S.section,...C.nu,id:"relatedDocuments",heading:q.u.relatedDocuments},ie?e.createElement(Le,null,e.createElement(ae,{documents:S.content})):e.createElement(s.g,null,e.createElement(ae,{documents:S.content}))):null):null,le?e.createElement(r.a,{...le}):null,Ze==="sequencePage"&&e.createElement(pe,null)),Be&&e.createElement(j.Z,null))},fe=l.default.div` display: flex; flex-direction: column; gap: ${t=>t.theme.spacing.l}; `,te=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}; } `,ve=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; } } `,Ee=({children:t,theme:o="wide"})=>o==="column"?e.createElement(ye,null,e.createElement($e,null,t)):e.createElement(y.Z,null,t),ye=(0,l.default)(y.Z)` background: ${t=>t.theme.colors.grey.light}; `,$e=l.default.div` max-width: ${t=>t.theme.grid.default.width}; margin-left: auto; margin-right: auto; background: ${t=>t.theme.colors.neutral.white}; `,xe=({children:t,theme:o="wide"})=>o==="column"?e.createElement(Se,null,t):e.createElement(e.Fragment,null,t),Se=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; } */ } `,be=({_type:t,image:o,heading:h,cta:d})=>{const f=(0,p.Z)();return t==="heroBannerSimple"?e.createElement(L.Z,{image:o},e.createElement(P.ZP,{as:"h1",$size:"1"},h)):e.createElement(z.Z,{image:o},e.createElement(n.F8,null,e.createElement(P.ZP,{as:"h1",$size:"1",$color:"white"},h),d?e.createElement(n.if,null,e.createElement(Pe,{path:d.path,$variant:f?"greenLight":"whiteOutline"},d.label)):null))},Pe=(0,l.default)(B.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"&&B.PQ} box-shadow: unset; } `,ne=({contacts:t})=>t.length?e.createElement(e.Fragment,null,t.map(o=>e.createElement(O.Z,{key:o.name,...o,...u.EH}))):null,ae=({documents:t})=>t.length?e.createElement(e.Fragment,null,t.map(o=>e.createElement(s.Z,{key:o.link,...o,...u.EH}))):null,Le=l.default.ul` list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: ${t=>t.theme.spacing.xs}; `,Ce=he}}]);