{"version":3,"file":"static/js/604.4c8aed95.chunk.js","mappings":"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","sources":["api/controllers/datamart.ts","components/Overview/Configuration/index.tsx","components/Overview/Filters/index.tsx","components/Overview/Map/SchoolMarker/index.tsx","components/Overview/Map/index.tsx","components/Overview/SchoolModal/index.tsx","components/Overview/index.tsx"],"sourcesContent":["import programmes from \"../store/dataset.json\";\r\nimport locations from \"../store/locations.json\";\r\nimport interviews from \"../store/interviews.json\";\r\nimport School from \"../../models/School\";\r\n\r\nexport default class DatamartController {\r\n\r\n public static getData = (school?: string): School[] => {\r\n let data = programmes.sort((a, b) =>\r\n (a.programme || \"\").localeCompare(b.programme || \"\")).filter(p => p.programme !== null)\r\n\r\n if (school) {\r\n data = data.filter(\r\n x => x.school.toLowerCase().includes(school.toLowerCase())\r\n );\r\n }\r\n\r\n data = data.filter(\r\n x => x.field !== \"Unspecified\"\r\n )\r\n\r\n return data;\r\n }\r\n\r\n public static getLocations = () => {\r\n return locations;\r\n }\r\n\r\n public static getLocation = (name: string) => {\r\n if (!Object.keys(locations).includes(name)) return null;\r\n return (locations as any)[name];\r\n }\r\n\r\n public static getSchools = () => {\r\n return Object.keys(locations);\r\n }\r\n\r\n public static getInterviews = () => {\r\n return interviews;\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport Select from \"react-select\";\r\nimport {Col, Row, Tooltip} from \"antd\";\r\nimport \"./style.scss\";\r\nimport DatamartController from \"../../../api/controllers/datamart\";\r\nimport School from \"../../../models/School\";\r\nimport {Filterable} from \"../../../models/Filterable\";\r\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\r\n\r\ntype IState = {\r\n continent: string | null;\r\n country: string | null;\r\n field: string | null,\r\n programme: string | null,\r\n track: string | null\r\n}\r\n\r\ntype IProps = {\r\n setSchools: (schools: School[]) => any,\r\n setFilterable: (filterable: Filterable) => any\r\n}\r\n\r\nexport default class Configuration extends Component {\r\n\r\n state = {\r\n continent: null,\r\n country: null,\r\n field: null,\r\n programme: null,\r\n track: null\r\n }\r\n\r\n update = () => {\r\n let schools: School[] = DatamartController.getData();\r\n const { country, field, programme, track, continent } = this.state;\r\n const loc = (school: string) => {\r\n const match = DatamartController.getLocation(school);\r\n return (match && continent) ? match.region === continent : false;\r\n }\r\n\r\n if (field) schools = schools.filter(s => s.field === field);\r\n if (programme) schools = schools.filter(s => s.programme === programme);\r\n if (country) schools = schools.filter(s => s.country === country);\r\n if (track) schools = schools.filter(s => s.track === track);\r\n if (continent) schools = schools.filter(s => loc(s.school));\r\n\r\n this.props.setSchools(schools);\r\n this.props.setFilterable({\r\n continent: null,\r\n country,\r\n field,\r\n programme,\r\n track\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const data = DatamartController.getData();\r\n\r\n const fields = data.map(p => p.field).filter(\r\n (item, i, ar) => ar.indexOf(item) === i\r\n );\r\n\r\n const countries = data.map(s => s.country).filter(\r\n (item, i, ar) => ar.indexOf(item) === i\r\n );\r\n\r\n const programmes = data.filter(\r\n p => this.state.field ? p.field === this.state.field : true\r\n ).map(p => p.programme).filter(\r\n (item, i, ar) => ar.indexOf(item) === i\r\n );\r\n\r\n const tracks = data.filter(\r\n p => this.state.track ? p.track === this.state.track : true\r\n ).map(p => p.track).filter(\r\n (item, i, ar) => ar.indexOf(item) === i\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n p !== \"BSc Artificial Intelligence\" && p.length > 2 && p !== \"PhD ?\")\r\n .filter((v,i,a) => a.findIndex(t=>(t.trim() === v.trim()))===i)\r\n .map(p => ({ label: p, value: p}))\r\n .sort((a, b) => a.label.localeCompare(b.label))\r\n }\r\n isClearable={true}\r\n value={(this.state.programme ?\r\n { label: this.state.programme!, value: this.state.programme! } : null\r\n )}\r\n onChange={(e) => this.setState({ programme: e ? e.value : null }, this.update)}\r\n />\r\n \r\n \r\n \r\n ({ label: t, value: t}))\r\n .sort((a, b) => a.label.localeCompare(b.label))\r\n }\r\n isClearable={true}\r\n value={(this.state.track ?\r\n { label: this.state.track!, value: this.state.track! } : null\r\n )}\r\n onChange={(e) => this.setState({ track: e ? e.value : null }, this.update)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n */","import React, { Component } from \"react\";\r\nimport FadeIn from \"react-fade-in\";\r\nimport \"./style.scss\";\r\nimport {Input, Tag} from \"antd\";\r\nimport {IProps, IState} from \"./types\";\r\n\r\nexport default class Filters extends Component {\r\n\r\n state = {\r\n query: \"\"\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { query } = this.state;\r\n const { schools } = this.props;\r\n\r\n const schoolNames = schools\r\n .filter(s => s.school.toLowerCase().includes(query.toLowerCase()))\r\n .map(s => s.school.toString())\r\n .filter((item, i, ar) => ar.indexOf(item) === i);\r\n\r\n return (\r\n
\r\n \r\n
AUC Masters Database
\r\n This list gives an overview of some universities and research institutes where AUC alumni have completed a master’s degree or PhD\r\n\r\n this.setState({ query: e.target.value })}\r\n />\r\n { query.length !== 0 &&\r\n
\r\n { schoolNames.length} results\r\n
\r\n }\r\n\r\n
\r\n { schoolNames.sort((a, b) => a.localeCompare(b)).map(name => (\r\n
{\r\n document.dispatchEvent(\r\n new CustomEvent(\"schoolSelect\", {\r\n detail: schools.find(s => s.school === name)\r\n })\r\n );\r\n }}\r\n >\r\n { name }\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { divIcon, LatLngExpression } from 'leaflet';\r\nimport {Marker} from \"react-leaflet\";\r\nimport {renderToStaticMarkup} from \"react-dom/server\";\r\nimport School from \"../../../../models/School\";\r\n\r\nconst iconMarkup = renderToStaticMarkup();\r\nconst customMarkerIcon = divIcon({\r\n html: iconMarkup,\r\n iconAnchor: [13, 2]\r\n});\r\n\r\nexport default class SchoolMarker extends Component<{position: LatLngExpression, school: School}> {\r\n render(): React.ReactNode {\r\n return (\r\n {\r\n document.dispatchEvent(\r\n new CustomEvent(\"schoolSelect\", { detail: this.props.school })\r\n );\r\n e.originalEvent.stopPropagation();\r\n e.originalEvent.preventDefault();\r\n },\r\n }}\r\n />\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport {MapContainer, TileLayer} from \"react-leaflet\";\r\nimport MarkerClusterGroup from \"react-leaflet-markercluster\";\r\nimport \"./style.scss\";\r\nimport DatamartController from \"../../../api/controllers/datamart\";\r\nimport SchoolMarker from \"./SchoolMarker\";\r\nimport {LatLngExpression} from \"leaflet\";\r\nimport School from \"../../../models/School\";\r\n\r\nexport default class Map extends Component<{ center: LatLngExpression, zoom: number, schools: School[] }> {\r\n render(): React.ReactNode {\r\n const { schools } = this.props;\r\n const locations = DatamartController.getLocations();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n { Object.keys(locations).map(key => {\r\n const loc = (locations as any)[key];\r\n const school = schools.find(s => s.school === key);\r\n if (!school) return null;\r\n\r\n return \r\n })}\r\n \r\n \r\n
\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport {Row, Col, Modal, Tag, Button} from \"antd\";\r\nimport DatamartController from \"../../../api/controllers/datamart\";\r\nimport \"./style.scss\";\r\nimport {MapContainer, TileLayer} from \"react-leaflet\";\r\nimport {Filterable} from \"../../../models/Filterable\";\r\n\r\ntype IState = {\r\n isOpen: boolean,\r\n name: string | null,\r\n}\r\n\r\nexport default class SchoolModal extends Component<{filterable: Filterable}, IState> {\r\n\r\n state = {\r\n isOpen: false, name: null\r\n }\r\n\r\n componentDidMount(): void {\r\n document.addEventListener('schoolSelect', this.handleSchoolSelectEvent);\r\n }\r\n\r\n componentWillUnmount(): void {\r\n document.removeEventListener('schoolSelect', this.handleSchoolSelectEvent);\r\n }\r\n\r\n handleSchoolSelectEvent = (evt: any) => {\r\n const { isOpen } = this.state;\r\n\r\n if (!isOpen) {\r\n this.setState({ isOpen: true, name: evt.detail.school }, () => this.forceUpdate());\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { isOpen, name } = this.state;\r\n const { filterable } = this.props;\r\n const programmes = DatamartController.getData(name!);\r\n const interviews = DatamartController.getInterviews();\r\n const interview = interviews.find(i => i.university === name);\r\n\r\n const tracks = programmes.length > 0 ?\r\n programmes.map(p => p.track).filter(\r\n (item, i, ar) => ar.indexOf(item) === i\r\n ).join(\", \") : \"None provided\";\r\n\r\n const location = DatamartController.getLocation(name!);\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n
\r\n AUC Master's Database\r\n
{ name }
\r\n
\r\n
\r\n )}\r\n visible={isOpen}\r\n onOk={() => this.setState({ isOpen: false })}\r\n onCancel={() => this.setState({ isOpen: false })}\r\n okText={\"Close\"}\r\n width={'90vw'}\r\n destroyOnClose={true}\r\n cancelButtonProps={{ style: { display: 'none' } }}\r\n >\r\n \r\n \r\n Available tracks: { tracks }\r\n
Graduate programmes
\r\n { programmes.filter(p => (\r\n (filterable.track ? p.track === filterable.track : true) &&\r\n (filterable.field ? p.field === filterable.field : true) &&\r\n (filterable.programme ? p.programme === filterable.programme : true)\r\n ))\r\n .filter((v,i,a)=>a.findIndex(t=>(t.programme === v.programme))===i)\r\n .map(p => (

{ p.programme } { p.field }

))}\r\n \r\n\r\n \r\n { location &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n
\r\n { interview &&\r\n

What do others say about {name}? Find the section named {interview.title} on the page linked below.

\r\n }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport Configuration from \"./Configuration\";\r\nimport Filters from \"./Filters\";\r\nimport {Col, notification, Row} from \"antd\";\r\nimport Map from \"./Map\";\r\nimport SchoolModal from \"./SchoolModal\";\r\nimport {IProps, IState} from \"./types\";\r\nimport DatamartController from \"../../api/controllers/datamart\";\r\n\r\nexport default class Overview extends Component {\r\n\r\n state = {\r\n schools: [],\r\n filterable: {\r\n continent: null,\r\n country: null,\r\n field: null,\r\n programme: null,\r\n track: null\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n this.setState({ schools: DatamartController.getData() });\r\n\r\n notification.open({\r\n message: 'Welcome!',\r\n placement: 'bottomRight',\r\n duration: 0,\r\n description: (\r\n
\r\n Welcome to AUC’s Master’s Database. Here you will find an interactive map of some of the master’s and PhD programmes AUC alumni have completed. This map is based on AUC’s 2023 graduate survey.\r\n

\r\n The Master’s Database is one starting point for your master’s research. Use the filters to explore which graduate school or programme is right for you. Channel the inspiration you receive from the database into continuing your master’s research on the Graduate Futures Information page.\r\n
\r\n ),\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { schools, filterable } = this.state;\r\n\r\n return (\r\n
\r\n this.setState({ schools })}\r\n setFilterable={filterable => this.setState({ filterable })}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n"],"names":["DatamartController","getData","school","data","programmes","sort","a","b","programme","localeCompare","filter","p","x","toLowerCase","includes","field","getLocations","locations","getLocation","name","Object","keys","getSchools","getInterviews","interviews","Configuration","Component","constructor","arguments","state","continent","country","track","update","schools","this","s","match","region","loc","props","setSchools","setFilterable","render","fields","map","item","i","ar","indexOf","countries","tracks","_jsx","id","children","_jsxs","Row","gutter","Col","flex","Tooltip","title","QuestionCircleOutlined","Select","placeholder","value","label","isClearable","onChange","e","setState","options","c","length","v","findIndex","t","trim","f","Filters","query","schoolNames","toString","FadeIn","Input","target","Tag","className","onClick","document","dispatchEvent","CustomEvent","detail","find","iconMarkup","renderToStaticMarkup","customMarkerIcon","divIcon","html","iconAnchor","SchoolMarker","Marker","position","icon","eventHandlers","click","originalEvent","stopPropagation","preventDefault","Map","MapContainer","center","zoom","scrollWheelZoom","TileLayer","attribution","url","MarkerClusterGroup","key","lat","lon","SchoolModal","isOpen","handleSchoolSelectEvent","evt","forceUpdate","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","filterable","interview","university","join","location","Modal","style","height","width","float","background","backgroundSize","backgroundRepeat","margin","padding","visible","onOk","onCancel","okText","destroyOnClose","cancelButtonProps","display","xs","md","marginTop","React","href","rel","Button","Overview","notification","open","message","placement","duration","description"],"sourceRoot":""}