PageSourceSearch

https://www.surrey.ac.uk/themes/custom/surrey_2024/dist/js/custom/personalised-data.js?tluzsq

js surrey.ac.uk collected 2026-09-24 08:25:11 UTC 62,615 bytes, 2 lines download raw bytes

1"use strict";function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}(function storePersonalisationData(Drupal){"use strict";Drupal.behaviors.personalisationData={attach(context){function buildNodeUrl(type){let _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_ref$fields=_ref.fields,fields=_ref$fields===void 0?"":_ref$fields,_ref$include=_ref.include,include=_ref$include===void 0?"":_ref$include,_ref$limit=_ref.limit,limit=_ref$limit===void 0?1:_ref$limit,_ref$sort=_ref.sort,sort=_ref$sort===void 0?"-created":_ref$sort,_ref$extra=_ref.extra,extra=_ref$extra===void 0?{}:_ref$extra;let subjectIds=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];const p=new URLSearchParams({"filter[status][value]":"1","page[limit]":String(limit),sort});if(fields)p.set(`fields[node--${type}]`,fields);if(include)p.set("include",include);const ids=(subjectIds||[]).filter(Boolean);if(ids.length){p.set("filter[field_subjects.id][operator]","IN");ids.forEach(id=>p.append("filter[field_subjects.id][value][]",id));}Object.entries(extra).forEach(_ref2=>{let _ref3=_slicedToArray(_ref2,2),k=_ref3[0],v=_ref3[1];return p.set(k,v)});return`${location.origin}/jsonapi/node/${type}?${p.toString()}`;}const personalisationData={cache:{},surrey:{course:{card:context.querySelector("#course-root"),template:document.getElementById("tpl-course-card"),nid:null},scholarship:{card:context.querySelector("#scholarship-root"),template:document.getElementById("tpl-scholarship-card")},studentship:{card:context.querySelector("#studentship-root"),template:document.getElementById("tpl-studentship-card")},quote:{card:context.querySelector("#quote-root"),template:document.getElementById("tpl-quote-card"),subjectIds:[]},editorial:{card:context.querySelector("#editorial-root"),template:document.getElementById("tpl-editorial-card")},stat:{card:context.querySelector("#stat-root"),template:document.getElementById("tpl-stat-card")},campaign:{card:context.querySelector("#campaign-root"),template:document.getElementById("tpl-campaign-logo")},courseBlockUuid:{ug:"4babb65c-04bb-425f-b0a0-960998cb540b",pgt:"3382b3ea-2c93-4fdb-a13d-278be8f39a1d",pgr:"94f667a6-f218-411c-b4b1-053751a8f337",default:"4babb65c-04bb-425f-b0a0-960998cb540b"},footer:{card:context.querySelector("#disclaimer")},generic1:{card:context.querySelector("#generic-1-root"),template:document.getElementById("tpl-generic-1")},generic2:{card:context.querySelector("#generic-2-root"),template:document.getElementById("tpl-generic-2")},heading:{wrap:context.querySelector("#bento-welcome"),text:context.querySelector("#bento-welcome .js-welcome-text"),copy:null}},init:async()=>{try{const consentStr=personalisationData.getCookie("surreyCookieConsent");let personalisationOff=false;if(consentStr){try{const consentCookie=JSON.parse(consentStr);const cookieConsentPreferences=consentCookie&&consentCookie.consentPreferences;personalisationOff=cookieConsentPreferences&&(cookieConsentPreferences.personalization===false||cookieConsentPreferences.personalisation===false);}catch(_unused){personalisationOff=/(?:"personal(?:i)?[sz]ation"\s*:\s*false|\bpersonal(?:i)?[sz]ation\s*[=:]\s*0|\btargeting\s*[=:]\s*0)/i.test(consentStr);}}const crmCookie=personalisationData.getCookie("u_crm");const rawCourseCookie=crmCookie||personalisationData.getCookie("u_last_course");personalisationData.surrey.course.usedCrmCookie=!!crmCookie;if(personalisationOff||rawCourseCookie==null){const wrap=document.getElementById("bento-wrapper");if(wrap)wrap.hidden=true;return;}const cookieNid=personalisationData.extractNid(rawCourseCookie);if(!Number.isFinite(cookieNid)||cookieNid<=0){const content=document.getElementById("bento-content");
1if(content)content.hidden=false;return;}const courseVariant=personalisationData.getVariantFromCourseCookie(rawCourseCookie);personalisationData.surrey.course.variant=courseVariant||"ug";personalisationData.surrey.course.nid=cookieNid;await personalisationData.courseCard();const tasks=[];tasks.push(personalisationData.editorialCard());tasks.push(personalisationData.statCard());tasks.push(personalisationData.campaignCard());tasks.push(personalisationData.genericCards());if(personalisationData.surrey.course.variant==="ug"||personalisationData.surrey.course.variant==="pgt"){tasks.push(personalisationData.scholarshipCard(personalisationData.surrey.course.variant));}else{tasks.push(personalisationData.studentshipCard());}await Promise.allSettled(tasks);personalisationData.removeAllLoaders();const content=document.getElementById("bento-content");if(content){content.hidden=false;}}catch(err){console.error("Personalisation init failed:",err);const content=document.getElementById("bento-content");if(content){content.hidden=false;}}},extractNid(raw){if(!raw)return null;try{const obj=JSON.parse(raw);const nid=Number(obj.nid);if(Number.isFinite(nid)&&nid>0)return nid;}catch(_unused2){}{const nid=/(?:^|[;&,\s{"])nid["']?\s*[:=]\s*"?(\d+)"?/i.exec(raw);if(nid)return Number(nid[1]);}return null;},getVariantFromCourseCookie(raw){if(!raw)return null;try{const obj=JSON.parse(raw);return(obj.level||obj.variant||"").toLowerCase()||null;}catch(_unused3){const m=String(raw).match(/level["']?\s*[:=]\s*["']?([a-z_-]+)/i);return m?m[1].toLowerCase():null;}},setFooterDisclaimer(text){var _personalisationData$;const disclaimer=document.getElementById("disclaimer");const root=(personalisationData===null||personalisationData===void 0||(_personalisationData$=personalisationData.surrey)===null||_personalisationData$===void 0||(_personalisationData$=_personalisationData$.footer)===null||_personalisationData$===void 0?void 0:_personalisationData$.card)||(disclaimer===null||disclaimer===void 0?void 0:disclaimer.parentElement);if(!disclaimer){return;}if(root){root.classList.add("t-relative");}const clean=String(text||"").replace(/<[^>]+>/g,"").trim();if(clean){disclaimer.textContent=clean;disclaimer.hidden=false;}},ensureContentSlot(root){if(!root)return null;let slot=root.querySelector("[data-content-slot]");if(!slot){slot=document.createElement("div");slot.setAttribute("data-content-slot","");slot.classList.add("t-h-full");while(root.firstChild)slot.appendChild(root.firstChild);root.appendChild(slot);}return slot;},removeAllLoaders(){var _personalisationData$2;const wrap=document.getElementById("bento-wrapper");const parentNode=document.querySelectorAll(".grid-areas-layout")[0];const copy=(personalisationData===null||personalisationData===void 0||(_personalisationData$2=personalisationData.surrey)===null||_personalisationData$2===void 0||(_personalisationData$2=_personalisationData$2.heading)===null||_personalisationData$2===void 0?void 0:_personalisationData$2.copy)||"Welcome back";if(wrap){wrap.setAttribute("data-loading","false");}if(parentNode){parentNode.setAttribute("data-loading","false");parentNode.setAttribute("aria-busy","false");}personalisationData.setHeading(copy);},getCookie(name){const m=document.cookie.match(new RegExp("(?:^|; )"+name.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")+"=([^;]*)"));return m?decodeURIComponent(m[1]):null;},getCountryCode(){const raw=personalisationData.getCookie("u_country");if(!raw)return null;try{const parsed=JSON.parse(raw);if(typeof parsed==="string"){return parsed.trim().toUpperCase();}if(parsed&&typeof parsed.code==="string"){return parsed.code.trim().toUpperCase();}}catch(_unused4){}return String(raw).replace(/["']/g,"").trim().toUpperCase();},getQualTitleMap(){const siteMap=window.drupalSettings&&drupalSettings.qualTitleMap||null;return siteMap;},qualKeysToLabels(value){let dict=arguments.length>1&&arguments[1]!==undefined?arguments[1]:personalisationData.getQualTitleMap()||{};const arr=Array.isArray(value)?value:value==null?[]:[value];return arr.map(k=>{var _dict$String;return(_dict$String=dict[String(k)])!==null&&_dict$String!==void 0?_dict$String:String(k)});},getData(url){if(personalisationData.cache[url]){return personalisationData.cache[url];}const p=fetch(url,{credentials:"same-origin",headers:{Accept:"application/vnd.api+json"}}).then(res=>{if(!res.ok){throw new Error(`Fetch failed ${res.status} for ${url}`);}return res.json();}).catch(err=>{delete personalisationData.cache[url];throw err;});personalisationData.cache[url]=p;return p;},buildIncludedIndex(doc){const included=(doc===null||doc===void 0?void 0:doc.included)||[];return new Map(included.map(n=>[`${n.type}:${n.id}`,n]));},getImageFromRelation(doc,item,relName){var _item$relationships;let preferredStyleKeys=arguments.length>3&&arguments[3]!==undefined?arguments[3]:["focal_point_500x500"];const incById=personalisationData.buildIncludedIndex(doc);let src=null,alt="",width=null,height=null;const mediaRel=item===null||item===void 0||(_item$relationships=item.relationships)===null||_item$relationships===void 0||(_item$relationships=_item$relationships[relName])===null||_item$relationships===void 0?void 0:_item$relationships.data;if(mediaRel){var _media$relationships,_item$attributes;const media=incById.get(`${mediaRel.type}:${mediaRel.id}`);const imgRel=media===null||media===void 0||(_media$relationships=media.relationships)===null||_media$relationships===void 0||(_media$relationships=_media$relationships.field_media_image)===null||_media$relationships===void 0?void 0:_media$relationships.data;const meta=(imgRel===null||imgRel===void 0?void 0:imgRel.meta)||{};alt=meta.alt||meta.title||(item===null||item===void 0||(_item$attributes=item.attributes)===null||_item$attributes===void 0?void 0:_item$attributes.title)||"";if(imgRel){var _file$attributes;const file=incById.get(`${imgRel.type}:${imgRel.id}`);const styleUris=(file===null||file===void 0||(_file$attributes=file.attributes)===null||_file$attributes===void 0?void 0:_file$attributes.image_style_uri)||{};for(const key of preferredStyleKeys){if(styleUris[key]){src=styleUris[key];break;}}if(!src){var _file$attributes2;src=Object.values(styleUris)[0]||(file===null||file===void 0||(_file$attributes2=file.attributes)===null||_file$attributes2===void 0||(_file$attributes2=_file$attributes2.uri)===null||_file$attributes2===void 0?void 0:_file$attributes2.url)||null;}width=meta.width||null;height=meta.height||null;}}return{src,alt,width,height};},getGenericImageFromMedia(doc,media){var _media$relationships2;let preferredStyleKeys=arguments.length>2&&arguments[2]!==undefined?arguments[2]:["focal_point_500x500"];const incById=personalisationData.buildIncludedIndex(doc);const imgRel=media===null||media===void 0||(_media$relationships2=media.relationships)===null||_media$relationships2===void 0||(_media$relationships2=_media$relationships2.field_generic_bundle_image)===null||_media$relationships2===void 0?void 0:_media$relationships2.data;const meta=(imgRel===null||imgRel===void 0?void 0:imgRel.meta)||{};let src=null,alt=meta.alt||meta.title||"";let width=meta.width||null,height=meta.height||null;if(imgRel){var _file$attributes3;const file=incById.get(`${imgRel.type}:${imgRel.id}`);const styleUris=(file===null||file===void 0||(_file$attributes3=file.attributes)===null||_file$attributes3===void 0?void 0:_file$attributes3.image_style_uri)||{};for(const key of preferredStyleKeys){if(styleUris[key]){src=styleUris[key];break;}}if(!src){var _file$attributes4;src=Object.values(styleUris)[0]||(file===null||file===void 0||(_file$attributes4=file.attributes)===null||_file$attributes4===void 0||(_file$attributes4=_file$attributes4.uri)===null||_file$attributes4===void 0?void 0:_file$attributes4.url)||null;}}return{src,alt,width,height};},mapStudentProfiles(doc,courseItem){var _courseItem$relations;const incById=personalisationData.buildIncludedIndex(doc);const rels=(courseItem===null||courseItem===void 0||(_courseItem$relations=courseItem.relationships)===null||_courseItem$relations===void 0||(_courseItem$relations=_courseItem$relations.field_student_profile)===null||_courseItem$relations===void 0?void 0:_courseItem$relations.data)||[];const profiles=[];for(const rel of rels){var _attributes$path,_attributes$path2,_node$relationships,_attributes$field_qua;const node=incById.get(`${rel.type}:${rel.id}`);if(!node){continue;}const attributes=node.attributes||{};const url=(attributes===null||attributes===void 0||(_attributes$path=attributes.path)===null||_attributes$path===void 0?void 0:_attributes$path.alias)||(attributes===null||attributes===void 0||(_attributes$path2=attributes.path)===null||_attributes$path2===void 0?void 0:_attributes$path2.url)||null;let image=null;let imageFallback=null;const mediaRel=node===null||node===void 0||(_node$relationships=node.relationships)===null||_node$relationships===void 0||(_node$relationships=_node$relationships.field_staff_profile_image)===null||_node$relationships===void 0?void 0:_node$relationships.data;if(mediaRel){const media=incById.get(`${mediaRel.type}:${mediaRel.id}`);if(media){image=personalisationData.getGenericImageFromMedia(doc,media,["focal_point_500x500_webp"]);imageFallback=personalisationData.getGenericImageFromMedia(doc,media,["focal_point_500x500"]);}}const rawQual=(_attributes$field_qua=attributes===null||attributes===void 0?void 0:attributes.field_qualification_title)!==null&&_attributes$field_qua!==void 0?_attributes$field_qua:null;
1const qualLabels=personalisationData.qualKeysToLabels(rawQual);profiles.push({id:node.id,title:(attributes===null||attributes===void 0?void 0:attributes.title)||"",url,synopsis:(attributes===null||attributes===void 0?void 0:attributes.field_synopsis)||"",typeOfStudent:(attributes===null||attributes===void 0?void 0:attributes.field_type_of_student)||null,qualificationKeys:rawQual,qualificationTitles:qualLabels,image,imageFallback});}return profiles;},fetchText(url){return fetch(url,{headers:{Accept:"image/svg+xml"}}).then(r=>{if(!r.ok){throw new Error(`HTTP ${r.status}`);}return r.text();});},getCourseAwardText(item,variant,doc){const toArr=v=>Array.isArray(v)?v:v==null?[]:[v];const prim=v=>v&&typeof v==="object"&&"value"in v?v.value:v;const dict=personalisationData.getQualTitleMap()||{};const toLabel=v=>{var _dict$String2;return(_dict$String2=dict[String(v)])!==null&&_dict$String2!==void 0?_dict$String2:String(v||"")};let values=[];if(variant==="ug"){var _item$relationships2;const inc=personalisationData.buildIncludedIndex(doc);const rels=toArr(item===null||item===void 0||(_item$relationships2=item.relationships)===null||_item$relationships2===void 0||(_item$relationships2=_item$relationships2.field_course_options)===null||_item$relationships2===void 0?void 0:_item$relationships2.data);for(const rel of rels){var _inc$get;const raw=(_inc$get=inc.get(`${rel.type}:${rel.id}`))===null||_inc$get===void 0||(_inc$get=_inc$get.attributes)===null||_inc$get===void 0?void 0:_inc$get.field_award;values.push(...toArr(raw).map(prim));}}else{var _item$attributes2;values.push(...toArr(item===null||item===void 0||(_item$attributes2=item.attributes)===null||_item$attributes2===void 0?void 0:_item$attributes2.field_award).map(prim));}const labels=values.map(toLabel).filter(Boolean);return Array.from(new Set(labels)).join(" / ");},buildCourseUrlForBundle(_ref4){let bundle=_ref4.bundle,nid=_ref4.nid;const b=String(bundle||"").toLowerCase();const nodeFields=["title","path","field_media_banner","field_student_profile","field_subjects","status"];const includes=["field_media_banner.field_media_image","field_student_profile","field_student_profile.field_staff_profile_image.field_generic_bundle_image"];nodeFields.push("field_article_link");includes.push("field_article_link");nodeFields.push("field_scholarship_url");nodeFields.push("field_studentship_url");if(/^ug[_-]/.test(b)||b==="ug_course"){nodeFields.push("field_course_options");includes.push("field_course_options");}else if(/^(pgt|pgr)[_-]/.test(b)||b==="pgt_course"||b==="pgr_course"){nodeFields.push("field_award");}const params=new URLSearchParams({"filter[nid]":String(nid),[`fields[node--${bundle}]`]:nodeFields.join(","),include:includes.join(","),"fields[media--image]":"field_media_image","fields[file--file]":"image_style_uri","fields[node--student_graduate_profile]":"title,path,field_synopsis,field_type_of_student,field_staff_profile_image,field_qualification_title","fields[media--generic_image]":"field_generic_bundle_image"});params.set("fields[paragraph--course_options]","field_award");return`${location.origin}/jsonapi/node/${bundle}?${params.toString()}`;},async fetchCourseDocByVariant(nid,variant){const bundleByVariant={ug:"ug_course",pgt:"pgt_course",pgr:"pgr_course"};const bundle=bundleByVariant[variant]||"pgt_course";const url=personalisationData.buildCourseUrlForBundle({bundle,nid});const doc=await personalisationData.getData(url);return{doc,bundleFound:bundle};},buildScholarshipUrl:function buildScholarshipUrl(){var _personalisationData$3;let _ref5=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},courseId=_ref5.courseId;const today=personalisationData.getToday();const level=((_personalisationData$3=personalisationData.surrey)===null||_personalisationData$3===void 0||(_personalisationData$3=_personalisationData$3.course)===null||_personalisationData$3===void 0?void 0:_personalisationData$3.variant)==="ug"?"ug":"pgt";const extra={"filter[closing][condition][path]":"field_project_end_date","filter[closing][condition][operator]":">=","filter[closing][condition][value]":today};if(level){extra["filter[study_level][condition][path]"]="field_study_level";extra["filter[study_level][condition][operator]"]="IN";extra["filter[study_level][condition][value]"]=level;}const country=personalisationData.getCountryCode();if(country){const isGb=country==="GB";if(isGb){extra["filter[student_type][condition][path]"]="field_student_type_updated";extra["filter[student_type][condition][operator]"]="IN";extra["filter[student_type][condition][value]"]="home";}
1else{extra["filter[student_group][group][conjunction]"]="OR";extra["filter[student_int][condition][path]"]="field_student_type_updated";extra["filter[student_int][condition][operator]"]="IN";extra["filter[student_int][condition][value]"]="international";extra["filter[student_int][condition][memberOf]"]="student_group";extra["filter[student_eu][condition][path]"]="field_student_type_updated";extra["filter[student_eu][condition][operator]"]="IN";extra["filter[student_eu][condition][value]"]="european";extra["filter[student_eu][condition][memberOf]"]="student_group";}}if(courseId){if(level==="ug"){extra["filter[course_ref][condition][path]"]="field_academic_dpt.id";}else{extra["filter[course_ref][condition][path]"]="field_scholarship.id";}extra["filter[course_ref][condition][operator]"]="IN";extra["filter[course_ref][condition][value]"]=courseId;}return buildNodeUrl("scholarship",{fields:"title,path,field_scholarship_amount,field_study_level,field_scholarship_type,field_link",sort:"-field_weight,-created",limit:1,extra},[]);},buildStudentshipUrl:function buildStudentshipUrl(){let subjectIds=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];const today=personalisationData.getToday();return buildNodeUrl("studentship",{fields:"title,path",extra:{"filter[closing][condition][path]":"field_studentship_closing_date","filter[closing][condition][operator]":">=","filter[closing][condition][value]":today}},subjectIds);},buildEditorialUrl:function buildEditorialUrl(){let subjectIds=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return buildNodeUrl("editorial_page",{fields:"title,path,field_image_teaser,field_editorial_type",include:"field_image_teaser.field_generic_bundle_image",extra:{"fields[media--generic_image]":"field_generic_bundle_image","fields[file--file]":"image_style_uri"}},subjectIds)},buildCourseBlockUrl(){var _personalisationData$4,_personalisationData$5;let variant=arguments.length>0&&arguments[0]!==undefined?arguments[0]:personalisationData===null||personalisationData===void 0||(_personalisationData$4=personalisationData.surrey)===null||_personalisationData$4===void 0||(_personalisationData$4=_personalisationData$4.course)===null||_personalisationData$4===void 0?void 0:_personalisationData$4.variant;const map=(personalisationData===null||personalisationData===void 0||(_personalisationData$5=personalisationData.surrey)===null||_personalisationData$5===void 0?void 0:_personalisationData$5.courseBlockUuid)||{};const uuid=variant&&map[variant]||map.default;const params=new URLSearchParams({"fields[block_content--course_block]":"field_personalisation_stat,field_stat_disclaimer,field_svg,field_generic_blocks,field_quote,field_attribution",include:["field_svg.thumbnail","field_generic_blocks","field_generic_blocks.field_media_image","field_generic_blocks.field_media_image.field_generic_bundle_image"].join(","),"fields[media--icons]":"thumbnail","fields[file--file]":"uri,image_style_uri","fields[paragraph--card]":"paragraph_type,field_generic_text,field_item_description,field_media_image,field_link,field_text","fields[media--generic_image]":"field_generic_bundle_image"});return`${location.origin}/jsonapi/block_content/course_block/${uuid}?${params.toString()}`;},mapJsonApiScholarship(doc){var _doc$data,_attrs$path,_attrs$path2,_personalisationData$6;const item=doc===null||doc===void 0||(_doc$data=doc.data)===null||_doc$data===void 0?void 0:_doc$data[0];if(!item){return null;}const attrs=item.attributes||{};const typeVal=String(attrs.field_scholarship_type||"").trim().toLowerCase();let internalUrl=((_attrs$path=attrs.path)===null||_attrs$path===void 0?void 0:_attrs$path.alias)||((_attrs$path2=attrs.path)===null||_attrs$path2===void 0?void 0:_attrs$path2.url)||null;let finalUrl=internalUrl;const linkObj=attrs.field_link&&typeof attrs.field_link==="object"?attrs.field_link:null;if((typeVal==="external_scholarship"||typeVal==="external_bursary")&&linkObj!==null&&linkObj!==void 0&&linkObj.uri){finalUrl=linkObj.uri;}const raw=attrs.field_scholarship_amount;const amountValue=raw&&typeof raw==="object"&&"value"in raw?raw.value:raw;
1const formatAmount=v=>{if(v==null||v==="")return null;const n=Number(v);return Number.isFinite(n)?`£${n.toLocaleString("en-GB")}`:String(v);};return{title:attrs.title||"Scholarship",url:finalUrl||(((_personalisationData$6=personalisationData.surrey)===null||_personalisationData$6===void 0||(_personalisationData$6=_personalisationData$6.course)===null||_personalisationData$6===void 0?void 0:_personalisationData$6.variant)==="pgt"?"https://www.surrey.ac.uk/fees-and-funding/scholarships-and-bursaries?field_student_level_value[postgraduate]=postgraduate&field_subject_grouping_target_id_ini=All&field_site_sections_target_id=All":"https://www.surrey.ac.uk/fees-and-funding/scholarships-and-bursaries?field_student_level_value[undergraduate]=undergraduate&field_subject_grouping_target_id_ini=All&field_site_sections_target_id=All"),amount:formatAmount(amountValue)};},mapJsonApiStudentship(doc){var _doc$data2,_item$attributes3,_item$attributes4,_item$attributes5;const item=doc===null||doc===void 0||(_doc$data2=doc.data)===null||_doc$data2===void 0?void 0:_doc$data2[0];if(!item){return null;}const url=((_item$attributes3=item.attributes)===null||_item$attributes3===void 0||(_item$attributes3=_item$attributes3.path)===null||_item$attributes3===void 0?void 0:_item$attributes3.alias)||((_item$attributes4=item.attributes)===null||_item$attributes4===void 0||(_item$attributes4=_item$attributes4.path)===null||_item$attributes4===void 0?void 0:_item$attributes4.url)||null;return{title:((_item$attributes5=item.attributes)===null||_item$attributes5===void 0?void 0:_item$attributes5.title)||"Studentship",url};},mapJsonApiEditorial(doc){var _doc$data3,_item$attributes6,_item$attributes7,_item$relationships3,_item$attributes8,_item$attributes9,_item$attributes0;const item=doc===null||doc===void 0||(_doc$data3=doc.data)===null||_doc$data3===void 0?void 0:_doc$data3[0];if(!item){return null;}const url=((_item$attributes6=item.attributes)===null||_item$attributes6===void 0||(_item$attributes6=_item$attributes6.path)===null||_item$attributes6===void 0?void 0:_item$attributes6.alias)||((_item$attributes7=item.attributes)===null||_item$attributes7===void 0||(_item$attributes7=_item$attributes7.path)===null||_item$attributes7===void 0?void 0:_item$attributes7.url)||null;const incById=personalisationData.buildIncludedIndex(doc);const mediaRel=item===null||item===void 0||(_item$relationships3=item.relationships)===null||_item$relationships3===void 0||(_item$relationships3=_item$relationships3.field_image_teaser)===null||_item$relationships3===void 0?void 0:_item$relationships3.data;let img={};let imgFallback={};if(mediaRel){const media=incById.get(`${mediaRel.type}:${mediaRel.id}`);if(media){img=personalisationData.getGenericImageFromMedia(doc,media,["focal_point_640x360_webp"]);imgFallback=personalisationData.getGenericImageFromMedia(doc,media,["focal_point_640x360"]);}}const type=Array.isArray((_item$attributes8=item.attributes)===null||_item$attributes8===void 0?void 0:_item$attributes8.field_editorial_type)?item.attributes.field_editorial_type[0]:(_item$attributes9=item.attributes)===null||_item$attributes9===void 0?void 0:_item$attributes9.field_editorial_type;return{title:((_item$attributes0=item.attributes)===null||_item$attributes0===void 0?void 0:_item$attributes0.title)||"Editorial",url,imgSrc:img.src||null,imgFallbackSrc:imgFallback.src||null,imgAlt:img.alt||"Editorial image",imgWidth:640,imgHeight:360,editorialType:type};},mapJsonApiCourseBlock(doc){var _item$attributes$fiel,_item$attributes1,_item$attributes$fiel2,_item$attributes10,_item$attributes11,_item$attributes12,_item$relationships4,_media$relationships3,_media$relationships4,_file$attributes5,_file$attributes6;const item=doc===null||doc===void 0?void 0:doc.data;if(!item){return null;}const stat=String((_item$attributes$fiel=(_item$attributes1=item.attributes)===null||_item$attributes1===void 0?void 0:_item$attributes1.field_personalisation_stat)!==null&&_item$attributes$fiel!==void 0?_item$attributes$fiel:"").trim();const disclaimer=String((_item$attributes$fiel2=(_item$attributes10=item.attributes)===null||_item$attributes10===void 0?void 0:_item$attributes10.field_stat_disclaimer)!==null&&_item$attributes$fiel2!==void 0?_item$attributes$fiel2:"").trim();const toText=v=>{if(!v)return"";if(typeof v==="object")return(v.processed||v.value||"").toString();return String(v);};const quote=toText((_item$attributes11=item.attributes)===null||_item$attributes11===void 0?void 0:_item$attributes11.field_quote).trim();const attribution=toText((_item$attributes12=item.attributes)===null||_item$attributes12===void 0?void 0:_item$attributes12.field_attribution).trim();const inc=personalisationData.buildIncludedIndex(doc);const mediaRel=item===null||item===void 0||(_item$relationships4=item.relationships)===null||_item$relationships4===void 0||(_item$relationships4=_item$relationships4.field_svg)===null||_item$relationships4===void 0?void 0:_item$relationships4.data;const media=mediaRel?inc.get(`${mediaRel.type}:${mediaRel.id}`):null;const alt=(media===null||media===void 0||(_media$relationships3=media.relationships)===null||_media$relationships3===void 0||(_media$relationships3=_media$relationships3.thumbnail)===null||_media$relationships3===void 0||(_media$relationships3=_media$relationships3.data)===null||_media$relationships3===void 0||(_media$relationships3=_media$relationships3.meta)===null||_media$relationships3===void 0?void 0:_media$relationships3.alt)||"Decorative image";const fileRel=media===null||media===void 0||(_media$relationships4=media.relationships)===null||_media$relationships4===void 0||(_media$relationships4=_media$relationships4.thumbnail)===null||_media$relationships4===void 0?void 0:_media$relationships4.data;const file=fileRel?inc.get(`${fileRel.type}:${fileRel.id}`):null;const fileUrl=(file===null||file===void 0||(_file$attributes5=file.attributes)===null||_file$attributes5===void 0||(_file$attributes5=_file$attributes5.uri)===null||_file$attributes5===void 0?void 0:_file$attributes5.url)||null;let fileMime=(file===null||file===void 0||(_file$attributes6=file.attributes)===null||_file$attributes6===void 0?void 0:_file$attributes6.filemime)||null;if(!fileMime&&typeof fileUrl==="string"&&/\.svg(\?|#|$)/i.test(fileUrl)){fileMime="image/svg+xml";}return{stat,disclaimer,fileUrl,fileMime,quote,attribution,alt};},mapGenericCardsFromCourseBlock(doc){var _block$relationships;const block=doc===null||doc===void 0?void 0:doc.data;if(!block){return[];}const inc=personalisationData.buildIncludedIndex(doc);const cards=(block===null||block===void 0||(_block$relationships=block.relationships)===null||_block$relationships===void 0||(_block$relationships=_block$relationships.field_generic_blocks)===null||_block$relationships===void 0?void 0:_block$relationships.data)||[];const data=[];for(const card of cards){var _para$relationships;const para=inc.get(`${card.type}:${card.id}`);if(!para){continue;}const anchor=para.attributes||{};const link=anchor.field_link&&typeof anchor.field_link==="object"?anchor.field_link:null;let img={};let imgFallback={};const mediaRel=para===null||para===void 0||(_para$relationships=para.relationships)===null||_para$relationships===void 0||(_para$relationships=_para$relationships.field_media_image)===null||_para$relationships===void 0?void 0:_para$relationships.data;if(mediaRel){const media=inc.get(`${mediaRel.type}:${mediaRel.id}`);if(media){img=personalisationData.getGenericImageFromMedia(doc,media,["focal_point_640x360_webp"]);imgFallback=personalisationData.getGenericImageFromMedia(doc,media,["focal_point_640x360"]);}}data.push({title:(anchor.field_generic_text||anchor.field_text||"").toString(),description:(anchor.field_item_description.value||"").toString(),url:(link===null||link===void 0?void 0:link.uri)||(link===null||link===void 0?void 0:link.url)||null,imgSrc:img.src||null,imgFallbackSrc:imgFallback.src||null,imgAlt:img.alt||anchor.field_generic_text||anchor.field_text||"Image",imgWidth:640,imgHeight:360});}return data;},fetchNodeFromParagraphLink:async function fetchNodeFromParagraphLink(_ref6){var _para$attributes;let paragraphHref=_ref6.paragraphHref,_ref6$linkAttr=_ref6.linkAttr,linkAttr=_ref6$linkAttr===void 0?"field_link":_ref6$linkAttr,nodeType=_ref6.nodeType,nodeFields=_ref6.nodeFields,_ref6$include=_ref6.include,include=_ref6$include===void 0?"":_ref6$include,_ref6$relationshipCan=_ref6.relationshipCandidates,relationshipCandidates=_ref6$relationshipCan===void 0?[]:_ref6$relationshipCan;if(!paragraphHref||!nodeType||!nodeFields)return null;const paraDoc=await personalisationData.getData(paragraphHref);const para=paraDoc===null||paraDoc===void 0?void 0:paraDoc.data;if(!para)return null;const link=para===null||para===void 0||(_para$attributes=para.attributes)===null||_para$attributes===void 0?void 0:_para$attributes[linkAttr];const uri=(link===null||link===void 0?void 0:link.uri)||(link===null||link===void 0?void 0:link.url)||"";const m=/^entity:node\/(\d+)$/.exec(uri);if(m){const u=new URL(`${location.origin}/jsonapi/node/${nodeType}`);u.searchParams.set("filter[nid]",String(m[1]));u.searchParams.set("page[limit]","1");
1u.searchParams.set(`fields[node--${nodeType}]`,nodeFields);if(include){u.searchParams.set("include",include);u.searchParams.set("fields[media--generic_image]","field_generic_bundle_image");u.searchParams.set("fields[file--file]","image_style_uri");}const nodeDoc=await personalisationData.getData(u.toString());nodeDoc._overrideTitle=((link===null||link===void 0?void 0:link.title)||"").trim();return nodeDoc;}for(const key of relationshipCandidates){var _para$relationships2;const nodeHref=para===null||para===void 0||(_para$relationships2=para.relationships)===null||_para$relationships2===void 0||(_para$relationships2=_para$relationships2[key])===null||_para$relationships2===void 0||(_para$relationships2=_para$relationships2.links)===null||_para$relationships2===void 0||(_para$relationships2=_para$relationships2.related)===null||_para$relationships2===void 0?void 0:_para$relationships2.href;if(!nodeHref){continue;}const u=new URL(nodeHref);u.searchParams.set(`fields[node--${nodeType}]`,nodeFields);if(include){u.searchParams.set("include",include);u.searchParams.set("fields[media--generic_image]","field_generic_bundle_image");u.searchParams.set("fields[file--file]","image_style_uri");}const nodeDoc=await personalisationData.getData(u.toString());nodeDoc._overrideTitle="";return nodeDoc;}return null;},aliasCache:new Map,async getAliasForSystemPath(systemPath){var _doc$data4,_item$attributes13;if(this.aliasCache.has(systemPath))return this.aliasCache.get(systemPath);
1const urlObject=new URL(`${location.origin}/jsonapi/path_alias/path_alias`);urlObject.searchParams.set("fields[path_alias--path_alias]","alias,path");urlObject.searchParams.set("filter[path]",systemPath);urlObject.searchParams.set("page[limit]","1");const doc=await this.getData(urlObject.toString());const item=doc===null||doc===void 0||(_doc$data4=doc.data)===null||_doc$data4===void 0?void 0:_doc$data4[0];const alias=(item===null||item===void 0||(_item$attributes13=item.attributes)===null||_item$attributes13===void 0?void 0:_item$attributes13.alias)||systemPath;this.aliasCache.set(systemPath,alias);return alias;},async resolveLinkUrl(raw){if(!raw)return null;if(/^(https?:)?\/\//i.test(raw)||/^mailto:|^tel:/i.test(raw))return raw;if(/^internal:/i.test(raw))return raw.replace(/^internal:/i,"");const nodeIdMatch=/^entity:node\/(\d+)$/.exec(raw);if(nodeIdMatch){const systemPath=`/node/${nodeIdMatch[1]}`;try{return await this.getAliasForSystemPath(systemPath);}catch(_unused5){return systemPath;}}return raw;},getToday(){const now=new Date;const yyyy=now.getFullYear();const mm=String(now.getMonth()+1).padStart(2,"0");const dd=String(now.getDate()).padStart(2,"0");return`${yyyy}-${mm}-${dd}`;},setHeading(text){const wrap=personalisationData.surrey.heading.wrap;const el=personalisationData.surrey.heading.text;if(el)el.textContent=String(text||"").trim();if(wrap){wrap.setAttribute("data-loading","false");}},courseCard:()=>{const root=personalisationData.surrey.course.card;const template=personalisationData.surrey.course.template;if(!root||!template){return Promise.resolve();}if(root.dataset.hydrated==="true"||root.dataset.hydrating==="true"){return Promise.resolve();}root.dataset.hydrating="true";const slot=personalisationData.ensureContentSlot(root);const nid=personalisationData.surrey.course.nid;const variant=personalisationData.surrey.course.variant||"ug";if(!Number.isFinite(nid)||nid<=0){const content=document.getElementById("bento-content");if(content)content.hidden=false;delete root.dataset.hydrating;return Promise.resolve();}return personalisationData.fetchCourseDocByVariant(nid,variant).then(_ref7=>{var _doc$data5,_data$attributes,_doc$data7,_item$relationships5,_item$relationships6,_item$attributes17,_item$attributes18;let doc=_ref7.doc;const data=doc===null||doc===void 0||(_doc$data5=doc.data)===null||_doc$data5===void 0?void 0:_doc$data5[0];const status=data===null||data===void 0||(_data$attributes=data.attributes)===null||_data$attributes===void 0?void 0:_data$attributes.status;const isPublished=status===true;if(!isPublished){const wrap=document.getElementById("bento-wrapper");if(wrap)wrap.hidden=true;slot.innerHTML="";delete root.dataset.hydrating;root.dataset.hydrated="true";return;}const map=typeof mapJsonApiCourse==="function"?mapJsonApiCourse:doc=>{var _doc$data6,_item$attributes14,_item$attributes15,_item$attributes16;const item=doc===null||doc===void 0||(_doc$data6=doc.data)===null||_doc$data6===void 0?void 0:_doc$data6[0];if(!item){return{};}const img=personalisationData.getImageFromRelation(doc,item,"field_media_banner",["focal_point_640x360_webp"]);const imgFallback=personalisationData.getImageFromRelation(doc,item,"field_media_banner",["focal_point_640x360"]);return{title:((_item$attributes14=item.attributes)===null||_item$attributes14===void 0?void 0:_item$attributes14.title)||"",courseUrl:((_item$attributes15=item.attributes)===null||_item$attributes15===void 0||(_item$attributes15=_item$attributes15.path)===null||_item$attributes15===void 0?void 0:_item$attributes15.alias)||((_item$attributes16=item.attributes)===null||_item$attributes16===void 0||(_item$attributes16=_item$attributes16.path)===null||_item$attributes16===void 0?void 0:_item$attributes16.url)||null,imageSrc:img.src,imageFallbackSrc:imgFallback.src,imageAlt:img.alt,imageWidth:640,imageHeight:360,allCoursesUrl:"/postgraduate",badge:"Previously viewed"};};const course=map(doc);const item=doc===null||doc===void 0||(_doc$data7=doc.data)===null||_doc$data7===void 0?void 0:_doc$data7[0];personalisationData.surrey.course.id=(item===null||item===void 0?void 0:item.id)||null;const subjectIds=(item===null||item===void 0||(_item$relationships5=item.relationships)===null||_item$relationships5===void 0||(_item$relationships5=_item$relationships5.field_subjects)===null||_item$relationships5===void 0||(_item$relationships5=_item$relationships5.data)===null||_item$relationships5===void 0?void 0:_item$relationships5.map(rel=>rel.id))||[];personalisationData.surrey.studentship.subjectIds=subjectIds;personalisationData.surrey.editorial.subjectIds=subjectIds;personalisationData.surrey.editorial.overrideHref=(item===null||item===void 0||(_item$relationships6=item.relationships)===null||_item$relationships6===void 0||(_item$relationships6=_item$relationships6.field_article_link)===null||_item$relationships6===void 0||(_item$relationships6=_item$relationships6.links)===null||_item$relationships6===void 0||(_item$relationships6=_item$relationships6.related)===null||_item$relationships6===void 0?void 0:_item$relationships6.href)||null;const schLink=(item===null||item===void 0||(_item$attributes17=item.attributes)===null||_item$attributes17===void 0?void 0:_item$attributes17.field_scholarship_url)||{};personalisationData.surrey.scholarship.overrideUri=(schLink===null||schLink===void 0?void 0:schLink.uri)||(schLink===null||schLink===void 0?void 0:schLink.url)||null;personalisationData.surrey.scholarship.overrideTitle=((schLink===null||schLink===void 0?void 0:schLink.title)||"").trim();const stuLink=(item===null||item===void 0||(_item$attributes18=item.attributes)===null||_item$attributes18===void 0?void 0:_item$attributes18.f
1ield_studentship_url)||{};personalisationData.surrey.studentship.overrideUri=(stuLink===null||stuLink===void 0?void 0:stuLink.uri)||(stuLink===null||stuLink===void 0?void 0:stuLink.url)||null;personalisationData.surrey.studentship.overrideTitle=((stuLink===null||stuLink===void 0?void 0:stuLink.title)||"").trim();const studentProfiles=personalisationData.mapStudentProfiles(doc,item);course.studentProfiles=studentProfiles[0];personalisationData.quoteCard(course.studentProfiles,variant);root.setAttribute("data-course-variant",variant);const qualText=personalisationData.getCourseAwardText(item,variant,doc);course.titleWithAward=qualText?`${course.title} ${qualText}`:course.title;const courseNode=template.content.cloneNode(true);const webpSrc=courseNode.querySelector(".js-course-img-webp");const fallbackSrc=courseNode.querySelector(".js-course-img-fallback");const img=courseNode.querySelector(".js-course-img");const title=courseNode.querySelector(".js-course-title");const badge=courseNode.querySelector(".js-course-label");const applyLink=courseNode.querySelector(".js-apply-link");const hasOffer=personalisationData.surrey.course.usedCrmCookie;const studyLevel=personalisationData.surrey.course.variant;let textSpan=null;personalisationData.surrey.heading.copy=hasOffer?"Continue exploring Surrey":"Welcome back";if(title)title.textContent=course.titleWithAward||course.title||"";if(badge){badge.textContent=hasOffer?"Your course":"Previously viewed";}if(course.imageSrc){if(webpSrc){webpSrc.setAttribute("srcset",course.imageSrc);webpSrc.setAttribute("type","image/webp");}if(fallbackSrc){const fallback=course.imageFallbackSrc||course.imageSrc;fallbackSrc.setAttribute("srcset",fallback);}if(img&&course.imageSrc){img.src=course.imageSrc;img.alt=course.imageAlt||course.title||"Course image";if(course.imageWidth)img.width=course.imageWidth;if(course.imageHeight)img.height=course.imageHeight;}}if(course.courseUrl){courseNode.querySelectorAll(".js-course-link").forEach(el=>{el.href=course.courseUrl;});(context||document).querySelectorAll(".js-course-link").forEach(el=>{el.href=course.courseUrl;});}if(applyLink){textSpan=applyLink.querySelector(".js-apply-text");if(!textSpan){textSpan=document.createElement("span");textSpan.className="js-apply-text";applyLink.prepend(textSpan);}}if(applyLink&&textSpan){if(hasOffer){const year=personalisationData.getToday().slice(0,4);const nextYear=String(Number(year)+1);switch(studyLevel){case"ug":applyLink.href=`/offer-holders-${nextYear}-entry`;textSpan.textContent=`Visit our offer holder site`;break;case"pgt":applyLink.href=`https://101040engagecms.campusnexus.cloud/portal/user-profile/login`;textSpan.textContent=`Review your application`;break;default:textSpan.textContent=`/offer-holders-${nextYear}-entry`;applyLink.href=`${course.courseUrl}#apply`;break;}}else{applyLink.href=`${course.courseUrl}#apply`;textSpan.textContent="Apply now";}}slot.innerHTML="";slot.appendChild(courseNode);root.dataset.hydrated="true";}).catch(err=>{console.error("Failed to load course data:",err);const content=document.getElementById("bento-content");if(content){content.hidden=false;}delete root.dataset.hydrated;}).finally(()=>{delete root.dataset.hydrating;});},quoteCard:async(profile,variantOverride)=>{const root=personalisationData.surrey.quote.card;const template=personalisationData.surrey.quote.template;if(!root||root.dataset.hydrated)return Promise.resolve();if(!template)return Promise.resolve();const slot=personalisationData.ensureContentSlot(root);const quoteNode=template.content.cloneNode(true);const quoteEl=quoteNode.querySelector(".js-quote-text");const nameEl=quoteNode.querySelector(".js-quote-name");const linkEl=quoteNode.querySelector(".js-quote-link");const imgEl=quoteNode.querySelector(".js-quote-img");const webpSrc=quoteNode.querySelector(".js-quote-img-webp");const fallbackSrc=quoteNode.querySelector(".js-quote-img-fallback");const textCol=quoteEl?quoteEl.closest("div"):null;const imgCol=imgEl?imgEl.closest("div"):null;const makeTextFullWidth=()=>{var _textCol$classList,_textCol$classList2;imgCol===null||imgCol===void 0||imgCol.remove();textCol===null||textCol===void 0||(_textCol$classList=textCol.classList)===null||_textCol$classList===void 0||_textCol$classList.remove("md:t-basis-3/5","lg:t-basis-2/3");textCol===null||textCol===void 0||(_textCol$classList2=textCol.classList)===null||_textCol$classList2===void 0||_textCol$classList2.add("t-basis-full","md:t-basis-full","lg:t-basis-full");};let quote="My first impression of Surrey was that it's a University that wants to help you succeed.";let name="Hear from our students";let showLink=true;let linkHref="https://www.surrey.ac.uk/student-life/what-our-students-say";let linkAria="Student profile";let hasImg=false;let img={src:"",fallback:"",alt:"Student image"};if(profile){var _profile$synopsis,_profile$image;const rawSynopsis=typeof profile.synopsis==="object"?(_profile$synopsis=profile.synopsis)===null||_profile$synopsis===void 0?void 0:_profile$synopsis.processed:profile.synopsis;const profileQuote=String(rawSynopsis||"").replace(/<[^>]+>/g,"").replace(/&nbsp;/g," ").trim();if(profileQuote){quote=profileQuote;}const qualText=Array.isArray(profile.qualificationTitles)?profile.qualificationTitles.filter(
1Boolean).join(", "):profile.qualificationTitles||"";const parts=[profile.title,profile.typeOfStudent,String(qualText||"").trim()].map(v=>String(v||"").trim()).filter(Boolean);if(parts.length){name=parts.join(" - ");}if(profile.url){linkHref=profile.url;}if(profile.title){linkAria=profile.title;}hasImg=Boolean(profile===null||profile===void 0||(_profile$image=profile.image)===null||_profile$image===void 0?void 0:_profile$image.src);if(hasImg){var _profile$imageFallbac;img.src=profile.image.src;img.fallback=((_profile$imageFallbac=profile.imageFallback)===null||_profile$imageFallbac===void 0?void 0:_profile$imageFallbac.src)||"";img.alt=profile.image.alt||profile.title||img.alt;}if(nameEl){nameEl.classList.add("t-capitalize");nameEl.textContent=name;}}else{try{var _personalisationData$7;const blockUrl=personalisationData.buildCourseBlockUrl(variantOverride||(personalisationData===null||personalisationData===void 0||(_personalisationData$7=personalisationData.surrey)===null||_personalisationData$7===void 0||(_personalisationData$7=_personalisationData$7.course)===null||_personalisationData$7===void 0?void 0:_personalisationData$7.variant));const blockDoc=await personalisationData.getData(blockUrl);const blockData=personalisationData.mapJsonApiCourseBlock(blockDoc);const blockQuote=String((blockData===null||blockData===void 0?void 0:blockData.quote)||"").trim();const blockAttr=String((blockData===null||blockData===void 0?void 0:blockData.attribution)||"").trim();if(blockQuote||blockAttr){quote=blockQuote;name=blockAttr;showLink=false;hasImg=false;}}catch(_unused6){}}if(quoteEl){quoteEl.textContent=quote;}if(nameEl){nameEl.textContent=name;}if(linkEl){if(showLink){linkEl.hidden=false;linkEl.href=linkHref;linkEl.setAttribute("aria-label",linkAria);}else{linkEl.removeAttribute("href");linkEl.hidden=true;}}if(hasImg&&imgEl){if(webpSrc&&img.src){webpSrc.setAttribute("srcset",img.src);webpSrc.setAttribute("type","image/webp");}if(fallbackSrc&&img.fallback){fallbackSrc.setAttribute("srcset",img.fallback);}imgEl.src=img.src;imgEl.alt=img.alt;imgEl.width=500;imgEl.height=500;}else{makeTextFullWidth();}slot.innerHTML="";slot.appendChild(quoteNode);root.dataset.hydrated="true";},scholarshipCard:function scholarshipCard(){var _personalisationData$8,_personalisationData$9;let variant=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"ug";const root=personalisationData.surrey.scholarship.card;const template=personalisationData.surrey.scholarship.template;if(!root||root.dataset.hydrated)return Promise.resolve();if(!template)return Promise.resolve();const slot=personalisationData.ensureContentSlot(root);const overrideUri=(personalisationData===null||personalisationData===void 0||(_personalisationData$8=personalisationData.surrey)===null||_personalisationData$8===void 0||(_personalisationData$8=_personalisationData$8.scholarship)===null||_personalisationData$8===void 0?void 0:_personalisationData$8.overrideUri)||null;const overrideTitle=((personalisationData===null||personalisationData===void 0||(_personalisationData$9=personalisationData.surrey)===null||_personalisationData$9===void 0||(_personalisationData$9=_personalisationData$9.scholarship)===null||_personalisationData$9===void 0?void 0:_personalisationData$9.overrideTitle)||"").trim();const renderDirect=(href,title)=>{const scholarshipNode=template.content.cloneNode(true);const titleEl=scholarshipNode.querySelector(".js-scholarship-title");if(titleEl)titleEl.textContent=title||"Scholarship";const linkEl=scholarshipNode.querySelector(".js-scholarship-link");const badgeEl=scholarshipNode.querySelector(".js-scholarship-badge");if(linkEl){linkEl.href=href;linkEl.setAttribute("aria-label",title);}if(badgeEl){badgeEl.remove();}slot.innerHTML="";slot.appendChild(scholarshipNode);root.dataset.hydrated="true";};const renderFromDoc=doc=>{const scholarship=personalisationData.mapJsonApiScholarship(doc);const scholarshipNode=template.content.cloneNode(true);const titleEl=scholarshipNode.querySelector(".js-scholarship-title");const linkEl=scholarshipNode.querySelector(".js-scholarship-link");const amountEl=scholarshipNode.querySelector(".js-scholarship-amount");const badgeEl=scholarshipNode.querySelector(".js-scholarship-badge");const labelWrapper=scholarshipNode.querySelector(".js-scholarship-label-wrapper");if(scholarship){const visibleTitle=overrideTitle||scholarship.title||"Scholarship";if(titleEl)titleEl.textContent=visibleTitle;if(amountEl&&scholarship.amount){amountEl.textContent=scholarship.amount;titleEl.classList.add("t-mt-4");}else{titleEl.classList.remove("t-mt-4");badgeEl===null||badgeEl===void 0||badgeEl.remove();}if(linkEl&&scholarship.url){linkEl.href=scholarship.url;linkEl.setAttribute("aria-label",visibleTitle);}}else{if(titleEl){titleEl.textContent="See all scholarships";}if(linkEl){linkEl.href=variant==="pgt"?"https://www.surrey.ac.uk/fees-and-funding/scholarships-and-bursaries?field_student_level_value[postgraduate]=postgraduate&field_subject_grouping_target_id_ini=All&field_site_sections_target_id=All":"https://www.surrey.ac.uk/fees-and-funding/scholarships-and-bursaries?field_student_level_value[undergraduate]=undergraduate&field_subject_grouping_target_id_ini=All&field_site_sections_target_id=All";}badgeEl===null||badgeEl===void 0||badgeEl.remove();labelWrapper===null||labelWrapper===void 0||labelWrapper.remove();}slot.innerHTML="";slot.appendChild(scholarshipNode);root.dataset.hydrated="true";};const fetchByCourse=async()=>{var _personalisationData$0;const courseId=(personalisationData===null||personalisationData===void 0||(_personalisationData$0=personalisationData.surrey)===null||_personalisationData$0===void 0||(_personalisationData$0=_personalisationData$0.course)===null||_personalisationData$0===void 0?void 0:_personalisationData$0.id)||null;const url=personalisationData.buildScholarshipUrl({courseId});const doc=await personalisationData.getData(url);renderFromDoc(doc);};return(async()=>{try{if(overrideUri){const href=await personalisationData.resolveLinkUrl(overrideUri);renderDirect(href,overrideTitle);return;}await fetchByCourse();}catch(err){console.error("Failed to load scholarship:",err);delete root.dataset.hydrated;}})();},studentshipCard:()=>{var _personalisationData$1,_personalisationData$10;const root=personalisationData.surrey.studentship.card;const template=personalisationData.surrey.studentship.template;if(!root||root.dataset.hydrated)return Promise.resolve();if(!template)return Promise.resolve();const slot=personalisationData.ensureContentSlot(root);const overrideUri=(personalisationData===null||personalisationData===void 0||(_personalisationData$1=personalisationData.surrey)===null||_personalisationData$1===void 0||(_personalisationData$1=_personalisationData$1.studentship)===null||_personalisationData$1===void 0?void 0:_personalisationData$1.overrideUri)||null;const overrideTitle=((personalisationData===null||personalisationData===void 0||(_personalisationData$10=
1personalisationData.surrey)===null||_personalisationData$10===void 0||(_personalisationData$10=_personalisationData$10.studentship)===null||_personalisationData$10===void 0?void 0:_personalisationData$10.overrideTitle)||"").trim();const renderDirect=(href,visibleTitle)=>{const studentshipNode=template.content.cloneNode(true);const titleEl=studentshipNode.querySelector(".js-studentship-title");const linkEl=studentshipNode.querySelector(".js-studentship-link");const title=visibleTitle||"Studentship";if(titleEl)titleEl.textContent=title;if(linkEl){linkEl.href=href||"https://www.surrey.ac.uk/fees-and-funding/studentships";linkEl.setAttribute("aria-label",title);}slot.innerHTML="";slot.appendChild(studentshipNode);root.dataset.hydrated="true";};const renderFromDoc=doc=>{const studentship=personalisationData.mapJsonApiStudentship(doc);const studentshipNode=template.content.cloneNode(true);const titleEl=studentshipNode.querySelector(".js-studentship-title");const linkEl=studentshipNode.querySelector(".js-studentship-link");const labelWrapper=studentshipNode.querySelector(".js-studentship-label-wrapper");if(studentship){const visibleTitle=studentship.title||"Discover how to fund your PhD";if(titleEl){titleEl.textContent=visibleTitle;}if(linkEl){const href=studentship.url||"https://www.surrey.ac.uk/doctoral-college/prospective-postgraduate-researchers/fees-funding";linkEl.href=href;linkEl.setAttribute("aria-label",visibleTitle);}}else{const visibleTitle=overrideTitle;if(titleEl){titleEl.textContent=visibleTitle||"Discover how to fund your PhD";}if(linkEl){linkEl.href="https://www.surrey.ac.uk/doctoral-college/prospective-postgraduate-researchers/fees-funding";linkEl.setAttribute("aria-label",visibleTitle);}labelWrapper===null||labelWrapper===void 0||labelWrapper.remove();}slot.innerHTML="";slot.appendChild(studentshipNode);root.dataset.hydrated="true";};const fetchBySubjects=async()=>{const ids=personalisationData.surrey.studentship.subjectIds||[];const url=personalisationData.buildStudentshipUrl(ids);const doc=await personalisationData.getData(url);renderFromDoc(doc);};return(async()=>{try{if(overrideUri){const href=await personalisationData.resolveLinkUrl(overrideUri);renderDirect(href,overrideTitle);return;}await fetchBySubjects();}catch(e){console.error("Failed to load studentship:",e);delete root.dataset.hydrated;}})();},editorialCard:()=>{var _personalisationData$11;const root=personalisationData.surrey.editorial.card;const template=personalisationData.surrey.editorial.template;if(!root||root.dataset.hydrated){return Promise.resolve();}if(!template){return Promise.resolve();}const slot=personalisationData.ensureContentSlot(root);const overrideHref=(personalisationData===null||personalisationData===void 0||(_personalisationData$11=personalisationData.surrey)===null||_personalisationData$11===void 0||(_personalisationData$11=_personalisationData$11.editorial)===null||_personalisationData$11===void 0?void 0:_personalisationData$11.overrideHref)||null;const renderFromDoc=doc=>{const editorialNode=template.content.cloneNode(true);const titleEl=editorialNode.querySelector(".js-editorial-title");const linkEl=editorialNode.querySelector(".js-editorial-link");const imgEl=editorialNode.querySelector(".js-editorial-img");const webpSrc=editorialNode.querySelector(".js-editorial-img-webp");const imgFallbackSrc=editorialNode.querySelector(".js-editorial-img-fallback");const badgeEl=editorialNode.querySelector(".js-editorial-label");const editorial=personalisationData.mapJsonApiEditorial(doc);if(!editorial)throw new Error("No editorial match");const visibleTitle=((doc===null||doc===void 0?void 0:doc._overrideTitle)||"").trim()||editorial.title||"Editorial";if(titleEl){titleEl.textContent=visibleTitle;}if(!titleEl&&linkEl){linkEl.textContent=visibleTitle;}if(linkEl&&editorial.url){linkEl.href=editorial.url;linkEl.setAttribute("aria-label",visibleTitle);}if(webpSrc&&editorial.imgSrc){webpSrc.setAttribute("srcset",editorial.imgSrc);webpSrc.setAttribute("type","image/webp");}if(imgFallbackSrc&&editorial.imgFallbackSrc){imgFallbackSrc.setAttribute("srcset",editorial.imgFallbackSrc);}if(imgEl&&editorial.imgSrc){imgEl.src=editorial.imgSrc;imgEl.alt=editorial.imgAlt||visibleTitle||"Editorial image";if(editorial.imgWidth){imgEl.width=editorial.imgWidth;}if(editorial.imgHeight){imgEl.height=editorial.imgHeight;}}if(badgeEl){switch(editorial.editorialType){case"press_release":badgeEl.textContent="Press release";break;case"feature":badgeEl.textContent="Feature";break;case"news":badgeEl.textContent="News";break;case"case_study":badgeEl.textContent="Case study";break;default:badgeEl.textContent="Editorial";break;}}slot.innerHTML="";slot.appendChild(editorialNode);root.dataset.hydrated="true";};const fetchBySubjects=async()=>{const ids=personalisationData.surrey.editorial.subjectIds||[];const url=personalisationData.buildEditorialUrl(ids);const doc=await personalisationData.getData(url);if(doc)doc._overrideTitle="";renderFromDoc(doc);};return(async()=>{try{if(overrideHref){const nodeDoc=await personalisationData.fetchNodeFromParagraphLink({paragraphHref:overrideHref,linkAttr:"field_link",nodeType:"editorial_page",nodeFields:"title,path,field_image_teaser,field_editorial_type",include:"field_image_teaser.field_generic_bundle_image",relationshipCandidates:["field_editorial_page","field_article","field_node","field_news"]});if(nodeDoc){renderFromDoc(nodeDoc);return;}}await fetchBySubjects();}catch(e){console.error("Failed to load editorial:",e);delete root.dataset.hydrated;}})();},statCard:()=>{const root=personalisationData.surrey.stat.card;const template=personalisationData.surrey.stat.template;if(!root||root.dataset.hydrated){return Promise.resolve();}if(!template){return Promise.resolve();}const slot=personalisationData.ensureContentSlot(root);const url=personalisationData.buildCourseBlockUrl();return personalisationData.getData(url).then(doc=>{const data=personalisationData.mapJsonApiCourseBlock(doc);if(data&&typeof data.disclaimer==="string"&&data.disclaimer.trim().length>0){personalisationData.setFooterDisclaimer(data.disclaimer);}const text=(typeof(data===null||data===void 0?void 0:data.stat)==="string"?data.stat:"").replace(/<[^>]+>/g,"").trim();const statNode=template.content.cloneNode(true);const heading=statNode.querySelector(".js-stat-text");if(heading&&text){heading.textContent="";heading.append(document.createTextNode(text));if(data.disclaimer&&data.disclaimer.length>0){heading.textContent=text+(data.disclaimer?"*":"");}}slot.innerHTML="";slot.appendChild(statNode);root.dataset.hydrated="true";}).catch(err=>{console.error("Failed to load stat block:",err);delete root.dataset.hydrated;});},campaignCard:()=>{const root=personalisationData.surrey.campaign.card;const template=personalisationData.surrey.campaign.template;if(!root||root.dataset.hydrated){return Promise.resolve();}if(!template){return Promise.resolve();}const slot=personalisationData.ensureContentSlot(root);const url=personalisationData.buildCourseBlockUrl();return personalisationData.getData(url).then(async doc=>{const data=personalisationData.mapJsonApiCourseBlock(doc);const campaignNode=template.content.cloneNode(true);const _ref8=data||{},fileUrl=_ref8.fileUrl,fileMime=_ref8.fileMime;if(fileUrl){const placeholderSvg=campaignNode.querySelector(".js-campaign-svg");const campaignLogoContainer=campaignNode.querySelector(".area-campaign-logo");if(campaignLogoContainer){campaignLogoContainer.setAttribute("aria-label",data.alt||"University Stag logo");}const svgClasses=(placeholderSvg===null||placeholderSvg===void 0?void 0:placeholderSvg.getAttribute("class"))||"t-h-24 lg:t-h-36";placeholderSvg===null||placeholderSvg===void 0||placeholderSvg.setAttribute("class",svgClasses);if(fileMime==="image/svg+xml"){try{const svgMarkup=await personalisationData.fetchText(fileUrl);const wrap=document.createElement("div");wrap.innerHTML=svgMarkup.trim();const newSvg=wrap.querySelector("svg");if(newSvg){newSvg.setAttribute("class",svgClasses);if(placeholderSvg!==null&&placeholderSvg!==void 0&&placeholderSvg.parentNode){placeholderSvg.parentNode.replaceChild(newSvg,placeholderSvg);}else{campaignNode.appendChild(newSvg);}}}catch(e){console.error("Failed to inline campaign SVG:",e);}}}slot.innerHTML="";slot.appendChild(campaignNode);root.dataset.hydrated="true";}).catch(err=>{console.error("Failed to load campaign logo:",err);delete root.dataset.hydrated;});},renderGenericCard(root,template,data){if(!root||!template||root.dataset.hydrated){return;}const slot=personalisationData.ensureContentSlot(root);const genericCardNode=template.content.cloneNode(true);const linkEl=genericCardNode.querySelector(".js-generic-link");const imgEl=genericCardNode.querySelector(".js-generic-img");const title=genericCardNode.querySelector(".js-generic-title");const desc=genericCardNode.querySelector(".js-generic-desc");const imgContainer=genericCardNode.querySelector(".js-generic-img-container");const textContainer=genericCardNode.querySelector(".js-generic-text-container");const imgWebpSrc=genericCardNode.querySelector(".js-generic-img-webp");const imgFallbackSrc=genericCardNode.querySelector(".js-generic-img-fallback");if(title){title.textContent=data.title||"";}if(desc){desc.textContent=data.description||"";}if(linkEl&&data.url){linkEl.href=data.url;linkEl.setAttribute("aria-label",data.title||"Learn more");}if(imgWebpSrc&&data.imgSrc){imgWebpSrc.setAttribute("srcset",data.imgSrc);imgWebpSrc.setAttribute("type","image/webp");}if(imgFallbackSrc&&data.imgFallbackSrc){imgFallbackSrc.setAttribute("srcset",data.imgFallbackSrc);}if(imgEl&&data.imgSrc){imgEl.src=data.imgSrc;imgEl.alt=data.imgAlt||data.title||"";if(data.imgWidth){imgEl.width=data.imgWidth;}if(data.imgHeight){imgEl.height=data.imgHeight;}}else{if(imgEl){imgEl.remove();if(imgContainer){imgContainer.remove();}if(textContainer&&textContainer.classList){textContainer.classList.remove("sm:t-w-7/12");}}}slot.innerHTML="";slot.appendChild(genericCardNode);root.dataset.hydrated="true";},genericCards:async()=>{const cardOne=personalisationData.surrey.generic1.card;const cardTwo=personalisationData.surrey.generic2.card;const templateOne=personalisationData.surrey.generic1.template;const templateTwo=personalisationData.surrey.generic2.template;try{const url=personalisationData.buildCourseBlockUrl();const doc=await personalisationData.getData(url);const cards=personalisationData.mapGenericCardsFromCourseBlock(doc);for(const card of cards){if(card!==null&&card!==void 0&&card.url){card.url=await personalisationData.resolveLinkUrl(card.url);}}if(cards.length===0){cardOne&&cardOne.remove();cardTwo&&cardTwo.remove();return;}if(cardOne&&cards[0]){personalisationData.renderGenericCard(cardOne,templateOne,cards[0]);}if(cardTwo&&cards[1]){personalisationData.renderGenericCard(cardTwo,templateTwo,cards[1]);}}catch(e){console.error("Failed to load generic cards:",e);}}};personalisationData.init();}};})(Drupal);
2//# sourceMappingURL=personalised-data.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.