"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[515],{67585:(H,C,a)=>{a.r(C),a.d(C,{default:()=>ce});var e=a(48322),N=a(43266),M=a(52546),S=a(72347),L=a(93183),$=a(14646),x=a(95987),y=a(16731),r=a(67115);const A=r.default.div` ${({theme:{colors:t,mq:s}})=>(0,r.css)` .course-listing__main { margin-top: 4.8rem; @media ${s.large} { display: grid; grid-template-columns: 1fr 3fr; grid-gap: 4rem; } } .course-listing__results { margin-bottom: 4rem; & h2 { margin-top: 0; margin-bottom: 2rem; } .internal-courses__results { margin-bottom: 6rem; } .internal-courses__results, .online-courses__results { border: 1px solid ${t.greyLight}; } } .course-filters--desktop { display: none; @media ${s.large} { display: block; } } .course-filters--mobile { display: block; @media ${s.large} { display: none; } } `} `;var w=a(80383);const E=r.default.div` ${({theme:{colors:t,mq:s}})=>(0,r.css)` display: none; padding: 2rem; font-size: 1.4rem; font-weight: bold; color: ${t.blueAlt}; background-color: ${t.greyLight}; & > span { flex: 0 1 25%; } & > span:first-of-type { flex: 1 0 35%; } & > span:last-of-type { flex: 0 1 20%; } @media ${s.medium} { display: flex; } `} `,z=({labels:t})=>e.createElement(E,null,t?.map(s=>e.createElement("span",{key:`col-${s}`},s))),J=t=>t?.data?Object.values(t.data).map((s,c)=>({title:s?.productName??"No product name provided",path:s?.url??"No url provided",minDuration:s?.minDuration??"No min duration provided",maxDuration:s?.maxDuration??"No max duration provided",intakes:s?.intakes??"No intakes provided",level:s?.level??"No level provided",id:s?.id??`${c}`})).sort((s,c)=>s.title.charCodeAt(0)-c.title?.charCodeAt(0)):[],G=r.default.div` ${()=>(0,r.css)``} `,Q=r.default.article` ${({theme:{colors:t,mq:s}})=>(0,r.css)` padding: 2rem; @media ${s.medium} { display: flex; } :nth-of-type(even) { background-color: ${t.greyLight}; } .course-listing-card__link { margin: 0; } .course-listing-card__title { margin: 0; font-size: 1.6rem; line-height: 1.675em; } .course-listing-card__data-row { flex: 0 1 25%; display: block; margin-bottom: 2rem; &:first-of-type { flex: 1 0 35%; } &:last-of-type { flex: 0 1 20%; } &:not(:last-of-type) { padding-right: 2rem; } @media ${s.xsmall} { display: flex; } @media ${s.medium} { display: flex; flex-direction: column; margin: 0; } & span.label { display: block; margin-right: 2rem; font-size: 1.4rem; font-weight: bold; color: ${t.blueAlt}; @media ${s.xsmall} { flex: 0 0 100px; } @media ${s.medium} { display: none; visibility: hidden; } } } .course-listing-card__badge { display: inline-block; padding: 0.4rem 0.8rem; margin: 0 1.2rem 1.2rem 0; font-size: 1.4rem; font-style: italic; color: white; background-color: ${t.blueAlt}; &.clearing__badge { background-color: ${t.red}; } @media ${s.medium} { align-self: flex-start; margin: 1.2rem 0 0 0; } } `} `;var V=a(75468),W=a(68786);const I=({title:t,courseCode:s,studyModes:c,minDuration:u,maxDuration:n,intakes:g,inClearing:m,level:i,path:o,placement:d,joint:l,distance:f,mPhilOption:p})=>{const h=(0,L.A)().width>=$.C.medium;return e.createElement(Q,{className:"course-listing-card"},t&&e.createElement("div",{className:"course-listing-card__data-row"},e.createElement("span",{className:"label"},"Course name"),e.createElement(V.default,{uri:o,className:"course-listing-card__link"},e.createElement("h3",{className:"course-listing-card__title"},t)),h&&d&&d.some(b=>b.key==="0/2/24/834/838")&&e.createElement("div",{className:"course-listing-card__badge"},"Placement offered"),h&&l&&e.createElement("div",{className:"course-listing-card__badge"},"Joint honors"),h&&f&&e.createElement("div",{className:"course-listing-card__badge"},"Distance learning"),h&&p&&e.createElement("div",{className:"course-listing-card__badge"},"MPhil option available"),h&&m&&e.createElement("div",{className:"course-listing-card__badge clearing__badge"},"Available in Clearing")),(u||n)&&e.createElement("div",{className:"course-listing-card__data-row"},e.createElement("span",{className:"label"},"Duration"),"Minimum: ",u,n&&n?.length>1?`; Maximum: ${n}`:null),e.createElement("div",{className:"course-listing-card__data-row"},s&&e.createElement(e.Fragment,null,e.createElement("span",{className:"label"},"Course code"),s)),c&&e.createElement("div",{className:"course-listing-card__data-row"},e.createElement("span",{className:"label"},"Study mode"),e.createElement("span",{className:"study-mode"},c?.map((b,_,{length:F})=>e.createElement("p",{key:`mode-${_}`},b.duration," ",(0,W.zb)(b.mode),_+1!=F?", ":"")))),g&&e.createElement("div",{className:"course-listing-card__data-row"},e.createElement("span",{className:"label"},"Intakes"),g),i&&e.createElement("div",{className:"course-listing-card__data-row"},e.createElement("span",{className:"label"},"Level"),i),!h&&d&&d.some(b=>b.key==="0/2/24/834/838")&&e.createElement("div",{className:"course-listing-card__badge"},"Placement offered"),!h&&l&&e.createElement("div",{className:"course-listing-card__badge"},"Joint honors"),!h&&f&&e.createElement("div",{className:"course-listing-card__badge"},"Distance learning"),!h&&p&&e.createElement("div",{className:"course-listing-card__badge"},"MPhil option available"),!h&&m&&e.createElement("div",{className:"course-listing-card__badge clearing__badge"},"Available in Clearing"))},X={id:"",mapper:(t=[])=>t},Y=({isLoading:t,labels:s,filters:c,searchTerm:u})=>{const[n,g]=(0,e.useState)(X),{results:m}=(0,S.zK)(n);(0,e.useEffect)(()=>{g({id:"online",config:{customApi:{uri:"https://www.edology.com/api/products/?school=Brunel%20University%20London"}},mapper:J})},[]);let i=[];const o=c.courseLevel?.items?.filter(l=>l.isSelected).map(l=>l.title?.toLowerCase()),d=c.startDate?.items?.filter(l=>l.isSelected).map(l=>l.title?.toLowerCase());return u&&u!==""&&(i=m.filter(l=>l.title.toLowerCase().includes(u.toLowerCase()))),o&&o.length>0&&(i=m.filter(l=>{if(o.indexOf(l.level.toLowerCase())>=0)return l})),d&&d.length>0&&(i=m.filter(l=>{if(l?.intakes&&(l?.intakes.toLowerCase().split(",")).some(p=>p.includes(d)))return l})),!u&&(!o||o.length===0)&&(!d||d.length===0)&&(i=m),!i||i.length===0?null:e.createElement(G,null,e.createElement("h2",null,"Online courses"),t&&e.createElement(x.Rh,{container:{height:"400px",margin:"20px auto",textAlign:"center"}}),!t&&e.createElement("div",{className:"online-courses__results"},e.createElement(z,{labels:s}),i.map(l=>e.createElement(I,{...l,key:l.id}))))},Z=r.default.div` ${({theme:{colors:t,mq:s}})=>(0,r.css)` margin-bottom: 1rem; ul { display: inline; margin-left: 1rem; padding: 0; list-style-type: none; } li { display: inline; } button { border: none; background: none; cursor: pointer; color: ${t.blueAlt}; text-decoration: underline; &.active { color: black; text-decoration: none; cursor: default; } } `} `,q=({options:t,text:s="Results per page:",separator:c="|",className:u="nor__container",pageSize:n,updatePageSize:g})=>{const[m,i]=(0,e.useState)(t||[]);return(0,e.useEffect)(()=>{if(!t||!n)return;const o=[...t];t.some(l=>l.value===n)||(o.push({value:n,label:n.toString()}),o.sort((l,f)=>l.value>=f.value?1:-1)),i(o)},[t,n]),!t||!n?null:e.createElement(Z,{className:u},e.createElement("span",{className:"nor__text"},s),e.createElement("ul",{className:"nor__ul"},m.map((o,d)=>{const l=o.value===n;return e.createElement("li",{key:`nor-option-${o.label}`,className:"nor__li"},e.createElement("button",{className:`nor__button${l?" active":""}`,disabled:l,onClick:()=>g(o.value)},o.label),m[d+1]&&e.createElement("span",{className:"nor__separator"},c))})))};var ee=a(8052),te=a(56950),se=a(30685),le=a(16117),B=a(13909);const K=r.default.div` ${({theme:{colors:t}})=>(0,r.css)` .course-listing__search { margin-bottom: 2rem; font-size: 1.4rem; label { display: block; font-size: inherit; font-weight: 600; color: ${t.blueAlt}; white-space: nowrap; } input[type='search'] { padding: 1.6rem; margin-top: 1.2rem; border: 1px solid ${t.grey}; width: 100%; font-size: 1.6rem; } } .course-listing__reset { display: block; padding: 1.6rem; margin-top: 2rem; border: 0; width: 100%; text-decoration: none; text-align: center; color: ${t.white}; font-weight: 700; background: ${t.pink} url('/_MB34Eg_963c09b2-dcc8-4e24-82d3-c4614627c0eb/static-main/img/button-bg.svg') center right no-repeat; cursor: pointer; &:hover, &:focus { text-decoration: underline; } } .course-listing__search-btn { display: block; padding: 1.6rem; margin-top: 2rem; border: 0; width: 100%; text-decoration: none; text-align: center; font-weight: 700; color: ${t.white}; cursor: pointer; background: #00615e url('/_MB34Eg_963c09b2-dcc8-4e24-82d3-c4614627c0eb/static-main/img/button-bg.svg') center right no-repeat; &:hover, &:focus { text-decoration: underline; } } `} `;var k=a(10191);const ae=({clearFilters:t,handleChange:s,handleSearchReset:c,handleSubmit:u,filters:n,term:g,updateSelectedFilters:m,updateSearchTerm:i})=>e.createElement(K,{as:"aside",className:"course-filters--desktop"},e.createElement("h2",{className:"sr-only"},"Course search filters"),e.createElement("form",{className:"course-listing__search",onSubmit:u},e.createElement("label",{htmlFor:"search"},"Search"),e.createElement("input",{type:"search",id:"search",title:"search",name:"search",placeholder:"Search course by keyword(s)",onChange:s,value:g})),e.createElement(B.A,{filters:n,clearFilters:t,updateSelectedFilters:m,showReset:!1}),e.createElement(k.A,{className:"course-listing__search-btn",onClick:()=>i(g)},"Search"),e.createElement(k.A,{className:"course-listing__reset",onClick:c},"Reset")),re=({clearFilters:t,handleChange:s,handleSearchReset:c,handleSubmit:u,filters:n,term:g,updateSelectedFilters:m,updateSearchTerm:i})=>e.createElement(K,{className:"course-filters--mobile"},e.createElement("form",{className:"course-listing__search",onSubmit:u},e.createElement("label",{htmlFor:"search"},"Search"),e.createElement("input",{type:"search",id:"search",title:"search",name:"search",placeholder:"Search course by keyword(s)",onChange:s,value:g})),e.createElement(le.A,{openTitle:"Filter courses",closeTitle:"Close filter",breakpoint:$.C.large},e.createElement("h2",{className:"sr-only"},"Course search filters"),e.createElement(B.A,{filters:n,clearFilters:t,updateSelectedFilters:m,showReset:!1}),e.createElement(k.A,{className:"course-listing__reset",onClick:()=>i(g)},"Search"),e.createElement(k.A,{className:"course-listing__reset",onClick:c},"Reset"))),ne=({info:t})=>t?e.createElement(ie,null,t?.currentCount===0?e.createElement("span",null,"No courses found "):e.createElement("span",null,t.currentCount," courses found "),t?.activeTerm&&e.createElement("span",null,"for the search term ",e.createElement("strong",null,t.activeTerm)),t?.activeFilters?e.createElement("span",null,t?.activeTerm?", ":"when"," filtered by"," ",e.createElement("strong",null,t?.activeFilters)):""):null,ie=r.default.p` ${()=>(0,r.css)` margin-bottom: 2.4rem; min-height: 2.4rem; `} `,oe=ne,ce=({mappedEntry:t})=>{const{title:s,clearingTitle:c,meta:u,breadcrumbs:n,internalLabels:g,onlineLabels:m}=t||{},{clearFilters:i,filters:o,paging:d,results:l,resultsInfo:f,isLoading:p,searchTerm:h,updatePageIndex:b,updatePageSize:_,updateSelectedFilters:F,updateSearchTerm:O}=(0,S.iQ)({mappers:w.A}),[R,D]=(0,e.useState)(h||""),me=(0,N.d4)(M.DT.selectors.selectCurrentLocation),U=(0,L.A)().width>=$.C.large,de=v=>{D(v.target.value)},ue=v=>{v.preventDefault(),O(R)},ge=()=>{i(),O(""),D("")};(0,e.useEffect)(()=>{D(h||"")},[h]);const j={clearFilters:i,handleChange:de,handleSubmit:ue,handleSearchReset:ge,filters:o,term:R,updateSelectedFilters:F,updateSearchTerm:O};return e.createElement(y.A,null,e.createElement(A,null,e.createElement(se.A,{...u}),e.createElement("div",{className:"wrapper"},e.createElement(te.A,{...n}),e.createElement("h1",null,me.search.includes("clearing")?c:s),e.createElement("div",{className:"course-listing__main"},U&&e.createElement(ae,{...j}),e.createElement("section",{className:"course-listing__results"},!p&&e.createElement(oe,{info:f?.courseListingResultsText}),!U&&e.createElement(re,{...j}),e.createElement("section",{className:"internal-courses"},p&&e.createElement(x.Rh,{container:{height:"600px",margin:"20px auto",textAlign:"center"}}),!p&&l?.length>0&&e.createElement(e.Fragment,null,e.createElement("h2",{className:"sr-only"},"Course search results"),e.createElement(q,{options:[{value:10,label:"10"},{value:20,label:"20"},{value:50,label:"50"},{value:100,label:"100"},{value:1e4,label:"all"}],pageSize:d.pageSize,updatePageSize:_}),e.createElement("div",{className:"internal-courses__results"},e.createElement(z,{labels:g}),l.map(v=>e.createElement(I,{...v,key:v.id})))),e.createElement(ee.A,{paging:d,updatePageIndex:b})),e.createElement("section",{className:"online-courses"},e.createElement(Y,{labels:m,isLoading:p,filters:o,searchTerm:R})))))))}},13909:(H,C,a)=>{a.d(C,{A:()=>x});var e=a(48322),N=a(67115);const S=N.default.div` ${({theme:{mq:y,layout:r}})=>(0,N.css)` @media ${y.mlarge} { flex-basis: 25%; } h5 { margin-top: 0; } > div { padding-bottom: ${r.gutter.smedium}; } .dropdown__select { max-width: 100%; min-width: 100%; } .checkbox { padding: ${r.gutter.smedium} 0; } .search-reset { width: 100%; } `} `;var L=a(20548);const x=({title:y,filters:r,showReset:T=!0,clearFilters:A,updateSelectedFilters:w})=>r?e.createElement(S,null,Object.entries(r).length?e.createElement(e.Fragment,null,y&&e.createElement("h5",null,"Course Filter"),Object.entries(r).map(([P,E])=>E.title?e.createElement(L.A,{key:P,className:E?.items?.length===1?"checkbox":"",clearFilters:A,defaultValue:`Select ${E.title.toLowerCase()}`,filterGroupKey:P,filters:E.items,label:`Filter by ${E.title.toLowerCase()}`,multiSelect:!E.isSingleSelect,updateSelectedFilters:w}):null)):null,T&&e.createElement("button",{className:"search-reset",onClick:()=>A()},"Clear filters")):null}}]);