{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./static/js/utils/constants.js","webpack:///./static/js/components/menu.js","webpack:///./static/js/components/share-modal.js","webpack:///./static/js/components/links.js","webpack:///./static/js/components/video-modal.js","webpack:///./static/js/components/in-page-scroll.js","webpack:///./static/js/components/in-page-nav.js","webpack:///./static/js/components/svg-inject.js","webpack:///./static/js/components/table-of-contents.js","webpack:///./static/js/components/accordion.js","webpack:///./static/js/components/scroll-up-nav-mobile.js","webpack:///./static/js/app.js","webpack:///./static/js/utils/on.js","webpack:///./static/js/utils/onDocumentReady.js","webpack:///./static/js/utils/StateMachine.js","webpack:///./static/js/utils/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","2","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","KEY_CODES","ARROW_LEFT","ARROW_RIGHT","ESCAPE","TAB","SPACE","ENTER","Menu","classname","this","body","querySelector","logo","menu","menuToggle","closeButton","menuIsOpen","focusTrap","listeners","bindEvents","addEventListener","toggle","close","resize","removeAttribute","classList","add","activeClass","focus","on","keydown","disableBodyScroll","activate","remove","forEach","off","enableBodyScroll","deactivate","open","keyCode","innerWidth","replace","plainClassname","ShareModal","shareModal","shareModalToggle","querySelectorAll","shareModalIsOpen","triggerElement","focusableEls","Array","from","firstFocusableEl","lastFocusableEl","activeElement","preventDefault","shiftKey","handleBackwardTab","handleForwardTab","Links","initLinks","allLinks","link","host","location","gsap","defaults","duration","ease","SHOW","autoAlpha","pointerEvents","HIDE","VideoModal","element","playButton","modal","embed","iframe","tabIndex","iframeSrc","set","closeAnim","openAnim","tl","timeline","to","zIndex","clearProps","registerPlugin","ScrollToPlugin","InPageScroll","nav","scrolledDown","links","handleClick","keyup","linkHash","hash","scrollTo","y","offsetY","ScrollTrigger","InPageNav","selects","isMobile","init","checkExists","setInterval","children","trackScroll","backToTop","clearInterval","history","replaceState","href","split","parentElement","substr","section","getElementById","enter","id","pushState","scrollTrigger","trigger","start","end","onEnter","onEnterBack","onLeave","onLeaveBack","documentElement","top","behavior","matchMedia","opacity","yPercent","toggleActions","leave","delay","SVGInject","images","image","SVG_Inject","TableOfContents","articleInner","articleBody","headingArray","findHeadings","articleNavList","updateHeadingID","updateNavItem","getElementsByTagName","heading","sanitizedText","innerText","numHeadings","currentItem","newNavItem","navItemLink","innerHTML","navItemHref","Accordion","accordions","accordion","el","getAttribute","scrollUpNavMobile","handleScroll","lastScrollTop","scrollTop","currentScrollTop","scrollY","innerHeight","offsetHeight","pathname","includes","onDocumentReady","InjectSVG","program","then","ModalGallery","default","ToggleClass","HangPunctuation","Tables","SearchPage","SetActive","getElementsByClassName","map","GoogleMapsEmbed","jQuery","elementOrMultiple","listener","options","elements","isArray","removeEventListener","callback","readyState","once","StateMachine","initialState","stateMap","_state","_map","entries","reduce","acc","state","nextStates","Set","states","has","newState","validStates"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrBiB,EAAG,GAGAZ,EAAkB,GAQtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU8B,QAGnC,IAAIC,EAASH,EAAiB5B,GAAY,CACzCK,EAAGL,EACHgC,GAAG,EACHF,QAAS,IAUV,OANAhB,EAAQd,GAAUW,KAAKoB,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG/DK,EAAOC,GAAI,EAGJD,EAAOD,QAKfJ,EAAoBO,EAAI,SAAuBhC,GAC9C,IAAIiC,EAAW,GAKXC,EAAqBvB,EAAgBX,GACzC,GAA0B,IAAvBkC,EAGF,GAAGA,EACFD,EAASrB,KAAKsB,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBvB,EAAgBX,GAAW,CAACqC,EAASC,MAE3DL,EAASrB,KAAKsB,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbnB,EAAoBoB,IACvBL,EAAOM,aAAa,QAASrB,EAAoBoB,IAElDL,EAAOO,IA1DV,SAAwB/C,GACvB,OAAOyB,EAAoBuB,EAAI,IAAM,CAAC,EAAI,mBAAmB,EAAI,gBAAgB,EAAI,cAAc,EAAI,cAAchD,IAAUA,GAAW,MAyD3HiD,CAAejD,GAG5B,IAAIkD,EAAQ,IAAIC,MAChBZ,EAAmB,SAAUa,GAE5BZ,EAAOa,QAAUb,EAAOc,OAAS,KACjCC,aAAaX,GACb,IAAIY,EAAQ7C,EAAgBX,GAC5B,GAAa,IAAVwD,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOb,IACpDG,EAAMW,QAAU,iBAAmB7D,EAAU,cAAgByD,EAAY,KAAOE,EAAU,IAC1FT,EAAMY,KAAO,iBACbZ,EAAMQ,KAAOD,EACbP,EAAMa,QAAUJ,EAChBH,EAAM,GAAGN,GAEVvC,EAAgBX,QAAWgE,IAG7B,IAAIpB,EAAUqB,YAAW,WACxB1B,EAAiB,CAAEmB,KAAM,UAAWE,OAAQpB,MAC1C,MACHA,EAAOa,QAAUb,EAAOc,OAASf,EACjCE,SAASyB,KAAKC,YAAY3B,GAG5B,OAAOJ,QAAQgC,IAAInC,IAIpBR,EAAoB4C,EAAIxD,EAGxBY,EAAoB6C,EAAI3C,EAGxBF,EAAoB8C,EAAI,SAAS1C,EAASiC,EAAMU,GAC3C/C,EAAoBgD,EAAE5C,EAASiC,IAClCvD,OAAOmE,eAAe7C,EAASiC,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE/C,EAAoBoD,EAAI,SAAShD,GACX,oBAAXiD,QAA0BA,OAAOC,aAC1CxE,OAAOmE,eAAe7C,EAASiD,OAAOC,YAAa,CAAEC,MAAO,WAE7DzE,OAAOmE,eAAe7C,EAAS,aAAc,CAAEmD,OAAO,KAQvDvD,EAAoBwD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvD,EAAoBuD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7E,OAAO8E,OAAO,MAGvB,GAFA5D,EAAoBoD,EAAEO,GACtB7E,OAAOmE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvD,EAAoB8C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3D,EAAoB+D,EAAI,SAAS1D,GAChC,IAAI0C,EAAS1C,GAAUA,EAAOqD,WAC7B,WAAwB,OAAOrD,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAL,EAAoB8C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/C,EAAoBgD,EAAI,SAASgB,EAAQC,GAAY,OAAOnF,OAAOC,UAAUC,eAAeC,KAAK+E,EAAQC,IAGzGjE,EAAoBuB,EAAI,uCAGxBvB,EAAoBkE,GAAK,SAASC,GAA2B,MAApBC,QAAQ3C,MAAM0C,GAAYA,GAEnE,IAAIE,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAWlF,KAAK2E,KAAKO,GAC5CA,EAAWlF,KAAOf,EAClBiG,EAAaA,EAAWG,QACxB,IAAI,IAAI7F,EAAI,EAAGA,EAAI0F,EAAWxF,OAAQF,IAAKP,EAAqBiG,EAAW1F,IAC3E,IAAIU,EAAsBkF,EAI1BhF,EAAgBJ,KAAK,CAAC,IAAI,IAEnBM,I,+EC5NT,kCAAO,IAAMgF,EAAY,CACvBC,WAAY,GACZC,YAAa,GACbC,OAAQ,GACRC,IAAK,EACLC,MAAO,GACPC,MAAO,K,0SCgFMC,E,WAhFb,WAAYC,I,4FAAW,SACrBC,KAAKD,UAAYA,EAEjBC,KAAKC,KAAOnE,SAASoE,cAAc,QACnCF,KAAKG,KAAOrE,SAASoE,cAAc,mBACnCF,KAAKI,KAAOtE,SAASoE,cAAT,UAA0BF,KAAKD,YAC3CC,KAAKK,WAAavE,SAASoE,cAAT,UAA0BF,KAAKD,UAA/B,YAClBC,KAAKM,YAAcN,KAAKI,KAAKF,cAAV,UAA2BF,KAAKD,UAAhC,YACnBC,KAAKO,YAAa,EAClBP,KAAKQ,UAAYA,IAAUR,KAAKI,MAEhCJ,KAAKS,UAAY,GAEjBT,KAAKU,a,4DAkBM,WACXV,KAAKK,WAAWM,iBAAiB,SAAS,kBAAM,EAAKC,YACrDZ,KAAKM,YAAYK,iBAAiB,SAAS,kBAAM,EAAKE,WACtDzB,OAAOuB,iBAAiB,UAAU,kBAAM,EAAKG,c,6BAI7Cd,KAAKI,KAAKW,gBAAgB,eAC1Bf,KAAKC,KAAKe,UAAUC,IAAIjB,KAAKkB,aAC7BlB,KAAKO,YAAa,EAClBP,KAAKM,YAAYa,QACjBnB,KAAKS,UAAUxG,KAAKmH,YAAGtF,SAAU,UAAWkE,KAAKqB,QAAQzC,KAAKoB,QAC9DsB,YAAkBtB,KAAKI,MACvBJ,KAAKQ,UAAUe,a,8BAIfvB,KAAKI,KAAKjE,aAAa,eAAe,GACtC6D,KAAKC,KAAKe,UAAUQ,OAAOxB,KAAKkB,aAChClB,KAAKK,WAAWc,QAChBnB,KAAKO,YAAa,EAClBP,KAAKS,UAAUgB,SAAQ,SAAAC,GACrBA,OAEFC,YAAiB3B,KAAKI,MACtBJ,KAAKQ,UAAUoB,e,+BAIX5B,KAAKO,WACPP,KAAKa,QAELb,KAAK6B,S,8BAIDxG,GACFA,EAAEyG,UAAYvC,IAAUG,QAC1BM,KAAKa,U,+BAKHzB,OAAO2C,YAAc,KAAO/B,KAAKO,YACnCP,KAAKa,U,qCAnDP,OAAOb,KAAKD,UAAUiC,QAAQ,QAAS,M,kCAIvC,gBAAUhC,KAAKiC,eAAf,gB,+hBCoFWC,E,WAjHb,WAAYnC,I,4FAAW,SACrBC,KAAKD,UAAYA,EAEjBC,KAAKC,KAAOnE,SAASoE,cAAc,QACnCF,KAAKmC,WAAarG,SAASoE,cAAT,UAA0BF,KAAKD,YACjDC,KAAKoC,iBAAmBtG,SAASuG,iBAAT,UAA6BrC,KAAKD,UAAlC,YACxBC,KAAKsC,kBAAmB,EACxBtC,KAAKuC,eAELvC,KAAKwC,aAAL,YACKC,MAAMC,KAAK1C,KAAKmC,WAAWE,iBAAiB,OADjD,EAEKI,MAAMC,KAAK1C,KAAKmC,WAAWE,iBAAiB,aAGjDrC,KAAK2C,iBAAmB3C,KAAKwC,aAAa,GAC1CxC,KAAK4C,gBAAkB5C,KAAKwC,aAAaxC,KAAKwC,aAAa7I,OAAS,GACpEqG,KAAKS,UAAY,GAEjBT,KAAKU,a,4DAkBM,WACXV,KAAKoC,iBAAiBX,SAAQ,SAAAb,GAAM,OAAIA,EAAOD,iBAAiB,SAAS,SAAAtF,GAAC,OAAI,EAAKuF,OAAOvF,W,2BAGvFA,GACH2E,KAAKuC,eAAiBlH,EAAE4B,OACxB+C,KAAKmC,WAAWpB,gBAAgB,eAChCf,KAAKC,KAAKe,UAAUC,IAAIjB,KAAKkB,aAC7BlB,KAAKsC,kBAAmB,EACxBtC,KAAKmC,WAAWhB,QAChBnB,KAAKS,UAAUxG,KAAKmH,YAAGtF,SAAU,UAAWkE,KAAKqB,QAAQzC,KAAKoB,QAC9DsB,YAAkBtB,KAAKmC,c,8BAIvBnC,KAAKmC,WAAWhG,aAAa,eAAe,GAC5C6D,KAAKC,KAAKe,UAAUQ,OAAOxB,KAAKkB,aAChClB,KAAKuC,eAAepB,QACpBnB,KAAKsC,kBAAmB,EACxBtC,KAAKS,UAAUgB,SAAQ,SAAAC,GACrBA,OAEFC,YAAiB3B,KAAKmC,c,6BAGjB9G,GACD2E,KAAKsC,iBACPtC,KAAKa,QAELb,KAAK6B,KAAKxG,K,wCAIIA,GAEdS,SAAS+G,gBAAkB7C,KAAK2C,kBAChC7G,SAAS+G,gBAAkB7C,KAAKmC,aAEhC9G,EAAEyH,iBACF9C,KAAK4C,gBAAgBzB,W,uCAIR9F,GACXS,SAAS+G,gBAAkB7C,KAAK4C,kBAClCvH,EAAEyH,iBACF9C,KAAK2C,iBAAiBxB,W,8BAIlB9F,GACN,OAAQA,EAAEyG,SACR,KAAKvC,IAAUG,OACbM,KAAKa,QACL,MAGF,KAAKtB,IAAUI,IACb,GAAiC,IAA7BK,KAAKwC,aAAa7I,OAAc,CAClC0B,EAAEyH,iBACF,MAEEzH,EAAE0H,SACJ/C,KAAKgD,kBAAkB3H,GAEvB2E,KAAKiD,iBAAiB5H,M,qCAxE5B,OAAO2E,KAAKD,UAAUiC,QAAQ,QAAS,M,kCAIvC,gBAAUhC,KAAKiC,eAAf,gB,0MClBWiB,E,WAnBb,c,4FAAc,SACZlD,KAAKmD,Y,2DAKL,IAAMC,EAAWX,MAAMC,KAAK5G,SAASuG,iBAAiB,MAElDe,EAASzJ,OAAS,GACpByJ,EAAS3B,SAAQ,SAAA4B,GACXA,EAAKC,OAASlE,OAAOmE,SAASD,OAChCD,EAAKlH,aAAa,MAAO,uBACzBkH,EAAKlH,aAAa,SAAU,mB,8MCNtCqH,IAAKC,SAAS,CACZC,SAAU,GACVC,KAAM,iBAGR,IAAMC,EAAO,CAAEC,UAAW,EAAGC,cAAe,WACtCC,EAAO,CAAEF,UAAW,EAAGC,cAAe,QAwE7BE,E,WArEb,WAAYC,I,4FAAS,SACnBjE,KAAKkE,WAAaD,EAAQ/D,cAAc,mBACpCF,KAAKkE,aACPlE,KAAKmE,MAAQF,EAAQ/D,cAAc,mBAEnCF,KAAKoE,MAAQpE,KAAKmE,MAAMjE,cAAc,mBAEtCF,KAAKqE,OAASrE,KAAKmE,MAAMjE,cAAc,UACvCF,KAAKqE,OAAOC,SAAW,EACvBtE,KAAKuE,UAAYvE,KAAKqE,OAAOjI,IAE7B4D,KAAKM,YAAcN,KAAKmE,MAAMjE,cAAc,oBAC5CF,KAAKQ,UAAYA,IAAUR,KAAKmE,OAEhCnE,KAAKS,UAAY,GAEjBT,KAAKU,aACL8C,IAAKgB,IAAI,CAACxE,KAAKmE,MAAOnE,KAAKoE,OAAQL,I,4DAI1B,WACX/D,KAAKkE,WAAWvD,iBAAiB,SAAS,kBAAM,EAAKkB,UACrD7B,KAAKM,YAAYK,iBAAiB,SAAS,kBAAM,EAAKE,a,8BAItDc,YAAiB3B,KAAKmE,OACtBnE,KAAKyE,UAAUzE,KAAKmE,MAAOnE,KAAKoE,OAChCpE,KAAKS,UAAUgB,SAAQ,SAAAC,GACrBA,OAEF1B,KAAKqE,OAAOjI,IAAM,GAClB4D,KAAKQ,UAAUoB,e,6BAIfN,YAAkBtB,KAAKmE,OACvBnE,KAAKM,YAAYa,QACjBnB,KAAKS,UAAUxG,KAAKmH,YAAGtF,SAAU,UAAWkE,KAAKqB,QAAQzC,KAAKoB,QAC9DA,KAAKqE,OAAOjI,IAAM4D,KAAKuE,UACvBvE,KAAKqE,OAAOjI,KAAO,cACnB4D,KAAK0E,SAAS1E,KAAKmE,MAAOnE,KAAKoE,S,+BAGxBD,EAAOC,GAAO,WACrBpE,KAAK2E,GAAKnB,IAAKoB,WACf5E,KAAK2E,GACFE,GAAGV,EAAOP,GACVY,IAAI,CAAC,OAAQ,wCAAyC,WAAY,CAAEM,OAAQ,GAAK,KACjFD,GAAGT,EAAOR,GACV7J,MAAK,kBAAM,EAAKyG,UAAUe,gB,gCAGrB4C,EAAOC,GACfpE,KAAK2E,GAAKnB,IAAKoB,WACf5E,KAAK2E,GACFE,GAAGT,EAAOL,GACVc,GAAGV,EAAOJ,EAAM,KAChBS,IAAI,CAAC,OAAQ,wCAAyC,WAAY,CAAEO,WAAY,U,8BAG7E1J,GACFA,EAAEyG,UAAYvC,IAAUG,QAC1BM,KAAKa,a,8MC5EX2C,IAAKwB,eAAeC,KACpBzB,IAAKC,SAAS,CACZC,SAAU,GACVC,KAAM,iB,IA8COuB,E,WA1Cb,c,4FAAc,SACZlF,KAAKmF,IAAMrJ,SAASoE,cAAc,mBAClCF,KAAKoF,cAAe,EAEhBpF,KAAKmF,MACPnF,KAAKqF,MAAQ5C,MAAMC,KAAK1C,KAAKmF,IAAI9C,iBAAiB,MAClDrC,KAAKU,c,4DAII,WACXV,KAAKqF,MAAM5D,SAAQ,SAAA4B,GACjBA,EAAK1C,iBAAiB,QAAS,EAAK2E,YAAY1G,KAAK,IACrD9C,SAAS6E,iBAAiB,QAAS,EAAK4E,MAAM3G,KAAK,S,kCAI3CvD,GACVA,EAAEyH,iBACF,IAAM0C,EAAWnK,EAAE4B,OAAOwI,KACpBd,EAAKnB,IAAKoB,WAEZxF,OAAO2C,YAAc,IACvB4C,EAAGE,GAAGzF,OAAQ,CAAEsG,SAAU,CAAEC,EAAGH,EAAUI,QAAS,MAElDjB,EAAGE,GAAGzF,OAAQ,CAAEsG,SAAU,CAAEC,EAAGH,EAAUI,QAAS,Q,4BAIhDvK,GACAA,EAAEyG,UAAYvC,IAAUI,KAC1BK,KAAKqF,MAAM5D,SAAQ,SAAA4B,GACjB,GAAIvH,SAAS+G,gBAAkBQ,EAAM,CACnC,IAAMmC,EAAWnC,EAAKoC,KAEtBjC,IAAKqB,GAAGzF,OAAQ,CAAEsG,SAAUF,a,+MC1CtChC,IAAKwB,eAAeC,KACpBzB,IAAKwB,eAAea,KACpBrC,IAAKC,SAAS,CACZC,SAAU,GACVC,KAAM,iB,IA+IOmC,E,WA3Ib,c,4FAAc,SACZ9F,KAAKmF,IAAMrJ,SAASoE,cAAc,gBAClCF,KAAK+F,QAAUjK,SAASuG,iBAAiB,kBACzCrC,KAAKgG,UAAW,EAEZhG,KAAKmF,MACPnF,KAAKiG,OACLjG,KAAKU,c,sDAIF,WACCwF,EAAcC,aAAY,WAC1B,EAAKhB,IAAIiB,SAASzM,SACpB,EAAK0M,eACA,EAAKlB,IAAMrJ,SAASoE,cAAc,uCACrC,EAAKoG,YAEPC,cAAcL,MAEf,O,mCAGQ,WACXlG,KAAKqF,MAAQ5C,MAAMC,KAAK1C,KAAKmF,IAAI9C,iBAAiB,MAClDrC,KAAKqF,MAAM5D,SAAQ,SAAA4B,GACjBA,EAAK1C,iBAAiB,QAAS,EAAK2E,YAAY1G,KAAK,OAEvDQ,OAAOuB,iBAAiB,YAAY,WAClC6F,QAAQC,aAAa,GAAI,GAAzB,UAAgCrH,OAAOmE,SAASmD,KAAKC,MAAM,KAAK,U,kCAIxDtL,GACMA,EAAE4B,OAAO2J,cACjB5F,UAAUC,IAAI,sB,oCAGV,WACEwB,MAAMC,KAAK1C,KAAKmF,IAAI9C,iBAAiB,MAC7CZ,SAAQ,SAAA4B,GACZ,IAAMoC,EAAOpC,EAAKoC,KAAKoB,OAAO,GACxBC,EAAUhL,SAASiL,eAAetB,GAElCuB,EAAQ,WACRF,GACErB,IAASqB,EAAQG,KACnB5D,EAAKuD,cAAc5F,UAAUC,IAAI,oBAE7B7B,OAAOoH,QAAQU,UACjB9H,OAAOoH,QAAQU,UAAU,KAAM,KAA/B,WAAyCzB,IAEzCrG,OAAOmE,SAASkC,KAAhB,WAA2BA,KAkBnCjC,IAAKgB,IAAIsC,EAAS,CAChBK,cAAe,CACbC,QAASN,EACTO,MAAO,YACPC,IAAK,UACLC,QAASP,EACTQ,YAAaR,EACbS,QAnBU,YACP,EAAKtC,IAAMrJ,SAASoE,cAAc,wCACrC,EAAKoG,aAkBLoB,YAdc,WACZjC,IAASqB,EAAQG,IACnB5D,EAAKuD,cAAc5F,UAAUQ,OAAO,6B,kCAmBlB1F,SAASiL,eAAe,0BAEhCpG,iBAAiB,SAAS,kBACxC7E,SAAS6L,gBAAgBjC,SAAS,CAChCkC,IAAK,EACLC,SAAU,gB,qCAMdhC,IAAciC,WAAW,CAEvB,sBAAuB,WACrBtE,IAAKgB,IAAI,eAAgB,CAAEuD,QAAS,EAAGjE,cAAe,OAAQkE,SAAU,IAExExE,IAAKqB,GAAG,eAAgB,CACtBsC,cAAe,CACbC,QAAS,gBACTa,cAAe,4BACfZ,MAAO,WACPC,IAAK,cAEPU,SAAU,IAGZ,IAAMhB,EAAQ,kBAAMxD,IAAKgB,IAAI,eAAgB,CAAEuD,QAAS,EAAGjE,cAAe,aACpEoE,EAAQ,kBACZ1E,IAAKgB,IAAI,eAAgB,CAAEuD,QAAS,EAAGjE,cAAe,OAAQqE,MAAO,MAEvE3E,IAAKqB,GAAG,eAAgB,CACtBsC,cAAe,CACbC,QAAS,eACTa,cAAe,sBACfV,QAASP,EACTQ,YAAaR,EACbS,QAASS,EACTR,YAAaQ,EACbb,MAAO,WACPC,IAAK,iBAMX,sBAAuB,WACrB9D,IAAKgB,IAAI,CAAC,eAAgB,iBAAkB,CAC1CO,WAAY,gB,4NClIPqD,E,WAXb,c,4FAAc,SACZpI,KAAKqI,OAAS5F,MAAMC,KAAK5G,SAASuG,iBAAiB,mBAEnDrC,KAAKiG,O,sDAILjG,KAAKqI,OAAO5G,SAAQ,SAAA6G,GAAK,OAAIC,IAAWD,W,0MC2C7BE,E,WApDb,c,4FAAc,SACZxI,KAAKyI,aAAe3M,SAASoE,cAAc,wBAC3CF,KAAK0I,YAAc5M,SAASoE,cAAc,0BAE1C,IAAMyI,EAAe3I,KAAK4I,aAAa5I,KAAK0I,aAExCC,EAAahP,OAAS,IACxBqG,KAAKmF,IAAMrJ,SAASoE,cAAc,sBAClCF,KAAKmF,IAAInE,UAAUC,IAAI,8BAEvBjB,KAAK6I,eAAiB/M,SAASoE,cAAc,8BAG/CF,KAAK8I,gBAAgBH,GACrB3I,KAAK+I,cAAc/I,KAAK6I,eAAgBF,G,4DAG7BD,GAEX,OADA1I,KAAK2I,aAAeD,EAAYM,qBAAqB,MAC9ChJ,KAAK2I,e,sCAGEA,GACdA,EAAalH,SAAQ,SAAAwH,GACnB,IACMC,EADcD,EAAQE,UAAUnH,QAAQ,YAAa,IACzBA,QAAQ,gBAAiB,KAC3DiH,EAAQ9M,aAAa,KAAM+M,Q,oCAIjBL,EAAgBF,GAE5B,IADA,IAAMS,EAAcT,EAAahP,OACxB0P,EAAc,EAAGA,EAAcD,EAAaC,IAAe,CAClE,IAAMC,EAAaxN,SAASC,cAAc,MAC1CuN,EAAWnN,aAAa,QAAS,0BAEjC,IAAMoN,EAAczN,SAASC,cAAc,KAC3CwN,EAAYpN,aAAa,QAAS,0BAElCoN,EAAYC,UAAYb,EAAaU,GAAaF,UAClD,IACMD,EADcP,EAAaU,GAAaF,UAAUnH,QAAQ,YAAa,IAC3CA,QAAQ,gBAAiB,KACrDyH,EAAc,IAAH,OAAOP,GAExBK,EAAYpN,aAAa,OAAQsN,GAEjCH,EAAW9L,YAAY+L,GACvBV,EAAerL,YAAY8L,S,0MC1BlBI,E,WArBb,aAAc,Y,4FAAA,SACZ1J,KAAK2J,WAAalH,MAAMC,KAAK5G,SAASuG,iBAAiB,0BAEnDrC,KAAK2J,WAAWhQ,OAAS,GAC3BqG,KAAK2J,WAAWlI,SAAQ,SAAAmI,GACEA,EAAU1J,cAAc,6BAChCS,iBAAiB,QAAS,EAAK2E,YAAY1G,KAAK,O,2DAK1DvD,GACV,IAAMwO,EAAKxO,EAAE4B,OAGF,SAFI4M,EAAGC,aAAa,iBAG3BD,EAAG1N,aAAa,gBAAiB,SACjC0N,EAAG1N,aAAa,gBAAiB,a,0MCoB1B4N,E,WArCb,c,4FAAc,SAEZ/J,KAAKgK,aADiB,G,4DAIXC,GAAe,WAC1BnO,SAAS6E,iBAAiB,UAAU,WAClC,EAAKuJ,UAAYpO,SAAS6L,gBAAgBuC,UAC1C,IAAMC,EAAmB/K,OAAOgL,SAAW,EAAKF,UAE5CC,EAAmBF,GAAsC,IAArBE,GAClCrO,SAASoE,cAAc,4BACzBpE,SAASoE,cAAc,QAAQc,UAAUQ,OAAO,0BAE9C1F,SAASoE,cAAc,qCACzBpE,SAASoE,cAAc,QAAQc,UAAUQ,OAAO,oCAG9CpC,OAAOiL,YAAcjL,OAAOgL,SAAWtO,SAASmE,KAAKqK,cACvDxO,SAASoE,cAAc,QAAQc,UAAUQ,OAAO,0BAChD1F,SAASoE,cAAc,QAAQc,UAAUQ,OAAO,oCAGjB,WAA7BpC,OAAOmE,SAASgH,UAChBnL,OAAOmE,SAASgH,SAASC,SAAS,WAElC1O,SAASoE,cAAc,QAAQc,UAAUC,IAAI,0BAC7CnF,SAASoE,cAAc,QAAQc,UAAUC,IAAI,oCAE7CnF,SAASoE,cAAc,QAAQc,UAAUC,IAAI,0BAInDgJ,EAAgBE,U,qXCZtBM,aAAgB,WACd,IAAIvH,EACJ,IAAIwH,EACJ,IAAIX,EAEAjO,SAASoE,cAAc,iBAAmBpE,SAASoE,cAAc,kBACnE,IAAIgF,EACJ,IAAIY,GAGFhK,SAASoE,cAAc,0BACzB,IAAIwJ,EAIF5N,SAASoE,cADM,cAEjB,IAAIJ,EAFa,cAKfhE,SAASoE,cADa,oBAExB,IAAIgC,EAFoB,mBAKtBpG,SAASuG,iBAAiB,oBAAoB1I,SAC/B8I,MAAMC,KAAK5G,SAASuG,iBAAiB,qBAC7CZ,SAAQ,SAAAkJ,GAAO,OAAI,IAAI3G,EAAW2G,MAGzC7O,SAASoE,cAAc,sBACzB,8BAAgF0K,MAAK,SAAAzP,GAEnF,IAAI0P,EADiB1P,EAAO2P,YAK5BhP,SAASoE,cAAc,qBACzB,8BAA+E0K,MAAK,SAAAzP,GAElF,IAAI4P,EADgB5P,EAAO2P,YAK3BhP,SAASoE,cAAc,kBACzB,8BAAsF0K,MACpF,SAAAzP,GAEE,IAAI6P,EADoB7P,EAAO2P,YAMjChP,SAASoE,cAAc,2BACzB,IAAIsI,EAGF1M,SAASoE,cAAc,oBACzB,8BAA4E0K,MAAK,SAAAzP,GAE/E,IAAI8P,EADW9P,EAAO2P,YAKtBhP,SAASoE,cAAc,eACzB,oDAA4E0K,MAAK,SAAAzP,GAE/E,IAAI+P,EADe/P,EAAO2P,YAK1BhP,SAASoE,cAAc,mBACzB,oDAA0E0K,MAAK,SAAAzP,GAC7E,IAAMgQ,EAAYhQ,EAAO2P,QACzB,EAAIhP,SAASsP,uBAAuB,kBAAkBC,KAAI,SAAAxB,GAAE,OAAI,IAAIsB,EAAUtB,SAI9E/N,SAASoE,cAAc,aACzB,8BAAwF0K,MACtF,SAAAzP,GAGE,IAAImQ,EAFoBnQ,EAAO2P,SAEXS,OAAO,oB,gCChFnC,IAwBenK,EAxBJ,SAACoK,EAAmBzO,EAAM0O,EAAUC,GAI7C,IAAIC,EAAWH,EAWf,OAVK/I,MAAMmJ,QAAQJ,KACjBG,EAAW,CAACH,IAGdG,EAASlK,SAAQ,SAAAoI,GACXA,GACFA,EAAGlJ,iBAAiB5D,EAAM0O,EAAUC,MAIjC,WACLC,EAASlK,SAAQ,SAAAoI,GACXA,GACFA,EAAGgC,oBAAoB9O,EAAM0O,EAAUC,QCzBhCjB,EARS,SAAAqB,GACM,YAAxBhQ,SAASiQ,WACXD,IAEAhQ,SAAS6E,iBAAiB,mBAAoBmL,EAAU,CAAEE,MAAM,K,s/BC8DrDC,E,WAnEb,WAAYC,EAAcC,I,4FAAU,SAKlCnM,KAAKoM,OAASF,EAMdlM,KAAKqM,KAAOzS,OAAO0S,QAAQH,GAAUI,QACnC,SAACC,EAAD,gBAAOC,EAAP,KAAcC,EAAd,Y,+VAAA,IACKF,EADL,KAEGC,EAAQ,IAAIE,IAAID,OAEnB,I,8DAsBoB,2BAARE,EAAQ,yBAARA,EAAQ,gBACtB,OAAO,IAAID,IAAIC,GAAQC,IAAI7M,KAAKoM,U,+BASzBU,GACP,IAAMC,EAAc/M,KAAKqM,KAAKrM,KAAKoM,QACnC,IAAKW,EACH,MAAM,IAAIvQ,MAAJ,6CAAgDwD,KAAKoM,SAGzDW,EAAYF,IAAIC,KAClB9M,KAAKoM,OAASU,K,4BA/BhB,OAAO9M,KAAKoM,Y,gCC/BhB","file":"app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"4\":\"hang-punctuation\",\"5\":\"modal-gallery\",\"6\":\"search-page\",\"7\":\"set-active\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/wp-content/themes/harvard-dce/dist/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([192,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export const KEY_CODES = {\n  ARROW_LEFT: 37,\n  ARROW_RIGHT: 39,\n  ESCAPE: 27,\n  TAB: 9,\n  SPACE: 32,\n  ENTER: 13,\n};\n","import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport focusTrap from 'focus-trap';\nimport { on } from '@src/utils';\nimport { KEY_CODES } from '@src/utils/constants';\n\nclass Menu {\n  constructor(classname) {\n    this.classname = classname;\n\n    this.body = document.querySelector('body');\n    this.logo = document.querySelector('.nav__logo-link');\n    this.menu = document.querySelector(`${this.classname}`);\n    this.menuToggle = document.querySelector(`${this.classname}-toggle`);\n    this.closeButton = this.menu.querySelector(`${this.classname}-toggle`);\n    this.menuIsOpen = false;\n    this.focusTrap = focusTrap(this.menu);\n\n    this.listeners = [];\n\n    this.bindEvents();\n  }\n\n  /**\n   * Returns the classname without the starting `.`\n   *\n   * @example\n   * this.classname = '.js--menu';\n   * // this.plainClassname === 'js--menu'\n   */\n  get plainClassname() {\n    return this.classname.replace(/^\\.*/g, '');\n  }\n\n  get activeClass() {\n    return `${this.plainClassname}-active`;\n  }\n\n  bindEvents() {\n    this.menuToggle.addEventListener('click', () => this.toggle());\n    this.closeButton.addEventListener('click', () => this.close());\n    window.addEventListener('resize', () => this.resize());\n  }\n\n  open() {\n    this.menu.removeAttribute('aria-hidden');\n    this.body.classList.add(this.activeClass);\n    this.menuIsOpen = true;\n    this.closeButton.focus();\n    this.listeners.push(on(document, 'keydown', this.keydown.bind(this)));\n    disableBodyScroll(this.menu);\n    this.focusTrap.activate();\n  }\n\n  close() {\n    this.menu.setAttribute('aria-hidden', true);\n    this.body.classList.remove(this.activeClass);\n    this.menuToggle.focus();\n    this.menuIsOpen = false;\n    this.listeners.forEach(off => {\n      off();\n    });\n    enableBodyScroll(this.menu);\n    this.focusTrap.deactivate();\n  }\n\n  toggle() {\n    if (this.menuIsOpen) {\n      this.close();\n    } else {\n      this.open();\n    }\n  }\n\n  keydown(e) {\n    if (e.keyCode === KEY_CODES.ESCAPE) {\n      this.close();\n    }\n  }\n\n  resize() {\n    if (window.innerWidth >= 767 && this.menuIsOpen) {\n      this.close();\n    }\n  }\n}\n\nexport default Menu;\n","import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { on } from '@src/utils';\nimport { KEY_CODES } from '@src/utils/constants';\n\nclass ShareModal {\n  constructor(classname) {\n    this.classname = classname;\n\n    this.body = document.querySelector('body');\n    this.shareModal = document.querySelector(`${this.classname}`);\n    this.shareModalToggle = document.querySelectorAll(`${this.classname}-toggle`);\n    this.shareModalIsOpen = false;\n    this.triggerElement;\n    // Set focusable elements\n    this.focusableEls = [\n      ...Array.from(this.shareModal.querySelectorAll('a')),\n      ...Array.from(this.shareModal.querySelectorAll('button')),\n    ];\n\n    this.firstFocusableEl = this.focusableEls[0];\n    this.lastFocusableEl = this.focusableEls[this.focusableEls.length - 1];\n    this.listeners = [];\n\n    this.bindEvents();\n  }\n\n  /**\n   * Returns the classname without the starting `.`\n   *\n   * @example\n   * this.classname = '.js--menu';\n   * // this.plainClassname === 'js--menu'\n   */\n  get plainClassname() {\n    return this.classname.replace(/^\\.*/g, '');\n  }\n\n  get activeClass() {\n    return `${this.plainClassname}-active`;\n  }\n\n  bindEvents() {\n    this.shareModalToggle.forEach(toggle => toggle.addEventListener('click', e => this.toggle(e)));\n  }\n\n  open(e) {\n    this.triggerElement = e.target;\n    this.shareModal.removeAttribute('aria-hidden');\n    this.body.classList.add(this.activeClass);\n    this.shareModalIsOpen = true;\n    this.shareModal.focus();\n    this.listeners.push(on(document, 'keydown', this.keydown.bind(this)));\n    disableBodyScroll(this.shareModal);\n  }\n\n  close() {\n    this.shareModal.setAttribute('aria-hidden', true);\n    this.body.classList.remove(this.activeClass);\n    this.triggerElement.focus();\n    this.shareModalIsOpen = false;\n    this.listeners.forEach(off => {\n      off();\n    });\n    enableBodyScroll(this.shareModal);\n  }\n\n  toggle(e) {\n    if (this.shareModalIsOpen) {\n      this.close();\n    } else {\n      this.open(e);\n    }\n  }\n\n  handleBackwardTab(e) {\n    if (\n      document.activeElement === this.firstFocusableEl ||\n      document.activeElement === this.shareModal\n    ) {\n      e.preventDefault();\n      this.lastFocusableEl.focus();\n    }\n  }\n\n  handleForwardTab(e) {\n    if (document.activeElement === this.lastFocusableEl) {\n      e.preventDefault();\n      this.firstFocusableEl.focus();\n    }\n  }\n\n  keydown(e) {\n    switch (e.keyCode) {\n      case KEY_CODES.ESCAPE: {\n        this.close();\n        break;\n      }\n\n      case KEY_CODES.TAB: {\n        if (this.focusableEls.length === 1) {\n          e.preventDefault();\n          break;\n        }\n        if (e.shiftKey) {\n          this.handleBackwardTab(e);\n        } else {\n          this.handleForwardTab(e);\n        }\n        break;\n      }\n\n      default: {\n        break;\n      }\n    }\n  }\n}\n\nexport default ShareModal;\n","class Links {\n  constructor() {\n    this.initLinks();\n  }\n\n  initLinks() {\n    // Sets target=\"_blank\" rel=\"noopener noreferrer\" on external links\n    const allLinks = Array.from(document.querySelectorAll('a'));\n\n    if (allLinks.length > 0) {\n      allLinks.forEach(link => {\n        if (link.host !== window.location.host) {\n          link.setAttribute('rel', 'noopener noreferrer');\n          link.setAttribute('target', '_blank');\n        }\n      });\n    }\n  }\n}\n\nexport default Links;\n","import gsap from 'gsap';\nimport focusTrap from 'focus-trap';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\n\nimport { on } from '@src/utils';\nimport { KEY_CODES } from '@src/utils/constants';\n\ngsap.defaults({\n  duration: 0.3,\n  ease: 'power3.inOut',\n});\n\nconst SHOW = { autoAlpha: 1, pointerEvents: 'initial' };\nconst HIDE = { autoAlpha: 0, pointerEvents: 'none' };\n\nclass VideoModal {\n  constructor(element) {\n    this.playButton = element.querySelector('.js-play-button');\n    if (this.playButton) {\n      this.modal = element.querySelector('.js-video-modal');\n\n      this.embed = this.modal.querySelector('.js-video-embed');\n\n      this.iframe = this.modal.querySelector('iframe');\n      this.iframe.tabIndex = 0;\n      this.iframeSrc = this.iframe.src;\n\n      this.closeButton = this.modal.querySelector('.js-close-button');\n      this.focusTrap = focusTrap(this.modal);\n\n      this.listeners = [];\n\n      this.bindEvents();\n      gsap.set([this.modal, this.embed], HIDE);\n    }\n  }\n\n  bindEvents() {\n    this.playButton.addEventListener('click', () => this.open());\n    this.closeButton.addEventListener('click', () => this.close());\n  }\n\n  close() {\n    enableBodyScroll(this.modal);\n    this.closeAnim(this.modal, this.embed);\n    this.listeners.forEach(off => {\n      off();\n    });\n    this.iframe.src = '';\n    this.focusTrap.deactivate();\n  }\n\n  open() {\n    disableBodyScroll(this.modal);\n    this.closeButton.focus();\n    this.listeners.push(on(document, 'keydown', this.keydown.bind(this)));\n    this.iframe.src = this.iframeSrc;\n    this.iframe.src += '&autoplay=1';\n    this.openAnim(this.modal, this.embed);\n  }\n\n  openAnim(modal, embed) {\n    this.tl = gsap.timeline();\n    this.tl\n      .to(modal, SHOW)\n      .set(['.nav', '.program-content__nav.js-page-nav-bar', '.footer'], { zIndex: 0 }, '<')\n      .to(embed, SHOW)\n      .call(() => this.focusTrap.activate());\n  }\n\n  closeAnim(modal, embed) {\n    this.tl = gsap.timeline();\n    this.tl\n      .to(embed, HIDE)\n      .to(modal, HIDE, '<')\n      .set(['.nav', '.program-content__nav.js-page-nav-bar', '.footer'], { clearProps: 'all' });\n  }\n\n  keydown(e) {\n    if (e.keyCode === KEY_CODES.ESCAPE) {\n      this.close();\n    }\n  }\n}\n\nexport default VideoModal;\n","import { gsap } from 'gsap';\nimport { ScrollToPlugin } from 'gsap/ScrollToPlugin';\nimport { KEY_CODES } from '@src/utils/constants';\n\ngsap.registerPlugin(ScrollToPlugin);\ngsap.defaults({\n  duration: 0.4,\n  ease: 'power2.inOut',\n});\n\nclass InPageScroll {\n  constructor() {\n    this.nav = document.querySelector('.js-page-nav-ul');\n    this.scrolledDown = false;\n\n    if (this.nav) {\n      this.links = Array.from(this.nav.querySelectorAll('a'));\n      this.bindEvents();\n    }\n  }\n\n  bindEvents() {\n    this.links.forEach(link => {\n      link.addEventListener('click', this.handleClick.bind(this));\n      document.addEventListener('keyup', this.keyup.bind(this));\n    });\n  }\n\n  handleClick(e) {\n    e.preventDefault();\n    const linkHash = e.target.hash;\n    const tl = gsap.timeline();\n\n    if (window.innerWidth >= 768) {\n      tl.to(window, { scrollTo: { y: linkHash, offsetY: 65 } });\n    } else {\n      tl.to(window, { scrollTo: { y: linkHash, offsetY: 10 } });\n    }\n  }\n\n  keyup(e) {\n    if (e.keyCode === KEY_CODES.TAB) {\n      this.links.forEach(link => {\n        if (document.activeElement === link) {\n          const linkHash = link.hash;\n\n          gsap.to(window, { scrollTo: linkHash });\n        }\n      });\n    }\n  }\n}\n\nexport default InPageScroll;\n","import { gsap } from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport { ScrollToPlugin } from 'gsap/ScrollToPlugin';\n\ngsap.registerPlugin(ScrollToPlugin);\ngsap.registerPlugin(ScrollTrigger);\ngsap.defaults({\n  duration: 0.4,\n  ease: 'power2.inOut',\n});\n\nclass InPageNav {\n  constructor() {\n    this.nav = document.querySelector('.js-page-nav');\n    this.selects = document.querySelectorAll('.js-set-active');\n    this.isMobile = true;\n\n    if (this.nav) {\n      this.init();\n      this.bindEvents();\n    }\n  }\n\n  init() {\n    const checkExists = setInterval(() => {\n      if (this.nav.children.length) {\n        this.trackScroll();\n        if ((this.nav = document.querySelector('.program-content__nav.js-page-nav'))) {\n          this.backToTop();\n        }\n        clearInterval(checkExists);\n      }\n    }, 100);\n  }\n\n  bindEvents() {\n    this.links = Array.from(this.nav.querySelectorAll('a'));\n    this.links.forEach(link => {\n      link.addEventListener('click', this.handleClick.bind(this));\n    });\n    window.addEventListener('popstate', () => {\n      history.replaceState({}, '', `${window.location.href.split('#')[0]}`);\n    });\n  }\n\n  handleClick(e) {\n    const navItem = e.target.parentElement;\n    navItem.classList.add('nav-item--active');\n  }\n\n  trackScroll() {\n    const links = Array.from(this.nav.querySelectorAll('a'));\n    links.forEach(link => {\n      const hash = link.hash.substr(1);\n      const section = document.getElementById(hash);\n\n      const enter = () => {\n        if (section) {\n          if (hash === section.id) {\n            link.parentElement.classList.add('nav-item--active');\n\n            if (window.history.pushState) {\n              window.history.pushState(null, null, `#${hash}`);\n            } else {\n              window.location.hash = `#${hash}`;\n            }\n          }\n        }\n      };\n\n      const leave = () => {\n        if ((this.nav = document.querySelector('.program-content__nav .js-page-nav'))) {\n          this.backToTop();\n        }\n      };\n\n      const leaveBack = () => {\n        if (hash === section.id) {\n          link.parentElement.classList.remove('nav-item--active');\n        }\n      };\n\n      gsap.set(section, {\n        scrollTrigger: {\n          trigger: section,\n          start: 'top 100px',\n          end: '75% 0px',\n          onEnter: enter,\n          onEnterBack: enter,\n          onLeave: leave,\n          onLeaveBack: leaveBack,\n        },\n      });\n    });\n  }\n\n  backToTop() {\n    const backToTopButton = document.getElementById('js-nav-back-to-top-cta');\n\n    backToTopButton.addEventListener('click', () =>\n      document.documentElement.scrollTo({\n        top: 0,\n        behavior: 'smooth',\n      }),\n    );\n  }\n\n  handleNavBar() {\n    ScrollTrigger.matchMedia({\n      // Desktop\n      '(min-width: 1200px)': () => {\n        gsap.set('.js-page-nav', { opacity: 0, pointerEvents: 'none', yPercent: 0 });\n\n        gsap.to('.js-page-nav', {\n          scrollTrigger: {\n            trigger: '.main#content',\n            toggleActions: 'play reverse play reverse',\n            start: 'top 75px',\n            end: 'bottom 85%',\n          },\n          yPercent: 0,\n        });\n\n        const enter = () => gsap.set('.js-page-nav', { opacity: 1, pointerEvents: 'initial' });\n        const leave = () =>\n          gsap.set('.js-page-nav', { opacity: 0, pointerEvents: 'none', delay: 0.4 });\n\n        gsap.to('.js-page-nav', {\n          scrollTrigger: {\n            trigger: 'main#content',\n            toggleActions: 'play none play none',\n            onEnter: enter,\n            onEnterBack: enter,\n            onLeave: leave,\n            onLeaveBack: leave,\n            start: 'top 75px',\n            end: 'bottom 85%',\n          },\n        });\n      },\n\n      // Small screens\n      '(max-width: 1070px)': () => {\n        gsap.set(['.js-page-nav', '.main#content'], {\n          clearProps: 'all',\n        });\n      },\n    });\n  }\n}\n\nexport default InPageNav;\n","import SVG_Inject from '@iconfu/svg-inject';\n\nclass SVGInject {\n  constructor() {\n    this.images = Array.from(document.querySelectorAll('.js-svg-inject'));\n\n    this.init();\n  }\n\n  init() {\n    this.images.forEach(image => SVG_Inject(image));\n  }\n}\n\nexport default SVGInject;\n","class TableOfContents {\n  constructor() {\n    this.articleInner = document.querySelector('.article-body__inner');\n    this.articleBody = document.querySelector('.article-body__content');\n\n    const headingArray = this.findHeadings(this.articleBody);\n\n    if (headingArray.length > 0) {\n      this.nav = document.querySelector('.article-body__nav');\n      this.nav.classList.add('article-body__nav--display');\n\n      this.articleNavList = document.querySelector('ul.article-body__nav-list');\n    }\n\n    this.updateHeadingID(headingArray);\n    this.updateNavItem(this.articleNavList, headingArray);\n  }\n\n  findHeadings(articleBody) {\n    this.headingArray = articleBody.getElementsByTagName('h2');\n    return this.headingArray;\n  }\n\n  updateHeadingID(headingArray) {\n    headingArray.forEach(heading => {\n      const headingText = heading.innerText.replace(/[^\\w\\s]+/g, '');\n      const sanitizedText = headingText.replace(/[^a-zA-Z0-9]/g, '-');\n      heading.setAttribute('id', sanitizedText);\n    });\n  }\n\n  updateNavItem(articleNavList, headingArray) {\n    const numHeadings = headingArray.length;\n    for (let currentItem = 0; currentItem < numHeadings; currentItem++) {\n      const newNavItem = document.createElement('li');\n      newNavItem.setAttribute('class', 'article-body__nav-item');\n\n      const navItemLink = document.createElement('a');\n      navItemLink.setAttribute('class', 'article-body__nav-link');\n\n      navItemLink.innerHTML = headingArray[currentItem].innerText;\n      const headingText = headingArray[currentItem].innerText.replace(/[^\\w\\s]+/g, '');\n      const sanitizedText = headingText.replace(/[^a-zA-Z0-9]/g, '-');\n      const navItemHref = `#${sanitizedText}`;\n\n      navItemLink.setAttribute('href', navItemHref);\n\n      newNavItem.appendChild(navItemLink);\n      articleNavList.appendChild(newNavItem);\n    }\n  }\n}\n\nexport default TableOfContents;\n","class Accordion {\n  constructor() {\n    this.accordions = Array.from(document.querySelectorAll('.dce-block__accordion'));\n\n    if (this.accordions.length > 0) {\n      this.accordions.forEach(accordion => {\n        const accordionToggle = accordion.querySelector('.accordion__toggle-button');\n        accordionToggle.addEventListener('click', this.handleClick.bind(this));\n      });\n    }\n  }\n\n  handleClick(e) {\n    const el = e.target;\n    const isOpen = el.getAttribute('aria-expanded');\n\n    isOpen === 'true'\n      ? el.setAttribute('aria-expanded', 'false')\n      : el.setAttribute('aria-expanded', 'true');\n  }\n}\n\nexport default Accordion;\n","class scrollUpNavMobile {\n  constructor() {\n    const lastScrollTop = 0;\n    this.handleScroll(lastScrollTop);\n  }\n\n  handleScroll(lastScrollTop) {\n    document.addEventListener('scroll', () => {\n      this.scrollTop = document.documentElement.scrollTop;\n      const currentScrollTop = window.scrollY || this.scrollTop;\n\n      if (currentScrollTop > lastScrollTop || currentScrollTop === 0) {\n        if (document.querySelector('.show-sticky-nav-mobile')) {\n          document.querySelector('body').classList.remove('show-sticky-nav-mobile');\n        }\n        if (document.querySelector('.show-sticky-nav-mobile-for-blog')) {\n          document.querySelector('body').classList.remove('show-sticky-nav-mobile-for-blog');\n        }\n      } else {\n        if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {\n          document.querySelector('body').classList.remove('show-sticky-nav-mobile');\n          document.querySelector('body').classList.remove('show-sticky-nav-mobile-for-blog');\n        } else {\n          if (\n            window.location.pathname !== '/blog/' &&\n            window.location.pathname.includes('/blog/')\n          ) {\n            document.querySelector('body').classList.add('show-sticky-nav-mobile');\n            document.querySelector('body').classList.add('show-sticky-nav-mobile-for-blog');\n          } else {\n            document.querySelector('body').classList.add('show-sticky-nav-mobile');\n          }\n        }\n      }\n      lastScrollTop = currentScrollTop;\n    });\n  }\n}\nexport default scrollUpNavMobile;\n","/* eslint-disable no-undef */\nimport 'core-js/stable';\n\n/* eslint-disable */\nimport LazySizes from 'lazysizes';\nimport Unveilhooks from 'lazysizes/plugins/unveilhooks/ls.unveilhooks';\n/* eslint-enable */\n\nimport { onDocumentReady } from './utils';\n\n// Components\nimport Menu from '@src/components/menu';\nimport ShareModal from '@src/components/share-modal';\nimport Links from '@src/components/links';\nimport VideoModal from '@src/components/video-modal';\nimport InPageScroll from '@src/components/in-page-scroll';\nimport InPageNav from '@src/components/in-page-nav';\nimport InjectSVG from '@src/components/svg-inject';\nimport TableOfContents from '@src/components/table-of-contents';\nimport Accordion from '@src/components/accordion';\nimport scrollUpNavMobile from '@src/components/scroll-up-nav-mobile';\n\nonDocumentReady(() => {\n  new Links();\n  new InjectSVG();\n  new scrollUpNavMobile();\n\n  if (document.querySelector('.js-page-nav') && document.querySelector('.js-page-nav')) {\n    new InPageScroll();\n    new InPageNav();\n  }\n\n  if (document.querySelector('.dce-block__accordion')) {\n    new Accordion();\n  }\n\n  const MENU_CLASS = '.js--menu';\n  if (document.querySelector(MENU_CLASS)) {\n    new Menu(MENU_CLASS);\n  }\n  const SHARE_MODAL_CLASS = '.js-share-modal';\n  if (document.querySelector(SHARE_MODAL_CLASS)) {\n    new ShareModal(SHARE_MODAL_CLASS);\n  }\n\n  if (document.querySelectorAll('.js-program-card').length) {\n    const programs = Array.from(document.querySelectorAll('.js-program-card'));\n    programs.forEach(program => new VideoModal(program));\n  }\n\n  if (document.querySelector('.js-modal-gallery')) {\n    import(/* webpackChunkName: \"modal-gallery\" */ '@src/components/modal-gallery').then(module => {\n      const ModalGallery = module.default;\n      new ModalGallery();\n    });\n  }\n\n  if (document.querySelector('.js-toggle-class')) {\n    import(/* webpackChunkName: \"modal-gallery\" */ '@src/components/toggle-class').then(module => {\n      const ToggleClass = module.default;\n      new ToggleClass();\n    });\n  }\n\n  if (document.querySelector('.js-hang-punc')) {\n    import(/* webpackChunkName: \"hang-punctuation\" */ '@src/components/hang-punctuation').then(\n      module => {\n        const HangPunctuation = module.default;\n        new HangPunctuation();\n      },\n    );\n  }\n\n  if (document.querySelector('.article-body__content')) {\n    new TableOfContents();\n  }\n\n  if (document.querySelector('.wp-block-table')) {\n    import(/* webpackChunkName: \"hang-punctuation\" */ '@src/components/tables').then(module => {\n      const Tables = module.default;\n      new Tables();\n    });\n  }\n\n  if (document.querySelector('.js-search')) {\n    import(/* webpackChunkName: \"search-page\" */ '@src/components/search-page').then(module => {\n      const SearchPage = module.default;\n      new SearchPage();\n    });\n  }\n\n  if (document.querySelector('.js-set-active')) {\n    import(/* webpackChunkName: \"set-active\" */ '@src/components/set-active').then(module => {\n      const SetActive = module.default;\n      [...document.getElementsByClassName('js-set-active')].map(el => new SetActive(el));\n    });\n  }\n\n  if (document.querySelector('.acf-map')) {\n    import(/* webpackChunkNAme: \"google-maps-embed\" */ '@src/components/google-maps-embed').then(\n      module => {\n        const GoogleMapsEmbed = module.default;\n        /* eslint-disable */\n        new GoogleMapsEmbed(jQuery('.acf-map'));\n      },\n    );\n  }\n\n  // This is an example of how to do code splitting. The JS in this\n  // referenced file will only be loaded on that page. Good for\n  // when you have a large amount of JS only needed in one place\n  //\n  //  if (document.querySelector('#js-process')) {\n  //    import(/* webpackChunkName: \"process\" */ './pages/process')\n  //      .then(module => {\n  //        const Process = module.default;\n  //        this.process = new Process();\n  //      });\n  //  }\n});\n","/**\n * Applies the event listener to the given element(s).\n *\n * @example\n * ```js\n * // Creates an event listener on window scroll\n * const off = on(window, 'scroll', onScroll);\n * // Returns function to remove event listener when you're done\n * off();\n * ```\n *\n * @example\n * ```js\n * // Handles one or multiple elements\n * const off = on([input, input2, input3], 'blur', onBlur);\n * ```\n *\n * @param {HTMLElement|HTMLElement[]} elementOrMultiple one or many HTML elements to apply the listener to\n * @param {string} type the type of event to apply\n * @param {Function} listener the event listener callback\n * @param {boolean|EventListenerOptions} options the event listener options to use\n * @returns {Function} a function that unsubscribes from any event listeners\n */\nconst on = (elementOrMultiple, type, listener, options) => {\n  /**\n   * @type {HTMLElement[]} the elements to attach listeners to\n   */\n  let elements = elementOrMultiple;\n  if (!Array.isArray(elementOrMultiple)) {\n    elements = [elementOrMultiple];\n  }\n\n  elements.forEach(el => {\n    if (el) {\n      el.addEventListener(type, listener, options);\n    }\n  });\n\n  return () => {\n    elements.forEach(el => {\n      if (el) {\n        el.removeEventListener(type, listener, options);\n      }\n    });\n  };\n};\n\nexport default on;\n","/**\n * Event listener for when the document is ready. This serves as replacement for\n * JQuery's `$(document).ready()` function.\n *\n * @see http://youmightnotneedjquery.com/#ready\n *\n * @param {Function} callback the function to call when the DOM is ready\n */\nconst onDocumentReady = callback => {\n  if (document.readyState !== 'loading') {\n    callback();\n  } else {\n    document.addEventListener('DOMContentLoaded', callback, { once: true });\n  }\n};\n\nexport default onDocumentReady;\n","class StateMachine {\n  /**\n   * Creates a new state machine.\n   *\n   * @param {string} initialState the initial state of the machine\n   * @param {Record<string, string[]>} stateMap a map of states to their valid next states\n   */\n  constructor(initialState, stateMap) {\n    /**\n     * @private\n     * @type {string} the current internal state\n     */\n    this._state = initialState;\n\n    /**\n     * @private\n     * @type {Record<string, Set<string>>} a map of states to their valid next states\n     */\n    this._map = Object.entries(stateMap).reduce(\n      (acc, [state, nextStates]) => ({\n        ...acc,\n        [state]: new Set(nextStates),\n      }),\n      {},\n    );\n  }\n\n  /**\n   * @type {string} the current state of the machine\n   */\n  get state() {\n    return this._state;\n  }\n\n  /**\n   * Checks whether the current state is any of the given ones.\n   *\n   * @example\n   * ```js\n   * const isMounted = stateMachine.isStateOneOf(['beforeMount', 'mounted', 'beforeUnmount']);\n   * ```\n   *\n   * @param {...string} states the different states to check\n   * @returns {boolean} whether the current state is one of the given ones\n   */\n  isStateOneOf(...states) {\n    return new Set(states).has(this._state);\n  }\n\n  /**\n   * Sets the current state, granted that the given state is valid to move to from\n   * the current state in the machine.\n   *\n   * @param {string} newState the new state to move to\n   */\n  setState(newState) {\n    const validStates = this._map[this._state];\n    if (!validStates) {\n      throw new Error(`Modal gallery is in unknown state: ${this._state}`);\n    }\n\n    if (validStates.has(newState)) {\n      this._state = newState;\n    } else if (process.env.NODE_ENV === 'development') {\n      const validStatesList = Array.from(validStates)\n        .map(state => `\"${state}\"`)\n        .join(',');\n      console.warn(\n        `Modal gallery is in state \"${this._state}\".\\nFrom here, it can only be in one of the following states: ${validStatesList}`,\n      );\n    }\n  }\n}\n\nexport default StateMachine;\n","export { default as on } from './on';\nexport { default as onDocumentReady } from './onDocumentReady';\nexport { default as StateMachine } from './StateMachine';\n"],"sourceRoot":""}