1"use strict";(self.webpackChunkunsw_common_ui_frontend=self.webpackChunkunsw_common_ui_frontend||[]).push([[5690],{8789:(function(R,v,d){d.d(v,{d:function(){return E},q:function(){return e}});function e(m,u,n){const{term:o,type:s}=p(m,u);window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer.push({event:"search",pageinfo:{...window.unswAepData.pageinfo},searchinfo:{searchterm:o,searchtype:s,totalresults:n},userInfo:{...window.unswAepData.userinfo}})}function E(m,u,n,o,s,t){const{term:a,type:l}=p(m,u);window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer.push({event:"searchresultclickthrough",pageinfo:{...window.unswAepData.pageinfo},searchinfo:{searchterm:a,searchtype:l,totalresults:n,searchresultclicked:o,searchresultclickedURL:s,searchresultclickedrank:t},userInfo:{...window.unswAepData.userinfo}})}function p(m,u){return{term:m==="!padrenull"||!m?"":m,type:u==="test-search"?"ndarc-resources":u}}}),5295:(function(R,v,d){d.d(v,{A:function(){return n}});var e=d(6540);class E extends e.Component{constructor(){super(...arguments),this.onChange=()=>{const{checked:s,label:t,name:a,required:l,onChangeCheckbox:r,value:c,count:h,toggleUrl:i}=this.props,g={checked:!s,label:t,name:a,required:l,value:c,count:h,toggleUrl:i};return r(g),g},this.hasFocus=()=>{this.props.hasFocus("Filter",this.props.value)}}render(){const{checked:s,label:t,name:a,required:l,tabIndex:r,value:c,count:h,showCount:i}=this.props;return e.createElement("div",{className:"form-field",onFocus:this.hasFocus},e.createElement("label",{className:"checkbox",htmlFor:a},t,i&&h>0?` (${h})`:null,e.createElement("input",{className:"checkbox",type:"checkbox",name:a,id:a,value:c,required:!!l,checked:!!s,onChange:this.onChange,tabIndex:r}),e.createElement("span",{className:"checkmark"})))}}E.defaultProps={checked:!1,hasFocus:(o,s)=>!0,label:"Label",name:"checkbox_1",onChangeCheckbox:o=>null,required:!1,value:"value",tabIndex:0,count:0,showCount:!0,toggleUrl:""};var p=E,m=d(9638);class u extends e.Component{constructor(s){super(s),this.modal=(a,l)=>{l&&l.preventDefault(),this.props.toggleModal({filter:a,sort:!1})},this.handleResize=a=>{const{hasModal:l}=this.props;window.innerWidth>768&&l.filter&&this.modal(!1)},this.hasCheckedFilters=a=>{let l=!1,r=!1,c=0,h=0;for(let i of a)++h,i.checked&&(l=!0,++c);return r=c===h,{hasChecked:l,allChecked:r}},this.clearAllFocus=()=>{this.props.hasFocus("Filters","clear")};const t=s.filters?s.filters:[];this.state={allChecked:!1,hasChecked:!1,filters:t,config:window.searchResultsConfig?{...window.searchResultsConfig}:{...m.Nf}}}componentDidMount(){window.addEventListener("resize",this.handleResize)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}render(){const{clearAllFilters:s,filters:t,hasModal:a,hasFocus:l,onChangeCheckbox:r,reorderOnSelect:c,showCount:h,tabIndex:i,title:g}=this.props,{text:w}=this.state.config,{filterLabel:b,clearFilterLabel:S}=w;if(t.length===0)return e.createElement("div",{className:"search-filter"});const{hasChecked:k,allChecked:A}=this.hasCheckedFilters(t),_=a.filter;let F=[],D=[];if(c)for(let y=0;y<t.length;y++){const x=t[y];x.checked?F.push(e.createElement(p,{...x,key:y,onChangeCheckbox:r,hasFocus:l,showCount:h,tabIndex:i})):D.push(e.createElement(p,{...x,key:y,onChangeCheckbox:r,hasFocus:l,showCount:h,tabIndex:i}))}const L=_?e.createElement("a",{href:"#close-search-sort",className:"close","aria-label":"Close",onClick:y=>this.modal(!1,y)},e.createElement("span",{className:"visuallyhidden"},"X")):null,I=k?e.createElement("div",{className:"clear",id:"clear-filters",onClick:s,tabIndex:i,onFocus:this.clearAllFocus},S):null;return e.createElement("div",{role:"group",className:`search-filter${_?" modal":""}`,"aria-labelledby":`${_?"filter-button":"search-filter-label"}`},e.createElement("button",{className:"open",onClick:()=>this.modal(!_),id:"filter-button","aria-haspopup":"dialog",type:"button"},"Filter"),e.createElement("div",{className:"inner"},e.createElement("div",{className:"title"},e.createElement("h3",{id:"search-filter-label"},b,e.createElement("span",{className:"visuallyhidden"},"with ",t.length," options"))),L,c&&k?e.createElement("div",{className:"filter current"},e.createElement("div",{className:"title"},e.createElement("h3",null,"Current filter"),I),F):null,c&&!A?e.createElement("div",{className:"filter keywords"},g!==""?e.createElement("div",{className:"title"},e.createElement("h3",null,g)):null,D):null,c?null:e.createElement("div",{className:"filter"},t.map((y,x)=>e.createElement(p,{...y,key:x,onChangeCheckbox:r,hasFocus:l,showCount:h,tabIndex:i})))))}}u.defaultProps={hasFocus:(o,s)=>!0,clearAllFilters:()=>null,onChangeCheckbox:()=>null,filters:[],hasModal:{filter:!1,sort:!1},reorderOnSelect:!0,showCount:!0,tabIndex:1,title:"Keywords",toggleModal:()=>null};var n=u}),6213:(function(R,v,d){var e=d(6540),E=d(9638);class p extends e.Component{constructor(u){super(u),this.onChange=n=>{const{value:o}=n.target;this.props.queryTerm(o)},this.submit=n=>{n.preventDefault(),this.props.submitSearch()},this.suggestSearch=n=>{const{clearAllFilters:o,queryTerm:s,submitSearch:t}=this.props;o(),s(n),setTimeout(t,250)},this.onFocus=(n,o)=>{this.props.hasFocus(n,o)},this.clear=n=>{n.preventDefault(),this.props.queryTerm("")},this.state={config:window.searchResultsConfig?{...window.searchResultsConfig}:{...E.Nf}}}render(){const{autoFocus:u,formId:n,suggestions:o,query:s,placeholder:t,showClearButton:a}=this.props,l=t&&t!==""?t:this.state.config.text.searchBoxText,r=!!(o&&o.length>0);let c=null,h;try{h=decodeURIComponent(s)}catch(i){h=s}if(r){let i=[];for(let g=0;g<o.length;g++){const w=o[g],b=w.replace(/[^a-zA-Z0-9]|\s/gi,"-");i.push(e.createElement("div",{key:g,id:b,className:"suggestion",tabIndex:0,onFocus:()=>this.onFocus("Suggestion",w),onClick:()=>this.suggestSearch(w),"aria-activedescendant":"search-page-input"},e.createElement("div",{className:"text"},w)))}c=e.createElement("div",{className:"suggestions show"},i)}return e.createElement("div",{className:"search-wrapper"},e.createElement("form",{id:`${n}-form`,autoComplete:"off",onSubmit:this.submit},e.createElement("label",{htmlFor:`${n}-input`},"Search for:"),e.createElement("div",{className:"search-input"},e.createElement("input",{id:`${n}-input`,name:`${n}-input`,type:"search",placeholder:l,value:h,onFocus:()=>this.onFocus("Search",""),onChange:this.onChange,autoFocus:u,autoComplete:"off",tabIndex:0,"aria-autocomplete":"list","aria-haspopup":"true"}),a?e.createElement("button",{"aria-label":"Clear search",type:"button",className:"clear-search",onClick:this.clear},e.createElement("i",{className:"fas fa-times"}),e.createElement("span",{className:"visuallyhidden"},"Clear")):null),c,e.createElement("button",{id:`${n}-submit`,type:"submit",onClick:this.submit,onFocus:()=>this.onFocus("Submit",s)}
1,"Search")))}}p.defaultProps={autoFocus:!0,clearAllFilters:()=>null,collection:"",formId:"search-page",placeholder:"Search",submitSearch:()=>null,hasFocus:(m,u)=>!0,hasModal:{filter:!1,sort:!1},query:"",showClearButton:!1,suggestionCollection:"",suggestions:[],queryTerm:()=>null,urlBase:""},v.A=p}),4166:(function(R,v,d){var e=d(6540),E=d(9638);class p extends e.Component{constructor(u){super(u),this.onFocus=()=>{if(!this.props.spell||!this.props.spell.text)return!1;this.props.hasFocus("NoResults",this.props.spell.text)},this.onClick=()=>{const{clearSearch:n,query:o,queryTerm:s,spell:t}=this.props;if((!t||!t.text)&&o.length>0)return n(),!1;s(t.text,!1),setTimeout(this.props.submitSearch,250)},this.state={config:window.searchResultsConfig?{...window.searchResultsConfig}:{...E.Nf}}}render(){const{searching:u,spell:n}=this.props,o=this.state.config.text,{noResultHeading:s,noResultDescription:t}=o;if(u)return e.createElement("div",{className:"spinner"},e.createElement("i",{className:"fas fa-spinner fa-spin fa-lg"}));const a=n&&n.text&&n.text.length>0,l=e.createElement("p",{dangerouslySetInnerHTML:{__html:t}}),r=a?" suggestions":" no-suggestions";return e.createElement("div",{id:"NoSearchResults",className:`no-search-result none${r}`,onFocus:this.onFocus,tabIndex:a?0:-1},e.createElement("h2",null,s),l)}}p.defaultProps={clearSearch:()=>null,hasFocus:(m,u)=>!0,query:"",queryTerm:(m,u)=>null,searching:!1,spell:{text:""},submitSearch:()=>null},v.A=p}),9787:(function(R,v,d){var e=d(6540),E=d(2346),p=d(1312),m=d.n(p),u=d(8789);const n="www.unsw.edu.au",o=s=>{const{collection:t,docNum:a,date:l,displayLink:r,filters:c,hasFocus:h,metaData:i,score:g,query:w,queryAsProcessed:b,showDate:S,summary:k,title:A,formattedUrl:_,liveUrl:F,treatAllResultsAsInternal:D,type:L,totalResults:I}=s,y=f=>{try{const C=new DOMParser().parseFromString(decodeURIComponent(f),"text/html");if(C&&C.documentElement)return C.documentElement.textContent}catch(C){}return f},x=()=>{const f=s.title.replaceAll('\\"','"');(0,u.d)(s.query,L,s.totalResults,f,s.liveUrl,s.rank)},M=(f,C)=>f.replace(C,T=>`<strong>${T}</strong>`),z=(f,C,T)=>{if(!f||!C||!T)return f;const N=T.replace(/"/g,""),U=new RegExp(N,"ig");if(C.match('^".+"$')){if(N&&f.match(U))return M(f,U);if(N&&f.indexOf(N)!==-1)return M(f,N);const Y=C.replace(/"/g,""),ee=new RegExp(Y,"ig");return M(f,ee)}if(N&&f.match(U))return M(f,U);if(N&&f.indexOf(N)!==-1)return M(f,N);const G=C.replace(/[^\w\s]/g,"").split(" "),J=new RegExp(G.join("|"),"ig");return M(f,J)},K=()=>!!(r&&r!==n),q=`${a}-${g}`,O=!D&&(K()||window.unsw.urlUtil.isExternal(F)),V=O?"_blank":"_self",H=`search-result${O?" is-external":""}`,Z=window.unsw.urlUtil.isExternal(F)?"noopener noreferrer":"",j=_?e.createElement("div",{className:"formatted-url"},_):null,B=c.find(f=>f.value===t),$=B?B.label:null,Q=l&&S?e.createElement("span",{className:"date"},(0,E.A)(new Date(l),"MMMM dd, yyyy")):$?e.createElement("span",{className:"date"},$):null,X=new RegExp(/(<([^>]+)>)/gi),W=i.content&&i.content.length>0?i.content.replace(X,""):"";let P=y(k.length>0?k:W.length>0?W:"");return P=z(P,b,w),e.createElement("a",{href:F,target:V,className:H,id:q,rel:Z,onFocus:()=>h("Result",F),onClick:()=>x()},e.createElement("h3",null,A.replaceAll('\\"','"')),j,Q,P?e.createElement("p",{dangerouslySetInnerHTML:{__html:P}}):null,e.createElement("span",{className:"icon-font","aria-hidden":"true"}))};o.defaultProps={collection:"",docNum:1,filters:[],hasFocus:(s,t)=>!1,title:"",date:"",query:"",queryAsProcessed:"",summary:"",showDate:!0,liveUrl:"",formattedUrl:"",displayLink:"",metaData:{content:""},score:1,treatAllResultsAsInternal:!1,type:"Not Set",totalResults:0},v.A=o}),15:(function(R,v,d){d.d(v,{A:function(){return s}});var e=d(6540);class E extends e.Component{constructor(){super(...arguments),this.onChange=a=>{const{value:l}=a.target,{type:r,setNumRanks:c,setSort:h,setStartRank:i}=this.props;return i(1),r==="Items"?(c(l),r):(h(l),r)}}render(){const{ariaLabelledBy:a,placeholder:l,type:r,hasFocus:c,options:h,value:i}=this.props;return e.createElement("div",{className:"select-group"},e.createElement("select",{id:r,className:"select",onChange:this.onChange,onFocus:()=>c(r,i),value:i,tabIndex:"0","aria-labelledby":a},l?e.createElement("option",{value:"",disabled:!0,selected:!0},"Select placeholder"):null,h.map(g=>{const{label:w,value:b}=g;return e.createElement("option",{key:b,value:b},w)})))}}E.defaultProps={ariaLabelledBy:"",hasFocus:(t,a)=>!0,options:[{label:"Relevance",value:"score"},{label:"Date ascending",value:"adate"},{label:"Date descending",value:"date"}
1,{label:"Alphabetically (A-Z)",value:"title"},{label:"Alphabetically (Z-A)",value:"dtitle"}],placeholder:"",setNumRanks:t=>null,setSort:t=>null,setStartRank:t=>null,type:"sort",value:"score"};var p=E,m=d(9638),u=d(7818);const n=[{label:"10",value:"10"},{label:"20",value:"20"},{label:"30",value:"30"}];class o extends e.Component{constructor(a){super(a),this.handleResize=l=>{const{hasModal:r}=this.props;window.innerWidth>768&&r.sort&&this.modal(!1)},this.modal=(l,r)=>{r&&r.preventDefault(),this.props.toggleModal({sort:l,filter:!1})},this.state={config:window.searchResultsConfig?{...window.searchResultsConfig}:{...m.Nf}}}componentDidMount(){window.addEventListener("resize",this.handleResize)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}render(){const{facets:a,hasModal:l,numRanks:r,hasFocus:c,sort:h,clearFacetsFilters:i,resultCount:g,showingResult:w,searchProvider:b,hideItemPerPage:S}=this.props,k=l.sort,{filterLabel:A,clearFilterLabel:_,itemPerPageLabel:F,orderByLabel:D}=this.state.config.text,L=k?e.createElement("a",{href:"#close-search-sort",className:"close","aria-label":"Close",onClick:I=>this.modal(!1,I)},e.createElement("span",{className:"visuallyhidden"},_)):null;return e.createElement("div",{className:`search-sort${k?" modal":""}`,"aria-labelledby":`${k?"sort-button":""}`},S&&b==="google"?null:e.createElement("button",{className:"open",onClick:()=>this.modal(!k),id:"sort-button","aria-haspopup":"dialog",type:"button"},"Sort"),e.createElement("div",{className:"inner",role:"group","aria-labelledby":"refine-results-label"},e.createElement("div",{className:"title"},e.createElement("h3",{id:"refine-results-label"},A)),L,e.createElement("div",{className:"showing-results-desktop"},e.createElement("div",{role:"status",className:"label"},`Showing results ${w()} (of ${g})`,e.createElement(u.A,{facets:a,clearFacetsFilters:i}))),S?null:e.createElement("div",{className:"sort-by items"},e.createElement("div",{id:"sort-by-items",className:"label"},F),e.createElement(p,{...this.props,ariaLabelledBy:"sort-by-items",options:n,value:r,type:"Items",hasFocus:c})),b!=="google"?e.createElement("div",{className:"sort-by order"},e.createElement("div",{id:"sort-by-order",className:"label"},D),e.createElement(p,{...this.props,ariaLabelledBy:"sort-by-order",value:h,type:"Sort",hasFocus:c})):null))}}o.defaultProps={clearFacetsFilters:()=>null,facets:[],hasFocus:(t,a)=>!0,hasModal:{filter:!1,sort:!1},numRanks:"20",resultCount:0,searchProvider:"funnelback",setNumRanks:t=>null,setSort:t=>null,setStartRank:t=>null,sort:"score",startRank:0,toggleModal:t=>null,showingResult:()=>"",hideItemPerPage:!1};var s=o}),7818:(function(R,v,d){var e=d(6540);const E=p=>{const{facets:m,clearFacetsFilters:u}=p,[n,o]=(0,e.useState)(null);(0,e.useEffect)(()=>{m&&m.length&&o(m.filter(t=>t.selected))},[m]);const s=(t,a)=>{t.preventDefault(),u(a)};return!n||n.length===0?null:e.createElement("span",{className:"selected-facets"}," ","from",n.map(t=>{const{name:a,selectedValues:l,unselectAllUrl:r}=t;return e.createElement("span",{key:a,className:"facet-type"},a," ",e.createElement("a",{href:`#unselect-${r}`,onClick:c=>s(c,r)},e.createElement("i",{className:"fa-times fas"})),l.map(c=>{const{label:h,toggleUrl:i}=c;return e.createElement("span",{key:h,className:"facet-item"},h," ",e.createElement("a",{href:`#unselect-${r}`,onClick:g=>s(g,i)},e.createElement("i",{className:"fa-times fas"})))}))}))};v.A=E})}]);
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.