{"version":3,"sources":["webpack://frontendplaceholder/./Src/Scripts/components/vue-component-loader.js","webpack://frontendplaceholder/./Src/Scripts/controllers/calendar-page.js","webpack://frontendplaceholder/./node_modules/in-view/dist/in-view.min.js","webpack://frontendplaceholder/./node_modules/vue-masonry-css/dist/vue-masonry.es2015.js"],"names":["constructor","elem","args","callback","this","appInstance","state","reactive","vueComponent","getAttribute","window","vuecr","loadComponentClass","then","VueComponent","props","createApp","use","VueMasonry","mount","createUntypedApp","deps","data","components","depsAttr","componentDependencies","split","map","cd","trim","length","loadComponentClasses","result","forEach","i","replace","_maskedHelpers","getAppInstance","setData","key","Swiper","Navigation","calendarTimeline","querySelector","calendarTimelineSwiper","hasGridView","document","body","classList","add","calendarTimelineOptions","loop","slidesPerView","freeMode","speed","direction","navigation","nextEl","prevEl","breakpoints","filterToggle","querySelectorAll","menu","filterRadios","layoutRadios","categories","ensembles","searchField","touringArtists","mainContent","suggestedSearch","month","onclick","area","dataset","yearMonthLink","offset","getBoundingClientRect","top","scrollY","scrollTo","currentFilter","listView","toggle","hasAttribute","addEventListener","e","currentMenu","preventDefault","x","checked","value","innerText","filterAndUpdateEvents","category","ensemble","query","updateEvents","activeEntries","addInViewListener","throttledUpdate","throttledSearch","throttle","checkbox","matchQuery","toLowerCase","title","allEntries","block","entry","searchableContent","entryType","headline","startsWith","getTitle","getRecommendedSearch","vueAppData","blocks","contains","updateActiveMonth","topSpace","Math","max","style","setProperty","updateScrollOffset","remove","updateFixedTimeline","allMonthsElem","firstElem","find","rect","bottom","innerHeight","yearMonthArea","slide","closest","parent","parentNode","index","Array","prototype","indexOf","call","children","slideTo","element","listElem","eventsListVueApp","VueComponentLoader","json","JSON","parse","componentArgs","dynamicResults","startChar","id","addToQuery","string","history","replaceState","location","pathname","generateFilter","filteredEntries","push","filter","isTouringArtist","searchQuery","subTitle","ensembleLabel","venue","includes","filterEntry","filterEntries","activeMonths","Set","yearMonth","active","y","updateMonths","requestAnimationFrame","inView","on","SplitType","nonEmptyBlocks","conjoinedBlocks","blocksWithState","lastTypeEvent","lastBlock","newEventsList","newBlocks","featuredEvents","hideImages","hideYearMonthAreaTag","entryWithState","onlyShowImageOnHighlighted","slice","offsetHeight","calendarScroll","localStorage","getItem","parseInt","left","behavior","setItem","module","exports","t","r","n","loaded","m","c","p","o","__esModule","Object","defineProperty","f","s","threshold","test","inViewport","check","MutationObserver","observe","attributes","childList","subtree","u","elements","is","enumerable","configurable","writable","TypeError","options","current","handlers","enter","exit","singles","emit","splice","unshift","pop","right","width","height","innerWidth","a","self","Function","min","E","w","apply","j","setTimeout","h","M","d","O","_","g","l","T","b","arguments","leading","maxWait","trailing","cancel","clearTimeout","flush","Date","now","tag","type","String","default","cols","Number","gutter","css","Boolean","columnTag","columnClass","columnAttr","breakpointValue","mixed","windowWidth","matchedBreakpoint","Infinity","matchedValue","k","breakpoint","breakpointValRaw","breakpointVal","isNaN","component","displayColumns","displayGutter","mounted","this$1","$nextTick","reCalculate","updated","beforeDestroy","removeEventListener","methods","previousWindowWidth","_reCalculateColumnCount","_reCalculateGutterSize","newColumns","_getChildItemsInColumnsArray","columns","childItems","$slots","componentOptions","visibleItemI","columnIndex","render","createElement","columnsContainingChildren","gutterSizeWithUnit","columnStyle","boxSizing","backgroundClip","border","borderLeftWidth","class","attrs","containerStyle","display","marginLeft","Plugin","install","Vue","installed","name"],"mappings":";6MAeA,I,EAAA,UACA,G,EAAA,U,qCAEe,MACXA,YAAYC,EAAMC,EAAMC,GACpBC,KAAKC,YAAc,KACnBD,KAAKE,OAAQ,IAAAC,UAASL,GAEtB,MAAMM,EAAeP,EAAKQ,aAAa,sBACjCH,EAAQF,KAAKE,MACnB,GAAIE,EACAE,OAAOC,MAAMC,mBAAmBJ,GAC3BK,MAAMC,IACHA,EAAaC,MAAQ,CAAC,SACtBX,KAAKC,aAAc,IAAAW,WAAUF,EAAc,CAAER,UAC7CF,KAAKC,YAAYY,IAAIC,WACrBd,KAAKC,YAAYc,MAAMlB,GACnBE,GAAUA,WAEnB,CACH,MAAMiB,EAAmB,CAACC,EAAO,MAC7BjB,KAAKC,aAAc,IAAAW,WAAU,CACzBM,OAAS,MAAO,CAAEhB,MAAOF,KAAKE,QAC9BiB,WAAYF,IAEhBjB,KAAKC,YAAYc,MAAMlB,IAGrBuB,EAAWvB,EAAKQ,aAAa,mCAC7BgB,EAAwBD,EAAWA,EAASE,MAAM,KAAKC,KAAKC,GAAOA,EAAGC,SAAU,GAElFJ,EAAsBK,OAAS,EAC/BpB,OAAOC,MAAMoB,qBAAqBN,GAC7BZ,MAAMmB,IACH,MAAMX,EAAO,GACbI,EAAsBQ,SAAQ,CAACL,EAAIM,KAC/Bb,EAAKO,EAAGO,QAAQ,IAAK,KAAOH,EAAOE,MAEvCd,EAAiBC,MAGzBD,IAIRhB,KAAKgC,eAAiB,CAClBC,eAAgB,IAAMjC,KAAKC,YAC3BiC,QAAUhB,IACN,IAAK,MAAMiB,KAAOjB,EACdlB,KAAKE,MAAMiC,GAAOjB,EAAKiB,KAMvCF,iBACI,OAAOjC,KAAKgC,eAAeC,iBAG/BC,QAAQhB,GACJlB,KAAKgC,eAAeE,QAAQhB,M,8FC3EpC,iBACA,UACA,UACA,aACA,a,mDACAkB,SAAOvB,IAAI,CAACwB,e,UAEG,MACXzC,YAAYC,GACRG,KAAKH,KAAOA,EACZG,KAAKsC,iBAAmBtC,KAAKH,KAAK0C,cAAc,6CAChD,IA8BIC,EA9BAC,EAAc,KAElBC,SAASC,KAAKC,UAAUC,IAAI,qBAEpBJ,IAIJA,GAAc,GAKlBzC,KAAK8C,wBAA0B,CAC3BC,MAAM,EACNC,cAAe,OACfC,UAAU,EACVC,MAAO,IACPC,UAAW,WACXC,WAAY,CACRC,OAAQ,sBACRC,OAAQ,uBAEZC,YAAa,CACT,IAAK,CACDJ,UAAW,gBAMnBnD,KAAKsC,mBACLE,EAAyB,IAAIJ,SAAOpC,KAAKsC,iBAAkBtC,KAAK8C,0BAGpE,MAAMU,EAAed,SAASe,iBAAiB,uCACzCC,EAAO7D,EAAK0C,cAAc,wBAC1BoB,EAAe9D,EAAK4D,iBAAiB,mBACrCG,EAAe/D,EAAK4D,iBAAiB,oBACrCI,EAAahE,EAAK4D,iBAAiB,mBACnCK,EAAYjE,EAAK4D,iBAAiB,mBAClCM,EAAclE,EAAK0C,cAAc,iBACjCyB,EAAiBnE,EAAK0C,cAAc,0BACpC0B,EAAcpE,EAAK0C,cAAc,uBACjC2B,EAAkBrE,EAAK0C,cAAc,2BACnB1C,EAAK4D,iBAAiB,0BAE9B5B,SAAQsC,GAASA,EAAMC,QAAU,KAC7C,MAAMC,EAAOxE,EAAK0C,cAAe,0BAAyB4B,EAAMG,QAAQC,mBACxE,GAAIF,EAAM,CACN,MAAMG,EAASH,EAAKI,wBAAwBC,IAAMpE,OAAOqE,QACzDrE,OAAOsE,SAAS,EAAGJ,GAAUK,EAAcC,SAAW,IAAM,UAIpEtB,EAAa3B,SAAQkD,IACbA,EAAOC,aAAa,uBACpBD,EAAOE,iBAAiB,SAAUC,IAC9B,MAAMC,EAAczC,SAASH,cAAc,wBAC3C2C,EAAEE,iBACFD,EAAYvC,UAAUmC,OAAO,6BAC7BrC,SAASC,KAAKC,UAAUmC,OAAO,qBAK3ClF,EAAK0C,cAAc,uBAAuB6B,QAAU,KAChDT,EAAa9B,SAAQwD,GAAKA,EAAEC,SAAU,IACtCvB,EAAYwB,MAAQ,GACpBrB,EAAgBsB,UAAY,GAC5BC,KAGJ,MAAMZ,EAAgB,CAClBa,SAAU,KACVC,SAAU,KACV3B,gBAAgB,EAChBc,UAAU,EACVc,MAAO,IAGXhC,EAAa/B,SAAQwD,GACjBA,EAAEJ,iBAAiB,UAAU,KACzBJ,EAAcC,SAAuB,SAAZO,EAAEE,MAC3BtB,EAAYrB,UAAUmC,OAAO,yCAA0CF,EAAcC,UACrFb,EAAYrB,UAAUmC,OAAO,0CAA2CF,EAAcC,UACtFe,EAAaC,GACbC,SAIRpC,EAAa9B,SAAQwD,GAAKA,EAAEJ,iBAAiB,UAAUI,IACnDW,IACAjC,EAAYwB,MAAQ,QAGxB,MAAMU,GAAkB,IAAAC,WAUxB,WACQnC,EAAYwB,MAAM7D,QAAU,GAC5BiC,EAAa9B,SAAQsE,IACjBA,EAASb,SAAU,KAEvBpB,EAAgBsB,UAexB,SAA8BI,GAC1B,MAAMQ,EAAaR,EAAMS,cAEzB,IAAIC,EAAQ,GAaZ,OAXAC,EAAW1E,SAAQ2E,IACfA,EAAM3E,SAAQ4E,IACV,IAAKH,EAAO,SACR,MAAMI,EAAwC,UAApBD,EAAME,UAAN,UAA8BF,EAAMH,aAApC,aAA8B,EAAaD,cAA3C,UAA2DI,EAAMG,gBAAjE,aAA2D,EAAgBP,cACjGK,WAAmBG,WAAWT,KAC9BE,EASpB,SAAkBG,GACd,MAA4B,WAArBA,aAAA,EAAAA,EAAOE,WAAwBF,aAA/B,EAA+BA,EAAOH,MAAQG,aAA9C,EAA8CA,EAAOG,SAVpCE,CAASL,WAM1BH,EA/ByBS,CAAqBhD,EAAYwB,OAC7DS,MAEA9B,EAAgBsB,UAAY,GACK,IAA7BzB,EAAYwB,MAAM7D,QAClBsE,OApB6B,KACnCA,GAAkB,IAAAE,UAAST,EAAuB,KAExD1B,EAAYkB,iBAAiB,SAAS,EAAG9C,UACxB,QAARA,GAAyB,UAARA,IAAoB+B,EAAgBsB,YACtDzB,EAAYwB,MAAQrB,EAAgBsB,UACpCQ,QAoBRjC,EAAYkB,iBAAiB,SAAS,KAClCgB,OA0BJ,MAAMe,EAAa,CACfC,OAAQ,GACRnC,UAAU,GA8BdxE,OAAO2E,iBAAiB,UAAU,KAC1BvC,SAASC,KAAKC,UAAUsE,SAAS,uBACjCC,IAgBR,WACI,MAAMC,EAAWC,KAAKC,IAAI,EAAG,GAAKhH,OAAOqE,SACzCjB,EAAK6D,MAAMC,YAAY,eAAgBJ,EAAW,MAjB9CK,GAKR,WACI,MAAM7E,EAAYF,SAASC,KAAKC,UAC5BA,EAAUsE,SAAS,gCAAkC5G,OAAOqE,QAAU,IACtE/B,EAAU8E,OAAO,gCAEhB9E,EAAUsE,SAAS,gCAAkC5G,OAAOqE,QAAU,KACvE/B,EAAUC,IAAI,+BAVd8E,OAmBR,MAAMC,EAAgB/H,EAAK4D,iBAAiB,wCAmB5C,SAAS0D,IACL,MACMU,EAAY,IADDhI,EAAK4D,iBAAiB,2BACPqE,MAAKzC,IACjC,MAAM0C,EAAO1C,EAAEZ,wBACTC,EAAMqD,EAAKrD,IACXsD,EAASD,EAAKC,OACpB,OAAOtD,EAAM,IAAMsD,EAAS1H,OAAO2H,eAKvC,GAFAL,EAAc/F,SAAQwD,GAAKA,EAAEzC,UAAU8E,OAAO,kDAEzCG,EAAa,OAElB,MAAM1D,EAAQtE,EAAK0C,cAAe,0BAAyBsF,EAAUvD,QAAQ4D,mBAE7E,IAAK/D,EAAS,OAEdA,EAAMvB,UAAUC,IAAI,+CAEpB,MAAMsF,EAAQhE,EAAMiE,QAAQ,iBACtBC,EAASF,EAAMG,WACfC,EAAQC,MAAMC,UAAUC,QAAQC,KAAKN,EAAOO,SAAUT,GAC5D3F,EAAuBqG,QAAQN,GAsBnC,MAAMxI,EAAW+I,IACbA,EAAQlG,UAAUC,IAAI,YAGpBkG,EAAWlJ,EAAK0C,cAAc,qCAC9ByG,EAAmB,IAAIC,UAAmBF,EAAU,IAAI,KAC1D,MAAMG,EAAOC,KAAKC,MAAML,EAASzE,QAAQ+E,eACzC9C,EAAa2C,EAAKI,eAClB7D,OAGJ,SAASA,KA5HT,WAA0B,QACtB,IAAI8D,EAAY,IAChB1E,EAAca,SAAd,UAAyB,IAAI7B,GAAYiE,MAAKzC,GAAKA,EAAEC,iBAArD,aAAyB,EAAsCkE,GAC/D3E,EAAcc,SAAd,UAAyB,IAAI7B,GAAWgE,MAAKzC,GAAKA,EAAEC,iBAApD,aAAyB,EAAqCC,MAC9DV,EAAcb,eAAiBA,EAAesB,QAE9C,IAAIM,EAAQ,GAYZ,SAAS6D,EAAWC,GAChB9D,GAAS2D,EAAYG,EACrBH,EAAY,IAbZ1E,EAAca,UAAY+D,EAAY,mBAAkB5E,EAAca,YACtEb,EAAcb,gBAAkByF,EAAW,uBAC3C5E,EAAcc,UAAY8D,EAAY,YAAW5E,EAAcc,YAE/D5B,EAAYwB,MAAM7D,QAAU,GAC5BmD,EAAce,MAAQ7B,EAAYwB,MAClCkE,EAAY,SAAQ5E,EAAce,UAElCf,EAAce,MAAQ,GAQ1B/F,EAAK+C,UAAUmC,OAAO,+BAAgCa,GACtDtF,OAAOqJ,QAAQC,aAAa,KAAM,KAAMhE,EAAQiE,SAASC,SAAWlE,EAAQiE,SAASC,UAqGrFC,GACAjE,EAqBJ,WACI,MAAMkE,EAAkB,GAKxB,OAHAzD,EAAW1E,SAAQ2E,IACfwD,EAAgBC,KAAKzD,EAAM0D,QAAOzD,GAK1C,SAAqBA,GACjB,GAAuB,SAAnBA,EAAME,UAAsB,SAC5B,GAAI9B,EAAca,WAAY,UAACe,EAAMf,gBAAP,QAAC,EAAgBoC,MAAKzC,GAAKA,GAAKR,EAAca,YAAa,OAAO,EAEhG,GAAIb,EAAcc,WAAY,UAACc,EAAM3C,iBAAP,QAAC,EAAiBgE,MAAKzC,GAAKA,GAAKR,EAAcc,YAAa,OAAO,EAEjG,GAAId,EAAcb,iBAAmByC,EAAM0D,gBAAmB,OAAO,EAErE,MAAMC,GAAe3D,EAAMH,MAAQG,EAAM4D,SAAW5D,EAAM6D,cAAgB7D,EAAM8D,OAAOlE,cACvF,GAAIxB,EAAce,QAAUwE,EAAYI,SAAS3F,EAAce,MAAMS,eAAkB,OAAO,MAC3F,CACH,GAAIxB,EAAca,UAAYb,EAAcb,gBAAkBa,EAAce,MAAS,OAAO,EAE5F,GAAIf,EAAcc,UAAYc,EAAMd,UAAYd,EAAcc,SAC1D,OAAO,EAIf,OAAO,EAvBwC8E,CAAYhE,SAEpDuD,EA3BSU,GAEhB7E,EAAaC,GA7EjB,WACI,IAAI6E,EAAe,IAAIC,IACvB9E,EAAcjE,SAAQ2E,IAClBA,EAAM0D,QAAO7E,GAAqB,UAAhBA,EAAEsB,YAAuB9E,SAAQ4E,IAC/CkE,EAAa9H,IAAI4D,EAAMoE,iBAG/BF,EAAe,IAAIA,GACnB/C,EAAc/F,SAAQsC,IAElB,IAAI2G,EACSA,IAFCH,EAAa7C,MAAKiD,GAAKA,IAAM5G,EAAMG,QAAQC,gBAIzDJ,EAAMvB,UAAUmC,OAAO,mDAAoD+F,MAE/E3D,IA+DA6D,GACAjF,IAGJ,SAASA,IACLkF,uBAAsB,KACdpL,EAAK0C,cAAc,iBACnB2I,UAAO1G,OAAO,KACd,aAAO,yGACF2G,GAAG,QAASpL,IAErB,IAAIqL,UAAU,sBAItB,IAAI7E,EACAT,EAgCJ,SAASD,EAAaoB,GAClB,MAAMoE,EAAiBpE,EAAOiD,QAAO7E,GAAKA,EAAE3D,OAAS,IAC/C4J,EAAkB,GAClBC,EAAkB,GACxB,IAAIC,GAAgB,EAChBC,EAAY,KAxFpB,IAAsBC,EA0FlBL,EAAexJ,SAAQ2E,IACQ,UAAvBA,EAAM,GAAGG,WAET2E,EAAgBrB,KAAK,IAAIzD,IACzBgF,GAAgB,GAIZA,EACAhF,EAAM3E,SAAQ4E,IACVgF,EAAUxB,KAAKxD,OAInB+E,GAAgB,EAChBC,EAAY,IAAIjF,GAChB8E,EAAgBrB,KAAKwB,OAKjCH,EAAgBzJ,SAAQ2E,IACpB,MAAMmF,EAAY,GAClBnF,EAAM3E,SAAQ4E,IACVA,EAAM3B,SAAWD,EAAcC,SAC3B2B,EAAMmF,gBAAkBnF,EAAMmF,eAAelK,OAAS,IAAM+E,EAAMmF,eAAe,GAAG1L,QACpFuG,EAAMmF,eAAiBnF,EAAMmF,eAAerK,KAAIwJ,IAC5CA,EAAEc,YAAa,EACfd,EAAEe,sBAAuB,EAClB,CAAE5L,MAAO6K,OAGxB,MAAMgB,EAAiB,CAAE7L,MAAOuG,GAChCsF,EAAe7L,MAAM8L,4BAA6B,EAClDL,EAAU1B,KAAK8B,MAEnBR,EAAgBtB,KAAK0B,MA9HPD,EAgILH,EA/HbvE,EAAWC,OAASyE,EAAcO,QAClCjF,EAAWlC,SAAWD,EAAcC,SACpCkE,EAAiB9G,QAAQ8E,GAEzBiE,uBAAsB,KAClB,MAAMrG,EAAW/E,EAAKqM,aAAe5L,OAAO2H,YACtCkE,EAAiBC,aAAaC,QAAQ,kBACxCF,GACA7L,OAAOsE,SAAS,CAAEF,IAAK4H,SAASH,GAAiBI,KAAM,EAAGC,SAAU,YACpEJ,aAAaK,QAAQ,iBAAkB,OAEnCnM,OAAOqE,QAAUC,GACjBtE,OAAOsE,SAAS,CAAEF,IAAKE,EAAU2H,KAAM,EAAGC,SAAU,mB,iBC3QXE,EAAOC,QAAgJ,SAASC,GAAG,SAAS1H,EAAE2H,GAAG,GAAGC,EAAED,GAAG,OAAOC,EAAED,GAAGF,QAAQ,IAAI7K,EAAEgL,EAAED,GAAG,CAACF,QAAQ,GAAGnD,GAAGqD,EAAEE,QAAO,GAAI,OAAOH,EAAEC,GAAGlE,KAAK7G,EAAE6K,QAAQ7K,EAAEA,EAAE6K,QAAQzH,GAAGpD,EAAEiL,QAAO,EAAGjL,EAAE6K,QAAQ,IAAIG,EAAE,GAAG,OAAO5H,EAAE8H,EAAEJ,EAAE1H,EAAE+H,EAAEH,EAAE5H,EAAEgI,EAAE,GAAGhI,EAAE,GAAlM,CAAsM,CAAC,SAAS0H,EAAE1H,EAAE4H,GAAG,aAAkE,IAAWK,EAAhE,SAAWP,GAAG,OAAOA,GAAGA,EAAEQ,WAAWR,EAAE,CAAC,QAAUA,GAAgBC,CAAPC,EAAE,IAAUF,EAAED,QAAQQ,EAAW,SAAG,SAASP,EAAE1H,GAA6E0H,EAAED,QAA5E,SAAWC,GAAG,IAAI1H,SAAS0H,EAAE,OAAO,MAAMA,IAAI,UAAU1H,GAAG,YAAYA,KAAgB,SAAS0H,EAAE1H,EAAE4H,GAAG,aAAa,SAASD,EAAED,GAAG,OAAOA,GAAGA,EAAEQ,WAAWR,EAAE,CAAC,QAAUA,GAAGS,OAAOC,eAAepI,EAAE,aAAa,CAACK,OAAM,IAAK,IAAW4H,EAAEN,EAAPC,EAAE,IAAiBS,EAAEV,EAAPC,EAAE,IAAUU,EAAEV,EAAE,GAA0jC5H,EAAW,QAAhkC,WAAW,GAAG,oBAAoB5E,OAAO,CAAC,IAAuCwM,EAAE,CAACnD,QAAQ,IAAIkD,EAAE,CAACrI,OAAO,GAAGiJ,UAAU,EAAEC,KAAKF,EAAEG,YAAY7L,GAAE,EAAGqL,EAAW,UAAG,WAAWL,EAAEnD,QAAQ9H,SAAQ,SAAS+K,GAAGE,EAAEF,GAAGgB,aAA7J,KAAM,CAAC,SAAS,SAAS,QAAoJ/L,SAAQ,SAAS+K,GAAG,OAAO3H,iBAAiB2H,EAAE9K,MAAKxB,OAAOuN,kBAAkB5I,iBAAiB,oBAAmB,WAAW,IAAI4I,iBAAiB/L,GAAGgM,QAAQpL,SAASC,KAAK,CAACoL,YAAW,EAAGC,WAAU,EAAGC,SAAQ,OAAO,IAAIC,EAAE,SAAStB,GAAG,GAAG,iBAAiBA,EAAE,CAAC,IAAI1H,EAAE,GAAG+G,MAAMtD,KAAKjG,SAASe,iBAAiBmJ,IAAI,OAAOE,EAAEnD,QAAQjB,QAAQkE,IAAI,EAAEE,EAAEF,GAAGuB,SAASjJ,GAAG4H,EAAEF,IAAG,EAAGW,EAAW,SAAGrI,EAAE2H,GAAGC,EAAEnD,QAAQM,KAAK2C,IAAIE,EAAEF,KAAK,OAAOsB,EAAE1J,OAAO,SAASoI,GAAG,QAAG,IAASA,EAAE,OAAOC,EAAErI,OAAO,IAAIU,EAAE,SAAS0H,GAAG,MAAM,iBAAiBA,GAAG,MAAM,CAAC,MAAM,QAAQ,SAAS,QAAQ/K,QAAQqD,EAAE0H,GAAG,SAAS1H,GAAG,OAAO2H,EAAErI,OAAOU,GAAG0H,GAAG,SAASE,GAAG,OAAO5H,EAAE0H,EAAEE,IAAID,EAAErI,OAAOsI,GAAGF,EAAEE,GAAG,OAAOD,EAAErI,QAAQ0J,EAAET,UAAU,SAASb,GAAG,MAAM,iBAAiBA,GAAGA,GAAG,GAAGA,GAAG,EAAEC,EAAEY,UAAUb,EAAEC,EAAEY,WAAWS,EAAER,KAAK,SAASd,GAAG,MAAM,mBAAmBA,EAAEC,EAAEa,KAAKd,EAAEC,EAAEa,MAAMQ,EAAEE,GAAG,SAASxB,GAAG,OAAOC,EAAEa,KAAKd,EAAEC,IAAIqB,EAAE1J,OAAO,GAAG0J,GAAiBjB,IAAK,SAASL,EAAE1H,GAAG,aAA2GmI,OAAOC,eAAepI,EAAE,aAAa,CAACK,OAAM,IAAK,IAAIsH,EAAE,WAAW,SAASD,EAAEA,EAAE1H,GAAG,IAAI,IAAI4H,EAAE,EAAEA,EAAE5H,EAAExD,OAAOoL,IAAI,CAAC,IAAID,EAAE3H,EAAE4H,GAAGD,EAAEwB,WAAWxB,EAAEwB,aAAY,EAAGxB,EAAEyB,cAAa,EAAG,UAAUzB,IAAIA,EAAE0B,UAAS,GAAIlB,OAAOC,eAAeV,EAAEC,EAAE1K,IAAI0K,IAAI,OAAO,SAAS3H,EAAE4H,EAAED,GAAG,OAAOC,GAAGF,EAAE1H,EAAEuD,UAAUqE,GAAGD,GAAGD,EAAE1H,EAAE2H,GAAG3H,GAA7O,GAAmPpD,EAAE,WAAW,SAAS8K,EAAE1H,EAAE2H,IAAla,SAAWD,EAAE1H,GAAG,KAAK0H,aAAa1H,GAAG,MAAM,IAAIsJ,UAAU,sCAA4W1B,CAAE9M,KAAK4M,GAAG5M,KAAKyO,QAAQ5B,EAAE7M,KAAKmO,SAASjJ,EAAElF,KAAK0O,QAAQ,GAAG1O,KAAK2O,SAAS,CAACC,MAAM,GAAGC,KAAK,IAAI7O,KAAK8O,QAAQ,CAACF,MAAM,GAAGC,KAAK,IAAI,OAAOhC,EAAED,EAAE,CAAC,CAACzK,IAAI,QAAQoD,MAAM,WAAW,IAAIqH,EAAE5M,KAAK,OAAOA,KAAKmO,SAAStM,SAAQ,SAASqD,GAAG,IAAI4H,EAAEF,EAAE6B,QAAQf,KAAKxI,EAAE0H,EAAE6B,SAAS5B,EAAED,EAAE8B,QAAQhG,QAAQxD,GAAGpD,EAAE+K,GAAG,EAAUqB,GAAGpB,GAAGhL,EAAZgL,IAAIhL,IAAc8K,EAAE8B,QAAQzE,KAAK/E,GAAG0H,EAAEmC,KAAK,QAAQ7J,IAAIgJ,IAAItB,EAAE8B,QAAQM,OAAOnC,EAAE,GAAGD,EAAEmC,KAAK,OAAO7J,OAAMlF,OAAO,CAACmC,IAAI,KAAKoD,MAAM,SAASqH,EAAE1H,GAAG,OAAOlF,KAAK2O,SAAS/B,GAAG3C,KAAK/E,GAAGlF,OAAO,CAACmC,IAAI,OAAOoD,MAAM,SAASqH,EAAE1H,GAAG,OAAOlF,KAAK8O,QAAQlC,GAAGqC,QAAQ/J,GAAGlF,OAAO,CAACmC,IAAI,OAAOoD,MAAM,SAASqH,EAAE1H,GAAG,KAAKlF,KAAK8O,QAAQlC,GAAGlL,QAAQ1B,KAAK8O,QAAQlC,GAAGsC,KAAhBlP,CAAsBkF,GAAG,IAAI,IAAI4H,EAAE9M,KAAK2O,SAAS/B,GAAGlL,SAASoL,GAAG,GAAG9M,KAAK2O,SAAS/B,GAAGE,GAAG5H,GAAG,OAAOlF,SAAS4M,EAAttB,GAA2tB1H,EAAW,QAAE,SAAS0H,EAAE1H,GAAG,OAAO,IAAIpD,EAAE8K,EAAE1H,KAAK,SAAS0H,EAAE1H,GAAG,aAAyTmI,OAAOC,eAAepI,EAAE,aAAa,CAACK,OAAM,IAAKL,EAAEyI,WAA/V,SAAWf,EAAE1H,GAAG,IAAI4H,EAAEF,EAAEnI,wBAAwBoI,EAAEC,EAAEpI,IAAI5C,EAAEgL,EAAEqC,MAAMhC,EAAEL,EAAE9E,OAAOkG,EAAEpB,EAAEP,KAAKgB,EAAET,EAAEsC,MAAM5B,EAAEV,EAAEuC,OAAOpC,EAAKE,EAALF,EAAS3M,OAAOgP,WAAWpB,EAA3BjB,EAA+B3M,OAAO2H,YAAY4E,EAAlDI,EAAsDnL,EAAGyN,EAAKrK,EAAEuI,UAAUF,EAAjBgC,EAAqBrK,EAAEuI,UAAUD,EAAG,OAAOP,EAAI/H,EAAEV,OAAOE,IAAI6K,GAAKtC,EAAI/H,EAAEV,OAAO2K,MAAMI,GAAKtC,EAAI/H,EAAEV,OAAOwD,OAAOuH,GAAKtC,EAAI/H,EAAEV,OAAO+H,KAAKgD,IAAqE,SAAS3C,EAAE1H,IAAG,SAAUA,GAAG,IAAI4H,EAAE,iBAAiB5H,GAAGA,GAAGA,EAAEmI,SAASA,QAAQnI,EAAE0H,EAAED,QAAQG,IAAInE,KAAKzD,EAAE,WAAW,OAAOlF,KAAlB,KAA4B,SAAS4M,EAAE1H,EAAE4H,GAAG,IAAID,EAAEC,EAAE,GAAGhL,EAAE,iBAAiB0N,MAAMA,MAAMA,KAAKnC,SAASA,QAAQmC,KAAKrC,EAAEN,GAAG/K,GAAG2N,SAAS,cAATA,GAA0B7C,EAAED,QAAQQ,GAAG,SAASP,EAAE1H,EAAE4H,GAA81B,IAAIhL,EAAEgL,EAAE,GAAGK,EAAEL,EAAE,GAAGoB,EAAEpB,EAAE,IAAIS,EAAE,sBAAsBC,EAAEnG,KAAKC,IAAI2F,EAAE5F,KAAKqI,IAAI9C,EAAED,QAAr6B,SAAWC,EAAE1H,EAAE4H,GAAG,SAASD,EAAE3H,GAAG,IAAI4H,EAAEzH,EAAEwH,EAAEG,EAAE,OAAO3H,EAAE2H,OAAE,EAAO2C,EAAEzK,EAAE0K,EAAEhD,EAAEiD,MAAMhD,EAAEC,GAAG,SAASyC,EAAE3C,GAAG,OAAO+C,EAAE/C,EAAEkD,EAAEC,WAAWC,EAAE9K,GAAG+K,EAAEpD,EAAED,GAAGgD,EAA0D,SAASM,EAAEtD,GAAG,IAAIE,EAAEF,EAAEuD,EAAQ,YAAO,IAASA,GAAGrD,GAAG5H,GAAG4H,EAAE,GAAGsD,GAAlCxD,EAAE+C,GAAsCU,EAAE,SAASL,IAAI,IAAIpD,EAAEO,IAAI,OAAO+C,EAAEtD,GAAGM,EAAEN,QAAQkD,EAAEC,WAAWC,EAAtL,SAAWpD,GAAG,IAAgB9K,EAAEoD,GAAZ0H,EAAEuD,GAAc,OAAOC,EAAEnD,EAAEnL,EAAEuO,GAAvBzD,EAAE+C,IAA0B7N,EAAkIwO,CAAE1D,KAAK,SAASM,EAAEN,GAAG,OAAOkD,OAAE,EAAOS,GAAGlL,EAAEwH,EAAED,IAAIvH,EAAE2H,OAAE,EAAO4C,GAAuG,SAASY,IAAI,IAAI5D,EAAEO,IAAIL,EAAEoD,EAAEtD,GAAG,GAAGvH,EAAEoL,UAAUzD,EAAEhN,KAAKmQ,EAAEvD,EAAEE,EAAE,CAAC,QAAG,IAASgD,EAAE,OAAOP,EAAEY,GAAG,GAAGC,EAAE,OAAON,EAAEC,WAAWC,EAAE9K,GAAG2H,EAAEsD,GAAG,YAAO,IAASL,IAAIA,EAAEC,WAAWC,EAAE9K,IAAI0K,EAAE,IAAIvK,EAAE2H,EAAEqD,EAAET,EAAEE,EAAEK,EAAER,EAAE,EAAEM,GAAE,EAAGG,GAAE,EAAGG,GAAE,EAAG,GAAG,mBAAmB3D,EAAE,MAAM,IAAI4B,UAAUjB,GAAG,OAAOrI,EAAEgJ,EAAEhJ,IAAI,EAAEpD,EAAEgL,KAAKmD,IAAInD,EAAE4D,QAAwBL,GAAhBD,EAAE,YAAYtD,GAAMU,EAAEU,EAAEpB,EAAE6D,UAAU,EAAEzL,GAAGmL,EAAEE,EAAE,aAAazD,IAAIA,EAAE8D,SAASL,GAAGC,EAAEK,OAA3c,gBAAa,IAASf,GAAGgB,aAAahB,GAAGH,EAAE,EAAEtK,EAAE8K,EAAEnD,EAAE8C,OAAE,GAA+ZU,EAAEO,MAA1Z,WAAa,YAAO,IAASjB,EAAEF,EAAE1C,EAAEC,MAA+XqD,IAAuF,SAAS5D,EAAE1H,EAAE4H,GAAG,IAAID,EAAEC,EAAE,GAAqCF,EAAED,QAAlC,WAAW,OAAOE,EAAEmE,KAAKC,QAAoB,SAASrE,EAAE1H,EAAE4H,GAAuM,IAAIhL,EAAEgL,EAAE,GAAGK,EAAEL,EAAE,GAAGoB,EAAE,sBAAsBtB,EAAED,QAAhP,SAAWC,EAAE1H,EAAE4H,GAAG,IAAID,GAAE,EAAGU,GAAE,EAAG,GAAG,mBAAmBX,EAAE,MAAM,IAAI4B,UAAUN,GAAG,OAAOf,EAAEL,KAAKD,EAAE,YAAYC,IAAIA,EAAE4D,QAAQ7D,EAAEU,EAAE,aAAaT,IAAIA,EAAE8D,SAASrD,GAAGzL,EAAE8K,EAAE1H,EAAE,CAACwL,QAAQ7D,EAAE8D,QAAQzL,EAAE0L,SAASrD,MAA2D,SAASX,EAAE1H,GAA0B0H,EAAED,QAAzB,SAAWC,GAAG,OAAOA,O,0DCGp+J,IAEIjM,EAAQ,CACVuQ,IAAK,CACHC,KAAM,CAACC,QACPC,QAAS,OAEXC,KAAM,CACJH,KAAM,CAAC9D,OAAQkE,OAAQH,QACvBC,QAAS,GAEXG,OAAQ,CACNL,KAAM,CAAC9D,OAAQkE,OAAQH,QACvBC,QAAS,GAEXI,IAAK,CACHN,KAAM,CAACO,SACPL,SAAS,GAEXM,UAAW,CACTR,KAAM,CAACC,QACPC,QAAS,OAEXO,YAAa,CACXT,KAAM,CAACC,OAAQ5I,MAAO6E,QACtBgE,QAAS,WAAc,MAAO,KAEhCQ,WAAY,CACVV,KAAM,CAAC9D,QACPgE,QAAS,WAAc,MAAO,MAM9BS,EAAkB,SAAUC,EAAOC,GAGrC,GAFiB1F,SAASyF,IAET,EACf,OAAOA,EACH,GAAoB,iBAAVA,EACd,OAAO,EAGT,IAAIE,EAAoBC,IACpBC,EAAeJ,EAAMV,SAAW,EAEpC,IAAI,IAAIe,KAAKL,EAAO,CAClB,IAAIM,EAAa/F,SAAS8F,GACtBE,EAAmBP,EAAMM,GACzBE,EAAgBjG,SAASgG,GAE1BE,MAAMH,IAAeG,MAAMD,IAIRP,GAAeK,GAAcA,EAAaJ,IAG9DA,EAAoBI,EACpBF,EAAeG,GAInB,OAAOH,GAGLM,EAAY,CACd9R,MAAOA,EAEPO,KAAM,WACJ,MAAO,CACLwR,eAAgB,EAChBC,cAAe,IAInBC,QAAS,WACP,IAAIC,EAAS7S,KAEbA,KAAK8S,WAAU,WACbD,EAAOE,iBAINzS,QACDA,OAAO2E,iBAAiB,SAAUjF,KAAK+S,cAI3CC,QAAS,WACP,IAAIH,EAAS7S,KAEbA,KAAK8S,WAAU,WACbD,EAAOE,kBAIXE,cAAe,WACV3S,QACDA,OAAO4S,oBAAoB,SAAUlT,KAAK+S,cAI9CI,QAAS,CAGPJ,YAAa,WACX,IAAIK,EAAsBpT,KAAKgS,YAE/BhS,KAAKgS,aAAe1R,OAASA,OAAOgP,WAAa,OAAS4C,IAKvDkB,IAAwBpT,KAAKgS,cAIhChS,KAAKqT,wBAAwBrT,KAAKgS,aAElChS,KAAKsT,uBAAuBtT,KAAKgS,eAGnCsB,uBAAwB,SAAgCtB,GACtDhS,KAAK2S,cAAgBb,EAAgB9R,KAAKwR,OAAQQ,IAGpDqB,wBAAyB,SAAiCrB,GACxD,IAAIuB,EAAazB,EAAgB9R,KAAKsR,KAAMU,GAG5CuB,EAAalM,KAAKC,IAAI,EAAGiK,OAAOgC,IAAe,GAE/CvT,KAAK0S,eAAiBa,GAGxBC,6BAA8B,WAC5B,IAEIC,EAAU,GACVC,EAAa1T,KAAK2T,OAAOtC,SAAW,GAIf,IAAtBqC,EAAWhS,QAAgBgS,EAAW,GAAGE,kBAA0D,oBAAtCF,EAAW,GAAGE,iBAAiB1C,MAC7FwC,EAAaA,EAAW,GAAGE,iBAAiBhL,UAI9C,IAAK,IAAI9G,EAAI,EAAG+R,EAAe,EAAG/R,EAAI4R,EAAWhS,OAAQI,IAAK+R,IAG5D,GAAIH,EAAW5R,GAAGoP,IAAlB,CAOA,IAAI4C,EAAcD,EAtBP7T,KAsB6B0S,eAEpCe,EAAQK,KACVL,EAAQK,GAAe,IAGzBL,EAAQK,GAAa7J,KAAKyJ,EAAW5R,SAZnC+R,IAeJ,OAAOJ,IAIXM,OAAQ,SAAgBC,GACtB,IAAInB,EAAS7S,KAETiU,EAA4BjU,KAAKwT,+BAEjCU,EADuB5H,SAAStM,KAAK2S,iBAAwC,EAArB3S,KAAK2S,cACd3S,KAAkB,cAAI,KAAQA,KAAK2S,cAElFwB,EAAc,CAChBC,UAAW,aACXC,eAAgB,cAChBjF,MAAS,IAAMpP,KAAK0S,eAAkB,IACtC4B,OAAQ,sBACRC,gBAAiBL,GAGfT,EAAUQ,EAA0B1S,KAAI,SAAUqH,EAAUL,GAE9D,OAAOyL,EAAcnB,EAAOlB,UAAW,CACrCxP,IAAKoG,EAAQ,IAAM0L,EAA0BvS,OAC7C6F,MAAOsL,EAAOpB,IAAM0C,EAAc,KAClCK,MAAO3B,EAAOjB,YACd6C,MAAO5B,EAAOhB,YACbjJ,MAGD8L,EAAiB,CACnBC,QAAS,CAAC,cAAe,cAAe,QACxCC,WAAa,IAAMV,GAIrB,OAAOF,EACLhU,KAAKkR,IACLlR,KAAKyR,IAAM,CAAElK,MAAOmN,GAAmB,KACvCjB,KAKFoB,EAAS,aAEbA,EAAOC,QAAU,SAAUC,EAAKtG,GAC1BoG,EAAOG,YAIRvG,GAAWA,EAAQwG,KACpBF,EAAItC,UAAUhE,EAAQwG,KAAMxC,GAE5BsC,EAAItC,UA9NY,UA8NaA,KAIX,oBAAXnS,QAA0BA,OAAOyU,KAC1CzU,OAAOyU,IAAIlU,IAAIgU,GAGjB","file":"8047.a56ca8274e0248258536.js","sourcesContent":["/**\n *\n * DESCRIPTION:\n * A helper class to load and instantiate Vue Components. It can be used in two ways either as a \"typed-component\" or an \"untyped-component\".\n *\n * A typed-component is instantiated by supplying a data-vue-component attribute with ONE (and only one) key to a vue-component from the window.vuecr.\n * This vue-component will then be loaded and instantiated as the root Vue app. This is used when the markup of the vue-component determines the markup to be rendered.\n *\n * An untyped-component is instantiated by NOT supplying a data-vue-component attribute. An untyped component is used\n * when you want to create an empty vue app that applies to some markup rendered from the backend. This markup can then utilize Vue syntax to render data,\n * as well as Vue component tags to instantiate any vue components supplied in the data-vue-component-dependencies attribute.\n *\n * ARGS:\n * No specific args, but any arguments will be passed directly to the instantiated app.\n * */\nimport { createApp, reactive } from 'vue';\nimport VueMasonry from 'vue-masonry-css';\n\nexport default class VueComponentLoader {\n constructor(elem, args, callback) {\n this.appInstance = null;\n this.state = reactive(args); // make state reactive\n\n const vueComponent = elem.getAttribute('data-vue-component');\n const state = this.state;\n if (vueComponent) {\n window.vuecr.loadComponentClass(vueComponent)\n .then((VueComponent) => {\n VueComponent.props = ['state']; // Define the prop\n this.appInstance = createApp(VueComponent, { state }); // Pass the prop when creating the app\n this.appInstance.use(VueMasonry);\n this.appInstance.mount(elem);\n if (callback) callback();\n });\n } else {\n const createUntypedApp = (deps = {}) => {\n this.appInstance = createApp({\n data() { return { state: this.state }; },\n components: deps,\n });\n this.appInstance.mount(elem);\n };\n\n const depsAttr = elem.getAttribute('data-vue-component-dependencies');\n const componentDependencies = depsAttr ? depsAttr.split(',').map((cd) => cd.trim()) : [];\n\n if (componentDependencies.length > 0) {\n window.vuecr.loadComponentClasses(componentDependencies)\n .then((result) => {\n const deps = {};\n componentDependencies.forEach((cd, i) => {\n deps[cd.replace('-', '')] = result[i];\n });\n createUntypedApp(deps);\n });\n } else {\n createUntypedApp();\n }\n }\n\n this._maskedHelpers = {\n getAppInstance: () => this.appInstance,\n setData: (data) => {\n for (const key in data) {\n this.state[key] = data[key]; // Vue automatically triggers re-render\n }\n },\n };\n }\n\n getAppInstance() {\n return this._maskedHelpers.getAppInstance();\n }\n\n setData(data) {\n this._maskedHelpers.setData(data);\n }\n}\n","import VueComponentLoader from '../components/vue-component-loader';\nimport { Swiper, Navigation } from 'swiper';\nimport { throttle } from 'lodash';\nimport inView from 'in-view';\nimport SplitType from 'split-type';\nSwiper.use([Navigation]);\n\nexport default class CalendarPage {\n constructor(elem) {\n this.elem = elem;\n this.calendarTimeline = this.elem.querySelector('.calendar-page__timeline.swiper-container');\n let hasGridView = null;\n\n document.body.classList.add('calendar-page-nav');\n const initializeGridView = function () {\n if (hasGridView) {\n return;\n }\n\n hasGridView = true;\n };\n\n initializeGridView();\n\n this.calendarTimelineOptions = {\n loop: false,\n slidesPerView: 'auto',\n freeMode: true,\n speed: 750,\n direction: 'vertical',\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n breakpoints: {\n 992: {\n direction: 'horizontal',\n },\n },\n };\n\n let calendarTimelineSwiper;\n if (this.calendarTimeline) {\n calendarTimelineSwiper = new Swiper(this.calendarTimeline, this.calendarTimelineOptions);\n }\n\n const filterToggle = document.querySelectorAll('.top-navigation__toolbar__home-link');\n const menu = elem.querySelector('.calendar-page__menu');\n const filterRadios = elem.querySelectorAll('[name=\"filter\"]');\n const layoutRadios = elem.querySelectorAll('[name=\"display\"]');\n const categories = elem.querySelectorAll('[data-category]');\n const ensembles = elem.querySelectorAll('[data-ensemble]');\n const searchField = elem.querySelector('[data-search]');\n const touringArtists = elem.querySelector('[data-touring-artists]');\n const mainContent = elem.querySelector('[data-main-content]');\n const suggestedSearch = elem.querySelector('[data-suggested-search]');\n const clickableMonths = elem.querySelectorAll('[data-year-month-link]');\n\n clickableMonths.forEach(month => month.onclick = () => {\n const area = elem.querySelector(`[data-year-month-area=\"${month.dataset.yearMonthLink}\"]`);\n if (area) {\n const offset = area.getBoundingClientRect().top + window.scrollY;\n window.scrollTo(0, offset - (currentFilter.listView ? 120 : 170));\n }\n });\n\n filterToggle.forEach(toggle => {\n if (toggle.hasAttribute('data-toggle-filter')) {\n toggle.addEventListener('click', (e) => {\n const currentMenu = document.querySelector('.calendar-page__menu');\n e.preventDefault();\n currentMenu.classList.toggle('calendar-page__menu--open');\n document.body.classList.toggle('filter-open');\n });\n }\n });\n\n elem.querySelector('[data-clear-filter]').onclick = () => {\n filterRadios.forEach(x => x.checked = false);\n searchField.value = '';\n suggestedSearch.innerText = '';\n filterAndUpdateEvents();\n };\n\n const currentFilter = {\n category: null,\n ensemble: null,\n touringArtists: false,\n listView: false,\n query: '',\n };\n\n layoutRadios.forEach(x =>\n x.addEventListener('change', () => {\n currentFilter.listView = x.value === 'list';\n mainContent.classList.toggle('calendar-page__main-content--list-view', currentFilter.listView);\n mainContent.classList.toggle('calendar-page__main-content--grid-view', !currentFilter.listView);\n updateEvents(activeEntries);\n addInViewListener();\n }),\n );\n\n filterRadios.forEach(x => x.addEventListener('change', x => {\n throttledUpdate();\n searchField.value = '';\n }));\n\n const throttledSearch = throttle(search, 300);\n const throttledUpdate = throttle(filterAndUpdateEvents, 300);\n\n searchField.addEventListener('keyup', ({ key }) => {\n if ((key === 'Tab' || key === 'Enter') && suggestedSearch.innerText) {\n searchField.value = suggestedSearch.innerText;\n throttledUpdate();\n }\n });\n\n function search() {\n if (searchField.value.length >= 3) {\n filterRadios.forEach(checkbox => {\n checkbox.checked = false;\n });\n suggestedSearch.innerText = getRecommendedSearch(searchField.value);\n throttledUpdate();\n } else {\n suggestedSearch.innerText = '';\n if (searchField.value.length === 0) {\n throttledUpdate();\n }\n }\n }\n\n\n searchField.addEventListener('input', () => {\n throttledSearch();\n });\n\n function getRecommendedSearch(query) {\n const matchQuery = query.toLowerCase();\n\n let title = '';\n\n allEntries.forEach(block => {\n block.forEach(entry => {\n if (!title) {\n const searchableContent = entry.entryType === 'event' ? entry.title?.toLowerCase() : entry.headline?.toLowerCase();\n if (searchableContent?.startsWith(matchQuery)) {\n title = getTitle(entry);\n }\n }\n });\n });\n\n return title;\n }\n\n function getTitle(entry) {\n return entry?.entryType === 'event' ? entry?.title : entry?.headline;\n }\n\n const vueAppData = {\n blocks: [],\n listView: false,\n };\n\n function generateFilter() {\n let startChar = '?';\n currentFilter.category = [...categories].find(x => x.checked)?.id;\n currentFilter.ensemble = [...ensembles].find(x => x.checked)?.value;\n currentFilter.touringArtists = touringArtists.checked;\n\n let query = '';\n if (currentFilter.category) { addToQuery(`CategoriesQuery=${currentFilter.category}`); }\n if (currentFilter.touringArtists) { addToQuery('TouringArtists=true'); }\n if (currentFilter.ensemble) { addToQuery(`Ensemble=${currentFilter.ensemble}`); }\n\n if (searchField.value.length >= 3) {\n currentFilter.query = searchField.value;\n addToQuery(`Query=${currentFilter.query}`);\n } else {\n currentFilter.query = '';\n }\n\n function addToQuery(string) {\n query += startChar + string;\n startChar = '&';\n }\n\n elem.classList.toggle('calendar-page--filter-active', query);\n window.history.replaceState(null, null, query ? location.pathname + query : location.pathname);\n }\n\n window.addEventListener('scroll', () => {\n if (document.body.classList.contains('calendar-page-nav')) {\n updateActiveMonth();\n updateScrollOffset();\n updateFixedTimeline();\n }\n });\n\n function updateFixedTimeline() {\n const classList = document.body.classList;\n if (classList.contains('calendar-page-nav--scrolled') && window.scrollY < 90) {\n classList.remove('calendar-page-nav--scrolled');\n }\n if (!classList.contains('calendar-page-nav--scrolled') && window.scrollY > 140) {\n classList.add('calendar-page-nav--scrolled');\n }\n }\n\n function updateScrollOffset() {\n const topSpace = Math.max(0, 80 - window.scrollY);\n menu.style.setProperty('--top-offset', topSpace + 'px');\n }\n\n const allMonthsElem = elem.querySelectorAll('.calendar-page__timeline__month-item');\n function updateMonths() {\n let activeMonths = new Set();\n activeEntries.forEach(block => {\n block.filter(x => x.entryType === 'event').forEach(entry => {\n activeMonths.add(entry.yearMonth);\n });\n });\n activeMonths = [...activeMonths];\n allMonthsElem.forEach(month => {\n const found = activeMonths.find(y => y === month.dataset.yearMonthLink);\n let active;\n if (found) { active = true; } else { active = false; }\n\n month.classList.toggle('calendar-page__timeline__month-item--with-events', active);\n });\n updateActiveMonth();\n }\n\n function updateActiveMonth() {\n const allAreas = elem.querySelectorAll('[data-year-month-area]');\n const firstElem = [...allAreas].find(x => {\n const rect = x.getBoundingClientRect();\n const top = rect.top;\n const bottom = rect.bottom;\n return top > 86 && bottom < window.innerHeight;\n });\n\n allMonthsElem.forEach(x => x.classList.remove('calendar-page__timeline__month-item--active'));\n\n if (!firstElem) { return; }\n\n const month = elem.querySelector(`[data-year-month-link=\"${firstElem.dataset.yearMonthArea}\"]`);\n\n if (!month) { return; }\n\n month.classList.add('calendar-page__timeline__month-item--active');\n\n const slide = month.closest('.swiper-slide');\n const parent = slide.parentNode;\n const index = Array.prototype.indexOf.call(parent.children, slide);\n calendarTimelineSwiper.slideTo(index);\n }\n\n function setEntryList(newEventsList) {\n vueAppData.blocks = newEventsList.slice();\n vueAppData.listView = currentFilter.listView;\n eventsListVueApp.setData(vueAppData);\n\n requestAnimationFrame(() => {\n const scrollTo = elem.offsetHeight - window.innerHeight;\n const calendarScroll = localStorage.getItem('calendarScroll');\n if (calendarScroll) {\n window.scrollTo({ top: parseInt(calendarScroll), left: 0, behavior: 'instant' });\n localStorage.setItem('calendarScroll', null);\n } else {\n if (window.scrollY > scrollTo) {\n window.scrollTo({ top: scrollTo, left: 0, behavior: 'instant' });\n }\n }\n });\n }\n\n const callback = element => {\n element.classList.add('in-view');\n };\n\n const listElem = elem.querySelector('[data-calendar-page__events-list]');\n const eventsListVueApp = new VueComponentLoader(listElem, {}, () => {\n const json = JSON.parse(listElem.dataset.componentArgs);\n allEntries = json.dynamicResults;\n filterAndUpdateEvents();\n });\n\n function filterAndUpdateEvents() {\n generateFilter();\n activeEntries = filterEntries();\n\n updateEvents(activeEntries);\n updateMonths();\n addInViewListener();\n }\n\n function addInViewListener() {\n requestAnimationFrame(() => {\n if (elem.querySelector('.event-card')) {\n inView.offset(50);\n inView('.calendar-page__main-content__blocks .sub-hero, .calendar-page__main-content__blocks .featured-events')\n .on('enter', callback);\n }\n new SplitType('.text-animation');\n });\n }\n\n let allEntries;\n let activeEntries;\n\n function filterEntries() {\n const filteredEntries = [];\n\n allEntries.forEach(block => {\n filteredEntries.push(block.filter(entry => filterEntry(entry)));\n });\n return filteredEntries;\n }\n\n function filterEntry(entry) {\n if (entry.entryType == 'event') {\n if (currentFilter.category && !entry.category?.find(x => x == currentFilter.category)) { return false; }\n\n if (currentFilter.ensemble && !entry.ensembles?.find(x => x == currentFilter.ensemble)) { return false; }\n\n if (currentFilter.touringArtists && !entry.isTouringArtist) { return false; }\n\n const searchQuery = (entry.title + entry.subTitle + entry.ensembleLabel + entry.venue).toLowerCase();\n if (currentFilter.query && !searchQuery.includes(currentFilter.query.toLowerCase())) { return false; }\n } else {\n if (currentFilter.category || currentFilter.touringArtists || currentFilter.query) { return false; }\n\n if (currentFilter.ensemble && entry.ensemble != currentFilter.ensemble) {\n return false;\n }\n }\n\n return true;\n }\n\n function updateEvents(blocks) {\n const nonEmptyBlocks = blocks.filter(x => x.length > 0);\n const conjoinedBlocks = [];\n const blocksWithState = [];\n let lastTypeEvent = false;\n let lastBlock = null;\n\n nonEmptyBlocks.forEach(block => {\n if (block[0].entryType !== 'event') {\n // Is feature block\n conjoinedBlocks.push([...block]);\n lastTypeEvent = false;\n } else {\n // Is event container\n // Last container is event\n if (lastTypeEvent) {\n block.forEach(entry => {\n lastBlock.push(entry);\n });\n } else {\n // Last container is feature block\n lastTypeEvent = true;\n lastBlock = [...block];\n conjoinedBlocks.push(lastBlock);\n }\n }\n });\n\n conjoinedBlocks.forEach(block => {\n const newBlocks = [];\n block.forEach(entry => {\n entry.listView = currentFilter.listView;\n if (entry.featuredEvents && entry.featuredEvents.length > 0 && !entry.featuredEvents[0].state) {\n entry.featuredEvents = entry.featuredEvents.map(y => {\n y.hideImages = true;\n y.hideYearMonthAreaTag = true;\n return { state: y };\n });\n }\n const entryWithState = { state: entry };\n entryWithState.state.onlyShowImageOnHighlighted = true;\n newBlocks.push(entryWithState);\n });\n blocksWithState.push(newBlocks);\n });\n setEntryList(blocksWithState);\n }\n }\n}\n","/*!\n * in-view 0.6.1 - Get notified when a DOM element enters or exits the viewport.\n * Copyright (c) 2016 Cam Wiegert - https://camwiegert.github.io/in-view\n * License: MIT\n */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.inView=e():t.inView=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}var i=n(2),o=r(i);t.exports=o[\"default\"]},function(t,e){function n(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)}t.exports=n},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(9),o=r(i),u=n(3),f=r(u),s=n(4),c=function(){if(\"undefined\"!=typeof window){var t=100,e=[\"scroll\",\"resize\",\"load\"],n={history:[]},r={offset:{},threshold:0,test:s.inViewport},i=(0,o[\"default\"])(function(){n.history.forEach(function(t){n[t].check()})},t);e.forEach(function(t){return addEventListener(t,i)}),window.MutationObserver&&addEventListener(\"DOMContentLoaded\",function(){new MutationObserver(i).observe(document.body,{attributes:!0,childList:!0,subtree:!0})});var u=function(t){if(\"string\"==typeof t){var e=[].slice.call(document.querySelectorAll(t));return n.history.indexOf(t)>-1?n[t].elements=e:(n[t]=(0,f[\"default\"])(e,r),n.history.push(t)),n[t]}};return u.offset=function(t){if(void 0===t)return r.offset;var e=function(t){return\"number\"==typeof t};return[\"top\",\"right\",\"bottom\",\"left\"].forEach(e(t)?function(e){return r.offset[e]=t}:function(n){return e(t[n])?r.offset[n]=t[n]:null}),r.offset},u.threshold=function(t){return\"number\"==typeof t&&t>=0&&t<=1?r.threshold=t:r.threshold},u.test=function(t){return\"function\"==typeof t?r.test=t:r.test},u.is=function(t){return r.test(t,r)},u.offset(0),u}};e[\"default\"]=c()},function(t,e){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(){function t(t,e){for(var n=0;n-1,o=n&&!i,u=!n&&i;o&&(t.current.push(e),t.emit(\"enter\",e)),u&&(t.current.splice(r,1),t.emit(\"exit\",e))}),this}},{key:\"on\",value:function(t,e){return this.handlers[t].push(e),this}},{key:\"once\",value:function(t,e){return this.singles[t].unshift(e),this}},{key:\"emit\",value:function(t,e){for(;this.singles[t].length;)this.singles[t].pop()(e);for(var n=this.handlers[t].length;--n>-1;)this.handlers[t][n](e);return this}}]),t}();e[\"default\"]=function(t,e){return new i(t,e)}},function(t,e){\"use strict\";function n(t,e){var n=t.getBoundingClientRect(),r=n.top,i=n.right,o=n.bottom,u=n.left,f=n.width,s=n.height,c={t:o,r:window.innerWidth-u,b:window.innerHeight-r,l:i},a={x:e.threshold*f,y:e.threshold*s};return c.t>e.offset.top+a.y&&c.r>e.offset.right+a.x&&c.b>e.offset.bottom+a.y&&c.l>e.offset.left+a.x}Object.defineProperty(e,\"__esModule\",{value:!0}),e.inViewport=n},function(t,e){(function(e){var n=\"object\"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,function(){return this}())},function(t,e,n){var r=n(5),i=\"object\"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function(\"return this\")();t.exports=o},function(t,e,n){function r(t,e,n){function r(e){var n=x,r=m;return x=m=void 0,E=e,w=t.apply(r,n)}function a(t){return E=t,j=setTimeout(h,e),M?r(t):w}function l(t){var n=t-O,r=t-E,i=e-n;return _?c(i,g-r):i}function d(t){var n=t-O,r=t-E;return void 0===O||n>=e||n<0||_&&r>=g}function h(){var t=o();return d(t)?p(t):void(j=setTimeout(h,l(t)))}function p(t){return j=void 0,T&&x?r(t):(x=m=void 0,w)}function v(){void 0!==j&&clearTimeout(j),E=0,x=O=m=j=void 0}function y(){return void 0===j?w:p(o())}function b(){var t=o(),n=d(t);if(x=arguments,m=this,O=t,n){if(void 0===j)return a(O);if(_)return j=setTimeout(h,e),r(O)}return void 0===j&&(j=setTimeout(h,e)),w}var x,m,g,w,j,O,E=0,M=!1,_=!1,T=!0;if(\"function\"!=typeof t)throw new TypeError(f);return e=u(e)||0,i(n)&&(M=!!n.leading,_=\"maxWait\"in n,g=_?s(u(n.maxWait)||0,e):g,T=\"trailing\"in n?!!n.trailing:T),b.cancel=v,b.flush=y,b}var i=n(1),o=n(8),u=n(10),f=\"Expected a function\",s=Math.max,c=Math.min;t.exports=r},function(t,e,n){var r=n(6),i=function(){return r.Date.now()};t.exports=i},function(t,e,n){function r(t,e,n){var r=!0,f=!0;if(\"function\"!=typeof t)throw new TypeError(u);return o(n)&&(r=\"leading\"in n?!!n.leading:r,f=\"trailing\"in n?!!n.trailing:f),i(t,e,{leading:r,maxWait:e,trailing:f})}var i=n(7),o=n(1),u=\"Expected a function\";t.exports=r},function(t,e){function n(t){return t}t.exports=n}])});","/*!\n * vue-masonry-css v1.0.3\n * https://github.com/paulcollett/vue-masonry-css\n * Released under the MIT License.\n */\n\n// the component name ``\n// can be overridden with `Vue.use(Masonry, { name: 'the-masonry' });`\nvar componentName = 'masonry';\n\nvar props = {\n tag: {\n type: [String],\n default: 'div'\n },\n cols: {\n type: [Object, Number, String],\n default: 2\n },\n gutter: {\n type: [Object, Number, String],\n default: 0\n },\n css: {\n type: [Boolean],\n default: true\n },\n columnTag: {\n type: [String],\n default: 'div'\n },\n columnClass: {\n type: [String, Array, Object],\n default: function () { return []; }\n },\n columnAttr: {\n type: [Object],\n default: function () { return ({}); }\n }\n};\n\n// Get the resulting value from `:col=` prop\n// based on the window width\nvar breakpointValue = function (mixed, windowWidth) {\n var valueAsNum = parseInt(mixed);\n\n if(valueAsNum > -1) {\n return mixed;\n }else if(typeof mixed !== 'object') {\n return 0;\n }\n\n var matchedBreakpoint = Infinity;\n var matchedValue = mixed.default || 0;\n\n for(var k in mixed) {\n var breakpoint = parseInt(k);\n var breakpointValRaw = mixed[breakpoint];\n var breakpointVal = parseInt(breakpointValRaw);\n\n if(isNaN(breakpoint) || isNaN(breakpointVal)) {\n continue;\n }\n\n var isNewBreakpoint = windowWidth <= breakpoint && breakpoint < matchedBreakpoint;\n\n if(isNewBreakpoint) {\n matchedBreakpoint = breakpoint;\n matchedValue = breakpointValRaw;\n }\n }\n\n return matchedValue;\n};\n\nvar component = {\n props: props,\n\n data: function data() {\n return {\n displayColumns: 2,\n displayGutter: 0\n }\n },\n\n mounted: function mounted() {\n var this$1 = this;\n\n this.$nextTick(function () {\n this$1.reCalculate();\n });\n\n // Bind resize handler to page\n if(window) {\n window.addEventListener('resize', this.reCalculate);\n }\n },\n\n updated: function updated() {\n var this$1 = this;\n\n this.$nextTick(function () {\n this$1.reCalculate();\n });\n },\n\n beforeDestroy: function beforeDestroy() {\n if(window) {\n window.removeEventListener('resize', this.reCalculate);\n }\n },\n\n methods: {\n // Recalculate how many columns to display based on window width\n // and the value of the passed `:cols=` prop\n reCalculate: function reCalculate() {\n var previousWindowWidth = this.windowWidth;\n\n this.windowWidth = (window ? window.innerWidth : null) || Infinity;\n\n // Window resize events get triggered on page height\n // change which when loading the page can result in multiple\n // needless calculations. We prevent this here.\n if(previousWindowWidth === this.windowWidth) {\n return;\n }\n\n this._reCalculateColumnCount(this.windowWidth);\n\n this._reCalculateGutterSize(this.windowWidth);\n },\n\n _reCalculateGutterSize: function _reCalculateGutterSize(windowWidth) {\n this.displayGutter = breakpointValue(this.gutter, windowWidth);\n },\n\n _reCalculateColumnCount: function _reCalculateColumnCount(windowWidth) {\n var newColumns = breakpointValue(this.cols, windowWidth);\n\n // Make sure we can return a valid value\n newColumns = Math.max(1, Number(newColumns) || 0);\n\n this.displayColumns = newColumns;\n },\n\n _getChildItemsInColumnsArray: function _getChildItemsInColumnsArray() {\n var this$1 = this;\n\n var columns = [];\n var childItems = this.$slots.default || [];\n\n // This component does not work with a child ..yet,\n // so for now we think it may be helpful to ignore until we can find a way for support\n if(childItems.length === 1 && childItems[0].componentOptions && childItems[0].componentOptions.tag == 'transition-group') {\n childItems = childItems[0].componentOptions.children;\n }\n\n // Loop through child elements\n for (var i = 0, visibleItemI = 0; i < childItems.length; i++, visibleItemI++) {\n // skip Vue elements without tags, which includes\n // whitespace elements and also plain text\n if(!childItems[i].tag) {\n visibleItemI--;\n\n continue;\n }\n\n // Get the column index the child item will end up in\n var columnIndex = visibleItemI % this$1.displayColumns;\n\n if(!columns[columnIndex]) {\n columns[columnIndex] = [];\n }\n\n columns[columnIndex].push(childItems[i]);\n }\n\n return columns;\n }\n },\n\n render: function render(createElement) {\n var this$1 = this;\n\n var columnsContainingChildren = this._getChildItemsInColumnsArray();\n var isGutterSizeUnitless = parseInt(this.displayGutter) === this.displayGutter * 1;\n var gutterSizeWithUnit = isGutterSizeUnitless ? ((this.displayGutter) + \"px\") : this.displayGutter;\n\n var columnStyle = {\n boxSizing: 'border-box',\n backgroundClip: 'padding-box',\n width: ((100 / this.displayColumns) + \"%\"),\n border: '0 solid transparent',\n borderLeftWidth: gutterSizeWithUnit\n };\n\n var columns = columnsContainingChildren.map(function (children, index) {\n /// Create column element and inject the children\n return createElement(this$1.columnTag, {\n key: index + '-' + columnsContainingChildren.length,\n style: this$1.css ? columnStyle : null,\n class: this$1.columnClass,\n attrs: this$1.columnAttr\n }, children); // specify child items here\n });\n\n var containerStyle = {\n display: ['-webkit-box', '-ms-flexbox', 'flex'],\n marginLeft: (\"-\" + gutterSizeWithUnit)\n };\n\n // Return wrapper with columns\n return createElement(\n this.tag, // tag name\n this.css ? { style: containerStyle } : null, // element options\n columns // column vue elements\n );\n }\n};\n\nvar Plugin = function () {};\n\nPlugin.install = function (Vue, options) {\n if (Plugin.installed) {\n return;\n }\n\n if(options && options.name) {\n Vue.component(options.name, component);\n } else {\n Vue.component(componentName, component);\n }\n};\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(Plugin);\n}\n\nexport default Plugin;\n"],"sourceRoot":""}