{"version":3,"sources":["events.min.js"],"names":["$","now","window","dayjs","hidePastEvents","$this","this","data","isBefore","hide","each","filter","length","options","valueNames","name","attr","noItems","noOngoing","noFuture","eventsList","List","futureList","ongoingList","$filterControls","find","$searchInput","scrollToTop","scrollTop","on","val","search","which","searchString","$siblings","siblings","removeClass","addClass","history","replaceState","concat","location","hash","substring","update","list","matchingItems","append","detach"],"mappings":"AAAA,aAAAA,GAAE,WACA,IAAMC,EAAMC,OAAOC,QAEbC,EAAiB,WACrB,IAAMC,EAAQL,EAAEM,MACJJ,OAAOC,MAAME,EAAME,KAAK,aAE5BC,SAASP,IACfI,EAAMI,QAiBV,GAZAT,EAAE,uBAAuBU,KAAKN,GAG9BJ,EAAE,0BAA0BU,KAAKN,GAGjCJ,EAAE,kBAAkBU,KAAKN,GAAgBO,OAAO,kBAAkBF,OAGlET,EAAE,sBAAsBU,KAAKN,GAAgBO,OAAO,kBAAkBF,OAGlET,EAAE,mBAAmBY,OAAQ,CAC/B,IAAMC,EAAU,CACdC,WAAY,CACV,CAAEC,KAAM,aAAcC,KAAM,aAC5B,CAAED,KAAM,WAAYC,KAAM,aAC1B,CAAED,KAAM,OAAQC,KAAM,aACtB,UAIEC,EAAUjB,EAAE,uGACZkB,EAAYlB,EAAE,6DACdmB,EAAWnB,EAAE,8DACboB,EAAa,IAAIlB,OAAOmB,KAAK,iBAAkBR,GAC/CS,EAAa,IAAIpB,OAAOmB,KAAK,iBAAkBR,GAC/CU,EAAc,IAAIrB,OAAOmB,KAAK,kBAAmBR,GACjDW,EAAkBxB,EAAE,YAAYyB,KAAK,0BACrCC,EAAe1B,EAAE,uBAEjB2B,EAAc,WAClB3B,EAAE,aAAa4B,UAAU,IAyC3B,GAtCAF,EAAaG,GAAG,SAAS,WACrBL,EAAgBM,IAAI,OAErBD,GAAG,SAAS,WACX,IAAMC,EAAM9B,EAAEM,MAAMwB,MACpBV,EAAWW,OAAOD,EAAK,CAAC,UACxBR,EAAWS,OAAOD,EAAK,CAAC,UACxBP,EAAYQ,OAAOD,EAAK,CAAC,UACzBH,OAGJH,EAAgBK,GAAG,UAAU,WAC3B,IAAMxB,EAAQL,EAAEM,MACV0B,EAAQhC,EAAEM,MAAMC,KAAK,YACrB0B,EAAe5B,EAAMoB,KAAK,aAAaK,MACvCI,EAAY7B,EAAM8B,SAAS,UAEjCX,EAAgBY,YAAY,UAC5B/B,EAAMgC,SAAS,UACfH,EAAUJ,IAAI,IACdJ,EAAaI,IAAI,IACjBV,EAAWW,OAAOE,EAAc,CAACD,IACjCV,EAAWS,OAAOE,EAAc,CAACD,IACjCT,EAAYQ,OAAOE,EAAc,CAACD,IAClCL,IACAzB,OAAOoC,QAAQC,aAAa,KAAM,KAAlC,IAAAC,OAA4CP,OAG9CjC,EAAE,UAAU6B,GAAG,SAAS,WACtB,IAAMG,EAAQhC,EAAEM,MAAMC,KAAK,QACrB0B,EAAejC,EAAEM,MAAMC,KAAK,QAClCa,EAAWW,OAAOE,EAAc,CAACD,IACjCV,EAAWS,OAAOE,EAAc,CAACD,IACjCT,EAAYQ,OAAOE,EAAc,CAACD,IAClCL,IACAzB,OAAOoC,QAAQC,aAAa,KAAM,KAAlC,IAAAC,OAA4CP,OAG1C/B,OAAOuC,SAASC,KAAM,CACxB,IAAMA,EAAOxC,OAAOuC,SAASC,KAAKC,UAAU,GAC5CvB,EAAWW,OAAOW,GAClBtB,EAAWwB,SACXtB,EAAWS,OAAOW,GAClBpB,EAAWsB,SACXrB,EAAYQ,OAAOW,GACnBnB,EAAYqB,SAGdxB,EAAWS,GAAG,WAAW,SAACgB,GACU,IAA9BA,EAAKC,cAAclC,OACrBZ,EAAE6C,EAAKA,MAAME,OAAO9B,GAEpBA,EAAQ+B,YAIZ1B,EAAWO,GAAG,WAAW,SAACgB,GACU,IAA9BA,EAAKC,cAAclC,OACrBZ,EAAE6C,EAAKA,MAAME,OAAO5B,GAEpBA,EAAS6B,YAGbzB,EAAYM,GAAG,WAAW,SAACgB,GACS,IAA9BA,EAAKC,cAAclC,OACrBZ,EAAE6C,EAAKA,MAAME,OAAO7B,GAEpBA,EAAU8B","file":"events.min.js","sourcesContent":["$(() => {\n const now = window.dayjs();\n\n const hidePastEvents = function () {\n const $this = $(this);\n const end = window.dayjs($this.data('end-date'));\n\n if (end.isBefore(now)) {\n $this.hide();\n }\n };\n\n // Main events page, upcoming. show up to 3 items, hide anything occuring in the past\n $('div.main-event-card').each(hidePastEvents);\n\n // Builiding ongoing events, hide things in the past.\n $('div.building-event-row').each(hidePastEvents);\n\n // media homepage events. show up to 3 items, hide anything occuring in the past\n $('div.event-card').each(hidePastEvents).filter(':visible:gt(2)').hide();\n\n // special collections homepage events. show up to 3 items, hide anything occuring in the past\n $('li.event-list-item').each(hidePastEvents).filter(':visible:gt(4)').hide();\n\n // Main events page, create filter selects using list.js\n if ($('#events-listing').length) {\n const options = {\n valueNames: [\n { name: 'department', attr: 'data-info' },\n { name: 'category', attr: 'data-info' },\n { name: 'date', attr: 'data-info' },\n 'title',\n ],\n };\n\n const noItems = $('
No Results. Try a different search string or filter options.
');\n const noOngoing = $('
No Ongoing Events.
');\n const noFuture = $('
No Upcoming Events.
');\n const eventsList = new window.List('events-listing', options);\n const futureList = new window.List('future-listing', options);\n const ongoingList = new window.List('ongoing-listing', options);\n const $filterControls = $('#filters').find('select.filter-controls');\n const $searchInput = $('#events-list-search');\n\n const scrollToTop = function () {\n $('body,html').scrollTop(0);\n };\n\n $searchInput.on('focus', () => {\n $filterControls.val('');\n })\n .on('keyup', function () {\n const val = $(this).val();\n eventsList.search(val, ['title']);\n futureList.search(val, ['title']);\n ongoingList.search(val, ['title']);\n scrollToTop();\n });\n\n $filterControls.on('change', function () {\n const $this = $(this);\n const which = $(this).data('controls');\n const searchString = $this.find(':selected').val();\n const $siblings = $this.siblings('select');\n\n $filterControls.removeClass('active');\n $this.addClass('active');\n $siblings.val('');\n $searchInput.val('');\n eventsList.search(searchString, [which]);\n futureList.search(searchString, [which]);\n ongoingList.search(searchString, [which]);\n scrollToTop();\n window.history.replaceState(null, null, `#${searchString}`);\n });\n\n $('.badge').on('click', function () {\n const which = $(this).data('list');\n const searchString = $(this).data('info');\n eventsList.search(searchString, [which]);\n futureList.search(searchString, [which]);\n ongoingList.search(searchString, [which]);\n scrollToTop();\n window.history.replaceState(null, null, `#${searchString}`);\n });\n\n if (window.location.hash) {\n const hash = window.location.hash.substring(1);\n eventsList.search(hash);\n eventsList.update();\n futureList.search(hash);\n futureList.update();\n ongoingList.search(hash);\n ongoingList.update();\n }\n\n eventsList.on('updated', (list) => {\n if (list.matchingItems.length === 0) {\n $(list.list).append(noItems);\n } else {\n noItems.detach();\n }\n });\n\n futureList.on('updated', (list) => {\n if (list.matchingItems.length === 0) {\n $(list.list).append(noFuture);\n } else {\n noFuture.detach();\n }\n });\n ongoingList.on('updated', (list) => {\n if (list.matchingItems.length === 0) {\n $(list.list).append(noOngoing);\n } else {\n noOngoing.detach();\n }\n });\n }\n});\n"]}